Javascript 在google earth插件中创建3d形状

Javascript 在google earth插件中创建3d形状,javascript,3d,google-earth-plugin,Javascript,3d,Google Earth Plugin,首先感谢您的阅读。 我有一个web应用程序,它大量使用Google Earth插件来显示一些传感器数据和其他内容。 我试图让用户能够定义在插件中绘制它们的区域和体积。 我能够添加区域功能(例如创建、可视化、编辑和删除)。 现在我正在处理卷,但我真的不知道处理卷的最佳方式是什么。需要注意的一件重要的事情是,我只对上下表面平行的体积感兴趣(没有金字塔,没有复杂的图形,只有) 我想到的第一个想法是创建一个由2个多边形和一组边组成的自定义对象,将上表面的每个多边形顶点连接到下表面的相应顶点。 比如:

首先感谢您的阅读。 我有一个web应用程序,它大量使用Google Earth插件来显示一些传感器数据和其他内容。 我试图让用户能够定义在插件中绘制它们的区域和体积。 我能够添加区域功能(例如创建、可视化、编辑和删除)。 现在我正在处理卷,但我真的不知道处理卷的最佳方式是什么。需要注意的一件重要的事情是,我只对上下表面平行的体积感兴趣(没有金字塔,没有复杂的图形,只有) 我想到的第一个想法是创建一个由2个多边形和一组边组成的自定义对象,将上表面的每个多边形顶点连接到下表面的相应顶点。 比如:

    //Create the upper surface (polygon)  
    var aPolygonUpperPlacemark = ge.createPlacemark("");
    var aPolygonUpper = ge.createPolygon("");
    aPolygonUpper.setAltitudeMode(ge.ALTITUDE_RELATIVE_TO_GROUND);
    aPolygonUpperPlacemark.setGeometry(aPolygonUpper);
    var aOuterUpper = ge.createLinearRing("");
    aPolygonUpper.setOuterBoundary(aOuterUpper);
    ge.getFeatures().appendChild(aPolygonUpperPlacemark);

    //Create the lower surface (polygon)
    var aPolygonLowerPlacemark = ge.createPlacemark("");
    var aPolygonLower = ge.createPolygon("");
    aPolygonLower.setAltitudeMode(ge.ALTITUDE_RELATIVE_TO_GROUND);
    aPolygonLowerPlacemark.setGeometry(aPolygonLower);
    var aOuterLower = ge.createLinearRing("");
    aPolygonLower.setOuterBoundary(aOuterLower);
    ge.getFeatures().appendChild(aPolygonLowerPlacemark);

    var myPrism = {
        upperSurface: aPolygonUpperPlacemark,
        lowerSurface: aPolygonLowerPlacemark,
        edges: new Array()
    };
这里的问题是,侧面将不会显示为真实曲面,而仅显示为直线。另一方面,我可能会为每个侧面创建另一个多边形,但这会使这样一个3d形状的管理比我希望的更复杂。
所以我的问题是,有没有更好的方法来处理3d形状或内置几何体?

注意,我不能依赖3d模型(因此无法加载外部Kmz),因为最终3d形状创建将是用户的功能

只需创建上部多边形(例如,确保坐标包括高度),然后确保设置为1。可以使用setExtrude(true)在API中执行此操作

有关详细信息,请参阅


我还建议您查看实用程序库-它使类似的内容更加简洁。例如,请参见此拉伸多边形示例:

我从API中了解到setExtrude(true)使多边形连接到地面。有没有可能让上面和下面的多边形都有自定义的高度。还可以使用gx:altitudeOffset提升多边形的每个线性阵列(类似于直接影响多边形):