2

私はスマートフォン用の JavaScript ベースの Web アプリケーションに取り組んでいる初心者のプログラマーです。

アプリケーションは、navigator.geolocation API を使用して経度と緯度を取得します。

サポートする必要がある「エベレスト - インド 1830」データムで多円錐変換を使用して、取得した位置を東座標と北座標に変換する JavaScript ベースの関数が必要です。また、東経/北緯を経度/緯度に変換するには、同じ逆関数が必要になります。

インターネットで調査を行った後、proj4jsに出会いました。ただし、必要な変換の手順を明確に理解できず、適切なドキュメントも見つかりませんでした。

前もって感謝します。

4

1 に答える 1

2

わかりました。Spatialreference.org の REST サービスを使用すると、この射影の定義 (http://spatialreference.org/ref/sr-org/7345/proj4/) を取得できます。

+proj=poly +lat_0=33.625 +lon_0=77.375 +x_0=0 +y_0=0 +a=6377301.243 +b=6356100.228368102 +units=m +no_defs

これを proj4 で動作させるには、defs/ という名前のフォルダーにSRORG7345.js、以下を含む定義ファイルを作成します。

Proj4js.defs["SRORG7345"] = "+proj=poly +lat_0=33.625 +lon_0=77.375 +x_0=0 +y_0=0 +a=6377301.243 +b=6356100.228368102 +units=m +no_defs";

次に、これを実行して EPSG:4236 から新しいプロジェクションに変換します。

<html>
<Script src='proj4js-compressed.js'></script>
<script src='defs/EPSG4236.js'></script>
<script src='defs/SRORG7345.js'></script>
<script>
// creating source and destination Proj4js objects
// once initialized, these may be re-used as often as needed
var source = new Proj4js.Proj('EPSG:4236');    //source coordinates will be in Longitude/Latitude
var dest = new Proj4js.Proj('SRORG7345');     //IndiaPolyConic

var p = new Proj4js.Point(-76.0,45.0);   //any object will do as long as it has 'x' and 'y' properties
Proj4js.transform(source, dest, p);      //do the transformation.  x and y are modified in place

console.log(p);
</script>
</html>

proj4js プロジェクト ページによると、polyconic 変換は「まだテスト ポイントに対して検証されていない」ため、これらの結果を確認する必要があることに注意してください。

于 2012-06-15T14:44:38.400 に答える