我有一个用RoR编写的相对较旧的应用程序,我现在定期维护运行Rails 4.2.6和Ruby 2.3.0 我也在使用gmaps4rails在地图上显示各种标记。 突然间,地图不再呈现。我假设由于一些已弃用的版本而发生这种情况。
以下是application.html.erb
文件中的行:
<script src="https://maps.google.com/maps/api/js?v=3.13&sensor=false&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>
我想知道的是如何将这些链接更新到某些新版本,以及为什么要取回渲染的地图? 显着更改整个应用程序代码不是一个好选择。
答案 0 :(得分:4)
前一段时间Google moved the sources over to GitHub,可以使用以下脚本网址从GitHub versions访问新的RawGit:
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
上面的MarkerClusterer脚本url链接到库的标准版本,因为已从主分支中删除了打包版本。如果您仍想访问打包版本,可以通过定位库的2.1.2版本来完成,如下所述。
在实例化MarkerClusterer以访问GitHub中的图像时,您可能还需要指定imagePath选项:
var mc = new MarkerClusterer(map, markers, {
imagePath: 'https://cdn.rawgit.com/googlemaps/v3-utility-library/master/markerclustererplus/images/m'
});
以前的早期SO帖子包含有关对集群映像的imagePath引用的更多详细信息(虽然它引用了MarkerClusterer库,但细节也应该适用于MarkerClustererPlus库):
Google maps not working in https://
虽然上面的网址(带有cdn前缀)有no traffic limits or throttling and the files are served via a super fast global CDN,但请记住RawGit is a free hosting service and offers no uptime or support guarantees。
以下SO答案中详细介绍了访问通过GitHub维护的文件:
Link and execute external JavaScript file hosted on GitHub
这篇文章还介绍了,如果您要链接到GitHub上的文件,那么在生产环境中,您应该考虑定位特定的版本标记,以确保您获得该脚本的特定发行版本。
例如,您可以使用以下脚本URL定位MarkerClustererPlus库的2.1.2版本(仍包含打包版本)和1.1.13版本的InfoBox库: < / p>
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
但是,由于此GitHub存储库的保管人尚未为RichMarker库创建任何版本,因此目前无法直接链接到特定的RichMarker版本。
在这种情况下,您应该认真考虑直接在项目中下载并包含库及其资源以用于生产目的。