我有包含地區多邊形的.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