最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于openlayers實現(xiàn)角度測量功能

 更新時間:2020年09月28日 09:45:22   作者:GISer_飄逸的夢  
這篇文章主要為大家詳細介紹了基于openlayers實現(xiàn)角度測量功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

基于openlayers的測量功能,官網(wǎng)提供了長度測量和角度測量,但是沒有角度測量,在此寫一下基于openlayers的角度測量功能,主要方法如下:

var formatAngle = function (line) {
  var coordinates = line.getCoordinates();
  var angle=0;
  var sourceProj = map.getView().getProjection();
  for (var i =0, ii = coordinates.length - 1; i < ii; ++i) {
    var c1 = ol.proj.transform(coordinates[i], sourceProj, 'EPSG:4326');
    var c2 = ol.proj.transform(coordinates[i + 1], sourceProj, 'EPSG:4326');
    var c3=0
    //當繪制兩個及以上點的時候,將c1的值傳給C3,C2的值傳給C1
    if(i>=1){
      c3=ol.proj.transform(coordinates[i-1], sourceProj, 'EPSG:4326');
      var disa=wgs84Sphere.haversineDistance(c3, c1);
      var disb=wgs84Sphere.haversineDistance(c1, c2);
      var disc=wgs84Sphere.haversineDistance(c2, c3);
      //由于繪制結(jié)束的時候雙擊會導致c1=c2,從而disb=0,而分母不能為零,導致angle=NAN值,所以需要取雙擊的前一次值。
      //當有三個以上的點的時候,形成了角度,需要對角度進行測量輸出。
      if(disb===0&&i>=2){
        c1 = ol.proj.transform(coordinates[i-1], sourceProj, 'EPSG:4326');
        c2 = ol.proj.transform(coordinates[i], sourceProj, 'EPSG:4326');
        c3 = ol.proj.transform(coordinates[i-2], sourceProj, 'EPSG:4326');
        disa=wgs84Sphere.haversineDistance(c3, c1);
        disb=wgs84Sphere.haversineDistance(c1, c2);
        disc=wgs84Sphere.haversineDistance(c2, c3);
      }
      var cos=(disa*disa+disb*disb-disc*disc)/(2*disa*disb);  //利用余弦定理公式計算cos值
      angle=Math.acos(cos)*180/Math.PI;  //求反余弦值,得到弧度制,并將弧度值轉(zhuǎn)角度值
      angle=angle.toFixed(2)+"度";  //對計算完成的角度,保留兩位小數(shù)
      //由于繪制結(jié)束的時候雙擊會導致c1=c2,從而disb=0,而分母不能為零,導致angle=NAN值,所以需要取雙擊的前一次值。
      //當只有兩個點的時候,只是一條線,并不形成角度,需要提示繼續(xù)繪制。
      if(disb===0&&i<2){
        angle="請繼續(xù)繪制形成角度";
      }
    }
    //當只是繪制一個點的時候,提示繼續(xù)繪制。
    else{
      angle="請繼續(xù)繪制形成角度";
    }
  }
  var output;
  output=angle;
  return output;//返回
};

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

敖汉旗| 友谊县| 长顺县| 闸北区| 定陶县| 大邑县| 花垣县| 齐齐哈尔市| 南康市| 普兰店市| 东丰县| 句容市| 阿拉善右旗| 格尔木市| 淳化县| 淳化县| 双鸭山市| 仪陇县| 宁德市| 重庆市| 隆尧县| 阳城县| 新民市| 定襄县| 阿城市| 仁化县| 内丘县| 历史| 沙田区| 治县。| 襄城县| 广汉市| 阿巴嘎旗| 肃北| 富源县| 迁安市| 铜陵市| 离岛区| 昌黎县| 荆州市| 伊宁市|