给定状态的OSM数据,找到它的区域

问题描述 投票:-1回答:1

抱歉,如果这是一个愚蠢的问题,我对PostgreSQL / PostGIS来说很新。

我从这里下载了整个Baden-Württemberg州的.osm文件 - https://download.geofabrik.de/europe/germany/baden-wuerttemberg.html

我必须通过编写相同的查询来回答以下问题 -

  1. 巴登 - 符腾堡州的面积(以平方公尺^表示)是多少?
  2. 巴登 - 符腾堡州最小的城市是什么?

我使用osm2pgsql工具将osm文件导入PostgreSQL。

似乎有多个表正在创建,核心并由osm2pgsql生成。除了核心表 - planet_osm_nodes,planet_osm_ways和planet_osm_rels之外,还有其他表格,我不太确定如何使用它们来完成我的任务。

如果有人能够提供一些有关如何编写PostGIS查询的信息,那将会非常有用。

postgresql openstreetmap postgis
1个回答
0
投票

我认为这样的事情应该按顺序给你城市及其面积

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

© www.soinside.com 2019 - 2024. All rights reserved.