繁体   English   中英

如何将PushPin项添加到地图? Windows Phone

[英]How to add a PushPin item to a map? Windows Phone

我正在尝试在我的应用程序的地图页面中绘制一个图钉,但是当我添加代码以将图钉覆盖到地图时,我会收到以下错误:

PushPin类型或命名空间名称PushPin (您是否缺少using指令或程序集引用?)

Microsoft.Phone.Maps.Controls.Map不包含Children的定义,也没有扩展方法可以找到Children接受Microsoft.Phone.Maps.Controls.Map类型的第一个参数

我从中理解我错过了一个参考? 我有controls.mapscontols.toolkit参考,所以我不明白为什么。

这也是我用来绘制图钉的代码:

PushPin myPin = new Pushpin();
myPin.Location = MyGeoPosition;
myPin.Content = "My car";
MyMap.Children.Add(myPin);

尝试这个。

MapLayer layer1 = new MapLayer();

Pushpin pushpin1 = new Pushpin();

pushpin1.GeoCoordinate = MyGeoPosition;
pushpin1.Content = "My car";
MapOverlay overlay1 = new MapOverlay();
overlay1.Content = pushpin1;
overlay1.GeoCoordinate = MyGeoPosition;
layer1.Add(overlay1);

myMap.Layers.Add(layer1);

您可以为每个图钉创建新的叠加层,将所有叠加层添加到图层,然后将图层添加到地图元素中。

你可以试试..

 BitmapImage myImage1; myImage1 = new BitmapImage(new    Uri("/Assets/Images/pushpin-google-hi.png",    UriKind.RelativeOrAbsolute)); 
 var image = new Image(); 
 image.Width = 50; 
 image.Height = 50; 
 image.Opacity = 100; 
 image.Source = myImage1;

 var mapOverlay = new MapOverlay();
 mapOverlay.Content = image;
 mapOverlay.GeoCoordinate = new GeoCoordinate(lats, lons);
 var mapLayer = new MapLayer();
 mapLayer.Add(mapOverlay);
 MyMap.Layers.Add(mapLayer);
 MyMap.SetView(new GeoCoordinate(lats, lons), 16);

尝试这个。 首先我在utils类中有这个:

public MapLayer GetCurrentPosition (out MapOverlay myPositionOverlay)
        {
            MapLayer myPositionLayer = new MapLayer();
            myPositionOverlay = new MapOverlay();
            Image myPositionImage = new Image();
            myPositionImage.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Assets/myImagePin.png", UriKind.RelativeOrAbsolute));
            myPositionImage.Height = 70;
            myPositionImage.Visibility = Visibility.Visible;
            myPositionImage.HorizontalAlignment = HorizontalAlignment.Center;
            myPositionOverlay.Content = myPositionImage;
            myPositionLayer.Add(myPositionOverlay);
            return myPositionLayer;
        }

然后这将继续你的MapLoaded方法:

MapLayer mypositionArrow = placePushPins.GetCurrentPosition(out myPositionOverlay);
        MyMap.Layers.Add(mypositionArrow);

然后,如果您希望您的图钉不是静态的,要根据您的位置移动,请将其添加到您的观察者:

myPositionOverlay.GeoCoordinate = myCurrentPositionCoordinate;

为了使图钉顺利移动,只需实现这样的动画: http//blogs.bing.com/maps/2014/09/25/part-2-bring-your-maps-to-life-creating-animations-with-炳地图网/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM