【问题标题】:Plotting geocoordinates in a Windows 8/Bing maps app在 Windows 8/Bing 地图应用程序中绘制坐标
【发布时间】: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 构造函数究竟需要什么。

谢谢,

阿曼达

编辑以修复代码缩进

【问题讨论】:

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


    【解决方案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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-28
        • 1970-01-01
        • 1970-01-01
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        相关资源
        最近更新 更多