Пакетное геокодирование в QGIS

Обсуждение материалов сайта: вопросы, замечания, предложения
updates-bot
Bot
Сообщения: 276
Зарегистрирован: 03 фев 2008, 23:13
Репутация: 3

Пакетное геокодирование в QGIS

Сообщение updates-bot » 09 окт 2012, 22:14

Обсуждение статьи "Пакетное геокодирование в QGIS"

http://gis-lab.info/qa/rugeocoder.html

Nikolka00
Активный участник
Сообщения: 101
Зарегистрирован: 01 авг 2010, 23:34
Репутация: 2

Re: Пакетное геокодирование в QGIS

Сообщение Nikolka00 » 10 окт 2012, 10:13

есть пожелание к автору плагина
1. если координаты не найдены у одно из сервисов допустим ОСМ или Яндекс, автоматом переключался на другой
2. добавить больше сервисов по геокодингу. тот же 2ГИС, навител и т.д.

в САСпланет реализовано несколько. скрин прилагаю. почему сылаюсь на саспланет, у них сырцы открыты
2012-10-10_111121.png
2012-10-10_111121.png (9.06 КБ) 30140 просмотров

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 10 окт 2012, 12:20

Nikolka00 писал(а): 1. если координаты не найдены у одно из сервисов допустим ОСМ или Яндекс, автоматом переключался на другой
Предложение хорошее. Буду думать как реализовать. Основная проблема - достоверно определить, что объект не найден.
Nikolka00 писал(а): 2. добавить больше сервисов по геокодингу. тот же 2ГИС, навител и т.д.
Новые геокодеры будут обязательно добавляться.
Nikolka00 писал(а): в САСпланет реализовано несколько. скрин прилагаю. почему сылаюсь на саспланет, у них сырцы открыты
Да, исходники САСпланеты конечно открыты, но их качество просто убивает. Все что из них можно взять - только ссылки на сервисы.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Пакетное геокодирование в QGIS

Сообщение Максим Дубинин » 10 окт 2012, 15:20

а можно попросить куда-то в статью добавить ссылки и упоминания лиц. ограничений Яндекса и Гугла (а впоследствие и других сервисов) на пакетное геокодирование вне API.
пристегивайтесь, турбулентность прямо по курсу

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 10 окт 2012, 20:15

Максим Дубинин писал(а):а можно попросить куда-то в статью добавить ссылки и упоминания лиц. ограничений Яндекса и Гугла (а впоследствие и других сервисов) на пакетное геокодирование вне API.
Можно. Но в данный момент используется оффициальное API.

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 05 янв 2013, 03:34

Добавлен геокодер http://www.openstreetmap.ru
Буду рад любому тестированию

old_Bibigon
Участник
Сообщения: 78
Зарегистрирован: 25 янв 2010, 14:14
Репутация: 3

Re: Пакетное геокодирование в QGIS

Сообщение old_Bibigon » 06 янв 2013, 00:36

0) если есть преобразование из csv хотелось бы видеть описание ожидаемого для него формата если он не угадывается (в код не смотрел)

На входе Linux, Qgis 1.8, Python 2.6, модуль из оф репов qgis (0.3.7), табличка адресов вида "индекс, область, район, город, улица, дом" (в одном поле, пока не разбивал)

1) Не работает osm.ru геокодер - 'KeyError: "find"', видать питон обновлять пора :)
Ускоренно пролечил как:

Код: Выделить всё

--- osm_ru_geocoder.py.bak	2013-01-06 01:18:19.000000000 +0400
+++ osm_ru_geocoder.py	2013-01-06 01:18:53.000000000 +0400
@@ -54,7 +54,7 @@
         resp_str = unicode( f.read(),  'utf-8')
         resp_json = json.loads(resp_str)
                 
-        if not resp_json["find"]:
+        if not resp_json.get("find", False):
             #0 results
             return None
         else:
2) Не работает выбор области, т.е. сама область выбирается но при старте геокодирования всё взрывается:

Код: Выделить всё

Ошибка при выполнении сценария Python:

Traceback (most recent call last):
  File "/home/old_bibigon/.qgis//python/plugins/ru_geocoder/batch_geocoding_dialog.py", line 167, in processing
    region = regions_helper.get_specific_region_name(geocoder_name,  region_id)
  File "/home/old_bibigon/.qgis//python/plugins/ru_geocoder/regions_helper.py", line 47, in get_specific_region_name
    ds = ogr.Open(_data_path)
  File "/usr/lib/python2.6/site-packages/osgeo/ogr.py", line 4244, in Open
    return _ogr.Open(*args, **kwargs)
TypeError: in method 'Open', argument 1 of type 'char const *'

Версия Python:
2.6.6 (r266:84292, Mar 29 2011, 02:41:32) 
[GCC 4.5.1 20101130 (ALT Linux 4.5.1-alt8)]


Версия:
1.8.0-Lisboa Lisboa, exported
Разбираться пока лень :)
2а) хотелось бы чтобы для области тоже был выбор из какого поля shp её брать

+ заморочка геокодинга osm.ru - не воспринимает индексы в поле. Как пример не находится "610021, Киров, пр-т Строителей, 54/1" но найдётся "Киров, пр-т Строителей, 54/1"
Если завтра соберусь адрес по отдельным полям разбить, то ещё поиграюсь, пока результаты не очень получаются (4 из 63, при указании отдельного поля с районам попадает больше, но и пара точек в соседние области ушли) :/

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 06 янв 2013, 23:52

