MarkerCluster V3 перестала работать должным образом
Я использую MarkerCluster_compiled.js из github. Но в то время как логика работает, ее графика начала проваливаться со вчерашнего дня.
Проблема, по-видимому, вызвана "https://google-maps-utility-library-v3.googlecode.com/svn" возвращает 404, а все изображения маркеров кластера зависят от этого URL-адреса. (Эта карта google v3 svn url все еще находится в общедоступном домене google)
Мне кажется, что влияние этого конкретного "404" не является тривиальным, поскольку я вижу, что затронуты сайты людей. Я удивлен, что эта проблема может случиться с Google.
Например:
Маркер-кластерер advanced_example на github.io больше не работает (я не могу опубликовать ссылку из-за моей низкой репутации).
Ожидаем, что Google исправит проблему или любое другое предложение.
Ответы
Ответ 1
Как Google переместил источник в GitHub некоторое время назад, новый версия GitHub можно получить из RawGit с помощью следующего script 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, не работающие в https://
В то время как вышеупомянутые URL-адреса (с префиксами cdn) имеют отсутствие ограничений трафика или дросселирование, а файлы подаются через супер быстрый глобальный CDN, пожалуйста, имейте в виду, что RawGit - это бесплатный хостинг и не предлагает никаких гарантий безотказной работы или поддержки.
Это более подробно описано в следующем ответе SO:
Свяжите и выполните внешний файл JavaScript, размещенный в GitHub
В этом сообщении также говорится, что если вы подключаетесь к файлам на GitHub, в процессе производства вы должны подумать о таргетинге на определенный тег релиза, чтобы убедиться, что вы получаете конкретную версию версии script.
Однако, поскольку хранители js-marker-кластерного репозитория еще не создали какие-либо релизы, в настоящее время это невозможно.
В результате вы должны серьезно рассмотреть возможность загрузки и включения библиотеки и ее ресурсов непосредственно в свой проект для производственных целей.
Ответ 2
Загрузите 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!
- Вы не зависите от внешних ресурсов, чтобы поддерживать ваш сервис.
Ответ 3
Помните, что скомпилированная версия (https://rawgit.com/googlemaps/js-marker-clusterer/gh-pages/src/markerclusterer_compiled.js) больше недоступна, как видно из этой фиксации:
https://github.com/googlemaps/js-marker-clusterer/commit/c259d330cc2183e6751ff97ec5ade76e749e0188