Есть таблица с товарами.
Есть таблица с адресами где каждый товар доступен.
Пример
- iPhone продаёться в Франций и Германий
- iPad продаёться только в Париже
- iMac продаёться только в Берлине
При добавление товара, делаем запрос на Nominatim OSM и получаем ID Франций и ID Германий, и их сохраняем в БД для iPhone. (и так для всех товаров)
Думаю один их этих ID сохранить, только пока что не знаю чем они отличаються.
# Пример 1
Покупатель ищет iPhone в Париже (получаем ID из Nominatim).
Проблема: как понять что ID Парижа это дочерний ID Франций?
# Пример 2
Покупатель ищет iMac в Германий (получаем ID из Nominatim).
Проблема: как понять что ID Германий это родительский ID Берлина?
# Пример 3
Покупатель ищет iPad в Франций(получаем ID из Nominatim).
Проблема: как понять что ID Франций это родительский ID Парижа?
И таких примеров можно много привести.
Думаю как-то нужно хранить отношение между ID стран, городов и посёлков.
Только возникает проблема что данные в OSM меняються, и со временем накопиться мусор в БД.
Или ещё одно решение: получить полигон из границ каждого объекта на карте.
И потом через PostGis искать вхождение полигона в другие полигоны.
Только тут опять проблема, потому что границы одной страны имеют несколько тысячь координат, и PostGis думаю трудно будет справляться с такими задачами.
Товары будут во многих странах, городах и населённых пунктах (возможно).
Нужно использовать именно OSM потому что держать у себя список всех городов и стран уже пробовали, и очень не удобно. Данные нужно постоянно обновить. Вообщем это решение не подходит.