如何使用 OSMDroid 检查当前位置和 KML 点之间的距离?
How to check distance between current position and KML points using OSMDroid?
因此,在我的项目中,我需要每分钟检查一次用户是否在指定 KML 的给定距离半径内。
我从 KmlDocument 和 FolderOverlay 中搜索了方法,但其中 none 给了我一个点列表或其他任何东西来与我的当前位置进行比较。
以下是我获取 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);
有没有办法完成我want/need?
提前致谢
每个 KmlPlacemark(点、线串和多边形)的点列表在 KmlPlacemark.mGeometry.mCoordinates
中
因此,在我的项目中,我需要每分钟检查一次用户是否在指定 KML 的给定距离半径内。
我从 KmlDocument 和 FolderOverlay 中搜索了方法,但其中 none 给了我一个点列表或其他任何东西来与我的当前位置进行比较。
以下是我获取 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);
有没有办法完成我want/need?
提前致谢
每个 KmlPlacemark(点、线串和多边形)的点列表在 KmlPlacemark.mGeometry.mCoordinates
中