【问题标题】:create 3d shape in google earth plugin在谷歌地球插件中创建 3d 形状
【发布时间】:2012-05-21 11:59:34
【问题描述】:

首先感谢您的阅读。 我有一个网络应用程序,它大量使用谷歌地球插件来显示一些传感器数据和其他东西。 我试图让用户能够定义在插件中绘制它们的区域和体积。 我能够添加区域特征(例如创建、可视化、编辑和删除)。 现在我正在处理卷,但我真的不知道处理它们的最佳方法是什么。需要注意的重要一点是,我只对上下表面平行的体积感兴趣(没有金字塔,没有复杂的数字,只有prisms) 我想到的第一个想法是创建一个由 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 形状将是用户的功能。

【问题讨论】:

    标签: javascript 3d google-earth-plugin


    【解决方案1】:

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

    详情请见https://developers.google.com/kml/documentation/kml_tut#polygons

    我还建议您查看实用程序库 - 它使这样的事情更加简洁。例如,请参阅此挤压多边形示例:http://earth-api-utility-library.googlecode.com/svn/trunk/extensions/examples/poly-draw-extruded.html

    【讨论】:

    • 我从 API 中读到 setExtrude(true) 使 ploygon 连接到地面。是否可以让上下多边形都有自定义高度?
    • 有点。您还可以使用 gx:altitudeOffset 来提升多边形的每个 LinearRings(类似于直接影响多边形):developers.google.com/kml/documentation/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-18
    • 2023-03-26
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多