您的位置:首页 > 编程语言 > Go语言

google earth开发(五) 两点之间画线(显示地球曲线)

2012-08-06 09:13 323 查看
earth API支持两点之间画线,线的颜色可以改变,但不支持虚线。另支持:

--粗细修改

--支持海拔

线段通过设置显示海拔相对位置,就能随着地球旋转、放大缩小而显示不同的地球曲线。

(1)创建线段

var lineMark = ge.createPlacemark('');

var lineString = ge.createLineString('');

lineMark.setGeometry(lineString);

(2)设置线段类型

lineString.setAltitudeMode(ge.ALTITUDE_RELATIVE_TO_GROUND); //显示海拔相对位置

(3)设置海拔信息

两点之间线段分成均匀的20段,共21个点,不同点海拔不同。

addPointsToLineString(lineString,latitude1,

langitude1, latitude2, langitude2,20); //输入2端点经纬度

(4) 设置线段颜色和粗细

lineMark.setStyleSelector(ge.createStyle(''));

var lineStyle =

lineMark.getStyleSelector().getLineStyle();

lineStyle.setWidth(2); //粗细

lineStyle.getColor().set('9900ffff'); //颜色

(5)把线段加入到地球

ge.getFeatures().appendChild(lineMark );

附:增加21个点(含纬度)的函数(输入参数:steps=20)

function addPointsToLineString(lineString,lat1,lang1,lat2,lang2,steps){

var i;

var lat;

var lang;

var height;

for(i=0;i<steps;i++)

{

lat = lat1+ i*(lat2-lat1)/steps;

lang = lang1+ i*(lang2-lang1)/steps;

if (i==0)

height = 0;

else if(i==1 || i==steps-1)

height = 8130.76624025246;

else if(i==2 || i==steps-2)

height = 15640.4403479026;

else if(i==3 || i==steps-3)

height = 22453.9881416349;

else if(i==4 || i==steps-4)

height =28503.3309041539;

else if(i==5 || i==steps-5)

height = 33728.0256022233;

else if(i==6 || i==steps-6)

height = 38075.8688134745;

else if(i==7 || i==steps-7)

height = 41503.4183257466;

else if(i==8 || i==steps-8)

height = 43976.4271973102;

else if(i==9 || i==steps-9)

height = 45470.1859409886 ;

else if(i==10)

height = 45969.769413186;

lineString.getCoordinates().pushLatLngAlt(lat,lang, height);

}

lineString.getCoordinates().pushLatLngAlt(lat2,lang2, 0);

}

效果图示意如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: