我正在尝试创建德国每条道路的列表(带有纬度、经度和街道名称)。
到目前为止,我已经在osm2pgsql的帮助下将德国osm文件导入到postgres数据库中。
因此,我正在寻找的是一个查询,它允许我查询每条道路。
发布于 2013-03-26 04:01:14
首先,我建议使用psql工具。因此,假设您的数据库名为gis,在终端输入以下命令:
psql gis在psql工具中,您可以查询数据库,但首先要了解哪些表是由osm2psql创建的,这是一个g0od想法,输入以下内容:
\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
这将向您显示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/上的文档将帮助您解码几何字符串的方式。
https://stackoverflow.com/questions/15618530
复制相似问题