問題タブ [map-projections]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
845 参照

r - ggmap を使用して正射投影図を作成する

次のスクリプトでは、多数の点のペアを読み取り、マップ上に線を描画します。私は ggmap を使用して、Google からマップを取得し、この行をプロットしています。

残念ながら、これにより、カナダの北緯が原因で、マップの上部で距離に大きな歪みが生じます。

カナダの病院までの距離

projection=mapprojection(orthographic)これは、正射図に切り替えることで簡単に修正できます。また、createMap 関数内に追加することで、線のプロット方法の投影を変更できますが、Google から取得した地図画像の投影を変更することはできません。 Web メルカトル図法。ggmap を使用してこれを行う方法はありますか、それとも別のパッケージを試す必要がありますか? もしそうなら、あなたは何をお勧めしますか?

0 投票する
0 に答える
560 参照

python - 球体上の UV マッピングのためのシンプレックス マップの変換

three.js の球体に適切にマッピングされるシンプレックス ベースの画像を動的に生成したいと考えていますが、極での歪みに問題があります。最初のマップ コードは次のとおりです。

これにより、横向きにタイル化されたマップを作成するデータが生成されますが、上下ではありません (理想的です)。

世界地図

これが three.js の球体にマッピングされると、問題が発生します。

UVMapping が行われるため、極の近くでピンチが発生します。

球にマッピング.

ピンチの問題を解決する最も簡単な方法は、ソース画像でメルカトル変換を使用することだと思いますが、私の人生では、それを実装する方法がわかりません.

誰か提案はありますか?試してみたい場合は、プロジェクトの完全なソースをここで見つけることができます。

更新: ウィキペディアの便利なUV マッピンググラフをThree.JS 球体マッピングの例と組み合わせて見ると、これらは開始するのに適した場所だと思います...

0 投票する
3 に答える
6507 参照

maps - 緯度 / 経度をジオリファレンス マップ上の相対 X / Y 座標に変換します

3 つのコーナー (または任意の 3 つの位置合わせされていないポイント) の座標 (lat/lng) を知っているマップでは、マップ上にあるいくつかのポイントの座標 (lat/lng) があります。

私が欲しいのは、マップに対するポイントの相対座標 (左上隅を基準とした x/y) です。

他の変換 (x/y から lat/lng へ) にも興味があります。

私の地図は非常に小さい (10 km x 10 km 未満) ため、投影システムを使用する必要がありますか? または、表面が完全に平らであると仮定して線形変換を使用することはできますか?

編集:背景マップがどの投影を使用しているかわかりません(そして知る方法がありません)。3 つの地理参照ポイントを知っているだけです。

解決策は、線形変換を使用することです。

私の3つのポイントがA(xA、yA)、B(xB、yB)、C(xC、yC)、およびX(x、y)を配置したいポイントである場合。

私は計算することができa、緯度/経度の参照のbようにAX = aAB + bAC

x = xA + a * (xB-xA) + b * (xC - xA) y = yA + a * (yB-yA) + b * (yC - yA)

しかし、私は何かが欠けているように見えますか?

関連質問 :緯度/経度を歪んだ地図にマッピングする方法は?

0 投票する
1 に答える
385 参照

map - TileMill で正距円筒図法を使用するには?

TileMill から正距円筒図法を取得する必要があります ( http://en.wikipedia.org/wiki/Equirectangular_projection )。

「project.mml」ファイルでプロジェクトの設定を変更して別の投影法を取得する方法を説明するチュートリアルをオンラインで見つけました。( http://blog.kartena.se/using-tilemill-without-spherical-mercator/ )

そして、正距円筒図法に必要な srs コードの説明と思われるものを見つけました。

しかし、この地図はただ長く細い水線を示しているだけで、それ以外は何も示していないので、明らかにそれは正しくありません。これを設定する方法の詳細を精査してきましたが、完全に困惑しています。Web メルカトル図法は私の目的には適していません。

誰でもこれを行う方法を知っていますか?

本当にありがとう。

S

0 投票する
0 に答える
1456 参照

geolocation - 1 つの投影法に固定されていない地図のビットマップ イメージへの緯度/経度座標のマッピング

私は現在、地図とその地図内の現在の GPS 位置を表示できる小さな (Java) ソフトウェアを開発しています。私はこれにまったく慣れていませんが、ある種の座標変換を行う必要があることは明らかです。「Proj4J」を見つけました。これは、私にとって多くのことができるようです。今、私が持っているものと私がやりたいこと:

  1. マップのビットマップがあります。この地図の投影法は、ランベルトやメルカトルのような「明確に定義された」投影法にすることができます。これを 1 つの投影に固定することはできません。
  2. 「標準」の GPS 受信機から GPS 座標を取得しています。WGS84 では緯度/経度だと思いますが、正しいですか?

ここで私の質問: GPS 位置を基本的にマップ ビットマップの「画面座標」にマップする必要があります。そのためには、緯度/経度と対応するピクセル位置を知っている参照ポイントが必要だと思います。私の地図は数百キロメートルの範囲を簡単にカバーできるので、既知の点と任意の位置との間の線形補間は、すべてのタイプの投影に対しておそらく正しくありません。これまでに「特定の画像で long/lat をピクセル x/y に変換する」を読みましたが、これはメルカトル図法を扱っており、ランベルト マップよりも線形近似の方がうまく機能すると思います。全体のプロセスは次のようになると思います。

  1. マップを「調整」します。つまり、ビットマップ内の既知の緯度/経度の 2 つの位置を識別し、それらのピクセル位置を取得します。
  2. 「緯度/経度 WGS84」から「地図投影」への Proj.4 変換を使用して、(1.) からの参照点を地図座標にマッピングします。
  3. (2.) からポイントを取得し、それらをピクセル位置の線形補間を可能にする投影に再度マップします。これを「ピクセル投影」と呼びます。
  4. これで、「ピクセル投影」の座標とそれに対応するピクセル位置を持つ 2 つの基準点ができました。

GPS 受信機からの緯度/経度値については、次の手順を実行します。

  1. 「地図投影」を使用して、位置を地図の位置に変換します。
  2. (1.) から地図の位置を取得し、上からの「ピクセル投影」を使用して座標に変換します。
  3. 「ピクセル投影」のすべての距離が維持されるため (これがピクセル投影の条件です!)、上からの基準点の既知の位置を使用して (2.) から得られる座標を補間することができます。

ここに大きな質問があります:

  1. これは、最終的な「ピクセル投影」を使用して線形補間を可能にする方法ですか?
  2. それはどのタイプのプロジェクションで、Proj.4 で実行できますか?
  3. 「戻る」ことはできますか-ピクセル位置があり、緯度/経度を達成したい(「ピクセル位置」->「ピクセル投影」->「地図投影」->「緯度/経度」のように)?

ありがとう、イェンス。

0 投票する
0 に答える
1103 参照

matlab - Matlab m_map 射影 m_ll2xy 単位

私が使用している投影のために

次に、以下を使用してlonlatポイントの配列をx y座標に変換します。

私が得たのは、[x,y]私が理解できない単位でした。たとえば、x経度 -180 度と 180 度に対応するのは -pi と pi で、y緯度 -85 ~ 85 度に対応するのは -3.1313 と 3.1313 です。

km 単位で取得したいのですが[x,y]、固定点から定義する必要があることを理解しています。これどうやってするの?ありがとう