Подтвердить что ты не робот

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 исправит проблему или любое другое предложение.

4b9b3361

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