Що далі, якщо наш KML занадто великий / складний для API Карт Google? [зачинено]


29

Наш веб-додаток включає прості можливості картографування (на даний момент лише маркери та накладення KML на вбудованій карті Google). Це працює досить добре; єдине реальне обмеження, з яким ми стикаємося, - це накладення KML, що виходять за рамки обмежень розміру та складності Google для KML .

Ми розглядаємо можливість встановлення власного сервера (наприклад, GeoServer або ArcGIS Server); але це здається величезним кроком лише для того, щоб витратити (наприклад) 15 Мб KML, коли ліміт Google - 10 Мб.

Мені потрібна перевірка обґрунтованості: чи є якийсь середній простір між безкоштовним та простим API Google для накладок KML та налаштуванням власного сервера плиток?


5
розбийте один KML на 2 менші файли KML - необов'язково вмикати та вимикати дані, які вам не потрібні.
Mapperz

1
необов'язково використовувати таблиці злиття (ліміт рядків 100k або 100mb в даних) - gmaps-samples.googlecode.com/svn/trunk/fusiontables/… див. groups.google.com/group/fusion-tables-users-group/browse_thread/…
Mapperz

@mapperz Одночасно можна завантажувати лише 100 Мб даних, але потім можна імпортувати подальші рядки до тієї ж таблиці, до 250 Мб пам’яті.
географіка

Хоча я бачу, ви знали, що вже .. gis.stackexchange.com/questions/6615/…
geographika

Служба Fusion Tables припиняється 3 грудня 2019 року, тому я бачу можливість зменшити файли kml за допомогою програмного забезпечення - QGIS desktop. також є бібліотека qgis python. Я використовував робочий стіл QGIS з опцією спрощення геометрії, використовуючи 0,0005. Потім я експортую створений шар як kml. Ви можете зробити це як пакетне завдання, а також із того ж меню. Потім ви можете відкрити всі створені шари в окремому проекті та за допомогою консолі всередині робочого столу QGIS конвертувати всі .shp файли в
.kml

Відповіді:


12

Оскільки ви вже інвестували в розробку Google Maps, я б настійно пропонував би перенести всі дані в Google Fusion Tables, які потім можна буде розібрати на карті аналогічно KML з неймовірною продуктивністю (див. Додаток WNYC Fusion Tables ). Розглянемо це оновлення KML без необхідності кардинальної модифікації передньої частини.


Я думаю, що це чудова ідея, якщо ваші дані не містять графік оновлення> 24 години. Це саме те, що нам сказав Google (якщо kml сповільнює браузер, використовуючи таблиці злиття), щоб зробити це, я б сказав, що це найкраща відповідь.
Стів

1
Дякую, що вказали на Fusion Tables - якимось чином цілком уникнув моєї уваги, дуже круто. На жаль, це було б трохи незграбно працювати з даними, які часто змінювалися; і загальні обмеження на зберігання (250 МБ на користувача) не дозволяють нам масштабувати.
Герб Каділл

2
Зауважте, що експериментальна послуга Fusion Tables вимикається 3 грудня 2019 року.
Jonas

12

Ви можете розбити KML на кілька KML, використовуючи батьківський KML, посилаючись на менші км. Принаймні, це знизить розміри ваших файлів до поважного рівня і дозволить посилатись на значно більші набори даних як KML.

Чесно кажучи, KML справді корисний лише для невеликих наборів даних з мало функцій та пов'язаних з ними атрибутів. Я б не підходив до нього як до джерела даних файлів. Якщо ви переглядаєте, що ці файли збільшуються, я погляну на інший тип даних або неодмінно рухаюся вниз по маршруту GeoServer / MapServer для розподілених наборів даних.


2
Але мережевий KML (з Superoverlays - це дизайн для великих наборів даних), але для цього потрібен веб-сервер та програмне забезпечення для рендерінгу. Geoserver добре справляється з цим типом KMZ - найкраще працює з Google Earth, оскільки API Google Maps обмежує використання KML.
Mapperz

Мені ніколи не пощастило із суперверлайями, за винятком клієнта Google Earth Enterprise. Хоча я на це не витрачав багато часу. Однозначно варіант для дослідження, +1 @Mapperz
OptimizePrime

1
Використовуйте GeoServer з Oracle і дуже добре надає KMZ (superoverlay) - живі (постійно оновлювані) дані, що дуже корисні для користувачів - довелося налаштувати геосервер, щоб швидкість оновлювалася.
Mapperz

8

Якщо ви не інвестували занадто багато часу в API Карт Google, ви можете переключитися на OpenLayers, який має клієнтський аналізатор KML на стороні клієнта, який може читати ваші власні файли KML - див. Приклад нижче:

http://openlayers.org/dev/examples/kml-layer.html

Однак для файлу розміром 15 Мб це, швидше за все, перетворить браузер на зупинку. Можливо, це досить повільно і через сервери Google, коли ви наближаєтесь до обмеження розміру файлу.

Чи дійсно потрібен рівень деталізації 15 Мб або ви можете спростити KML, не втрачаючи занадто багато інформації?

Вам потрібно отримати доступ до вектора / геометрії на стороні клієнта? Чи можуть ці дані слугувати зображеннями?

Якщо жодне з цих варіантів неможливо, вам доведеться переглянути тип програмного забезпечення, що обслуговується на карті. Поряд з GeoServer з ArcGIS Server, ви могли б розглянути MapServer як службу KML, або як WFS. Перевага використання сервера на карті полягає в тому, що запити повертають дані лише в межах карти - зменшуючи мережевий трафік і скорочуючи час завантаження.


Після випробування таблиць Google Fusion підхід Гудді є найбільш простим у застосуванні. Ви можете завантажувати лише 100 Мб KML за один раз, але кожен користувач має можливість зберігання в 250 Мб (на момент написання).
географіка

2

Якщо ви використовуєте версію 3, ви можете викреслити всю інформацію про атрибути, за винятком унікального ідентифікатора, і запросити інформацію через ajax-дзвінки до веб-служби кожного разу, коли користувач натискає функцію. Якщо у вас є більше 10 МБ балів, можливо, це гарна ідея зробити якусь кластеризацію, а не відображати всі ці точки одразу. Також ви можете розділити наземні накладки на окремі KML-файли.



2

MapLarge має цікаве рішення - вони можуть тиражувати ваші дані на своїх серверах, а потім робити важке піднімання генеруючих плиток на льоту, використовуючи власне програмне забезпечення. Вони пропонують API Javascript, які потім можуть накладати їх на базові карти з Карт Google, OpenLayers тощо.

Перегляньте кілька їх прикладів - швидкість вражає:

Це не безкоштовно, але це може бути хорошим варіантом для того, хто не захотів неприємностей і витрат, що стоять на окремому сервері для створення цих шарів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.