我正在Google Earth Api上創建3D形狀。我想讓它們移動並旋轉,所以我寫了一個腳本來創建多邊形,然後更新它們的座標。結果並不是很好,因爲我的3D多邊形的所有面都依次緩慢更新。你可以看到它在這裏的行動(你必須等待更新5秒):Javascript谷歌地球Api - 立即更新所有多邊形座標(多幾何?)
http://jsfiddle.net/pmrotule/64y5Q/
function createPolygon(id, lati, longi, alti){
if(!gePoly[id]['placemarks'][polyCount]){
var newPoly = true;
gePoly[id]['placemarks'][polyCount] = ge.createPlacemark('');
gePoly[id]['polygons'][polyCount] = ge.createPolygon('');
gePoly[id]['polygons'][polyCount].setAltitudeMode(ge.ALTITUDE_ABSOLUTE);
gePoly[id]['placemarks'][polyCount].setGeometry(gePoly[id]['polygons'][polyCount]);
var outer = ge.createLinearRing('');
}
for(i = 0; i < lati.length; i++){
if(newPoly)
outer.getCoordinates().pushLatLngAlt(lati[i], longi[i], alti[i]);
else{
var gOuter = gePoly[id]['placemarks'][polyCount].getGeometry().getOuterBoundary();
gOuter.getCoordinates().setLatLngAlt(i, lati[i], longi[i], alti[i]);
}
}
if(newPoly) gePoly[id]['polygons'][polyCount].setOuterBoundary(outer);
ge.getFeatures().appendChild(gePoly[id]['placemarks'][polyCount]);
polyCount++;
}
所以,我正在尋找一種方式來更新所有多邊形座標瞬間。我做了一個奇怪的觀察:如果在更新加載期間縮放或平移地圖,它會立即執行......它證明有一個解決方案,對吧?
我發現有關幾何體集合的多幾何體的信息: https://developers.google.com/earth/documentation/geometries#multigeometry。
此集合同時加載所有幾何(正是我想要的),但它似乎只適用於線而不適用於多邊形。如果有人知道如何使它適用於多邊形,那麼從您那裏聽到它將非常感激!