web-dev-qa-db-ja.com

マーカーが円の半径内にあるかどうかを確認します

特定のマーカーが円の半径内にあるかどうかを知りたいのですが。

Javascriptでは、次のようなことができます。

google.maps.geometry.spherical.computeDistanceBetween(latLngCircleCenter, latLngPoint);

しかし、Androidでは、maps-v2を使用すると、行き詰まります。

enter image description here

15
Otuyh

多くの調査の結果、私は非常に簡単な解決策を見つけました。

float[] distance = new float[2];

Location.distanceBetween( marker.getPosition().latitude, marker.getPosition().longitude,
    circle.getCenter().latitude, circle.getCenter().longitude, distance);

if( distance[0] > circle.getRadius()  ){
    Toast.makeText(getBaseContext(), "Outside", Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(getBaseContext(), "Inside", Toast.LENGTH_LONG).show();
}

私はこれをテストしていて、機能しています。誰かがテストしてここにフィードバックを与えることはできますか?

41
Otuyh
1
FunkTheMonk

円の中心を見つけることは可能だと思います。コード内で、特定のジオポイントを反映して円を定義しています。保存して後で使用できます。次に、 Location.distanceBetween(..) を試してください

0
Jashan PJ