SiverLight下BingMap的开发问题

    技术2022-05-20  41

    闲来无事,把玩一下BingMap的开发。网上已有许多教程,推荐这位仁兄的博客(http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html)。

    这里就分析一下途中遇到的若干问题,现总结如下:

     

    (1)BingMap地图标注:Pushpin

    var pushpin = new Pushpin();ToolTipService.SetToolTip(pushpin, "这里是图钉控件ToolTip内容!");MapLayer.AddChild(pushpin, new Location(29.5076372217973, 106.489384971208));

    方法很简单,其中这里的ToolTip是指当Pushpin获得鼠标焦点时显示的内容,当鼠标移动别处时。ToolTip不再显示。刚开始我还以为ToolTip可以一直在Pushpin旁边,搞了半天都不显示,还以为写错了。

     

    (2)自己定义一个Pushpin(图钉),对地图位置进行标注,对地理信息进行显示,比如像Google地图一样。

    该Pushpin有一下特性:可移动,可拖曳,点击图钉可以获得该出的地理位置信息。方法如下:

    a.从Microsoft.Maps.MapControl.Pushpin继承,自定义图钉的实现见Ref1.

    b.点击图钉后,显示该处地图信息。这里可以用一个面板来实现。

    c.图钉和面板显示方法:

       定义图钉事件myMap.MouseClick += new EventHandler<MapMouseEventArgs>(myMap_MouseClick);

       加载图钉:

       private void AddDyaPushPin(Location location)

            {

                myMapLayer.Children.Clear();//清除所有地图控件

                myMapLayer.AddChild(myPushpin, location);//加载图钉

                myPushpin.LoadPanel(location);//图钉对面板进行加载,面板是图钉的一部分。

            }

            public void LoadPanel(Location location)

            {

                var parentLayer = this.Parent as MapLayer;           

                PositionOrigin position = new PositionOrigin(1.1, 1.1);//具体点相对位置

                parentLayer.AddChild(panel, location,position);//加载面板

            }

     

    Ref1:http://www.cnblogs.com/beniao/archive/2010/01/13/1646446.html


    最新回复(0)