Пакетное геокодирование в QGIS
-
- Bot
- Сообщения: 276
- Зарегистрирован: 03 фев 2008, 23:13
- Репутация: 3
-
- Активный участник
- Сообщения: 101
- Зарегистрирован: 01 авг 2010, 23:34
- Репутация: 2
Re: Пакетное геокодирование в QGIS
есть пожелание к автору плагина
1. если координаты не найдены у одно из сервисов допустим ОСМ или Яндекс, автоматом переключался на другой
2. добавить больше сервисов по геокодингу. тот же 2ГИС, навител и т.д.
в САСпланет реализовано несколько. скрин прилагаю. почему сылаюсь на саспланет, у них сырцы открыты
1. если координаты не найдены у одно из сервисов допустим ОСМ или Яндекс, автоматом переключался на другой
2. добавить больше сервисов по геокодингу. тот же 2ГИС, навител и т.д.
в САСпланет реализовано несколько. скрин прилагаю. почему сылаюсь на саспланет, у них сырцы открыты
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Пакетное геокодирование в QGIS
Предложение хорошее. Буду думать как реализовать. Основная проблема - достоверно определить, что объект не найден.Nikolka00 писал(а): 1. если координаты не найдены у одно из сервисов допустим ОСМ или Яндекс, автоматом переключался на другой
Новые геокодеры будут обязательно добавляться.Nikolka00 писал(а): 2. добавить больше сервисов по геокодингу. тот же 2ГИС, навител и т.д.
Да, исходники САСпланеты конечно открыты, но их качество просто убивает. Все что из них можно взять - только ссылки на сервисы.Nikolka00 писал(а): в САСпланет реализовано несколько. скрин прилагаю. почему сылаюсь на саспланет, у них сырцы открыты
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Re: Пакетное геокодирование в QGIS
а можно попросить куда-то в статью добавить ссылки и упоминания лиц. ограничений Яндекса и Гугла (а впоследствие и других сервисов) на пакетное геокодирование вне API.
пристегивайтесь, турбулентность прямо по курсу
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Пакетное геокодирование в QGIS
Можно. Но в данный момент используется оффициальное API.Максим Дубинин писал(а):а можно попросить куда-то в статью добавить ссылки и упоминания лиц. ограничений Яндекса и Гугла (а впоследствие и других сервисов) на пакетное геокодирование вне API.
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Пакетное геокодирование в QGIS
Добавлен геокодер http://www.openstreetmap.ru
Буду рад любому тестированию
Буду рад любому тестированию
-
- Участник
- Сообщения: 78
- Зарегистрирован: 25 янв 2010, 14:14
- Репутация: 3
Re: Пакетное геокодирование в QGIS
0) если есть преобразование из csv хотелось бы видеть описание ожидаемого для него формата если он не угадывается (в код не смотрел)
На входе Linux, Qgis 1.8, Python 2.6, модуль из оф репов qgis (0.3.7), табличка адресов вида "индекс, область, район, город, улица, дом" (в одном поле, пока не разбивал)
1) Не работает osm.ru геокодер - 'KeyError: "find"', видать питон обновлять пора
Ускоренно пролечил как:
2) Не работает выбор области, т.е. сама область выбирается но при старте геокодирования всё взрывается:
Разбираться пока лень 
2а) хотелось бы чтобы для области тоже был выбор из какого поля shp её брать
+ заморочка геокодинга osm.ru - не воспринимает индексы в поле. Как пример не находится "610021, Киров, пр-т Строителей, 54/1" но найдётся "Киров, пр-т Строителей, 54/1"
Если завтра соберусь адрес по отдельным полям разбить, то ещё поиграюсь, пока результаты не очень получаются (4 из 63, при указании отдельного поля с районам попадает больше, но и пара точек в соседние области ушли) :/
На входе 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:
Код: Выделить всё
Ошибка при выполнении сценария 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, при указании отдельного поля с районам попадает больше, но и пара точек в соседние области ушли) :/
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Пакетное геокодирование в QGIS
0) Формат подходит любой. Конвертер преобразует таблицу в точечный слой и добавляет несколько полей.
1) Буду смотреть.
2) Какая версия GDAL? Эта ошибка проявляется для всех геокодеров?
2а) Это хотелось бы, но практически невозможно. Дело в том что все геокодеры имеют различные названия регионов. И при ошибочном названии качество геокодирования падает в разы. Особенно для OSM и OSM.RU.
3) Индексы. Я думаю этого не будет никогда. В данный момент - это мусорная информация. Как и для многих других геокодеров. Чем больше мусора в строке адреса тем меньше шансов, что объект будет найден. Чудес не бывает.
1) Буду смотреть.
2) Какая версия GDAL? Эта ошибка проявляется для всех геокодеров?
2а) Это хотелось бы, но практически невозможно. Дело в том что все геокодеры имеют различные названия регионов. И при ошибочном названии качество геокодирования падает в разы. Особенно для OSM и OSM.RU.
3) Индексы. Я думаю этого не будет никогда. В данный момент - это мусорная информация. Как и для многих других геокодеров. Чем больше мусора в строке адреса тем меньше шансов, что объект будет найден. Чудес не бывает.
-
- Участник
- Сообщения: 78
- Зарегистрирован: 25 янв 2010, 14:14
- Репутация: 3
Re: Пакетное геокодирование в QGIS
1.8.0, не работает для всех геокодеровyellow-sky писал(а): 2) Какая версия GDAL? Эта ошибка проявляется для всех геокодеров?
Юникод в пути ему не нравится, сделал "_data_path.encode('utf-8')" как в функции get_regions_names() и отработало
Плохо... просто когда есть over 5000 точек по России и как-то разбивать их на 50 частей лениво, хотя за раз их всё-равно не прогонишьyellow-sky писал(а): 2а) Это хотелось бы, но практически невозможно. Дело в том что все геокодеры имеют различные названия регионов. И при ошибочном названии качество геокодирования падает в разы. Особенно для OSM и OSM.RU.

