1

我正在尝试创建德国每条道路的列表(包含纬度、经度和街道名称)。

到目前为止,我已经在 osm2pgsql 的帮助下将德语 osm 文件导入到 postgres 数据库中。

所以我正在寻找的是一个允许我查询每条道路的查询。

4

1 回答 1

4

首先,我建议使用该psql工具。因此,假设您的数据库名为 gis,请在终端输入以下命令:

psql gis

从 psql 工具中,您可以查询数据库,但首先了解 osm2psql 创建了哪些表是一个好主意,请输入:

\d

这应该给你这样的输出:

               List of relations
 Schema |        Name        | Type  |  Owner   
--------+--------------------+-------+----------
 public | geography_columns  | view  | postgres
 public | geometry_columns   | table | gis
 public | planet_osm_line    | table | user
 public | planet_osm_nodes   | table | user
 public | planet_osm_point   | table | user
 public | planet_osm_polygon | table | user
 public | planet_osm_rels    | table | user
 public | planet_osm_roads   | table | user
 public | planet_osm_ways    | table | user
 public | spatial_ref_sys    | table | gis
(10 rows)

在那里我们可以在planet_osm_roads 中看到一个看起来很可能的候选人,输入:

\d planet_osm_roads

这将显示道路表的结构,如下所示:

     Table "public.planet_osm_roads"
       Column       |   Type   | Modifiers 
--------------------+----------+-----------
 osm_id             | bigint   | 
 access             | text     | 
 addr:housename     | text     | 
 addr:housenumber   | text     | 
 addr:interpolation | text     | 
 admin_level        | text     | 
 aerialway          | text     | 
 aeroway            | text     | 
 amenity            | text     | 
 ....
 waterway           | text     | 
 wetland            | text     | 
 width              | text     | 
 wood               | text     | 
 z_order            | integer  | 
 way_area           | real     | 
 way                | geometry |

从那里我们可以制定我们的查询。就像是:

SELECT osm_id,name,way FROM planet_osm_roads LIMIT 1;

将为您提供列表中的第一条道路。http://www.postgresql.org/docs/上的文档将帮助您解码方式几何字符串。

于 2013-03-25T20:01:13.897 回答