標籤:des style 使用 os io 資料 art ar
先行輸入:psql gis
\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)
再進入某一個資料表,語句為:\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;
但是,後來在python中發現,psycopg2似乎不支援\d的輸入,所以,我後來又換了一種查詢的方法:
select planet_osm_roads.\"OSM_ID\", ST_AsText(planet_osm_roads.\"the_geom\") from public.planet_osm_roads;
這個語句相對來說更加正規一點,但是使用起來會麻煩一些,需要從最頭上進入到資料庫中,但是,查詢結果肯定是一樣的。
另外,由於openstreetmap中的the_geom是通過geometry資料類型來儲存的,所以以上我使用了ST_AsTExt 函數進行格式轉換。
格式轉換之後,顯示為:
( ‘LINESTRING(12936024.28 4839648.07,12935424.71 4838722.06,12934892.21 4837629.71,12934289.2 4836007.5,12933955.4 4834815.49,12933523.99 4834253.51,12932398.66 4833859.51,12930942.93 4833698.73,12930017.2 4833337.34,12928792.52 4832545.6,12927333.4 4830992.71,12926605.54 4830332.04,12925976.25 4830134.83,12925216.94 4830137.07,12924226.69 4830471.27,12923535.34 4830870.63,12923537.07 4831566.67,12923670.37 4832229,12924035.56 4832857.78,12924368.51 4833585.97,12924703.14 4834446.89,12923880.16 4835708.54,12922724.27 4836241.84,12922132.27 4836939.92,12921903.85 4838034.36,12921642.24 4839195.88,12921447.77 4840290.58,12921153.05 4841352.77,12920474.79 4841645.26,12918234.82 4842608.73)‘)
應該代表的是各個node的GPS座標值。
另外附上ST的函數集合:
擷取幾何對象的WKT描述 ST_AsText(geometry)
擷取幾何對象的WKB描述 ST_AsBinary(geometry)
擷取幾何對象的空間參考ID ST_SRID(geometry)
擷取幾何對象的維數 ST_Dimension(geometry)
擷取幾何對象的邊界範圍 ST_Envelope(geometry)
判斷幾何對象是否為空白 ST_IsEmpty(geometry)
判斷幾何對象是否不包含特殊點(比如自相交) ST_IsSimple(geometry)
判斷幾何對象是否閉合 ST_IsClosed(geometry)
判斷曲線是否閉合并且不包含特殊點 ST_IsRing(geometry)
擷取多幾何對象中的對象個數 ST_NumGeometries(geometry)
擷取多幾何對象中第N個對象 ST_GeometryN(geometry,int)
擷取幾何對象中的點個數 ST_NumPoints(geometry)
擷取幾何對象的第N個點 ST_PointN(geometry,integer)
擷取多邊形的外邊緣 ST_ExteriorRing(geometry)
擷取多邊形內邊界個數 ST_NumInteriorRings(geometry)
同上 ST_NumInteriorRing(geometry)
擷取多邊形的第N個內邊界 ST_InteriorRingN(geometry,integer)
擷取線的終點 ST_EndPoint(geometry)
擷取線的起始點 ST_StartPoint(geometry)
擷取幾何對象的類型 GeometryType(geometry)
類似上,但是不檢查M值,即POINTM對象會被判斷為point ST_GeometryType(geometry)
擷取點的X座標 ST_X(geometry)
擷取點的Y座標 ST_Y(geometry)
擷取點的Z座標 ST_Z(geometry)
擷取點的M值 ST_M(geometry)