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);
  }
  }
但是这个方法有一个缺陷,就是地球是一个椭圆的,这样用经纬度画出的圆在赤道附近是正常的,但是越到两极越像椭圆。

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