我有一个小的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工作
答案 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/08/05/advance-spatial-queries-using-entity-framework-5/
以下是Bing空间数据服务的文档: