А ты кто такой вообще?
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
Где взять данные
OpenStreetMapWikimapia
И совсем уж чад кутежа: Самопальные карты под Навител/Гармин
21
OpenStreetMap vs Wikimapia
Wikipedia vs Lurkmore
22
Что делать?
Индексируем на Java Topology SuiteГеометрия
Ищем на ElasticSearchТекстовая часть
23
Почему не PostGis?Xeon X3220 2.4GHz8GB RAM
Import: 2985m27.269s 49.75 Hours
24
Java Topology Suite
Библиотека для работы с геометриейЕсть еще для● Питона● Си● Перла
25
Диаграммы Вороного
26
Быстро ищем ближайших и соседей
R-Tree индексы
Быстро ищем охватывающие точку полигоны
27
Input/Output
WKTgeoJSONSHP
28
Elasticsearch
Движок для полнотекстового поиска.
РаспределенныйREST APIУмеет хранить объекты
29
Где взять?
30
kiselev-dv
Как тестировать
31
Ради чего все это?
Геокодирование не столь сложно, как вы опасаетесь.Но и не столь просто, как вы надеетесь.
32