STDistance的使用及geometry和geography的區別,stdistancegeometry

來源:互聯網
上載者:User

STDistance的使用及geometry和geography的區別,stdistancegeometry

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

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

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

        如果要計算兩個lat/lon點之間的實際距離就需要將geometry類型轉成geography類型,不然結果肯定不正確。

2、geometry轉geography的方法:

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

       boundary是geometry類型的,4326是座標系的參數,4326代表GCS-WGS-1984座標系,是系統預設的座標系。

       可以通過這個sql獲得系統的座標系(Sql server中):Select * from sys.spatial_reference_systems where authorized_spatial_reference_id=4326

3、STDistance的用法:

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

       按照裡面的例子能夠計算出距離,但是如果輸入的是經緯度的值,得出的結果總是覺得不對,值比較小,實際上需要按照第二步轉化為geography類型再計算就可以了,4326座標系預設返回距離的單位【unit】是米【meter】。

       STDistance也可以計算點到面的最短距離。          

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.