0) Формат подходит любой. Конвертер преобразует таблицу в точечный слой и добавляет несколько полей.
1) Буду смотреть.
2) Какая версия GDAL? Эта ошибка проявляется для всех геокодеров?
2а) Это хотелось бы, но практически невозможно. Дело в том что все геокодеры имеют различные названия регионов. И при ошибочном названии качество геокодирования падает в разы. Особенно для OSM и OSM.RU.
3) Индексы. Я думаю этого не будет никогда. В данный момент - это мусорная информация. Как и для многих других геокодеров. Чем больше мусора в строке адреса тем меньше шансов, что объект будет найден. Чудес не бывает.

old_Bibigon
Участник
Сообщения: 78
Зарегистрирован: 25 янв 2010, 14:14
Репутация: 3

Re: Пакетное геокодирование в QGIS

Сообщение old_Bibigon » 07 янв 2013, 14:33

yellow-sky писал(а): 2) Какая версия GDAL? Эта ошибка проявляется для всех геокодеров?
1.8.0, не работает для всех геокодеров
Юникод в пути ему не нравится, сделал "_data_path.encode('utf-8')" как в функции get_regions_names() и отработало
yellow-sky писал(а): 2а) Это хотелось бы, но практически невозможно. Дело в том что все геокодеры имеют различные названия регионов. И при ошибочном названии качество геокодирования падает в разы. Особенно для OSM и OSM.RU.
Плохо... просто когда есть over 5000 точек по России и как-то разбивать их на 50 частей лениво, хотя за раз их всё-равно не прогонишь :(
yellow-sky писал(а): 3) Индексы. Я думаю этого не будет никогда. В данный момент - это мусорная информация. Как и для многих других геокодеров. Чем больше мусора в строке адреса тем меньше шансов, что объект будет найден. Чудес не бывает.
Это чудо должен делать геокодирующий сервер, у Яндекса оно как-то получается. У osm.ru хотят что-то докрутить, но пока этого нет :(
Но в любом случае, это было уточнение на память, а не бага модуля ;)

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 07 янв 2013, 18:16

old_Bibigon писал(а): Юникод в пути ему не нравится, сделал "_data_path.encode('utf-8')" как в функции get_regions_names() и отработало
Угу. В версии 1.9 питоновские биндинги принимают и юникод и utf8. Потому у меня эта ошибка ни как не проявлялась. Будет исправленно в следующей версии.
old_Bibigon писал(а): Плохо... просто когда есть over 5000 точек по России и как-то разбивать их на 50 частей лениво, хотя за раз их всё-равно не прогонишь :(
Именно. Во-первых, процесс будет идти очень долго. Во-вторых, ситуаций, когда точки так сильно раскиданны у меня было крайне мало. Чаще приходится геокодировать в пределах одного региона. И тут точность важнее, нежели возможность указать столбец с регионами. В-третих, если очень нужно геокодирование по разным регионам, можно указать полный адрес, с названием региона. Хотя качество геокодирования будет конечно хуже.
old_Bibigon писал(а): Это чудо должен делать геокодирующий сервер, у Яндекса оно как-то получается. У osm.ru хотят что-то докрутить, но пока этого нет :(
Да, на осм.ру нужно много чего подкручивать. Сейчас все плохо с релевантностью. Будем надеяться, что осмеры доведут проект до уровня коммерческого сервиса.

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 09 янв 2013, 23:17

Обновил плагин. Ошибки, найденные old_Bibigon исправлены. old_Bibigon, спасибо за тестирование, с меня плюс :)

vlalexey
Активный участник
Сообщения: 141
Зарегистрирован: 01 апр 2011, 05:07
Репутация: 9

Re: Пакетное геокодирование в QGIS

Сообщение vlalexey » 11 янв 2013, 05:17

Подскажите - есть какие-то требование к формату строки с описанием адреса для успешного геокодирования?

В примере выше "Киров, пр-т Строителей, 54/1" если будет подстрока
"проспект Строителей"
"пр. Строителей"
"Строителей пр."
- какие из них корректно обработаются?

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Пакетное геокодирование в QGIS

Сообщение yellow-sky » 11 янв 2013, 14:35

Все зависит от геокодера.
Каждый геокодер имеет свою структуру адреса. Например для Google и OSM, формат записи - обратный. Для Yandex и OSM.RU - прямой. По попводу сокращений. Опять же, разные геокодеры принимают или нет разные сокращения. Yandex и Google нормально относятся практически ко всем сокращениям. OSM лучше вообще не давать сокращений. OSM.RU где то посередине. Он нормально относится к сокращениям улиц, проспектов и тд, но лучше не использовать сокращения для сел, деревень, поселков и тд.

vlalexey
Активный участник
Сообщения: 141
Зарегистрирован: 01 апр 2011, 05:07
Репутация: 9

Re: Пакетное геокодирование в QGIS

Сообщение vlalexey » 14 янв 2013, 09:51

Подскажите в какой кодировке должен быть CSV для корректной работы "Конвертировать CSV в SHP"?
(приложил test1.csv на котором в QGIS 1.8.0 при "Конвертировать CSV в SHP" в итоговом SHP некорректная кодировка)
Вложения
test1.csv
(73 байт) 1229 скачиваний

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2229
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1501
Откуда: Казань

Re: Пакетное геокодирование в QGIS

Сообщение Игорь Белов » 14 янв 2013, 15:15

Попробуйте UTF-8.
Вложения
test1_utf-8.csv
(102 байт) 1568 скачиваний
The purpose of computing is insight, not numbers

Ответить

Вернуться в «Материалы сайта»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 16 гостей