contains
座標の検出を行うために提供された方法を使用しようとしています。調査したところ、私が使用するコードは他の人にとってはうまくいくようです。Path2D
しかし、この場合、描画されたポリゴン内にあるにもかかわらず、ブール値から正のリターンを得ることができません。
PolygonCreation : 座標を描画するためのループには、座標を検出するためのものが含まれています
Path2D prettyPoly =new Path2D.Double();
//Shape drawn
// for loop to retrieve x,y coordinates for each location
for (int i = 0; i < coord1.length; i++) {
// split to retrieve x and y
String[] splitCoord = coord1[i].split(" ");
// 0 - long 1 - lat
y1 = Double.parseDouble(splitCoord[0]);
x1 = Double.parseDouble(splitCoord[1]);
// to plot the starting point
if(i == 0){
System.out.println("Move to x"+x1 + "y" +y1);
prettyPoly.moveTo(x1, y1);
}else{
// continue from starting point
System.out.println("Line to x "+x1 + "y " +y1);
prettyPoly.lineTo(x1, y1);
}
}
prettyPoly.closePath();
// check if contain
Boolean h = prettyPoly.contains(1.38201544874088, 103.95321635529909);
if(h == true){
System.out.println("true");
}else{
System.out.println("false");
}
この一連のコードを考えると、私の座標は最初の場所の開始座標と同じであり、誤って検出されました。
パス 2d ドキュメントへのリンク:
https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.html
https://docs.oracle.com/javase/7/docs/api/java/awt/geom/Path2D.Double.html