如何从Windows 8 Metro Bing Map应用程序获取经度和纬度

时间:2012-07-26 16:45:45

标签: windows-8 microsoft-metro bing-maps bing-api

如何从我点击/点击地图的位置获取纬度和经度?

我找到了使用GeoCoordinate类的示例,但它是来自Win 7 mobile的示例,此类在Win 8 Metro中不存在

我找到了Geocoordinate类,但它完全不同,我也无法将我的地图转换为此类,如示例

我在Win 7中的示例看起来像这样

Point p = e.GetPosition(this.MapMain);
GeoCoordinate geo = new GeoCoordinate();
geo = MapMain.ViewportPointToLocation(p);

至于现在我已经创建了新项目,添加了bing map并设置了Tapped action。但我不知道如何在任何地方找到基于tap

的坐标

3 个答案:

答案 0 :(得分:1)

试试这个:

Point p = e.GetPosition(this.MainMap);
Location location = new Location();
MainMap.TryPixelToLocation(p, out location);

位置变量将具有纬度和经度值。

答案 1 :(得分:0)

首先,为click事件添加一个事件监听器:

Microsoft.Maps.Events.addHandler(map,'click',mapClick);

然后在事件处理程序中:

function mapClick(e){

if (e.targetType == "map") {

    //Get x and y

    var point = new Microsoft.Maps.Point(e.getX(), e.getY());

    //Convert map point to location

    var location = e.target.tryPixelToLocation(point);

    console.log(location.longitude);

    console.log(location.latitude);
}

}

答案 2 :(得分:0)

// --------- HTML/JS --------------
var mapCenter = map.getCenter();
var pos = map.tryPixelToLocation(new Microsoft.Maps.Point(location.clientX, location.clientY), Microsoft.Maps.PixelReference.control);

// --------- C# -------------------
Geolocator geolocator = new Geolocator();
var pos = await geolocator.GetGeopositionAsync();
Location location = new Location(pos.Coordinate.Latitude, pos.Coordinate.Longitude);