2013-03-25 62 views
1

我想創建一個德國每條道路的列表(包括經度,緯度和街道名稱)。如何從osm2pgsql shema獲取所有道路/路線?

到目前爲止,我已經藉助osm2pgsql將德國osm文件導入到postgres數據庫中。

所以我在尋找的是一個查詢,允許我查詢每一條道路。

回答

2

首先我會建議使用psql工具。因此,假設你的數據庫被稱爲地理信息系統在終端輸入以下命令:

psql gis 

從psql的工具中,你可以查詢數據庫,但首先它是一個g0od主意,讓這些表格由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/的文檔將幫助您解碼幾何字符串的方式。