//畫一個扇形 半徑,初始角度,旋轉角度,緯度,經度,顏色,姓名
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);
}
}
但是這個方法有一個缺陷,就是地球是一個橢圓的,這樣用經緯度畫出的圓在赤道附近是正常的,但是越到兩極越像橢圓。
Google earth 畫扇形
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.