2016-05-12 18 views
11

Sto utilizzando MarkerCluster_compiled.js da github. Ma mentre la logica funziona, la sua grafica iniziò a mancare da ieri.MarkerCluster V3 ha smesso di funzionare correttamente

Il problema sembra essere causato da "https://google-maps-utility-library-v3.googlecode.com/svn" restituisce un 404 e tutte le immagini degli indicatori di cluster dipendono da questo URL. (Questo google svn url della mappa v3 è ancora nel pubblico dominio di google)

A me sembra che l'impatto di questo particolare "404" non sia banale, perché vedo che i siti live delle persone sono stati interessati. Sono sorpreso che questo problema potrebbe accadere a Google.

Ad esempio: L'advanced_example di marker-clusterer su github.io non funziona più (non posso pubblicare il collegamento a causa della mia bassa reputazione).

In attesa di vedere Google risolvere il problema o qualsiasi altro suggerimento.

+2

Domanda correlata: [Google Maps API V3 Infobox.js rimosso] (http://stackoverflow.com/questions/37171426/google-maps-api-v3-infobox-js-removed). Tutto googlecode.com non è più "live" (o almeno non utilizzabile per il collegamento, è comunque possibile recuperare copie del codice che è lì). – geocodezip

risposta

10

Come Google moved the source over to GitHub un po 'indietro, il nuovo GitHub version si può accedere da RawGit utilizzando il seguente script url:

https://cdn.rawgit.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer.js 

Avrete anche bisogno di specificare l'opzione imagePath quando si crea un'istanza tua MarkerClusterer per accedere alle immagini da GitHub:

var mc = new MarkerClusterer(map, markers, { 
    imagePath: 'https://cdn.rawgit.com/googlemaps/js-marker-clusterer/gh-pages/images/m' 
}); 

il seguente precedente SO post contiene maggiori dettagli per quanto riguarda il riferimento imagePath alle immagini a grappolo:

0.123.

Google maps not working in https://

Mentre gli URL di cui sopra (con i prefissi CDN) hanno no traffic limits or throttling and the files are served via a super fast global CDN, si prega di tenere a mente che RawGit is a free hosting service and offers no uptime or support guarantees.

Questo è trattato più in dettaglio nel seguente SO risposta:

Link and execute external JavaScript file hosted on GitHub

Questo post copre anche che, se si sta collegando al file su GitHub, nella produzione si dovrebbe prendere in considerazione destinati a una specifica rilascia il tag per assicurarti di ottenere una versione di rilascio specifica dello script.

Tuttavia, poiché i custodi del repository js-marker-clusterer devono ancora creare alcuna release, ciò non è attualmente possibile.

Di conseguenza, si dovrebbe seriamente considerare di scaricare e includere la libreria e le sue risorse direttamente nel progetto per scopi di produzione.

+0

Questa risposta funzionerà, ma non è la soluzione corretta perché il collegamento a github (oa un mirror di github) è un rischio perché il link potrebbe cambiare (ancora!) In qualsiasi momento. – PeterTheOne

9

Scarica markerclusterer.js e le immagini m1.png per m5.png da Github https://github.com/googlemaps/js-marker-clusterer/tree/gh-pages/images e risparmiare localmente, in questo modo:

index.html 
markerclusterer.js 
images/ 
- m1.png 
- m2.png 
- m3.png 
- m4.png 
- m5.png 

Poi quando si utilizza markerclusterer.js, impostare imagePath a ìmages/m in questo modo:

var mc = new MarkerClusterer(map, makers, {imagePath: 'images/m'}); 

Perché si dovrebbe utilizzare come descritto sopra:

  • GitHub non è un CDN.
  • I percorsi potrebbero cambiare, come prima.
  • Funzionerà con http e https!
  • Non si dipende da risorse esterne per mantenere in vita il servizio.
Problemi correlati