ArcGis中地理数据库(sde)中概念及常见函数
以下概念及函數均在在Oracle中配置地理數據庫(sde庫)中使用:
一.空間類型
1.概念:存儲幾何數據的數據類型。所有空間信息均存儲在空間列中;不存在其他的要素表。將空間信息包含在一個字段中使得在 ArcGIS 之外訪問空間數據變得更加容易。
2.用途:空間類型具有關聯的函數或方法,可用于通過結構化查詢語言 (SQL) 訪問和操作數據
二.SRID
1.概念:空間參考標識符, 是與特定坐標系、容差和分辨率關聯的唯一標識符。
2.用途:SRID 的填充方式及其所示含義取決于存儲數據所用的數據庫。
某些數據庫和空間類型(如 PostgreSQL 中的 PostGIS 幾何或 SQL Server 中的地理類型)使用預定義的 EPSG 代碼子集,只可使用具有這些 SRID 的空間參考。
其他情況下(如 Oracle、PostgreSQL、IBM DB2 和 Informix 中的 ST_Geometry 類型)可使用具有 Esri 定義的 SRID 的空間參考。
三.空間參考
1.概念:包括一個 x、y、z 值的坐標系。在企業級地理數據庫中,空間參考還包含容差值和分辨率值。所有這些信息組合在一起將有助于指示平面地圖上的形狀表示地球上的哪個位置。
2.應用:在企業級地理數據庫(以及已安裝 ST_Geometry 類型的 Oracle 或 PostgreSQL 數據庫)中,所有空間參考系統都存儲在地理數據庫系統表中。
數據庫和存儲類型 地理數據庫系統表
Oracle (ST_Geometry) sde.st_spatial_references
四.ST_Geometry 存儲類型
1.概念:
ST_Geometry是一種用戶定義數據類型 (UDT),使用該數據類型可定義存儲空間數據的列。本身是抽象的、無法實例化的超類。但其子類可以實例化。實例化的數據類型是可定義為表列的數據類型,并且其類型值插入表列之中。雖然可以將列定義為類型 ST_Geometry,但是您無法將 ST_Geometry 值插入此列,因為無法對 ST_Geometry 進行實例化。相反,您可以插入子類值。
2.結構圖:
3.子類
ST_Geometry 的子類分為兩類:基礎幾何子類和同類集合子類。基礎幾何包括 ST_Point、ST_LineString 和 ST_Polygon,而同類集合包括 ST_MultiPoint、ST_MultiLineString 和 ST_MultiPolygon。與名稱的含義一致,同類集合是基礎幾何的集合。除了共享基礎幾何屬性之外,同類集合還具有某些自身的屬性。
如下圖:
4.常用函數
創建表community:
CREATE TABLE community(id integer,shape sde.st_geometry);
4.1 ST_Geometry:
定義:通過熟知文本表示構造幾何。
對于點線面:
語法:sde.st_geometry (wkt clob, srid integer)
示例:
INSERTINTOcommunity(id,shape)VALUES(1,sde.st_geometry('point (1 2)',0));
INSERTINTOcommunity(id,shape)VALUES(2,sde.st_geometry(1,2,null,null,0));
INSERTINTOcommunity(id,shape)VALUES(3,sde.st_geometry('linestring (33 2, 34 3, 35 6)',0));
INSERTINTOcommunity(id,shape)VALUES(4,sde.st_geometry('polygon ((3 3, 4 6, 5 3, 3 3))',0));
4.2 ST_Point:
定義:以熟知文本對象或坐標和空間參考 ID 作為輸入參數,返回 ST_Point 類型的對象。
語法:
sde.st_point (wkt clob, srid integer)
sde.st_point (x number, y number, srid integer)
sde.st_point (x number, y number, m number, srid integer)
sde.st_point (x number, y number, z number, srid integer)
sde.st_point (x number, y number, z number, m number, srid integer)
在 INSERT 語句將 ST_Point 幾何插入到 shape列之前,首先用 ST_Point 函數將點坐標轉換為 ST_Point 幾何。
示例:
INSERTINTOcommunityVALUES(1,sde.st_point(10.01,20.03,0));
4.3 ST_PointFromText:
定義:在Oracle中,ST_PointFromText 以點類型的熟知文本表示和空間參考 ID 作為輸入參數,返回點對象。
語法:
sde.st_pointfromtext (wkt varchar2, srid integer)
在調用 INSERT 語句將點插入到 shape列之前,首先使用 ST_Point 函數將點文本坐標轉換為點格式。
示例:
INSERTINTOcommunityVALUES(1,sde.st_pointfromtext('point (10.01 20.03)',0));
4.4 ST_LineString:
定義:是一個通過熟知文本表示構造線串的存取函數。
語法:sde.st_linestring (wkt clob, srid integer)
示例:
INSERTINTOcommunity(id,shape)VALUES(1,sde.st_linestring('linestring (750 150, 750 750)',0));
4.5 ST_LineFromText:
定義:以 ST_LineString 類型的熟知文本表示和空間參考 ID 作為輸入,并返回 ST_LineString 類型的對象。
語法:sde.st_linefromtext (wkt clob, srid integer)
示例:INSERTINTOcommunityVALUES(1,sde.st_linefromtext('linestring (10.01 20.03, 35.93 19.04)',0));
4.6 ST_Polygon:
定義:存取器函數以熟知文本 (WKT) 表示和空間參考 ID (SRID) 作為輸入參數,并生成 ST_Polygon 類型的對象。
語法:
sde.st_polygon(wktclob,sridinteger)
示例:
INSERTINTOcommunityVALUES(1,sde.st_polygon('polygon ((10.01 20.03, 20.94 21.34, 35.93 10.04, 10.01 20.03))',0));
4.7 ST_PolyFromText:
定義:以熟知文本表示和空間參考 ID 作為輸入參數,返回 ST_Polygon 類型的對象。
語法:
sde.st_polyfromtext (wkt clob, srid integer)
示例:
INSERTINTOcommunityVALUES (1,sde.st_polyfromtext ('polygon ((10.01 20.03, 10.52 40.11, 30.29 41.56,31.78 10.74, 10.01 20.03))', 0));
4.8 ST_SRID:
定義:以 ST_Geometry 對象作為輸入參數,返回其空間參考 ID
語法:
sde.st_srid (shapesde.st_geometry)
示例:
SELECTsde.st_srid(shape)SRIDFROMcommunity;
4.1 ST_AsText:
定義:獲取一個 ST_Geometry 對象,然后返回其可識別的文本表示。
語法:sde.st_astext (shape sde.st_geometry)
示例:
SELECTid,sde.st_astext(shape)points FROMcommunity;
總結
以上是生活随笔為你收集整理的ArcGis中地理数据库(sde)中概念及常见函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HBase-site.xml 常见重要配
- 下一篇: 3137102127 林志坤(实验3)