Jquery и Google Maps: не может отображать более 11 маркеров - PullRequest
3 голосов
/ 08 июля 2011

Я использую отличный плагин jQuery под названием GMaps3 для отображения карты на веб-сайте.Я пытаюсь добавить маркеры с помощью метода .addMarker (я знаю только адрес, а не lat и long), но в моем примере он добавляет максимум 11 маркеров.

Я пытаюсь выяснить, почему некоторыемаркеры не отображаются, в то время как другие.

Обновление: Количество отображаемых маркеров не является постоянным.Я отредактировал одну из адресных строк (спасибо NgM), чтобы сделать ее более конкретной, и количество отображаемых маркеров увеличилось до 11. Однако другие маркеры не будут отображаться, даже если они не являются неоднозначными.Это первая дюжина или около того, которые появляются.

Вот онлайн-пример , чтобы показать проблему.

Ответы [ 4 ]

5 голосов
/ 09 августа 2011

У меня была точно такая же проблема, и я наконец понял, как ее решить. Проблема возникает из-за того, что геокодирование не допускает много одновременных запросов. Так что именно здесь пригодится метод javascript setInterval ().

Просто добавьте что-то подобное в ваш код:

counter = 0,
timer = setInterval(function () {
createMarkers(map, postcodes);
    counter++
    if (counter3 === postcodes.length) {
        clearInterval(timer);
    }
}, 1000);

Функция CreateMarkers () - это место, где маркеры создаются из массива. Таким образом, после того, как каждый почтовый индекс был геокодирован и применен к карте, скрипт ждет 1 секунду и затем продолжает следующий почтовый индекс.

Надеюсь, это поможет, я целую вечность размышлял, почему на карте только 11 маркеров одновременно!

1 голос
/ 09 июля 2011

Это потому, что некоторые из ваших адресов не разрешаются по определенному адресу.

У вас есть записи типа: "Campus Pappelallee, 14406 Потсдам, Германия"

Карты Google при поиске по этому адресу не имеют возможности узнать, где вы хотите его выбрать. Есть более 1500 предложений.

Причина, по которой вы видите маркеры для таких адресов, как:

бульвар Джеймса-Фази 15, 1201 Genégrave, Швейцария

Это потому, что Google Maps может найти этот адрес, и этот поиск возвращает только один результат (т. Е. Точное место, которое вы имели в виду).

Для всех адресов, которые Google Карты не могут разрешить правильно, и вы знаете, что он существует по адресу, который вы указали, просто используйте long / lat вместо адреса. Вы сказали, что не знаете более точный адрес для этих записей, поэтому я предлагаю вам потратить некоторое время на выяснение, где именно вы хотите разместить маркер.

0 голосов
/ 24 июля 2011

Просто предложение: в исходном коде HTML нет допустимого типа документа или кодировки (демонстрационная страница).Это приводит к странному поведению.Попробуйте добавить

<!DOCTYPE html>

к источнику HTML и заголовку (кстати, тег закрывающей головки отсутствует)

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

, чтобы предоставить jQuery и gmaps действительный заголовок, набор символов и тип документа,

0 голосов
/ 09 июля 2011

Если ваш список адресов конечен, вам следует рассмотреть вопрос о том, чтобы поместить их в электронную таблицу Google, а затем превратить их в таблицу Google Fusion http://www.google.com/fusiontables/public/tour/index.html, которая позволяет экспортировать как KML.

Один разваши данные находятся в Fusion Table, у вас есть возможность геокодировать адреса.Это займет некоторое время, например, несколько минут, скажем, на 100 адресов.Даже в этом случае будут некоторые адреса, которые он не сможет найти или найдет неправильно.Но это будет дико очевидно, потому что они отображаются на карте предварительного просмотра кмл.Например, у меня было несколько британских адресов для геокодирования в Кембридже, но они были разрешены Google для Кембриджа в США.(Я просто добавил 'UK' к каждому адресу и запустил его снова, и он работал нормально).

Итак: Google ищет адреса на лету, как объяснил NgM, не является надежным.
Google ищетКак выяснилось, адреса на лету не последовательны.Google Fusion Tables позволяет Google выполнять тщательную работу, чтобы вы могли качественно просмотреть эти варианты и запустить их, если хотите, или переопределить их, а затем самое важное, чтобы Google постоянно кешировал эти результаты (ну, как постоянный, как бета-версия)Проект Google может быть объявлен как ...)

Но, как я уже сказал, только если у вас список адресов конечен.

Вы получите геокодирование, вы можете загрузить локально, и вы выиграете kmlфайлы, если вы хотите разнообразить использование этого.

...