Google earth 畫扇形

//畫一個扇形 半徑,初始角度,旋轉角度,緯度,經度,顏色,姓名
  function DrawShanxing(r, initDegree, Degree, lat, lon, color, name) {
  //創建一個畫板可以讓你開始畫畫
  var polygonPlacemark = ge.createPlacemark('');
  polygonPlacemark.setGeometry(ge.createPolygon(''));
  var outer = ge.createLinearRing('');
  polygonPlacemark.getGeometry().setOuterBoundary(outer);
  //設置扇形的顏色
  var style = ge.createStyle(name);
  style.getPolyStyle().getColor().set(color);
  style.getLineStyle().getColor().set('00ffffff');
  polygonPlacemark.setStyleSelector(style);
  //爲畫板添加事件
  google.earth.addEventListener(polygonPlacemark, 'click', function(event) { try{GAjax.getPlotInfo(name,callback);}catch(err){alert(err.description )} });
  //將畫板加入到地圖中
  ge.getFeatures().appendChild(polygonPlacemark);
  var coords = outer.getCoordinates();
  var bLat, bLng;
  //畫一條邊
  bLng = Math.cos(initDegree * 3.1415926 / 180) * r;
  bLat = Math.sin(initDegree * 3.1415926 / 180) * r;
  coords.pushLatLngAlt(lat + bLat, lon + bLng, 0);
  //畫頂點
  coords.pushLatLngAlt(lat, lon, 0);
  //畫二條邊
  bLng = Math.cos(initDegree * 3.1415926 / 180 + Degree * 3.1415926 / 180) * r;
  bLat = Math.sin(initDegree * 3.1415926 / 180 + Degree * 3.1415926 / 180) * r;
  coords.pushLatLngAlt(lat + bLat, lon + bLng, 0);
  for (var i = 15; i > 0; i--) {
  bLng = Math.cos(initDegree *Math.PI / 180 + Degree / 15 * Math.PI / 180 * i) * r;
  bLat = Math.sin(initDegree * Math.PI / 180 + Degree / 15 * Math.PI / 180 * i) * r;
  coords.pushLatLngAlt(lat + bLat, lon + bLng, 0);
  }
  }
但是這個方法有一個缺陷,就是地球是一個橢圓的,這樣用經緯度畫出的圓在赤道附近是正常的,但是越到兩極越像橢圓。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章