次のような標準のタイル マップがあるとしましょう: http://bl.ocks.org/mbostock/4132797
表示されているマップの境界ボックスの座標を取得するにはどうすればよいですか?
言い換えれば、特定の時点で表示されているマップの範囲を正確に把握するにはどうすればよいでしょうか。これは境界ボックスとしてだけでなく、範囲としても理解しています。
ありがとうございました。
次のような標準のタイル マップがあるとしましょう: http://bl.ocks.org/mbostock/4132797
表示されているマップの境界ボックスの座標を取得するにはどうすればよいですか?
言い換えれば、特定の時点で表示されているマップの範囲を正確に把握するにはどうすればよいでしょうか。これは境界ボックスとしてだけでなく、範囲としても理解しています。
ありがとうございました。
同様の特定の質問に対する回答を見つけることができましたが、誰かが一般的なケースを検索している場合に備えて、これを残しています.
Elijah Meeks の回答から:
画面上のマップの視覚領域の境界ボックスを見つけるには、単純に
projection.invert()
関数を使用して、SVG の左上隅と右下隅にフィードします。500x500 の SVG がある場合、次のようになります。
projection.invert([0,0])
projection.invert([500,500])
これは、緯度経度 (または使用している座標系) の画面の境界ボックスです。その後、フィーチャの境界を取得し、それらが完全に含まれているか、交差しているか、それらの境界内に重心があるかどうかをテストできます。ここでその方法を説明するつもりはありません。これは、決定した「これらの境界内」の定義に応じて、さまざまな答えを持つ別の質問だからです。
そのため、可視領域のwidth
とheight
をプロジェクション ジェネレーターに接続します。ほら、あなたは箱を持っています。