如何使用OSMDroid检查当前位置和KML点之间的距离?

时间:2019-06-04 09:52:55

标签: android openstreetmap kml osmdroid

因此,在我的项目中,我需要每分钟检查一次用户是否处于指定KML的给定距离半径内。

我从KmlDocument和FolderOverlay中搜索了方法,但是它们都不给我点列表或其他要与当前位置进行比较的东西。

这是我获取KML并将叠加层应用于地图的方法:

KmlDocument kmlDocument = new KmlDocument();
map.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
if (trail.isDownloaded() && UtilsClass.getInstance().isNetworkAvailable(context) && trail.getFileKmlLocalPath() != null && 
!trail.getFileKmlLocalPath().isEmpty()) {
    File kmlFile = new File(trail.getFileKmlLocalPath());
    if (kmlFile.exists()) {
       kmlDocument.parseKMLFile(kmlFile);
    } else {
       kmlDocument.parseKMLUrl(trail.getFileKml()); 
    }
} else {
    kmlDocument.parseKMLUrl(trail.getFileKml());
}

FolderOverlay kmOverlay = (FolderOverlay) 
kmlDocument.mKmlRoot.buildOverlay(map, null, null, kmlDocument);
map.getOverlays().add(kmOverlay);

有没有办法实现我想要/需要的东西?

预先感谢

1 个答案:

答案 0 :(得分:0)

每个KmlPlacemark(点,线串和多边形)的点列表位于KmlPlacemark.mGeometry.mCoordinates