2010-08-19 3 views
6

내지도에는 많은 마커가 있습니다. 각 마커를 확대하면 나에게 위치가 표시됩니다. 마커를 축소하는 것이 서로 겹치고 마커의 위치를 ​​결정하는 것이 더 어렵습니다.Scale Map Markers by Zoom, Android

확대/축소 비율에 따라 마커 이미지를 확대/축소하는 방법이 있습니까?

답변

5

마커 그리는 방법에 따라 다릅니다. 당신의 마커 그냥 비트 맵/당김 경우, 단순히 줌에 따라 크기를 변경하지 않는 matrix.postScale()

Matrix matrix = new Matrix(); 
matrix.postScale(2f, 2f); // douple the size 
canvas.drawBitmap(mBitmap, matrix, mPaint); 
+0

자세한 방법을 제공 할 수 있습니까? – ferguior

+0

@ferguior : 정확히 무엇이 필요합니까? 확장 된 이미지 그리기는 이제 편집 된 게시물에 응답됩니다 ... – WarrenFaith

+1

스케일링을 처리하는 방법에 대한 나의 의심은 그것을 할 때와 올바른 스케일을 적용 할 수 있도록 측정하는 방법에 관한 것입니다. 또한, 당신이 게시 한이 코드는 어느 클래스에 있습니까? 지도보기 또는 OverlayItem 또는 ItemizedItem에서? – ferguior

2

마커를 사용합니다. 이 효과를 원하면 GroundOverlays를 사용하십시오. src

GoogleMap map = ...; // get a map. 
BitmapDescriptor image = ...; // get an image. 
LatLngBounds bounds = ...; // get a bounds 
// Adds a ground overlay with 50% transparency. 
GroundOverlay groundOverlay = map.addGroundOverlay(new GroundOverlayOptions() 
    .image(image) 
    .positionFromBounds(bounds) 
    .transparency(0.5)); 

지면 오버레이는지도에 고정지도 크게하여 스케일링 된 이미지이다. 자세한 내용은 API를 참조하십시오

+0

그러나 위치를 제공하기보다는 Ground Overlay의 경계를 계산해야합니다. 이것은 이상적인 솔루션이되지 못하게합니다. –

0

간단한 양식입니다.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.raw.ic_car_1); 
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap); 
     googleMap.addGroundOverlay(new GroundOverlayOptions() 
      .image(bitmapDescriptor) 
      .position(latLng,100));