arcgis for js 之 獲取兩點之間的距離


換了新公司,接觸新行業,半路出家,看着別人的代碼,看着api慢慢理解。

需求如下;已知兩點坐標求距離。

思路,沒有,站在同事的肩膀上踩路子,給的這個鏈接 https://developers.arcgis.com/javascript/latest/api-reference/esri-tasks-GeometryService.html#distance

綜合看完,基本調用如下:

new GeometryService(url).distance(new DistanceParameters(distanceUnit,geodesic,geometry1,geometry2),function(){})

 注意:這個是基於地圖的,地圖一定得打開;geometry1 看是在哪種多邊形下,兩點的距離 是在 esri/geometry/Point 模塊下的;創建方法為

getTwoPointDis(x1,y1,x2,y2,cb)  //傳入點參數

function getTwoPointDis(x1,y1,x2,y2,cb){
  var p1,p2;
  map.task.getNewPoint(x1,y1,function(e){
    p1 = e
  });
  map.task.getNewPoint(x2,y2,function(e){
    p2 = e
  });
  var dd = new DistanceParam();
  dd.geometry1 = p1;
  dd.geometry2 = p2;
  map.task.geometryService(dd, function(e){
    var e = e.toFixed(3);
    cb(e)
  });
}

 

geometryService:(dd,successCallBack,errorCallBack){  //計算距離參數

  var distanceParameters = new DistanceParameters();
  distanceParameters.geometry1 = param.geometry1;
  distanceParameters.geometry2 = param.geometry2;
  distanceParameters.geodesic = param.geodesic;
  distanceParameters.distanceUnit = param.distanceUnit;
  geoService.distance(distanceParameters, successCallBack, errorCallBack);

}

 

getNewPoint:function(x,y,successCallBack){  //初始化點
  var p1 = new esri.geometry.Point();
  p1.x = x;
  p1.y = y;
  p1.spatialReference = this._impl._map.spatialReference;
  successCallBack(p1)
}

 

 

 

 


免責聲明!

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



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