2013-04-19 13 views
6

Google Maps Android API v2 kullanarak bir haritaya bazı işaretçiler eklenirken, işaretçiler doğru konumlara ayarlanmaz ve yakınlaştırma işleminde hareket eder.İşaretçiler Google Maps Android API v2 ile yakınlaştırma yaparken hareket ederler

Yakınlaştırırken, doğru konumlara yaklaşıyorlar, sanki yakınlaştırma ile ilgili bir faktörle çevrilmişlermiş gibi.

Neyin var?

Örnek yakınlaştırma:

enter image description here enter image description here enter image description here

fragmanı

public class CenterMapFragment extends Fragment { 

    private GoogleMap mMap; 
    private List<Center> mCenterList; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     return inflater.inflate(R.layout.center_map_fragment, container, false); 
    } 

    @Override 
    public void onActivityCreated (Bundle savedInstanceState){ 

     super.onActivityCreated(savedInstanceState); 

     mMap = ((SupportMapFragment) getActivity().getSupportFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 

     if (mMap != null) { 

      mCenterList = MyApplication.dbHelper.getAllCenter(); 

      for(Center center : mCenterList){ 

       mMap.addMarker(new MarkerOptions().position(new LatLng(center.lat, center.lng)).icon(BitmapDescriptorFactory 
           .fromResource(R.drawable.myicon))); 

      } 
     } 

    } 

} 

düzeni

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 
+0

'u kullanmak zorundasınız. Şimdi ekran görüntülerini ekledikçe sorunun kesinlikle ankrajlarda olduğunu söyleyebilirim –

+0

Simgenizde herhangi bir beyaz boşluk var mı? – Leaudro

+0

aynı problem herhangi bir çözüm? –

cevap

5

özel işaretler için ihtiyacınız da işaretleyici işaretçi noktası olduğu anlatılmaktadır

MarkerOptions.anchor(float u, float v)

kullanın. Varsayılan olarak, bu nokta görüntünün orta alt kısmında bulunur.

+0

için bir svg simgesi kullanıyorum BitmapDescriptor'da bir yöntem bağlantısı yoktur. Bu bir MarkerOptions ve: "İşaretin LatLng konumuna yerleştirilecek olan görüntü üzerindeki nokta. Bu, görüntünün alt kısmının ortasıdır." Pozisyonu değiştirmemeli. – jul

+0

@jul özür dileriz - bu, MarkerOptions'ın bir yöntemidir. Her neyse, aradığın şey bu. "Konumu değiştirmemeli" - resmin konumunun haritada gerçek lattitude ve boylamı etkilemeyeceği anlamına gelir. Sadece görüntüyü yüzde 100'lük yüzde sağa ve en fazla yüzde 100'lük yüzdeye çevirir. –

+0

@jul da, sorununuzun ekran görüntüsünü sağlarsanız, belki biraz yardımcı olabilir. –

0

Bir pencere bilgisini göstermek için, setInfoWindowAdapter öğesini "mMap" inizde kullanmanız veya işaretleyiciniz için bir başlığa sahip olmanız gerekir.

Simge, yakınlaştırma yaptığınızda hareket ediyor gibi görünüyor, ancak çapa her zaman haritada aynı yere işaret ediyor. Kullanmakta olduğunuz resim Google'ın simge düzenini (resmin bottonunun ortasındaki bağlantı) izlemediyse bir çapa ayarlayabilirsiniz. Bunun için MarkerOptions' method anchor(u,v)

+0

@jul'dan bahsederken - 'anchor', MarkerOptions'ın bir yöntemidir. Sadece unuttum) –

+0

düzenledi, teşekkürler :) – Leaudro