MarkerCluster V3 停止正常工作

MarkerCluster V3 stopped working properly

我正在使用 github 中的 MarkerCluster_compiled.js。但是,尽管逻辑可行,但其图形从昨天开始出现故障。

问题似乎是由“https://google-maps-utility-library-v3.googlecode.com/svn”returns一个404引起的,所有聚类标记图像都依赖于这个url。 (此 google map v3 svn url 仍在 google 的 public 域中)

在我看来,这个特殊的“404”的影响并不小,因为我看到人们的实时网站受到了影响。我很惊讶 Google 会发生这个问题。

例如: marker-clusterer 在 github.io 上的 advanced_example 不再有效(我不能 post link 因为我的声誉很低)。

期待看到 Google 解决问题或任何其他建议。

作为 Google moved the source over to GitHub a while back, the new GitHub version can be accessed from RawGit 使用以下脚本 url:

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

在实例化 MarkerClusterer 以访问来自 GitHub:

的图像时,您还需要指定 imagePath 选项
var mc = new MarkerClusterer(map, markers, { 
    imagePath: 'https://cdn.rawgit.com/googlemaps/js-marker-clusterer/gh-pages/images/m' 
});

以下较早的 SO post 包含有关群集图像的 imagePath 引用的更多详细信息:

虽然上面的 urls(带有 cdn 前缀)有 no traffic limits or throttling and the files are served via a super fast global CDN, please bear in mind that RawGit is a free hosting service and offers no uptime or support guarantees.

下面的 SO 回答对此进行了更详细的介绍:

Link and execute external JavaScript file hosted on GitHub

此 post 还涵盖了这一点,如果您要链接到 GitHub 上的文件,在生产中您应该考虑针对特定的发布标签以确保您获得脚本的特定发行版本。

但是,由于 js-marker-clusterer 存储库的保管人尚未创建任何版本,因此目前不可能。

因此,您应该认真考虑下载该库及其资源并将其直接包含在您的项目中以用于生产目的。

请注意,已编译的版本 (https://rawgit.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer_compiled.js) 不再可用,如本次提交所示:

https://github.com/googlemaps/js-marker-clusterer/commit/c259d330cc2183e6751ff97ec5ade76e749e0188

从 Github https://github.com/googlemaps/js-marker-clusterer/tree/gh-pages/images 下载 markerclusterer.js 和图像 m1.pngm5.png 并将它们保存在本地,如下所示:

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

然后在使用 markerclusterer.js 时,将 imagePath 设置为 ìmages/m,如下所示:

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

为什么要像上面描述的那样使用它:

  • GitHub 不是 CDN。
  • 路径可能会像以前一样改变。
  • 它适用于 http 和 https!
  • 您不依赖外部资源来维持您的服务。