Нечеткий геопространственный
поиск
Дмитрий Киселев
dkiselev@osm.me
https://github.com/kiselev-dv
А ты кто такой вообще?
2
Геокодирование
Вводим адрес, получаем координаты.
Обратное геокодирование: вводим
координаты, получаем адрес, описание.
3
Как устроен поиск
1. Строим индекс
2. Ищем по индексу
Нечеткий поиск:
Для обычного поиска - это замена
определенного числа символов.
4
Нечеткий и геопространственный
В чем особенности адресов, чем это отличается от
привычного текста?
● Множество названий
● Разные типы адресов, множество адресов
● Переводы
● Не та улица, не тот город
5
Забанили в Гугле и Яндексе?
6
Я сделаю свой
интернет с картами
OSM и геокодером!
Город Улица Номер
город Екатеринбург,
проспект Ленина,
дом 52/4А
7
Множество названий
Санкт-Петербург
Петербург
Ленинград
Петроград
Питер
8
Статусные части
Город, село, поселок, рабочий поселок…
Улица, проезд, проспект, переулок...
Дом, корпус, литера, строение...
9
Это хорошие подсказки, но не
полагайтесь на них
Проблемы статуса
Петербург, набережная канала Грибоедова
Городище, Набережная улица
http://goo.gl/4ScMgo
Набережные Челны
10
Адресуются не только дома
Калининград, © OpenStreetMap
Какие с этим могут
быть проблемы?
Адрес:
Кропоткина 8, 10
Запрос
Кропоткина 8/10
1212
Польша, Старо Място
Угловые дома
13
Вена, угловой
дом с двумя
адресами.
© wiki.osm.org Fkv
Во что это превратилось в Питере
14
А больше бывает?
Таллин, Kolde pst, 20 (4, 6,...34)
Kõrre, 4 (6, 8, 10)
Ristiku, 52 (54,... 60)
24 адреса
Maamet: 101037038-2311632
15
Нет не шучу, да здоров
16
© Google StreetView
Екатеринбург в тренде
17
© Евгения Сулейманова
Адресация по территории
18
Москва Зеленоград корпус 1131
19
© Google StreetView
Ну, теперь-то все?
20
Где взять данные
OpenStreetMap
Wikimapia
И совсем уж чад кутежа:
Самопальные карты под Навител/Гармин
21
OpenStreetMap vs Wikimapia
Wikipedia vs Lurkmore
22
Что делать?
Индексируем на Java Topology Suite
Геометрия
Ищем на ElasticSearch
Текстовая часть
23
Почему не PostGis?
Xeon X3220 2.4GHz
8GB RAM
Import:
2985m27.269s
49.75 Hours
24
Java Topology Suite
Библиотека для работы с геометрией
Есть еще для
● Питона
● Си
● Перла
25
Диаграммы Вороного
26
Быстро ищем
ближайших и соседей
R-Tree индексы
Быстро ищем
охватывающие
точку полигоны
27
Input/Output
WKT
geoJSON
SHP
28
Elasticsearch
Движок для полнотекстового поиска.
Распределенный
REST API
Умеет хранить объекты
29
Где взять?
30
kiselev-dv
Как тестировать
31
Ради чего все это?
Геокодирование не столь сложно, как вы
опасаетесь.
Но и не столь просто, как вы надеетесь.
32
https://github.com/kiselev-dv
dkiselev@osm.me

DUMP-2015: «Нечеткий геопространственный поиск» Дмитрий Киселев, OpenStreetMap