次のコードを使用して、コード内に座標点が存在するかどうかを確認しています。
mMap.setOnMapClickListener(new OnMapClickListener()
{
public void onMapClick(LatLng point)
{
boolean checkPoly = true;
Point2D[] points = new Point2D[ myPoints.size()];
for ( int i = 0; i < myPoints.size(); i ++)
{
LatLng pt = myPoints.get(i);
points[i] = new Point2D(pt.latitude, pt.longitude);
}
Polygon2D polygon2d = new SimplePolygon2D(points);
double a = point.latitude;
double b = point.longitude;
Point2D myPt = new Point2D(a,b);
checkPoly = polygon2d.contains(myPt);
Log.i("CHECK", String.valueOf(checkPoly));
if (checkPoly)
{
setMarker(point);
}
else
Toast.makeText(NewSearch.this,"The Location is outside of the Area", Toast.LENGTH_LONG).show();
}
ポリゴン ポイントを見つけるために JavaGeom 0.11.1 ライブラリを使用しています。ただし、このコードはまったく問題なく機能していました。myPoints
配列は、ArrayList<LatLng>
マップ上に描画されたポリゴンのすべての頂点の 1 つであることに注意してください。しかし、何かが起こり、今ではマップの外にある反対側で機能しています。私が変更した場合!checkPoly
、それは正常に動作します。
誰が何が悪いのか知っていますか?