Учитывая данные OSM для государства, найдите его область - PullRequest
0 голосов
/ 06 марта 2019

Извиняюсь, если это глупый вопрос, я очень плохо знаком с PostgreSQL / PostGIS.

Я скачал файл .osm для всего штата Баден-Вюртемберг отсюда - https://download.geofabrik.de/europe/germany/baden-wuerttemberg.html

Я должен ответить на следующие вопросы, написав запросы для того же самого -

  1. Какова площадь (выраженная в м ^ 2) Баден-Вюртемберга?
  2. Какой по площади самый маленький город Баден-Вюртемберг?

Я импортировал файл osm в PostgreSQL, используя инструмент osm2pgsql .

Кажется, чтобыть несколькими таблицами, которые создаются, создаются и генерируются osm2pgsql.В дополнение к основным таблицам - planet_osm_nodes , planet_osm_ways и planet_osm_rels естьтакже и другие таблицы, и я не совсем уверен, как их использовать для выполнения моих задач.

Было бы очень полезно, если бы кто-нибудь мог дать некоторое представление о том, как я могу написать запрос PostGIS длято же самое.

1 Ответ

0 голосов
/ 02 апреля 2019

Я думаю, что-то вроде этого должно дать вам города и их площадь в квадратных метрах в порядке

SELECT *, ST_Area(way) 
FROM planet_osm_polygon
WHERE boundary='administrative'
AND admin_level=7
ORDER BY ST_Area(way)

То же самое должно работать с границей Баден-Вюртемберг только в том случае, если вам понадобится admin_level=4

https://postgis.net/docs/ST_Area.html

https://wiki.openstreetmap.org/wiki/DE:Grenze

...