我正在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。
此集合同时加载所有几何(正是我想要的),但它似乎只适用于线而不适用于多边形。如果有人知道如何使它适用于多边形,那么从您那里听到它将非常感激!