0

ArcGIS baseMap を使用して Openlayers マップに描画することにより、いくつかの座標を含む gpx ファイルを取得しようとしていました。

ポリラインを描いて gpx を作成し、それを Google Earth で開くと、前に描いたものとは異なり、元の線とはまったく異なり、描いた場所に配置されていません。投影の問題であることはわかっています。ジオメトリ オブジェクトをメルカトルから地理に変換しようとしましたが、地図座標から地理座標を直接取得しましたが、何もしませんでした。「spatialReference」を 4362 に設定してから 3857 に設定しようとしましたが、何も変わりません。

その .gpx を gps デバイスで使用します (来週スバールバル諸島に行き、スノーモービルでロングイェールビーンを一周するには gps トラックが必要です。町の外に生命の兆候はありません。 、だから私はそれに備える必要があります)、私がそこにいるとき、彼らが私に借りるデバイスの出力を正しく調整しますが、今は.gpxファイルにほぼ正しい座標を保存する必要があります.

地図からこれらの座標を取得しています: lat: 61.22582068741976 lon: 4.684820015391338 代わりに 78. lat と 15. lon 付近の何かを期待している場合。

これは、マップを作成するために使用するコードの一部です (問題の原因ではないことがわかっているコードは貼り付けていません)。

    var initialExtent = new esri.geometry.Extent({"xmin":505615.5801124362,"ymin":8678955.717187276,"xmax":525935.6207525175,"ymax":8689168.654279819,"spatialReference":{"wkid":32633,"latestWkid":32633}});

    map = map = new esri.Map("map", {extent: initialExtent, logo : false});
    basemapURL = "http://geodata.npolar.no/ArcGIS/rest/services/inspire1/NP_TopoSvalbard_U33_CHL/MapServer/";
    map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer(basemapURL));

ここでは、そのマップのデフォルトである wkid 32633 を使用しています。既知のものに変更しようとしましたが、何も起こりませんでした。

そして今、座標を取得するために使用するコード:

        dojo.connect(tb, "onDrawEnd", getCoords);
        function getCoords(geo) {
            var r=confirm("Salvare tracciato?");
            if (r==true) {
                geo = esri.geometry.webMercatorToGeographic(geo);   
                for ( var path = 0; path < geo.paths.length; path ++ ) {                   
                    for ( var pt = 0; pt < geo.paths[path].length; pt++ ) {
                        tra += '<wpt lat="'+geo.paths[path][pt][1]+'" lon="'+geo.paths[path][pt][0]+'"></wpt>';
                    }   
                }
            }
        }

「tra」は、他の関数を使用して gpx ファイルに挿入するすべてのコードを格納する変数です。「webMercatorToGeographic」関数は、マップ座標を地理座標に変換します。

4

1 に答える 1

0

GIS.stackexchange の Devdatta Tengshe のおかげで、必要なものを手に入れることができました。

アプリケーションで proj4js ライブラリを使用します。これを行うには、次の手順を実行します。

https://github.com/proj4js/proj4js/releasesから最新のライブラリをダウンロードし ます。 HTML ファイルで使用します。使用する前にプロジェクションを定義する必要があります。次のコード行を使用してこれを行うことができます。var GCS84="+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";

変換する必要がある場合は、次の行を使用できます。x & y は、指定された投影の座標です。出力として、経度と緯度の 2 つの要素を持つ配列を取得します。

それはうまくいきました。

于 2014-02-07T16:11:14.483 に答える