Комментарии 22
"С генерацией KML-файлов мне помогла Python-библиотека pyKML"
PostGIS умеет сам отдавать KML https://gis.stackexchange.com/questions/64850/how-to-export-from-postgis-to-kml
"у Google Maps есть ограничение по количеству импортируемых объектов в 2000 штук"
у google earth или sas planet нет такого ограничения и не нужно загружать свои данные на внешний сервер
И вообще можно поставить QGIS, открыть в нём слои из PostGIS и там же совместить его с google maps
Так же из интерфейса QGIS можно сохранить слой из PostGIS сразу в KML в пару кликов...
Про способ через QGIS не знала, при поиске вариантов решения на него не вышла, теперь ознакомлюсь. Статьи в том числе для того и пишутся, чтобы получить обратную связь и узнать что-то для себя новое.
Практически любая задача имеет несколько вариантов решения, ну и не у всех данные в Postgis.
Можно еще дальше пойти и настроить Geoserver.
Ставится в пару кликов, нативно отображает данные из Postgis.
Про импорты экспорты можно забыть.
К большому сожалению, визуализация не помогает достоверно верифицировать ни полноту, ни корректность, ни непротиворечивость данных.
Непротиворечивость - частично помогает (пересекающиеся полигоны, например), но это ужасно примитивный способ, когда можно оформить это алгоритмически (у вас же PostGIS).
Корректность - невозможно, потому что просто глядя на полигон границ, нельзя сказать, на сколько он соответствует официальным границам.
Полноту - то же самое, можно только частично (например, проверить в базе наличие полигонов для населенных пунктов по списку), но это совершенно отдельная история - проверить соответствие этого списка реальности.
Собственно, вы не описали метод анализа или верификации. Вы написали статью "как (длинно и избыточно) визуализировать данные из PostGIS в Google Maps".
Вы весьма многословно повторили ровно то, что я уже сказал. Верифицировать корректность данных можно только относительно одного или нескольких наборов эталонных данных. Визуализация "было - стало" - не верификация, а сравнение.
Полноту и непротиворечивость - чуть проще, относительно точно известных критериев. Например (совершенно условно) - составить список городов с населением более 30 тысяч и проверить, есть ли у вас в базе для каждого полигон.
Вы через строку читаете? Вы сейчас говорите о корректности, а проверка наличия по списку - это вопрос полноты.
Чтобы решить задачу полноты нужен эталон (качественного эталона мы не нашли в свободном доступе) и его маппинг на наши данные, что весьма нетривиально.
Верефицировала данные визуально, нанеся их на карту. Гугл карта является эталоном, где можно увидеть, что наш «Киев» нарисовался поверх Кировограда.
Карта Гугл не является эталоном, потому что её рисовали, в том числе, наемные студенты.
Визуально все эти задачи вы будете решать миллион лет. Я вам уже написал, что визуализация - не верификация чего-либо. По-моему, вы весьма плохо представляете себе задачу, которой занимаетесь, или эта задача просто состоит в отлове грубейших ошибок, на столько грубых, что их невооружённым взглядом видно.
А почему нельзя взять данные OpenStreetMap и по ним сверяться? Да они не идеал, но карты тех регионов которых я смотрел были очень достойными.
Если не детализацией объектов, то как раз границами населенных пунктов.
Проблема в том, что у нас когда-то был создан справочник географических данных, на идентификаторы которых завязано огромное количество внешних систем. Нам нельзя просто убить этот справочник и забрать данные из OSM, нужно правильно сопоставить на существующие данные. Я делала это сопоставление для Казахстана после того, как наложение исходных данных на карту показало большое количество проблем. Но красивого алгоритмического решения не нашла, у OSM много нюансов в данных, пришлось около 30% обрабатывать вручную.
Это вы меня спрашиваете? Я не писал что нельзя. До некоторой степени - можно, особенно если еще ознакомиться в процессе с содержимым соответствующего валидатора. Вот разработчики Озона, как выяснилось, тоже были в курсе, но только из-за кривых рук, из этого вышло что-то не то.
Иронично, как самоуверенно написанная статья легко может продемонстрировать низкую компетентность.
А мне понравилась статья Екатерины! Даже несмотря на излишне едкие, на мой взгляд, комментарии некоторых пользователей.
Я считаю что это как раз хабровская статья. У Екатерины была проблема, ограниченное время на её решение и некоторый навык алгоритмизации и программирования. Она нашла доступный ей способ решения и поделилась им.
Возможно, есть более эффективные способы, но для них нужны дополнительные знания и скилы, которых у Екатерины на момент решения не было.
Вобщем, мне статья понравилась и была для меня полезной.
Спасибо за статью. Давно хочу карты использовать в паре проектов, но никак руки не доходят. Сохраню в закладки :-)
Очень интересная задача была поставлена. К сожалению, мне не приходилось работать с картами. Но после прочтения статьи захотелось попробовать изучить данную область поглубже. Спасибо Екатерине за наводку!
Анализируем данные с помощью визуализации: рисуем поверх Google Maps