在 Windows 8/Bing 地图应用程序中绘制坐标

Posted

技术标签:

【中文标题】在 Windows 8/Bing 地图应用程序中绘制坐标【英文标题】:Plotting geocoordinates in a Windows 8/Bing maps app 【发布时间】:2012-10-20 01:28:09 【问题描述】:

我正在使用 Bing 地图制作 C#/XAML Windows 8 应用程序。我正在复制一堆 Windows Phone 7 代码,而我在简单地绘制地理坐标时遇到了问题。这是 WP7 代码:

GeoCoordinate mapCenter = new GeoCoordinate(37.784, -122.408);
map1.Center = mapCenter;

但是,当我尝试在 Win 8 中实例化 mapCenter 时(并且我确实使用小写 Geocoordinate 而不是 GeoCoordinate),我收到一条错误消息,指出“Windows.Devices.Geolocation.Geocoordinate 不包含采用 2 个参数的构造函数” .

我有点难过,因为我计划使用 Geocoordinates 相当多,但我不确定如何弄清楚 Geocoordinate 构造函数究竟需要什么。

谢谢,

阿曼达

编辑以修复代码缩进

【问题讨论】:

【参考方案1】:

Windows.Devices.Geolocation.Geocoordinate 类不能直接实例化。另外,请记住,您使用的命名空间专门用于从设备中检索位置数据。

首先,您需要通过Geolocator.GetGeopositionAsync 获取Geoposition 的实例。

然后您可以从Geoposition.Coordinate 获取Geocoordinate 实例。

如果您只想将地图以给定的纬度和经度居中(并且您正在使用 Bing Maps for Windows Store Apps SDK),那么您似乎应该改用 Location 类(如Map.Center 的类型为 Location)。

【讨论】:

【参考方案2】:

您的代码和您的错误输出说明了两件不同的事情。我遇到了同样的问题,请确保您在代码中使用 GeoCoordianate 中的大写 C。地理坐标中的小写 C 用于获取手机位置。

地图控件的 Center 属性需要 System.Device.Location 命名空间中的 GeoCoordinate 类型的值。如果您使用 Windows.Devices.Geolocation 命名空间中的定位服务,则必须将 Windows.Devices.Geolocation.Geocoordinate 值转换为 System.Device.Location.GeoCoordinate 值,以便与 Map 控件一起使用。

您可以通过下载 Windows Phone 工具包获得一种扩展方法来执行此转换,以及对 Maps API 的其他有用扩展。如果您想编写自己的代码,这里有一个方法示例,您可以使用该方法将 Geocoordinate 转换为 >GeoCoordinate:

来自http://msdn.microsoft.com/en-US/library/windowsphone/develop/jj207045(v=vs.105).aspx#BKMK_converting

【讨论】:

以上是关于在 Windows 8/Bing 地图应用程序中绘制坐标的主要内容,如果未能解决你的问题,请参考以下文章

在地图上为 Windows 应用标记位置

如何用Windows 10地图应用计划风景拍摄

在 Windows 8 中生成地图应用程序的 URL [关闭]

OpenLayers 3 - Bing 地图不会在 Windows 应用程序中加载

我在 Windows 8、8.1 和 Windows 10 中的应用程序无法识别地图驱动器

如何在通用 Windows 平台地图控件上设置 LocationRectangle?