-1

私の JavaScript アプリケーションには、30 以上のポリゴンがあります。それらは次のように定義されます。

polygons:[
{name:'xx',bounds:[20,20,60,20,50,40,30,10...],minzoom:0,maxzoom:5},
{name:'yy',bounds:[.....],minzoom:6,maxzoom:8},
........
]

ズーム4で[10,10]のような特定のポイントが与えられました。

この点がどのポリゴンの内側にあるかを確認する最も速い方法はどれですか?

私の最初の考えは、ポリゴンのイテレータであり、ポイントがポリゴンの内側にあるかどうかを確認することです。

その後、この質問は、stackoverflow で多くの回答が得られるポイント イン ポリゴンの質問になりました。

代わりの方法があるのだろうか?

4

1 に答える 1

2

ポリゴンが重なっていない (重なっている場合は、最上位のポリゴンのみに関心がある) と仮定すると、キャンバスを含む「ポリゴン内のポイント」ソリューションを使用できます。

  • すべてのポリゴンを保持するのに十分な大きさのキャンバスを作成します。
  • 各ポリゴンを異なる色で 1 つずつ描画します
  • ポイントが配置されているピクセルの色を調べます
  • これにより、そこにあるポリゴンがわかります。

人間が識別できる色である必要さえないことに注意してください。文字通り#000000、などを使用し#000001#000002色の 16 進コードをポリゴンのインデックスとして使用できます。

于 2013-06-20T00:23:57.307 に答える