2014-07-11 2 views
1

osmdroid를 사용하여 맵뷰에서 이미지를 사용자 정의 maptile로 사용하는 것이 가능한지는 알 수 있습니까? 예를 들어 사용자가 내 애플리케이션에서 휴대 전화에 저장된 이미지를 선택한 다음 해당 이미지를 가지고 내지도 뷰 내의 타일을 바꿀 수있게하고 싶습니다.

누구에게 이것이 어떻게 수행 될 수있는 방법이나 아이디어가 있습니까?osmdroid mapview를 사용하여 사용자 정의 이미지를 사용하십시오.

답변

1

나는 진짜 필요성을 이해하지 못합니다. 하나의 특정 확대/축소 레벨에 대해서만?

그러나, 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; 
    } 
    
+0

뒤에 아이디어는 이렇게이다 :이 두 유틸리티 함수는 주어진 (위도, 경도, 줌)에 대한 정확한 파일 경로를 얻을하는 데 도움이됩니다 지도 뷰 및 마커 등을 건물의 다른 부분에 배치 할 수 있습니다. OK 두 아이디어 모두 꽤 좋았습니다. GroundOverlay를 사용하는 것에 대해 생각했지만지도 위에 새로운 마커를 놓으면 땅바닥에 놓일 수 있습니다. –

+1

오버레이의 그리기 순서를 제어 할 수 있습니다. 예를 들어, 모든 오버레이가 위에 그려 지도록 GroundOverlay를 모든 오버레이의 하단에 추가합니다. map.getOverlays(). add (0, myGroundOverlay); – MKer

+0

아 우수합니다! –