Наше веб-приложение включает в себя простые возможности картирования (в настоящее время это просто маркеры и наложения KML на встроенной карте Google). Это работает довольно хорошо; единственное реальное ограничение, с которым мы сталкиваемся, это наложения KML, которые выходят за пределы ограничений по размеру и сложности Google для KML .
Мы рассматриваем возможность установки нашего собственного сервера (например, GeoServer или ArcGIS Server); но это кажется огромным шагом просто для того, чтобы обслуживать (например) 15 МБ KML, когда лимит Google составляет 10 МБ.
Мне нужна проверка работоспособности: есть ли какая-то золотая середина между бесплатным и легким API Google для наложений KML и настройкой моего собственного сервера плиток?
google-maps
kml
Херб Каудилл
источник
источник
Ответы:
Поскольку вы уже вложили средства в разработку Google Maps, я настоятельно рекомендую поместить все данные в Google Fusion Tables, которые затем можно проанализировать на карте аналогично KML с невероятной производительностью (см. Приложение WNYC Fusion Tables ). Считайте, что это обновление до KML без необходимости кардинально изменять интерфейс.
источник
Вы можете разбить ваш KML на несколько KML с помощью родительского KML, ссылающегося на меньшие кмл. По крайней мере, это приведет к уменьшению размеров файлов до приемлемого уровня и позволит вам ссылаться на гораздо большие наборы данных, как на KML.
Честно говоря, KML действительно хорош только для небольших наборов данных с небольшим количеством функций и связанных атрибутов. Я бы не стал использовать его в качестве источника данных. Если вы хотите, чтобы эти файлы становились больше, я бы посмотрел на другой тип данных или определенно выбрал бы маршрут GeoServer / MapServer для распределенных наборов данных.
источник
Если вы не потратили слишком много времени на API Google Maps, вы можете переключиться на OpenLayers, который имеет клиентский анализатор KML, который может читать ваши собственные файлы KML - см. Пример ниже:
http://openlayers.org/dev/examples/kml-layer.html
Однако для 15-мегабайтного файла это может привести к остановке браузера. Возможно, он слишком медленный на серверах Google, когда вы приближаетесь к пределу размера файла.
Действительно ли нужен уровень детализации 15 МБ или вы можете упростить KML, не теряя слишком много информации?
Вам нужен доступ к вектору / геометрии на стороне клиента? Могут ли эти данные служить изображениями?
Если ни то, ни другое невозможно, вам придется взглянуть на какое-либо программное обеспечение, обслуживающее карту. Наряду с GeoServer из ArcGIS Server вы можете рассматривать MapServer как KML или как WFS. Преимущество использования картсервера заключается в том, что запросы будут возвращать только данные внутри карты, что сокращает сетевой трафик и уменьшает время загрузки.
источник
Если вы используете версию 3, вы можете удалить всю атрибутивную информацию, кроме уникального идентификатора, и запрашивать эту информацию через ajax-вызовы веб-службы всякий раз, когда пользователь нажимает на функцию. Если у вас есть баллы более 10 МБ, то, вероятно, неплохо бы выполнить кластеризацию, а не отображать все эти точки одновременно. Также вы можете разделить ваши наземные оверлеи на отдельные файлы KML.
источник
Вы пробовали Google Fusion Tables. http://www.google.com/fusiontables/public/tour/index.html
Вы можете загрузить до 100 МБ данных бесплатно.
источник
У MapLarge есть интересное решение - они могут реплицировать ваши данные на своих серверах, а затем выполнять тяжелую работу по генерации плиток на лету, используя свое проприетарное программное обеспечение. Они предлагают API-интерфейсы Javascript, которые затем могут накладывать их на базовые карты из Google Maps, OpenLayers и т. Д.
Посмотрите на некоторые из их примеров - скорость впечатляет:
Это не бесплатно, но это может быть хорошим вариантом для тех, кто не хочет, чтобы затраты и затраты стоили отдельного сервера для создания этих слоев.
источник