Google Maps - тысячи маркеров - JSON
7989 просмотра
5 ответа
965 Репутация автора
В следующем примере маркеры загружаются из JSON.
Если есть 20 000 маркеров, JSON будет довольно большим.
Есть ли способ отправить разные файлы JSON в соответствии с уровнем масштабирования вместо одного огромного массива?
Автор: Franek Источник Размещён: 29.04.2009 06:57Ответы (5)
0 плюса
43575 Репутация автора
Возможные способы решения этой проблемы:
- Сборка
JSON
на стороне сервера, в зависимости от уровня масштабирования (con: требуется перезагрузка после масштабирования, pro: нужно загружать только небольшие объемы данных) - Включите информацию о том, как маркер доступен в
JSON
данных (pro: нужно загрузить только один раз, констатируйте данные с помощьюJavaScript
) - Рассчитать видимые маркеры в
JavaScript
(про: очень динамично, против: большая вычислительная нагрузка)
8 плюса
94114 Репутация автора
Есть понятие «ограничивающий прямоугольник» для вида карты. Карта API предоставляет вам это как две пары координат широта / длинна - одна для угла SW, а другая для угла NE.
Поэтому, если у вас есть пользовательский сервис данных, который возвращает точки JSON, вам нужно будет принять эти координаты в качестве входных данных и соответствующим образом скорректировать возвращенный набор данных (скорее всего, как предложение WHERE в вашем операторе SELECT).
У меня нет деталей запоминания этого ограничивающего прямоугольника, но для этого и нужны документы по API .
Автор: Peter Bailey Размещён: 29.04.2009 07:041 плюс
13999 Репутация автора
Да, я сделал что-то похожее в заявке для местного органа власти, где мы отображали объем, который каждый дом перерабатывал в 6000 нечетных домохозяйств. Поскольку общий объем данных (который включал в себя адрес и статистическую информацию для каждого домохозяйства) был довольно велик, откат всего файла данных за один раз вызвал зависание браузера.
Поэтому вместо вызова AJAX в базу данных мы отправили координаты ограничительного прямоугольника (широта, долгота) области карты, а затем вернули только те точки, которые мы видим. Из-за характера приложения пользовательская кнопка для «извлечения данных» была вполне приемлемой, но, очевидно, существует множество других вариантов, которые вы можете воспроизвести на этой теме - как только вы передадите ограничивающие координаты на стороне сервера, вы сможете решить, что делать. сделать там - например, вернуть только подмножество, если уровень масштабирования слишком высок. Вы должны быть в состоянии поймать событие рисования карты и действовать автоматически.
Автор: Cruachan Размещён: 29.04.2009 07:091 плюс
12708 Репутация автора
Когда масштаб изменяется, отправьте новый уровень масштабирования в службу JSON и верните маркеры, которые должны быть видны на этом уровне. Используйте addMarkers (), чтобы добавить результаты в MarkerManager и сделать их видимыми только при текущем уровне масштабирования.
Другие ответы здесь предлагают вернуть только маркеры в текущем представлении, но вы также можете просто вернуть все маркеры на этом уровне масштабирования. Это зависит от того, сколько вы знаете о том, какие маркеры вы хотите показать на каждом уровне.
Автор: Chris B Размещён: 29.04.2009 08:586 плюса
31911 Репутация автора
Существует новая библиотека под названием MarketClustered , которая поможет вам
(источник: googlecode.com )
Даже если данные слишком велики, я думаю, что лучше будет подать на карту все данные, и пусть это сделает свое дело.
Автор: Eduardo Molteni Размещён: 29.04.2009 09:14Вопросы из категории :
- javascript Как определить, какой из указанных шрифтов был использован на веб-странице?
- javascript Валидация клиентской стороны ASP.Net
- javascript Длина объекта JavaScript
- javascript Получение текста из выпадающего списка
- javascript Скрипт входа со скрытыми кнопками
- json Безопасное превращение строки JSON в объект
- json Как я могу "красиво" отформатировать вывод JSON в Ruby on Rails?
- json Сериализация JSON в jQuery
- json Можете ли вы использовать запятую в JSON-объекте?
- json Можно ли использовать комментарии в формате JSON?
- google-maps API Карт Google - проблемы с классом GLatLngBounds
- google-maps URL Google Street View
- google-maps Google Maps - тысячи маркеров - JSON
- google-maps Как я могу проверить, полностью ли загружены Карты Google?
- google-maps Технологии карт для Интернета (такие как Google Maps)
- google-maps-markers Google maps v3 перетаскиваемый маркер
- google-maps-markers markerClusterer при щелчке мышью
- google-maps-markers Google Static Maps API: двузначные метки и якоря
- google-maps-markers Можно ли использовать несколько изображений в качестве Google Maps v3 MarkerImage?