0

地図をタップ/クリックした場所から緯度と経度を取得するにはどうすればよいですか?

GeoCoordinateクラスを使用した例を見つけましたが、これはWin 7 mobileからのサンプルであり、このクラスはWin8Metroには存在しません。

Geocoordinateクラスを見つけましたが、まったく異なり、サンプルのようにマップをこのクラスに変換できません。

Win7からの私のサンプルは次のようになります

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

今のところ、新しいプロジェクトを作成し、Bing Mapを追加し、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, 'クリック', mapClick);

次に、イベント ハンドラーで:

関数 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 に答える