0

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

我找到了使用 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 地图并设置了 Tapped 动作。但我不知道,也找不到任何地方如何根据点击获取坐标

4

3 回答 3

1

尝试这个:

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

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

于 2012-07-27T14:25:57.477 回答
0

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

Microsoft.Maps.Events.addHandler(map, 'click', 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);
}

}

于 2012-08-06T14:20:07.520 回答
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);
于 2012-08-22T00:56:21.833 回答