2016-05-12 7 views
11

Я использую MarkerCluster_compiled.js из github. Но в то время как логика работает, ее графика начала проваливаться со вчерашнего дня.MarkerCluster V3 перестает работать должным образом

Проблема, как представляется, вызвана «https://google-maps-utility-library-v3.googlecode.com/svn», возвращает 404, и все изображения маркеров кластера зависят от этого URL-адреса. (Эта карта google v3 svn url все еще находится в общедоступном домене google)

Мне кажется, что влияние этого конкретного «404» не является тривиальным, поскольку я вижу, что на него воздействуют живые сайты людей. Я удивлен, что эта проблема может случиться с Google.

Например: Продвинутый_example маркер-кластер на github.io больше не работает (я не могу опубликовать ссылку из-за моей низкой репутации).

Ждем, пока Google исправит проблему или какое-либо другое предложение.

+2

Связанный вопрос: [API Google Maps API V3 Infobox.js удален] (http://stackoverflow.com/questions/37171426/google-maps-api-v3-infobox-js-removed). Все googlecode.com больше не «живут» (или, по крайней мере, недоступны для связи, вы все равно можете получить копии кода, который есть). – geocodezip

ответ

10

Как Google moved the source over to GitHub некоторое время назад, новый GitHub version можно получить из RawGit с помощью следующего сценария URL:

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

Вам также нужно указать параметр ImagePath при создании экземпляра MarkerClusterer для доступа к изображениям от GitHub:

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

следующая ранее SO сообщение содержит более подробную информацию о ссылке ImagePath кластеру изображений:

Google maps not working in https://

В то время как выше ссылок (с КДС префиксов) имеют 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 ответ:

Link and execute external JavaScript file hosted on GitHub

Это сообщение также охватывает, что, если вы ссылаетесь к файлам на GitHub, в производстве следует рассматривать конкретный таргетинг релиз, чтобы убедиться, что вы получаете конкретную версию сценария.

Однако, поскольку хранители хранилища js-marker-кластеров еще не создали никаких выпусков, в настоящее время это невозможно.

В результате вы должны серьезно рассмотреть вопрос о загрузке и включении библиотеки и ее ресурсов непосредственно в свой проект в производственных целях.

+0

Этот ответ будет работать, но это не правильное решение, потому что ссылка на github (или зеркало github) является риском, потому что ссылка может измениться (снова!) В любое время. – PeterTheOne

9

Скачать markerclusterer.js и изображения m1.png в m5.png из Github https://github.com/googlemaps/js-marker-clusterer/tree/gh-pages/images и сохранить их локально, например:

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!
  • Вы не зависите от внешних ресурсов, чтобы поддерживать работоспособность.