2012-12-12 26 views
17

Kullanıcımın geçerli konumu için uygulamamda özel bir Simge kullanıyorum ve yeni Google Haritalar kitaplığına yükseltirken bu şekilde tutmak istiyorum.Android Google Maps V2 değiştir Konumum Simge

Google Maps v1 kitaplığı ile MyLocationOverlay'ı genişlettim ve özel simgemi oraya çizmek için drawMyLocation yönteminin üzerine yazdım.

GoogleMap, geçerli konumu setMyLocationEnabled yöntemiyle etkinleştirir, ancak bildiğim kadarıyla, onu özelleştirmenin bir yolu yoktur.

V2'de bunu nasıl gerçekleştireceğini bilen var mı?

cevap

3

Ok, bu nedenle ben sadece başlığın veya ön bilgi eklemek yoksa, işaretleyici bir tık olaya etkisi olmaz ve bu gibi davranır düşündüm bir görüntü bindirmesi. mükemmel değil olsa da, Bu V1 kitaplığı yapılması için kullanılan bir yoldur benim ihtiyaçlarım

private Marker marker = mMap.addMarker(new MarkerOptions() 
        .position(latLng) 
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); 

herkese teşekkürler

13

Özel bir simge kullanan harita yapıcısında bir İşaretçi oluşturun. Sağlayıcı çağrıldığında

_myLocation = mMap.addMarker(new MarkerOptions() 
         .position(MAP_CENTER) 
         .title("My Location") 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.mylocation))); 

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener

Güncelle, Marker Konum Dinleyici Değişti Bir Konum Uygulanışı:

public void onLocationChanged (Location location) 
{ 
    _myLocation.position(location); //May have to convert from location to LatLng 
} 
+1

uyuyor. V2'de, MapView'u bir etkinlik içinde tutmazsınız. Ayrıca, V2'de genişletilecek bir Yerleşim sınıfı yok. https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/package-summary –

+1

Kötü, Haritaların Google Play sürümünü kastettiğinizi anlamadım . Lütfen yukarıda güncellenmiş yanıtıma bakın. Bu güzel çünkü Google Haritalar Javascript sürümünün nasıl davrandığına çok benziyor. – javram

+1

@RobertEstivill: AFAIK, en azından sizin tek seçeneğinizdir, en azından belgelenmiş/desteklenen davranışlara bağlı kalırken. – CommonsWare

0

geçerli yere özel bir simge göstermek için bir yol kesinlikle yoktur. Checkout Link simgenizi harita üzerinde özelleştirmek için daha fazla fikir edineceksiniz.

aşağıdaki kodu deneyin:

private static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298); 
private Marker melbourne = mMap.addMarker(new MarkerOptions() 
         .position(MELBOURNE) 
         .title("Melbourne") 
         .snippet("Population: 4,137,400") 
         .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); 
+0

Bu yapılabilir, ancak geçerli MyLocation mekanizmasıyla uyumlu değil. Diğer bir deyişle, tüm pencere bilgileri olmadan bir İşaretçiyi kullanabilirsiniz, ancak konumunuzu çekilebilir bir yere taşımak için bir KonumListörü manuel olarak uygulamanız gerekecektir. Yerleşik konum yeteneklerini yeniden kullanamazsınız –

+0

Bu, AFAIK'ın tek yoludur. Sorununuz hakkında fikir sahibi olabilmemiz için lütfen bazı kodları gönderin. Teşekkür ederim. – GrIsHu

İlgili konular