2013-06-27 10 views
5

So che questo è stato discusso prima, ma in realtà non riesco a trovare una soluzione.L'indicatore personalizzato di Maps Maps v2 Android ha una posizione errata sullo zoom

Io sono l'aggiunta un'icona personalizzata per il mio marcatore:

markerUserLocation = mMap.addMarker(new 
         MarkerOptions().position(new 
           LatLng(point.latitude, 
             point.longitude)) 
           .anchor(0.5f, 1.0f) 
           .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_marker_my_location))); 

Il problema è quando lo zoom in/out il marcatore ottiene posizionato in un brutto posto.

Ho provato a giocare con i valori di ancoraggio, ma senza successo. L'ancoraggio predefinito non è metà/inferiore dell'immagine? Cosa devo fare per mantenere effettivamente la parte inferiore dell'indicatore alle coordinate del punto specificate, indipendentemente dal livello di zoom?

Ecco un esempio di icona ic_marker_my_location (dimensione xhdpi), poiché non riesco a caricare l'icona originale. enter image description here

LE: questo è davvero uno sciocco, ma se uso un'immagine di marcatore più piccola ... funziona correttamente ... Quindi forse c'è un bug con la dimensione dell'immagine della risorsa marcatore? O se l'immagine è più grande, ho bisogno di impostare alcuni parametri aggiuntivi?

+0

Puoi aggiungere il tuo file ic_marker_my_location.png a questa domanda? –

+0

Ho appena aggiunto un campione della stessa dimensione – Alin

+0

Sto usando Open Street Maps e sto riscontrando lo stesso problema, in precedenza l'applicazione mi ha mostrato la posizione corrente corretta, ma ora mostra come 10 km più avanti! – TharakaNirmana

risposta

0

sono riuscito a risolvere il problema facendo una nuova png marcatore. Fondamentalmente fatto un nuovo png della stessa dimensione e ricreato l'immagine ... e ora funziona. Quindi non ho idea di cosa sia realmente successo, forse il controllo della mappa non ha gradito qualche margine o qualcosa del genere.

0

Potrebbe essere che si stiano passando i valori float per latitudine e longitudine. Si prega di passare i valori doppi come questo ..

private double lat = 13.005039; 
private double lng = 77.57734; 


mMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)); 
0
used this code 

// Creating a marker 
       MarkerOptions markerOptions = new MarkerOptions(); 

       // Getting a place from the places list 
       HashMap<String, String> hmPlace = list.get(i); 

       // Getting latitude of the place 
       double lat = Double.parseDouble(hmPlace.get("lat"));     

       // Getting longitude of the place 
       double lng = Double.parseDouble(hmPlace.get("lng")); 

       // Getting name 
       String name = hmPlace.get("place_name"); 

       // Getting vicinity 
       String vicinity = hmPlace.get("vicinity"); 

       LatLng latLng = new LatLng(lat, lng); 

       // Setting the position for the marker 
       markerOptions.position(latLng); 

       // Setting the title for the marker. 
       //This will be displayed on taping the marker 
       markerOptions.title(name); 
       markerOptions.snippet(vicinity); 

       // Placing a marker on the touched position 
       mGoogleMap.addMarker(markerOptions);    
+0

Che cos'è la vicinanza? –

5

Recentemente ho riscontrato un problema simile. Mi sembra che ci sia un bug con la funzione setIcon (bitmap bitmap) del marcatore.

Non appena ho cambiato l'immagine del marcatore, l'ancora è incasinato, quindi ho dovuto reimpostarlo di nuovo alla posizione di default.

marker.setIcon(bitmap); 
marker.setAnchor(0.5f,1f); 

che ha lavorato per me utilizzando i servizi di gioco (8.4.0)

+0

Grazie! Ho iniziato ad avere lo stesso problema da qualche giorno e non avevo idea del problema. Mi hai salvato la vita! – Ton

+0

Si si si e migliaia di volte si! –

+0

Questo non ha risolto il problema, l'icona è ancora visualizzata in modo errato su diversi livelli di zoom. –

0

Ho avuto lo stesso problema, tuttavia la soluzione di ancoraggio inviato da Mike T non ha funzionato per me.

Ciò che ha funzionato per me è stato convertire la mia immagine originale in un vettore (svg). Ciò ha impedito al mio indicatore personalizzato di spostarsi sulla mappa ogni volta che eseguivo lo zoom avanti o indietro rispetto alla mappa.

Problemi correlati