Поставил дамп RU-151005.osm.pbf
Пытаюсь найти Россию:
SELECT osm_id FROM planet_osm_polygon WHERE tags->'name'='Российская Федерация' AND tags->'admin_level'='2' AND tags->'boundary'='administrative' ;
И нашёл из 20 штук! И все с одним osm_id=-60189
В РФ есть федеральные округа, пытаюсь их найти в полигоне России:
SELECT osm_id, tags->'name' as name FROM planet_osm_polygon WHERE tags->'admin_level'='3' AND ST_Within(way, (SELECT way FROM planet_osm_polygon WHERE tags->'name'='Российская Федерация' AND tags->'admin_level'='2' AND tags->'boundary'='administrative' limit 1)) ;
Оказывается в первую Россию входить только Дальневосточный федеральный округ.
Но сколько всего в базе отношений с admin_level=3 , наверное их должно быть девять. Однако, по факту из 35!
SELECT osm_id, tags->'name' as name FROM planet_osm_polygon WHERE tags->'admin_level'='3';
osm_id | name
----------+-------------------------------------
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221148 | Сибирский федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1221185 | Дальневосточный федеральный округ
-1216601 | Северо-Западный федеральный округ
-1216601 | Северо-Западный федеральный округ
-1029256 | Центральный федеральный округ
-1029256 | Центральный федеральный округ
-1216601 | Северо-Западный федеральный округ
-1059500 | Южный федеральный округ
-1029256 | Центральный федеральный округ
-389344 | Северо-Кавказский федеральный округ
-1075831 | Приволжский федеральный округ
-3403053 |
-1029256 | Центральный федеральный округ
-1029256 | Центральный федеральный округ
-1216601 | Северо-Западный федеральный округ
-1216601 | Северо-Западный федеральный округ
-1113276 | Уральский федеральный округ
(35 rows)
Оказывается в ЦФО не входит не одна область
SELECT osm_id, tags->'name' as name FROM planet_osm_polygon WHERE tags->'admin_level'='4' AND ST_Within(way, (SELECT way FROM planet_osm_polygon WHERE 'osm_id'='-1029256'));
Посмотрел, что выдаёт просто SELECT way FROM planet_osm_polygon WHERE ‘osm_id’=‘-1029256’; - оказывается пустоту.
Не понимаю, что я делаю не так ? В базу экспортировал командой osm2pgsql --create -d gis -l -s -S osm2pgsql.style -j RU-151005.osm.pbf