Хочу на сайте сделать форму ввода адреса.
Показывается список стран. Выбрали страну, внизу добавился список областей/штатов. Выбрали, показался список городов и т.д. вплоть до дома.
Для этого нужно этот список стран/областей/горродов/улиц/домов где-то бррать. Есть ли возможность через OSM получить список, к примеру, городов указав какую-то страну?
Может есть возможность делать поиск по типу узла + ограничивающая область?
В данных ОСМ это есть. Готового халявного сервиса нет, или я просто про него ещё не знаю (за исключением костыльного подхода с Overpass). Так что вы правильно двигаетесь в сторону создать его для себя. А если вы его ещё и сделаете публичным, то следующему вопрошающему будет что ответить.
Ну без всяких там баз, просто программкой на C++ обрабатываю исходные данные (OSMовские XML), периодически обновляемые, и похожую структуру получаю. http://wowik.byethost7.com/places/
На web сервере всего 30 секунд есть чтобы скрипт отработал, так что он просто не успеет загрузить xml и обработать его (да и по памяти ограничение)
Вот наверное я его в свое время и использовал. Помню что вроде выбирал данные в XML, но было это давно. Как вариант, попробую на его основе что-то придумать.
“Большому кораблю - большую торпеду.” Хочешь все страны со всеми домами - готовь большое дерево.
Но можно схалявить - вычислять нижние уровни только по необходимости, когда до них дойдёт дело. Большинство посетителей будут в крупных городах - им будет быстро. А всякие ебени - ну подумает в первый раз чуток подольше, не страшно.
так как мне нужно просто указать точку на карте, то лучше вообще схалявлю: прикручу карту на которой нужно будет передвинуть маркер в нужное место + переключатель “Точное место/Где-то в этом регионе”. Т.е. если хотят указать город в целом, то значение “Где-то в этом регионе”, что будет означать что маркер не указывает на точное место, а просто указывает на примерный регион расположения.