0

OpenLayer から経度と緯度の EPSG:4236 形式を取得しようとしていますが、これを理解するために数時間を費やしましたが、何が間違っているのかわかりません。球状メルカトル形式を取得し続けます。

セットアップには、次のものがあります。

var map = new OpenLayers.Map("mapdiv");
map.addLayer(new OpenLayers.Layer.OSM());
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);

これは私の地図の中心です:

  var lonLatCenter =  new OpenLayers.LonLat( -73.0,  40.5 )
      .transform(
        new OpenLayers.Projection("EPSG:4326"), 
        map.getProjectionObject()
  );

  var zoom=14;

クリックイベントの場合、次のコードがあります。

map.events.register("click", map, function(e) {
            var position = map.getLonLatFromPixel(e.xy);
            alert(JSON.stringify(position));
});

ニューヨーク市の JFK 空港をクリックすると、次の結果が得られます。

{"lon":-8215245.2836805,"lat":4960351.5608374}

ここで情報を読んでいますが、EPSG:4326 から球状メルカトルに変換する方法しか示していないようです。ヘルプをいただければ幸いです。以下のリンクはドキュメントへのリンクです。

http://docs.openlayers.org/library/spherical_mercator.html

4

1 に答える 1

1

マップ オブジェクトのクリック イベントは、マップ投影法 (球メルカトル図法) を使用して座標を返します。このように、それらを緯度経度に変換する必要があります

map.events.register("click", map, function(e) {
            var position = map.getLonLatFromPixel(e.xy);
            position.transform(map.getProjectionObject(), new OpenLayers.Projection('EPSG:4326'));
            alert(JSON.stringify(position));
});

于 2016-01-20T08:20:00.290 に答える