Я пытаюсь найти что-то, желательно F / OSS, которое может создавать наложение Google Maps из KML и / или данных KMZ.
У нас есть сайт для мероприятий, на котором мы работаем, для того, чтобы разместить 16 000 маркеров места в прошлом году, и, вероятно, в этом году, скорее всего, будет еще много. В прошлом году компания, которая сделала сайт, просто передала данные KML непосредственно в API gMaps и позволила разместить все клиентские стороны маркеров. Очевидно, что это стало кошмаром производительности и, как правило, заставил старые браузеры «замораживаться» (или, по крайней мере, казаться замороженными в течение нескольких минут за раз).
В идеале этот сценарий на стороне сервера должен был взять KML, центр lat / lon карты и уровень масштабирования карты и соответствующим образом объединить все маркеры видимого места в одно наложение GIF или PNG.
Любые рекомендации или рекомендации по этому вопросу будут высоко оценены.
ОБНОВЛЕНИЕ 10/8/2008 – Большая часть информации, которую я встречал здесь и в других местах, по-видимому, указывает на то, что уменьшение количества точек на карте – это путь (например, использование одного маркера для представления нескольких при просмотре с более высокий уровень высоты / масштабирования). Хотя в некоторых случаях это, вероятно, хороший подход, здесь это не сработает. Мы ищем визуальное воздействие американской карты со многими тысячами маркеров. Один из вариантов, который я изучил, – это сервис PushPin , который при подаче (предположительно) KML создает серверную сторону, наложение, которое имеет все видимые точки (основанные на центральном уровне lat / lon и уровне масштабирования), отображаемые на одном изображении , поэтому вместо того, чтобы выполнять несколько тысяч клиентских операций с DOM-манипуляциями, мы объединяем все эти маркеры в одну сторону сервера изображений и делаем одну манипуляцию DOM на стороне клиента. Служба PushPin действительно гладкая и определенно будет работать, если не для связанных затрат. Мы действительно ищем что-то F / OSS, чтобы мы могли запускать серверную часть для создания этого наложения.
Возможно, вам захочется заглянуть в нечто вроде Geoserver или Mapserver . Это клоны карты Google и многое другое.
Вы можете создать оверлей, который вам нравится, и Geoserver (я думаю, что Mapserver также делает) может дать вам KML, PDF, png и другие выходные данные, чтобы смешивать ваши карты, или вы могли бы создать всю карту самостоятельно, но это требует времени ,
Не уверен, почему вы хотите перейти на наложение GIF / PNG, вы можете сделать это непосредственно в KML. Я предполагаю, что большая часть вашей проблемы с производительностью вызвана точками за пределами текущего представления пользователя, то есть пользователь смотрит на Нью-Йорк, но у вас есть очки в Лос-Анджелесе, которые теряют память, потому что они не видны. Если у вас действительно есть 16 000 очков, которые все сразу видны для типичного тогда да, вам нужно будет придерживаться другой стратегии.
Если это применимо, процедура будет следующей:
Это может не решить вашу конкретную проблему, но по связанным вопросам вы также можете ознакомиться с API Google Static Maps . Это позволяет создать статический файл изображения с отметками места на нем, которые будут загружаться очень быстро, но не будут иметь интерактивности обычной карты Google. Однако из-за того, как разработан API, он не может обрабатывать нигде около 16 000 точек, так что вам все равно придется фильтровать до представления.
Я не знаю, как вы платите за свой проект, но, может быть, вы можете взглянуть на GeoDjango ? Этот модифицированный выпуск Django включает в себя всевозможные инструменты для хранения мест; конвертировать координаты и отображать карты, простой способ. Конечно, вам нужен опыт Python и сервер, чтобы запустить его, но как только вы повесили Django, он работает быстро и качественно.
Если вы просто хотите, чтобы решение вашей проблемы попыталось сгруппировать результаты при более низких уровнях масштабирования, хороший пример этой реализации можно найти здесь .
Это сложный вопрос. Вы можете использовать пользовательские тайлы с Google Maps , но вам все равно нужно каким-то образом генерировать плитки (кроме ручных).
Боюсь, это все, что у меня есть = /
OpenLayers – отличный интерфейс javascript для нескольких служб отображения или ваших собственных серверов карт. Версия 2.7 была только что выпущена, что добавляет некоторые довольно удивительные функции и элементы управления.