Дак, чтобы добавить в столбец город, надо определить в какой город у вас точка попадает, тоже самое и с областью. Чтобы это определить, нужна геометрия области - полигон. Чтобы построить полигоны, нужна геометрия веев из которых он состоит. И т.д.
Собственно я вам это расказываю как человек который такой “простенький” скрипт уже написал
Понятно. Упустил из виду, что город и всё, что больше улицы обычно в адрес точки не прописывается. С другой стороны, не вижу тут особой проблемы. Например, у меня скрипт на питоне, который выковыривает границы регионов, ещё короче того, что выковыривает города. А дальше всё сводится к проверке принадлежности точки региону. Если регионов много, то это, процесс, конечно, практически бесконечный, но зато тут есть большой простор для оптимизации. Например, раскидать области по странам, и сначала проверять принадлежность стране, а потом уже области внутри страны и так далее, всё глубже и глубже.
Номинатим например считает кто в кого попадает на postgis’е после чего ищет по базе постгрешными запросиками, osmru - индекс строит на постгисе, ищет сфинксом, я индекс строю на ванильной яве ищу elasticsearch’ем, pelias и индекс строит и поиск делает на elasticsearch’е но они емнимп границы берут не из осма, либо конвертят их не сами.