Какой источник данных предпочтительнее для Google Maps, KML или JSON?

Я полностью вижу преимущества JSON, подтягиваю легкий массив данных для ввода в Мои карты Google (и шаблон, чтобы показать список точек). Я слышал много разговоров о KML.

какой предпочтительный способ вытащить точки в Google Maps, JSON / / KML? Моя главная забота-производительность, но также и широта функций, которые потенциально могут улучшить карту.

5 ответов


лично я использую json, потому что результирующие функции kml менее гибкие, чем функции, создаваемые при разборе json. Например, нельзя добавить событие наведения на полигон из kml.


KML, будучи XML, является очень тяжеловес по сравнению с JSON, если вы просто загружаете более простые данные и будете страдать от штрафов за производительность не только при передаче по сети, но и во время синтаксического анализа. Это недостаток JSON, конечно, заключается в том, что вы ограничены не только в потенциальной выразительной силе (в зависимости от того, что компоненты Google Maps могут потреблять через JSON против KML), но и от того, какие клиенты могут потреблять ваши данные. Если вы даете свои данные в KML, все, что читает KML может использовать ваши данные, как Google Планета Земля. Это как в RSS географических данных, то есть, если вы хотите или нужно.


за последние несколько месяцев я проделал большую работу с OpenLayers и очень понравилось. Библиотеки с открытым исходным кодом и включает в себя множество форматов, в том числе GeoJSON, который и KML. здесь пример демонстрации интеграции Google Maps. вот!--2--> остальные примеры. Комбинированные OpenLayers и ExtJS и в результате GeoExt (примеры здесь).


Я хотел бы сделать случай для KML, особенно в контексте Google Maps:

  1. KML-это стандартный куратор OGC;
  2. сам Google имеет создано KML в первую очередь, и поддерживает обширная документация об этом. У него даже есть библиотека для KML;
  3. Google maps API имеет хорошую поддержку для слои KML (хотя он также имеет хорошие поддержка GeoJSON);
  4. многие другие приложения Google mapping (Google Earth, Google Мои карты, Google Maps Routing) экспортируют KML изначально или предлагают загрузить/сохранить данные как KML. Эта функция импорта / экспорта, насколько мне известно, еще не разработана для GeoJSON, по крайней мере (по состоянию на 2016 год).

вы можете конвертировать между KMZ, KML и GeoJSON:

KMZ - это просто ZIP-архив файла KML. Так что, по крайней мере, KMZ -> KML легко.

# GeoJSON -> KML
$ ogr2ogr -f 'KML' -a_srs EPSG:4326 output.kml input.geojson

# KML -> GeoJSON
$ ogr2ogr -preserve_fid -f GeoJSON -a_srs EPSG:4326 output.geojson input.kml

и

# KML -> GeoJSON
$ pip3 install kml2geojson --user
$ k2g input.kml output_directory

Если скорость загрузки вызывает беспокойство, я бы пошел со сжатым файлом. Мое предположение: GeoJSON намного меньше для небольших данных, KMZ намного меньше, если ваши функции становятся более сложными. Но я был бы рад увидеть некоторые ориентиры / цифры / примеры.