Добавление тысячи маркеров Google Map API V3 - PullRequest
3 голосов
/ 30 марта 2012

В настоящее время я собираю демонстрационное приложение, которое должно отображать 28 000 маркеров на карте без использования какого-либо типа кластеризации. Проблема в том, что добавление маркера на карту для такого количества занимает так много времени, что браузер вылетает! Вот текущий процесс

-Получает точки карты из базы данных, включая LAT и LONG (не требует геокодирования) - для цикла циклически перебирает каждое из возвращаемых значений и делает это:

  var marker = new google.maps.Marker({
                 position: point,
                 animation: google.maps.Animation.DROP,
                 map: map,
                 title: value.Title,
                 icon: icons['store']
             });

             google.maps.event.addListener(marker, 'click', function () {
                 var hidingMarker = currentPlace;
                 var slideIn = function (marker) {
                     $('#Name', info).text(place.Title);
                     $('#Phone', info).text(place.Description);
                     $('#Address', info).text(place.Proper_Address);
                     $('#LastSale', info).text("Last Sale:" + place.Last_Sale);
                     info.animate({ right: '0%' });
                 }

- маркеры выпадают, и пользователь может щелкнуть по любому из них, чтобы увидеть немного информации

Есть ли более эффективный способ сделать это так, чтобы показ 28000 был возможен без необходимости их кластеризации? Я нашел несколько сценариев, которые люди писали, чтобы справиться с этим раньше, но все они для API V2. Любые ссылки или код с благодарностью! спасибо!

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

По моему опыту, единственный реальный способ показать, что много маркеров на карте одновременно - это использовать таблицы слияния (что имеет некоторые ограничения и другие проблемы, которые необходимо обойти)Все другие решения для обработки этого большого количества маркеров предполагают некоторую форму кластеризации или не будут работать с широким увеличением.

http://www.google.com/fusiontables/Home/

1 голос
/ 30 марта 2012

Полагаю, вы не буквально , одновременно отображая 28 000 на экране?Будет видимым только подмножество?

Если это так, то почему бы просто не сделать запрос к серверу с отображаемым диапазоном координат, а затем просто отобразить их?Существуют события карты, которые позволят вам узнать, когда необходимо обновить маркеры, и вы можете избежать одновременного появления слишком большого количества объектов в браузере.

...