我有包含地区多边形的.kml形状文件,我想要做的是找出具体标记或点位于多边形内。我想用java来做这件事。任何图书馆解析通过.KML文件?JAVA:点多边形?如何检查用户的位置是否在kml多边形内?
0
A
回答
0
为了解析KML数据,这里是一个库(我花了谷歌搜索的两秒):https://github.com/micromata/javaapiforkml
要检查坐标落入的形状,无论是图书馆提供了一个方法(没有检查) - 或者,您可以从形状的坐标(仅将它们视为2D表面上的点)创建Java AWT Polygon
。 Polygon
提供了contains(Point2D)
方法。
https://docs.oracle.com/javase/7/docs/api/java/awt/Polygon.html
0
的JTS Topology Suite是一个不错的选择正确计算在地理空间方面的几何关系。 KML可以使用Java库(如JAK或GIScore)轻松解析,您可以在其中访问要素的坐标。
以下是使用JTS测试地理空间点是否在多边形内的Java代码片段。
import com.vividsolutions.jts.geom.*;
// parse KML using JAK or another library
// ...
GeometryFactory gf = new GeometryFactory();
// create polygon
int numPoints = ...
Coordinate[] points = new Coordinate[numPoints];
// set points
points[0] = new Coordinate(...);
//...
LinearRing jtsRing = gf.createLinearRing(points);
Polygon poly = gf.createPolygon(jtsRing, null);
// now create point to test if contained inside polygon
Coordinate coord = new Coordinate(lon, lat);
Point pt = gf.createPoint(coord);
if (poly.contains(pt)) {
// point is contained within bounds of polygon
// do something here
}
contains()几何谓词在JTS javadoc中定义。
相关问题
- 1. 检查位置(纬度经度)是否在KML多边形内
- 2. 如何检查一个点是否在KML多边形(GIS Shapefile)
- 3. Swift:点在多边形?如何检查用户的位置是否属于Geo-JSON多边形?
- 4. 检查点是否在多边形中
- 5. 检查点是否多边形
- 6. 检查点是否位于(或靠近)凸多边形边缘
- 7. SQLite点检查一个点是否在一个多边形内
- 8. 确定点是否在多边形内?
- 9. 确定点是否在多边形内
- 10. 如何检查点是否在Javascript中的多边形
- 11. 检查是否多边形是凸
- 12. Mongodb:如何检查点是否包含在多边形中?
- 13. KML - 层的多边形
- 14. 如何检查是否一个点是一个多边形
- 15. 检查点是一个多边形
- 16. 检查多边形是否自相交
- 17. 如何在KML中绘制多边形内的客户文字?
- 18. 检查纬度/长度组合是否位于多边形内
- 19. 点在多边形内吗?
- 20. 如何在kml中保留多边形的多边形和多边形的名称
- 21. 如何检查点是否与多边形相交
- 22. 从kml geoxml3多边形不可点击
- 23. 多边形内的点
- 24. 如何检查2维点是否在C#中的多边形内?
- 25. 如何在多边形内找到点?
- 26. Python:找到点是否位于多边形的边界上
- 27. 是否可以检查一个点是否在geojson的多边形内?
- 28. 检查点是否在部分打开的多边形中
- 29. 带有多边形孔的多边形区域内的点
- 30. 点在多边形
如果多边形包裹国际日期线或两极,那么AWT多边形将不会始终工作。在这些情况下,需要一个地理空间库,如[JTS Topology Suite](http://tsusiatsoftware.net/jts/main.html)。请参阅[包含](http://tsusiatsoftware.net/jts/javadoc/com/vividsolutions/jts/geom/Geometry.html#contains(com.vividsolutions.jts.geom.Geometry))。 – JasonM1
@JasonM你绝对是对的。 –
AWT形状呈现平坦的表面。大地测量计算不是一个好主意。 – VGR