读取数据库中的多个经纬度,有可能是线,也有可能是面,根据多个经纬度组成来进行绘制的,超图有没有这个绘制的接口,目前我使用entities没有成功??
数据库连接条件:一条数据有多个每个123456数字都有一个经纬度高,表示1和2连接,2和3连接,3和4连接......
有什么绘制方法吗???
您好,
对于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。
如果是单纯的现有数据直接构造的话,推荐还是使用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里的描述根据自己的需求和理解去使用的。
突然间天地图加载不出来了什么情况?? 浏览器控制台: