GIS-LAB

Географические информационные системы и дистанционное зондирование


Форумы GIS-Lab.info

Геоинформационные системы (ГИС) и Дистанционное зондирование Земли


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

Обсуждение материалов сайта: вопросы, замечания, предложения

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

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

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

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

updates-bot
Bot
 
Зарегистрирован: 04 фев 2008
 
Сообщения: 276
Репутация: 3

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

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

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

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

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

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

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

Nikolka00 писал(а):1. если координаты не найдены у одно из сервисов допустим ОСМ или Яндекс, автоматом переключался на другой

Предложение хорошее. Буду думать как реализовать. Основная проблема - достоверно определить, что объект не найден.

Nikolka00 писал(а):2. добавить больше сервисов по геокодингу. тот же 2ГИС, навител и т.д.

Новые геокодеры будут обязательно добавляться.

Nikolka00 писал(а):в САСпланет реализовано несколько. скрин прилагаю. почему сылаюсь на саспланет, у них сырцы открыты

Да, исходники САСпланеты конечно открыты, но их качество просто убивает. Все что из них можно взять - только ссылки на сервисы.
  • 0

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

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

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

пристегивайтесь, турбулентность прямо по курсу
Аватара пользователя
Максим Дубинин
NextGIS
 
Зарегистрирован: 06 окт 2003
Откуда: Москва (на карте)
 
Сообщения: 8872
Репутация: 631
Статьи: 231
Проекты: 12/6

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

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

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

Можно. Но в данный момент используется оффициальное API.
  • 0

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

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

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

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

Сообщение old_Bibigon » 06 янв 2013, 01: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, при указании отдельного поля с районам попадает больше, но и пара точек в соседние области ушли) :/
  • 1

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

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

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

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

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

Сообщение old_Bibigon » 07 янв 2013, 15: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 хотят что-то докрутить, но пока этого нет :(
Но в любом случае, это было уточнение на память, а не бага модуля ;)
  • 0

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

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

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

old_Bibigon писал(а):Юникод в пути ему не нравится, сделал "_data_path.encode('utf-8')" как в функции get_regions_names() и отработало

Угу. В версии 1.9 питоновские биндинги принимают и юникод и utf8. Потому у меня эта ошибка ни как не проявлялась. Будет исправленно в следующей версии.

old_Bibigon писал(а):Плохо... просто когда есть over 5000 точек по России и как-то разбивать их на 50 частей лениво, хотя за раз их всё-равно не прогонишь :(

Именно. Во-первых, процесс будет идти очень долго. Во-вторых, ситуаций, когда точки так сильно раскиданны у меня было крайне мало. Чаще приходится геокодировать в пределах одного региона. И тут точность важнее, нежели возможность указать столбец с регионами. В-третих, если очень нужно геокодирование по разным регионам, можно указать полный адрес, с названием региона. Хотя качество геокодирования будет конечно хуже.

old_Bibigon писал(а):Это чудо должен делать геокодирующий сервер, у Яндекса оно как-то получается. У osm.ru хотят что-то докрутить, но пока этого нет :(

Да, на осм.ру нужно много чего подкручивать. Сейчас все плохо с релевантностью. Будем надеяться, что осмеры доведут проект до уровня коммерческого сервиса.
  • 0

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

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

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

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

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

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

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

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

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

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

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

yellow-sky
Гуру
 
Зарегистрирован: 30 мар 2009
Откуда: Королев (на карте)
 
Сообщения: 588
Репутация: 55
Статьи: 4
Проекты: 3

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

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

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

Вложения
test1.csv
(73 байт) Скачиваний: 404
vlalexey
Активный участник
 
Зарегистрирован: 01 апр 2011
 
Сообщения: 141
Репутация: 9

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

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

Попробуйте UTF-8.
  • 0

Вложения
test1_utf-8.csv
(102 байт) Скачиваний: 416
Игорь Белов
Гуру
 
Зарегистрирован: 04 янв 2011
Откуда: Казань (на карте)
 
Сообщения: 1340
Репутация: 808
Статьи: 12
Проекты: 1

След.

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

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

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


(Геокруг)

© GIS-Lab и авторы, 2002-2013. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).