WP8在地图上加载列表框位置

时间:2013-11-23 09:47:23

标签: c# .net map windows-phone-8 gps

我是wp8应用程序开发的新手我想知道如何使用列表框位置加载地图位置..我不知道它所以请帮助我知道如何做到这一点..提前感谢..

我有listbox个地方加载了它的纬度和经度,一个MAP按钮一边...当我点击MAP按钮我应该显示列表框的位置地图..所以请任何人帮我做这个...

这是一个只需将地图添加到页面的代码..(代码隐藏)

private void Map_Click(object sender, RoutedEventArgs e)
{
            Map MyMap = new Map();
            MyMap.Height = 392;
            MyMap.Width = 412;
            MyMap.Center = new System.Device.Location.GeoCoordinate(-25.235,133.611);

            MyMap.ZoomLevel = 2;
            MyMap.LandmarksEnabled = true;
            MyMap.PedestrianFeaturesEnabled = true;
            MyMap.ColorMode = MapColorMode.Dark;
            srch.Children.Add(MyMap);
}

1 个答案:

答案 0 :(得分:0)

好吧,我不知道你的列表框是怎么样的,所以我只为每个位置创建了一个空的图钉。

以下方法循环遍历ListBox中的每一行并调用方法来绘制图钉

private void ReadListBox()
{
    foreach (var location in YourListBox)
    {
        DrawLocationToMap(new GeoCoordinate(latitudeInListBox, longitudeInListBox));
    }
}

以下方法创建位置图钉并将其添加到地图

private void DrawLocationToMap(GeoCoordinate currGeo)
{
    Pushpin locationPushPin = new Pushpin();
    locationPushPin.Background = new SolidColorBrush(Colors.Black);

    MapOverlay locationPushPinOverlay = new MapOverlay();
    locationPushPinOverlay.Content = locationPushPin;
    locationPushPinOverlay.PositionOrigin = new Point(0.5, 0.5);
    locationPushPinOverlay.GeoCoordinate = new GeoCoordinate(currGeo.Latitude, currGeo.Longitude);

    MapLayer locationLayer = new MapLayer();
    locationLayer.Add(locationPushPinOverlay);

    MyMap.Layers.Add(locationLayer);
}

您需要WPToolkit才能使用PushPins。 要安装工具包,您需要NuGet。如何安装:http://docs.nuget.org/docs/start-here/installing-nuget

安装NuGet后,打开控制台 enter image description here

并输入

  

Install-Package WPtoolkit

最后只需将命名空间添加到xaml

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"