2

我正在使用 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 构造函数究竟需要什么。

谢谢,

阿曼达

编辑以修复代码缩进

4

2 回答 2

2

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

首先,您需要获取Geopositionvia的实例Geolocator.GetGeopositionAsync

然后,您可以GeocoordinateGeoposition.Coordinate.

如果您希望简单地将地图集中在给定的纬度和经度上(并且您正在使用 Bing Maps for Windows Store Apps SDK),那么看起来您应该使用Location该类(与Map.Centertype一样Location)。

于 2012-10-20T01:35:40.720 回答
0

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

Map 控件的 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

于 2013-01-02T16:18:44.603 回答