1
我想創建一個德國每條道路的列表(包括經度,緯度和街道名稱)。如何從osm2pgsql shema獲取所有道路/路線?
到目前爲止,我已經藉助osm2pgsql將德國osm文件導入到postgres數據庫中。
所以我在尋找的是一個查詢,允許我查詢每一條道路。
我想創建一個德國每條道路的列表(包括經度,緯度和街道名稱)。如何從osm2pgsql shema獲取所有道路/路線?
到目前爲止,我已經藉助osm2pgsql將德國osm文件導入到postgres數據庫中。
所以我在尋找的是一個查詢,允許我查詢每一條道路。
首先我會建議使用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/的文檔將幫助您解碼幾何字符串的方式。