SiverLight下BingMap的开发问题

来源:互联网 发布:淘宝客服子账号分流 编辑:程序博客网 时间:2024/05/22 14:24

闲来无事,把玩一下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.5076372217973106.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

原创粉丝点击