geometry和geography的區別

一、先說說Sql Server中geometry和geography的區別:git

        geometry:planar    平面座標系【supported by SQL Server conforms to the Open Geospatial Consortium (OGC) Simple Features for SQL Specification version 1.1.0.】sql

        geography: terrestrial   地理座標系【stores ellipsoidal (round-earth) data, such as GPS latitude and longitude coordinates.】spa

        若是要計算兩個lat/lon點之間的實際距離就須要將geometry類型轉成geography類型,否則結果確定不正確。rest

二、geometry轉geography的方法:orm

       geography::STGeomFromText(boundary.ToString(), 4326)server

       boundary是geometry類型的,4326是座標系的參數,4326表明GCS-WGS-1984座標系,是系統默認的座標系。ip

       能夠經過這個sql得到系統的座標系(Sql server中):Select * from sys.spatial_reference_systems where authorized_spatial_reference_id=4326ci

三、STDistance的用法:it

       https://msdn.microsoft.com/zh-cn/library/bb933952(v=sql.110).aspxio

       按照裏面的例子可以計算出距離,可是若是輸入的是經緯度的值,得出的結果老是以爲不對,值比較小,實際上須要按照第二步轉化爲geography類型再計算就能夠了,4326座標系默認返回距離的單位【unit】是米【meter】。

       STDistance也能夠計算點到面的最短距離。   

相關文章
相關標籤/搜索