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

时间:2012-10-20 01:28:10

标签: c# windows-8 geocoding bing-maps

我正在使用Bing Maps制作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构造函数究竟是什么。

感谢,

阿曼达

修改代码缩进

2 个答案:

答案 0 :(得分:2)

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

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

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

如果您希望简单地将地图置于给定的纬度和经度中心(并且您正在使用Bing Store for Windows Store Apps SDK),那么您应该使用Location类来代替(因为Map.Center的类型为Location)。

答案 1 :(得分:0)

您的代码和错误输出正在说两件不同的事情。我有同样的问题,确保你在代码中使用GeoCoordianate中的大写C.地理坐标中的小写字母C用于获取电话位置。

  

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

通过下载Windows Phone Toolkit,您可以获得进行此转换的扩展方法以及Maps API的其他有用扩展。如果您想编写自己的代码,下面是一个可用于将Geocoordinate转换为> GeoCoordinate的方法示例:

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