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);
}
效果圖示意如下: