我想检查地图上的给定点(及其经度和纬度)是否在某个多边形内。我有多边形的顶点坐标(纬度/经度)。
我想创建一个多边形并检查点是否在内部,但这使我知道该点始终在外部...也许该多边形不适用于地理参考坐标?
Double[] xCoords = {40.842226, 40.829498, 40.833394, 40.84768, 40.858716}
Double[] yCoords = {14.211753, 14.229262, 14.26617, 14.278701, 14.27715}
Double[] myPoint = {40.86141, 14.279932};
Path2D myPolygon = new Path2D.Double();
myPolygon.moveTo(xCoords[0], yCoords[0]); //first point
for(int i = 1; i < xCoords.length; i ++) {
myPolygon.lineTo(xCoords[i], yCoords[i]); //draw lines
}
myPolygon.closePath(); //draw last line
if(myPolygon.contains(myPoint{0}, myPoint{1})) {
//it's inside;
}
这就是在Google地图中的样子
它总是返回false ...但是它位于多边形内部...
无论多边形具有什么形状,该点都不可能包含在该多边形中。
40.858716
当点的x值为时40.86141
,最右边的坐标位于,这表示该点位于多边形的右边。与y相同,多边形的最大y坐标是14.278701
点在时14.279932
。这意味着要点在外面。
此外,你翻转坐标,我们心爱的城市的坐标40.8518° N, 14.2681° E
,这意味着40
是y
和14
的x
。
Path2D
会很好的。我的观察仅告诉您该点不在多边形内,但是检查极点并不是验证点在多边形内的一般解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句