我正在使用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构造函数究竟是什么。
感谢,
阿曼达
修改代码缩进
答案 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