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

Adding multiple pushpins in bing map using WPF control in winform application

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

这是我的 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);
    }
}

}

我想在地图上添加多个图钉,在某种迭代中,考虑有一个带有经度和纬度的 class 或一个结构,也许是一个数组。

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

我希望有人能给我一个小指南或引导我正确的方法。 我在 visual Studio 2012

工作

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

这里有一些有用的资源:

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

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

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