Android GIS開發系列-- 入門季(7) 利用GeometryEngine坐標轉換、計算距離與面積等


 

GeometryEngine是Arcgis的重要工具類,利用此工具類,可以計算地圖上的距離、面積,將點、線、面轉化為Json數據,將Json轉化為點線面,坐標轉換作用非常強大。

一、坐標轉化

將用到方法 GeometryEngine.project(Geometry geometry, SpatialReference inputSR, SpatialReference outputSR),第二個為Geometry的坐標,第三個參數為要轉換的坐標。如果將84坐標轉換為墨卡托坐標代碼如下:

Point point1 = new Point(113,23); Point point2 =(Point)GeometryEngine.project(point1,SpatialReference.create(SpatialReference.WKID_WGS84), SpatialReference.create(SpatialReference.WKID_WGS84_WEB_MERCATOR));

二、GeometryEngine計算兩點的距離

用到 GeometryEngine.geodesicDistance(Geometry geometry1, Geometry geometry2, SpatialReference spatialReference, LinearUnit distanceUnit)方法。注意最好不要用GeometryEngine.distance方法,此方法是計算2D長度的,計算不准確。代碼如下:

Point point1 = new Point(113,23); Point point2 = new Point(113,24); double distance = GeometryEngine.geodesicDistance(point3,point4, SpatialReference.create(SpatialReference.WKID_WGS84), new LinearUnit(LinearUnit.Code.KILOMETER)); Log.i("TAG","distance ==="+distance );



此外, 通過GeometryEngine.geodesicArea, GeometryEngine.geodesicLength可分別計算處面積和周長,大家去探索去。我有不想再列舉了。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM