-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Геокодирование внутри дома, внутри osm границы #42
Comments
Я в выгрузках и так матчу здание (если оно само было тегировано) и пои, правда, возможно, я слишком многовыкидываю подробностей когда записываю конечный резульат. |
Nominatim:
osm.me:
|
Погоди, для начала, давай разберемся с выгрузками, что ищет osm.me это отдельный разговор (Мне так и не удалось добиться от ElasticSearch всего того что я хочу по поиску и сортировке результатов, так что находит он далеко не всегда то что я ожидаю). Дай осмовскую айдишку для этого мола пожалуйста. |
|
Хорошо, мне надо посмотреть что именно я выгружаю для мола и для поек внутри. Это займет некоторое время. |
Так вот что я выгружаю для Афимола https://gist.github.com/kiselev-dv/a24c3e6e498d142d905db5ddfe3db966 |
вижу есть данные по Starbucks: http://www.openstreetmap.org/node/1225311629
Я ожидаю его увидеть по "Старбакс АФИМОЛЛ" "АФИМОЛЛ Старбакс" "старбакс в афимолле" |
Точно не старбакс в афимолле, вообще над генерацией текста я еще подумаю как это лучше сделать, сам объект я добавил https://gist.github.com/kiselev-dv/67737f2a0ff1abc24b88bd7ee4ae2595 |
Так, поехали дальше, @d1g как ты хотел это использовать? |
@kiselev-dv, изначальный сценарий был "вывести все POI внутри <АФИМОЛЛ>". В случае OLU была часть магазов на экране (из overpass). Когда смотришь большой молл, нужно подменить результаты с bbox на area. Затем возникла идея по айдишнику POI (n1225311629) возвращать ID здания (+ название). Третий вариант (магаз-здание) я недавно предложил. overpass плох тем, что 1. он выводит по bbox (не попадает в экран часть магазов) 2. он требует знать название магаза (в случае area) |
Так, Все пои внутри здания, если я записываю айди здания для пои в рефы, то тоже уже сейчас должно работать. Что не работает и пока я думаю как лучше - это текст. Ну точнее я отвлекся маленько, может на выходных прикручу текст. |
Геокодирование по паре сотен POI внутри дома может выглядеть как overkill но для неё есть самое прямое применение в OpenLevelUp. Главное чтобы osmid в ответе приходил.
Параметры API
В WEB API gazetteer нужно добавить какой-нибудь параметр по которому будет ограничена область геокодинга.
Похожее было здесь: https://github.com/kiselev-dv/gazetteer/tree/develop/Gazetteer#3-how-to-filter-data-by-boundary
osm_id=w00000001
osm_id=r00000001
Очевидно, что для этого клиентам нужно знать osmid (что противоречит геокодингу без костылей), но OpenLevelUp может сделать и такое потому как данные есть от overpass.
Возможно упростить всё пользователям двумя параметрами:
restrict=admin_level + restrict_query=Москва
restrict=building + restrict_query=Афимолл Сити
restrict=mall + restrict_query=Centre Commercial Le Coudoulet
Индексация
Самая простая реализация это добавить метки is_in_Афимолл_Сити всем объектам внутри здания.
Моллы/retail здания можно выделить из всех остальных "домов" для уменьшения индекса.
Для админ границ не такая востребованная фича, может подождать.
Обработка запросов
Матчить 2 параметра по этим меткам да хоть на равенство (уже лучше Номинатима).
Можно сортировать одинаковые результаты по дистанции к lat/lot/zoom параметоров из клиентского приложения (у OpenLevelUp в URL есть они). Т.е. перезаписывая веса внутренние веса ES на метры до lat/lot.
Можно эту пост-сортировку до центра экрана сделать опциональной.
PS.
тикет в OpenLevelUp https://framagit.org/PanierAvide/OpenLevelUp/issues/10
тикет в Photon komoot/photon#226
The text was updated successfully, but these errors were encountered: