在winform应用程序中使用WPF控件在bing map中添加多个图钉

时间:2015-09-16 09:26:03

标签: c# visual-studio-2012 wpf-controls bing-maps

我有一个小的winform应用程序,它使用WPF用户控件在我的winform上显示一个bing map。我可以添加一个图钉,并设置位置缩放等,

这是我的xaml文件:

<UserControl x:Class="MyBingWinForm.MyMapControl"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF">
<Grid>
    <m:Map Name="Map"/>
</Grid>

我的C#文件如下所示:

namespace MyBingWinForm
{
public partial class MyMapControl 
{
    public MyMapControl()
    {
        InitializeComponent();
        Map.Center = new Location(55.6760970, 12.5683370);

        Pushpin pin = new Pushpin();
        pin.Location = new Location(55.6760970, 12.5683370);
        Map.ZoomLevel = 12;
        // Adds the pushpin to the map.
        Map.Children.Add(pin);

        // Removes pushpin from the map.
        // myMap.Children.Remove(pin);
    }
}

}

我想在地图上添加多个图钉,在某种迭代中,想要有一个经度和纬度的类 或sctruct,也许是一个数组。

另一个愿望是,列表中的第一个图钉与其他图钉具有不同的外观,但这是另一个问题。

我希望有些人可以给我一个小指南或以正确的方式引导我。 我在visual Studio 2012工作

1 个答案:

答案 0 :(得分:0)

首先想一下您要存储位置数据的位置。您可以将其存储在本地文件,数据库(服务器或本地)中,使用Bing Spatial Data服务或其他存储系统。将数据存储在某处后,您就可以将其加载到应用程序中。如果您使用的是本地文件,则可能需要使用标准空间文件格式(如GeoJSON或KML)存储数据。如果你这样做,那么你需要一个工具来解析数据并将其加载到WPF地图之上。如果将数据存储在数据库中,则需要将数据存储到应用程序中。如果数据库是本地的,那么这很容易。如果它在服务器上,那么您需要创建一个Web服务。在任何一种方法中,您都可能会发现实体框架确实让事情变得简单。如果您使用Bing Spatial Data Services,您只需解析REST响应,这很容易做到。完成其中任何一项后,您应该最终得到一个数组或对象列表,其中包含某种位置信息。只需循环遍历这些对象并创建图钉并将它们添加到地图或更好的MapLayer。

以下是一些有用的资源:

http://mapstoolbox.codeplex.com/ - 提供工具,可以轻松地将空间文件加载到各种Bing地图控件中,包括WPF。

以下是有关在数据库之上创建空间Web服务的信息:

https://blogs.bing.com/maps/2013/07/31/how-to-create-a-spatial-web-service-that-connects-a-database-to-bing-maps-using-ef5/

https://blogs.bing.com/maps/2013/08/05/advance-spatial-queries-using-entity-framework-5/

以下是Bing空间数据服务的文档:

https://msdn.microsoft.com/en-us/library/ff701734.aspx