2010-08-19 25 views
6

Haritalarımda çok fazla işaret var. Her işaretleyicide yakınlaştırma bana bir konum gösterir. ancak işaretleyicileri uzaklaştırmak birbiriyle örtüşür ve bir işaretçinin konumunu belirlemek daha zordur.Ölçekli Harita İşaretleyicileri, Zoom, Android

İşaretleme görüntüsünü büyütme faktörüne göre ölçeklendirmenin bir yolu var mı?

cevap

5

İşaretçinizi nasıl çizdiğinize bağlı olarak değişir. işaretçinizle sadece bitmap/çizilebilir ise, basitçe zoom dayalı boyutunu değiştirmez matrix.postScale()

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

Bunu nasıl yapacağınıza dair daha ayrıntılı bir yöntem sağlayabilir misiniz? – ferguior

+0

@ferguior: Tam olarak neye ihtiyacınız var? Ölçeklendirilmiş bir görüntü çizmek artık bana cevap verilmiş yayınlanmıştır ... – WarrenFaith

+1

Şüphelem, ölçeklemenin nasıl yapılacağı, ne zaman yapılacağı ve nasıl ölçüleceğiyle ilgili olarak, doğru ölçeği uygulayabilmemle ilgili. Ayrıca, gönderdiğiniz hangi kod, hangi sınıfa gidecek? Haritalar Görünümünde veya Overlay Öğesinde veya ItemizedItem? – ferguior

2

İşaretleyiciler kullanın. Bu efekti istiyorsanız GroundOverlays kullanın. 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)); 

bir zemin kaplaması bir harita sabitlenmiş ve harita yakınlaştırma ölçekler bir görüntüdür. Daha fazla bilgi için lütfen API'a bakın

+0

'da 'draw()' yöntemini kullanabileceğinizi ortaya koydu. Ancak, bir konum sağlamayacak şekilde Ground Overlay'in sınırlarını hesaplamanız gerekiyor. Bu onu ideal çözümden daha az yapar. –

0

Basit bir biçimdir.

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