나는 진짜 필요성을 이해하지 못합니다. 하나의 특정 확대/축소 레벨에 대해서만?
그러나, 2 방향 :
OSMBonusPack
GroundOverlay
당신이지도를 어딘가에 비트 맵 이미지를 배치 할 수 있습니다. 크기, 회전 및 투명도를 조정할 수 있습니다. 타일을 대체하는 것이 아니라 위에 그려져 있습니다. 그리고 모든 줌 레벨에서 작동합니다.
osmdroid 파일 시스템 캐시에서 맵 타일 파일을 이미지 파일로 바꿀 수 있습니다. 사용자가로 배치도 건물의 이미지를 업로드 할 수
public Point getMapTileFromCoordinates(final double aLat, final double aLon, final int zoom){
final int y = (int) Math.floor((1 - Math.log(Math.tan(aLat * Math.PI/180) + 1/Math.cos(aLat * Math.PI/180))/Math.PI)/2 * (1 << zoom));
final int x = (int) Math.floor((aLon + 180)/360 * (1 << zoom));
return new Point(x, y);
}
public File getFileName(ITileSource tileSource, MapTile tile){
final File file = new File(OpenStreetMapTileProviderConstants.TILE_PATH_BASE,
tileSource.getTileRelativeFilenameString(tile) + OpenStreetMapTileProviderConstants.TILE_PATH_EXTENSION);
return file;
}
뒤에 아이디어는 이렇게이다 :이 두 유틸리티 함수는 주어진 (위도, 경도, 줌)에 대한 정확한 파일 경로를 얻을하는 데 도움이됩니다 지도 뷰 및 마커 등을 건물의 다른 부분에 배치 할 수 있습니다. OK 두 아이디어 모두 꽤 좋았습니다. GroundOverlay를 사용하는 것에 대해 생각했지만지도 위에 새로운 마커를 놓으면 땅바닥에 놓일 수 있습니다. –
오버레이의 그리기 순서를 제어 할 수 있습니다. 예를 들어, 모든 오버레이가 위에 그려 지도록 GroundOverlay를 모든 오버레이의 하단에 추가합니다. map.getOverlays(). add (0, myGroundOverlay); – MKer
아 우수합니다! –