2016-05-12 5 views
1

Ich habe relativ alte App in RoR geschrieben, die ich regelmäßig auf Rails 4.2.6 und Ruby 2.3.0 laufe. Ich benutze auch gmaps4rails, um verschiedene Markierungen auf einem anzuzeigen Karte. Plötzlich werden die Karten nicht mehr gerendert. Ich gehe davon aus, dass dies aufgrund einiger veralteter Versionen geschieht.Gmaps4Rails funktioniert nicht mehr, da einige JS-Dateien nicht geladen werden

Hier sind die Zeilen in der application.html.erb Datei:

<script src="https://maps.google.com/maps/api/js?v=3.13&amp;sensor=false&amp;libraries=geometry" type="text/javascript"></script> 
<script src="https://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.14/src/markerclusterer_packed.js" type="text/javascript"></script> 
<script src="https://google-maps-utility-library-v3.googlecode.com/svn/trunk/richmarker/src/richmarker-compiled.js" type="text/javascript"></script> 
    <script src="https://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1.9/src/infobox_packed.js" type="text/javascript"></script> 

Alles, was ich wissen will, ist, wie Sie diese Links zu einigen neuen Versionen aktualisiert haben eine solche warum gerendert die Karten zurück zu bekommen? Das Ändern des gesamten App-Codes ist keine gute Option.

https://cdn.rawgit.com/googlemaps/v3-utility-library/master/markerclustererplus/src/markerclusterer.js 
https://cdn.rawgit.com/googlemaps/v3-utility-library/master/richmarker/src/richmarker-compiled.js 
https://cdn.rawgit.com/googlemaps/v3-utility-library/master/infobox/src/infobox_packed.js 

Die oben MarkerClusterer Skript URL-Links zur Standard-Version der Bibliothek als die gepackte Version hat:

Antwort

4

Als Google moved the sources over to GitHub eine Weile zurück, die neuen GitHub versions aus RawGit mithilfe der folgenden Skript Urls zugegriffen werden wurde aus dem Masterzweig entfernt. Wenn Sie weiterhin auf die gepackte Version zugreifen möchten, können Sie dies tun, indem Sie wie unten beschrieben auf die Version 2.1.2 der Bibliothek abzielen.

Sie können auch die imagePath Option angeben müssen, wenn Sie Ihre MarkerClusterer Instanziieren die Bilder von GitHub zuzugreifen:

var mc = new MarkerClusterer(map, markers, { 
    imagePath: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m' 
}); 

Die folgenden älteren SO Post genauer in Bezug auf die imagePath Bezug auf die Cluster-Bilder (während es enthält die MarkerClusterer Bibliothek bezieht sich auf die Details auch auf die MarkerClustererPlus Bibliothek gelten sollte):

Google maps not working in https://

Während die oben Urls (mit den CDN-Präfixe) haben Sie no traffic limits or throttling and the files are served via a super fast global CDN, beachten Sie bitte, dass RawGit is a free hosting service and offers no uptime or support guarantees.

Zugriff auf Dateien über GitHub gehalten werden ausführlicher in dem folgenden SO beantworten bedeckt:

Link and execute external JavaScript file hosted on GitHub

Dieser Beitrag deckt auch, dass, wenn Sie eine Verknüpfung zu Dateien auf GitHub, sollten Sie in der Produktion Berücksichtigen Sie das Targeting eines bestimmten Release-Tags, um sicherzustellen, dass Sie eine bestimmte Release-Version des Skripts erhalten.

Zum Beispiel könnten Sie die 2.1.2 Release der MarkerClustererPlus Bibliothek Ziel (die immer noch die gepackte Version enthält) und die 1.1.13 Freigabe der InfoBox Bibliothek mit folgenden Skript Urls:

https://cdn.rawgit.com/googlemaps/v3-utility-library/markerclustererplus/2.1.2/src/markerclusterer_packed.js 
https://cdn.rawgit.com/googlemaps/v3-utility-library/infobox/1.1.13/src/infobox_packed.js 

Da die Depotbanken dieses GitHub-Repositorys jedoch noch keine Releases für die RichMarker-Bibliothek erstellen müssen, ist es derzeit nicht möglich, direkt mit einer bestimmten RichMarker-Version zu verlinken.

In diesem Fall sollten Sie ernsthaft darüber nachdenken, die Bibliothek und ihre Ressourcen direkt zu Produktionszwecken in Ihr Projekt zu integrieren.

+0

Danke, aber was ist mit der ersten Zeile, die das Hauptkram ".../maps/api/js? V = 3.13 ...." enthält? –

+0

@ L.D Diese Referenz sollte immer noch gut und dandy sein. Ich habe auch ein paar mehr Informationen zu meiner Antwort in Bezug auf die Marker Clusterer –

+0

hinzugefügt Es funktionierte perfekt auch nach dem Upgrade auf Version v = 3.2.3 und Entfernen der Sensor = false und Hinzufügen einer app_key. Aber weiß nicht, wo dieser Teil des Codes var mc = new MarkerClusterer (Karte, Marker, { imagePath: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m ' }); soll verwendet werden, da ich vorher noch nie etwas Ähnliches benutzt habe? –

Verwandte Themen