Это чудо должен делать геокодирующий сервер, у Яндекса оно как-то получается. У osm.ru хотят что-то докрутить, но пока этого нетyellow-sky писал(а): 3) Индексы. Я думаю этого не будет никогда. В данный момент - это мусорная информация. Как и для многих других геокодеров. Чем больше мусора в строке адреса тем меньше шансов, что объект будет найден. Чудес не бывает.

Но в любом случае, это было уточнение на память, а не бага модуля

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

-
- Активный участник
- Сообщения: 141
- Зарегистрирован: 01 апр 2011, 05:07
- Репутация: 9
Re: Пакетное геокодирование в QGIS
Подскажите - есть какие-то требование к формату строки с описанием адреса для успешного геокодирования?
В примере выше "Киров, пр-т Строителей, 54/1" если будет подстрока
"проспект Строителей"
"пр. Строителей"
"Строителей пр."
- какие из них корректно обработаются?
В примере выше "Киров, пр-т Строителей, 54/1" если будет подстрока
"проспект Строителей"
"пр. Строителей"
"Строителей пр."
- какие из них корректно обработаются?
-
- Гуру
- Сообщения: 588
- Зарегистрирован: 30 мар 2009, 21:53
- Репутация: 55
- Откуда: Королев
Re: Пакетное геокодирование в QGIS
Все зависит от геокодера.
Каждый геокодер имеет свою структуру адреса. Например для Google и OSM, формат записи - обратный. Для Yandex и OSM.RU - прямой. По попводу сокращений. Опять же, разные геокодеры принимают или нет разные сокращения. Yandex и Google нормально относятся практически ко всем сокращениям. OSM лучше вообще не давать сокращений. OSM.RU где то посередине. Он нормально относится к сокращениям улиц, проспектов и тд, но лучше не использовать сокращения для сел, деревень, поселков и тд.
Каждый геокодер имеет свою структуру адреса. Например для Google и OSM, формат записи - обратный. Для Yandex и OSM.RU - прямой. По попводу сокращений. Опять же, разные геокодеры принимают или нет разные сокращения. Yandex и Google нормально относятся практически ко всем сокращениям. OSM лучше вообще не давать сокращений. OSM.RU где то посередине. Он нормально относится к сокращениям улиц, проспектов и тд, но лучше не использовать сокращения для сел, деревень, поселков и тд.
-
- Активный участник
- Сообщения: 141
- Зарегистрирован: 01 апр 2011, 05:07
- Репутация: 9
Re: Пакетное геокодирование в QGIS
Подскажите в какой кодировке должен быть CSV для корректной работы "Конвертировать CSV в SHP"?
(приложил test1.csv на котором в QGIS 1.8.0 при "Конвертировать CSV в SHP" в итоговом SHP некорректная кодировка)
(приложил test1.csv на котором в QGIS 1.8.0 при "Конвертировать CSV в SHP" в итоговом SHP некорректная кодировка)
- Вложения
-
test1.csv
- (73 байт) 1330 скачиваний
- Игорь Белов
- Гуру
- Сообщения: 2238
- Зарегистрирован: 04 янв 2011, 22:00
- Репутация: 1511
- Откуда: Казань
Re: Пакетное геокодирование в QGIS
Попробуйте UTF-8.
- Вложения
-
test1_utf-8.csv
- (102 байт) 1680 скачиваний
The purpose of computing is insight, not numbers
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей