首页 / 浏览问题 / 三维GIS / 问题详情
entities 根据多个经纬度绘制线、面
72EXP 2022年08月09日

读取数据库中的多个经纬度,有可能是线,也有可能是面,根据多个经纬度组成来进行绘制的,超图有没有这个绘制的接口,目前我使用entities没有成功??

数据库连接条件:一条数据有多个每个123456数字都有一个经纬度高,表示1和2连接,2和3连接,3和4连接......

有什么绘制方法吗???

1个回答

您好,

对于WbgGL前端

三维场景中的绘制接口,建议使用:DrawHandle

http://support.supermap.com.cn:8090/webgl/web/apis/3dwebgl.html   搜索DrawHandle)

详情示例可以查看http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#drawHandler

如果您这边询问的是.net或者java问题,建议重新提问,选择组件GIS。

4,151EXP 2022年08月09日
我的功能和这个网页上面的场景很相似,我不是通过手动画的,就是通过经纬度组合成一个房屋或者公园并且上面放置树的图标,还有公路,这个是要怎么添加呢

如果是单纯的现有数据直接构造的话,推荐还是使用entity的方法。

至于您所说的没有成功,是没有反应还是有报错呢?

您看一下以下语句和您的构造语句有没有什么大同小异的地方?

viewer.entities.add({
                polygon: {
                    hierarchy: [{x: -2179173.6248775073, y: 4380554.24140956, z: 4091791.297742438}, {x: -2179517.9298555637, y: 4379862.870050267, z: 4092332.813300941}, {x: -2179815.670921358, y: 4380450.821211974, z: 4091562.599614238}, {x: -2179389.486197441, y: 4380634.26631488, z: 4091576.278342084}],
                    material: Cesium.Color.CYAN.withAlpha(0.5),
                    // outline: false,
                    height: 10
                },

或者

viewer.entities.add({
    id: 'identify-area',
    name: '单体化标识面',
    polygon: {
        hierarchy: Cesium.Cartesian3.fromDegreesArray(lonLatArr),
        material: new Cesium.Color(1.0, 0.0, 0.0, 0.3),
    },
    clampToS3M: true // 贴在S3M模型表面
});

其中,lonLatArr 是用来存储点坐标的数组

   viewer.entities.add({
          name: 'nodeinfo',
          // polyline: {
          //   positions: Cesium.Cartesian3.fromDegrees(
          //     Number(object.lon),
          //     Number(object.lat),
          //     Number(object.height)),
          //   width: 1,
          //   material: Cesium.Color.WHITE,
          //   // distanceDisplayCondition: new Cesium.DistanceDisplayCondition(
          //   //   0,
          //   //   5000
          //   // ),
          // },
          polygon: {
            hierarchy:nodePositionArr,
            material: new Cesium.Color(1.0, 0.0, 0.0, 0.3),
          },
          clampToS3M: true  // 贴在S3M模型表面
        });

我之前是单个经纬度传递的,现在修改成您这种将经纬度存储为数组进行传递,现在不报错了,不过也看不到东西

您不要照搬代码。

根据您的需求和API中的描述去使用。

比如最后一句的

clampToS3M: true  // 贴在S3M模型表面

您确定您那边有S3M的模型吗?

还有其他的方法、属性、参数,这些是需要您看API里的描述根据自己的需求和理解去使用的。

突然间天地图加载不出来了什么情况??

浏览器控制台:

根据报错翻译来看,是访问时发生错误。

建议查看下方的链接是否能够正常访问。

浏览器建议使用谷歌浏览器。

代码方面,如果想要锁定是哪一行报错,建议使用debug功能确认。

最后,新的问题建议您这边进行新的提问。

描述清楚报错的内容,位置,以及进行了哪些操作。这样方便我们更快的给予您支持。
ok,好的谢谢
...