Babelfish 支援地理空間資料類型
從 3.5.0 和 4.1.0 版開始,Babelfish 包含下列兩種空間資料類型的支援:
-
幾何資料類型:此資料類型適用於存放平面或歐幾里德 (平地球) 資料。
-
地理資料類型:此資料類型適用於存放橢圓或圓地球資料,例如 GPS 緯度和經度座標。
這些資料類型允許空間資料的儲存和處理,但有限制。
了解 Babelfish 中的地理空間資料類型
檢視、程序和資料表等各種資料庫物件都支援地理空間資料類型。
-
支援 2-D 點資料類型,將位置資料存放為由經緯度和有效的空間參考系統識別符 (SRID) 定義的點。
-
透過 JDBC、ODBC、DOTNET 和 PYTHON 等驅動程式連線至 Babelfish 的應用程式可以利用此地理空間功能。
Babelfish 中支援的幾何資料類型函數
STGeomFromText (
geometry_tagged_text、SRID):使用已知文字 (WKT) 表示法建立幾何執行個體。STPointFromText (
point_tagged_text、SRID ):使用 WKT 表示法建立點執行個體。-
點 (X、Y、SRID):使用 x 和 y 座標的浮點數值建立點執行個體。
-
<geometry_instance>.STAsText ( ):從幾何執行個體擷取 WKT 表示法。
-
<geometry_instance>.STDistance (other_geometry):計算兩個幾何執行個體之間的距離。
-
<geometry_instance>.STX:擷取幾何執行個體的 X 座標 (經度)。
-
<geometry_instance>.STY:擷取幾何執行個體的 Y 座標 (緯度)。
Babelfish 中支援的地理資料類型函數
-
STGeomFromText (
geography_tagged_text、SRID ):使用 WKT 表示法建立地理執行個體。 -
STPointFromText (
point_tagged_text、SRID ):使用 WKT 表示法建立點執行個體。 -
點 (緯度、經度、SRID):使用緯度和經度的浮點數值建立點執行個體。
-
<geography_instance>.STAsText ( ):從地理執行個體擷取 WKT 表示法。
-
<geography_instance>.STDistance (other_geography):計算兩個地理執行個體之間的距離。
-
<geography_instance>.Lat:擷取地理執行個體的緯度值。
-
<geography_instance>.Long:擷取地理執行個體的經度值。
Babelfish 中地理空間資料類型的限制
-
目前,Babelfish 不支援更進階的功能,例如地理空間資料類型點執行個體的 Z-M 標記。
-
目前不支援點執行個體以外的幾何類型:
LineString
CircularString
CompoundCurve
多邊形
CurvePolygon
MultiPoint
MultiLineString
MultiPolygon
GeometryCollection
目前,針對地理空間資料類型,不支援空間索引。
目前針對這些資料類型僅支援列出的函數。如需詳細資訊,請參閱Babelfish 中支援的幾何資料類型函數及Babelfish 中支援的地理資料類型函數。
與 T-SQL 相比,地理資料的 STDistance 函數輸出可能會有細微的精確度變化。這是因為基礎 PostGIS 實作所致。如需詳細資訊,請參閱 ST_Distance
為獲得最佳效能,請使用內建的地理空間資料類型,而無需在 Babelfish 中建立額外的抽象層。
提示
雖然您可以建立自訂資料類型,但不建議根據地理空間資料加以建立。這可能會導致複雜性,因為支援有限而可能導致意外行為。
在 Babelfish 中,地理空間函數名稱會用作為關鍵字,只有在以預期方式使用時,才會執行空間操作。
提示
在 Babelfish 中建立使用者定義的函數和程序時,請避免使用與內建地理空間函數相同的名稱。如果您有任何同名的現有資料庫物件,請使用
sp_rename來重新命名。