Sto usando MarkerClusterer. Quando ho due o più marcatori sullo stesso identico punto, l'API mostra solo 1 marcatore - quello superiore. Ma in qualche modo voglio mostrare tutti i marcatori poiché ognuno aprirà un popup distinto. Ho cercato poche soluzioni ma nessuna sembra funzionare Qualcuno ha avuto problemi simili e avrebbe condiviso una soluzione?Più di un marker sullo stesso posto - MarkerClusterer
11
A
risposta
23
Finalmente ha funzionato. Questo è per tutti coloro che non hanno ancora trovato una soluzione. Sotto codice aggiunge compensato ai marcatori sulla stessa posizione:
Nella funzione createMarker
aggiungere questo codice:
//get array of markers currently in cluster
var allMarkers = namespace.mapParams.mapMarkersArray;
//final position for marker, could be updated if another marker already exists in same position
var finalLatLng = latlng;
//check to see if any of the existing markers match the latlng of the new marker
if (allMarkers.length != 0) {
for (i=0; i < allMarkers.length; i++) {
var existingMarker = allMarkers[i];
var pos = existingMarker.getPosition();
//if a marker already exists in the same position as this marker
if (latlng.equals(pos)) {
//update the position of the coincident marker by applying a small multipler to its coordinates
var newLat = latlng.lat() + (Math.random() -.5)/1500;// * (Math.random() * (max - min) + min);
var newLng = latlng.lng() + (Math.random() -.5)/1500;// * (Math.random() * (max - min) + min);
finalLatLng = new google.maps.LatLng(newLat,newLng);
}
}
}
ora aggiornare il vostro oggetto google.maps.Marker
per ogni marcatore con il nuovo valore di posizione - finalLatLng
.
var marker = new google.maps.Marker({
map: msf_namespace.mapParams.resultmap,
position: finalLatLng,
title: name,
icon: markericon
});
//add each generated marker to mapMarkersArray
namespace.mapParams.mapMarkersArray.push(marker);
Problemi correlati
- 1. Google Maps: Render marker above markerclusterer
- 2. Visualizzazione di più attività sullo stesso schermo
- 3. query su più database sullo stesso server
- 4. Più utenti che scrivono sullo stesso file
- 5. Più grafici sullo stesso grafico in seaborn
- 6. Più tag sullo stesso elemento struct Go
- 7. Più siti in più progetti sullo stesso server di rotaie
- 8. Integrazione di Spiderfier JS in markerClusterer V3 per esplodere multi-marker con lo stesso identico long/lat
- 9. OpenLayers visualizza tutti i marker sullo schermo
- 10. Tornado: supporta più applicazioni sullo stesso IOLoop
- 11. Utilizzando "nuove" più volte sullo stesso puntatore
- 12. WPF Utilizzo di più filtri sullo stesso ListCollectionView
- 13. come installare più versioni di IE sullo stesso sistema?
- 14. Può Log4net avere più appendici scrivere sullo stesso file?
- 15. Associazione polimorfica con più associazioni sullo stesso modello
- 16. Come dovrei organizzare più server Express sullo stesso sistema?
- 17. Best practice per più asserzioni sullo stesso risultato in C#
- 18. RESTful API quando più azioni sullo stesso URI
- 19. Condividi sessione su più domini sullo stesso server
- 20. VIM possibile rilevare più lingue sullo stesso file
- 21. Esegui più effetti jQuery sullo stesso elemento in parallelo
- 22. Come prevenire più eventi sullo stesso UIButton in iOS?
- 23. addClass - può aggiungere più classi sullo stesso div?
- 24. Magento - 2 o più osservatori sullo stesso evento
- 25. modifica icone MarkerClusterer per punteggio più alto, piuttosto che conta marcatore
- 26. Esiste un posto adeguato per un database di staging?
- 27. Posso avere più CommandBindings per lo stesso comando sullo stesso controllo?
- 28. Evento di incendio dopo che MarkerClusterer ha terminato
- 29. Come impostare più campate su un testo di TextView sullo stesso testo parziale?
- 30. trama colonne multiple sullo stesso grafico Seaborn
possibile duplicato [Integrazione Spiderfier JS in markerClusterer V3 esplodere multi-marcatori con esattamente lo stesso lungo/lat] (http://stackoverflow.com/questions/9726920/integrating-spiderfier-js-into-markerclusterer -v3-to-explode-multi-markers-with) – geocodezip
@geocodezip c'è un modo per farlo funzionare senza usare OverlappingMarkerSpiderfier in quanto non soddisfa la necessità. Mostrare entrambi i segnalini con poco spazio solo per sapere che ci saranno due o più segnalini. Grazie. – Grish
Ovviamente c'è. Basta codificarlo per farlo. O modificare i dati di input in modo che non ci siano duplicati. – geocodezip