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