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

Preview:

Citation preview

Нечеткий геопространственный поиск

Дмитрий Киселев

dkiselev@osm.mehttps://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

Где взять данные

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