0

作成するポリゴンが 200 を超えており、LocationListenerOnChanged() で場所を取得していますが、現在の場所に基づいてどのポリゴンにいるかを知りたいです。

LatLng を使用して 2 マイルごとに各ポリゴン内をチェックするにはどうすればよいですか。また、プロセス全体を高速化するにはどうすればよいですか、または Android OS に組み込み機能がありますか。

Androidマップv2に関連する多くのドキュメントをチェックしましたが、それについての情報は得られませんでした.トピックについての助けに感謝します.よろしくお願いします.

4

1 に答える 1

2

Android API v2 には、latlng がポリゴン内にあるかどうかを知るための直接的な方法はありません。そのため、ポイント インサイド ポリゴンチェックと呼ばれる数学的計算を行う必要があります。以前の投稿で提案されている以下の 2 つの方法を確認できます。

1、レイキャスティング法

2、巻数方式

あなたのケースで、200 以上のすべてのポリゴンに対してポイントをチェックするとアプリが遅くなる場合は、チェックするポリゴンの数を減らすことを検討できます。まず、頂点以外の各ポリゴンについて、おおよその幾何学的中心も格納します。次に、チェックする新しい場所を取得したら、この場所とすべてのポリゴンの幾何学的中心との間の距離を見つけます。ここで、中心がポイントに最も近いいくつかのポリゴン (たとえば 8 つ) のみを取得し、選択したポリゴンに対してポリゴン チェック内の上記のポイントのいずれかを実行します。

于 2013-10-01T06:23:25.797 に答える