cesium |
您所在的位置:网站首页 › 如何使用地图测量距离 › cesium |
1、介绍
在cesium开发中经常会碰到绘制、测量的功能,发现每次都去写或者cv实在是麻烦。随即利用空闲时间将cesium中经常用到的绘制功能:线、多边形、圆形、矩形;测量功能:距离测量、面积测量、三角测量融合成了一个cesium-measure.js文件。 如何使用:1、下载js、放置到项目中、导入js 2、实例 const measure = new CesiumMeasures(viewer)3、调用 measure 中对应的方法 2、详细介绍该分js同时支持绘制和测量功能,通过measure控制,以多边形的绘制为例,介绍下每一个参数的含义: measure.drawAreaMeasureGraphics({ clampToGround: false, measure: true, style: { line: { width: 2, material: Cesium.Color.RED.withAlpha(0.8) }, point: { pixelSize: 5, outlineColor: Cesium.Color.BLUE, outlineWidth: 2 }, polygon: { material: Cesium.Color.GREEN.withAlpha(0.1) }, centerPoint: { pixelSize: 5, outlineColor: Cesium.Color.RED, outlineWidth: 2 } }, callback: (e) => { console.log(e, "88888888888"); } }) 1、clampToGround ---是否开启贴地功能,当设置了地图的地形并clampToGround==true时,图形会贴地 2、measure --- 是否开启测量功能、当为true后会开启测量功能并会显示在地图上 3、style --- 用于自定义地图中的点线面的样式--根据绘制的类型有不同的参数如下 3.1、point ---绘制的点的样式 3.2、line ---绘制的线的样式 3.3、polygon ---绘制的面的样式 3.4、centerPoint ---绘制的中线点的样式 3.5、circle ---绘制的圆的样式 4、callback ---绘制完返回都得数据--根据绘制的不同有如下的返回--(三角测量除外) 4.1、points --- 绘制的所有点的数据 4.2、entity --- 绘制的所有点线面的集合(你可以通过这个对绘制完的entity进行二次加工) 4.3、measure --- 开启测量功能会返回的测量值 距离(米),面积(平方米) 3、具体实现 3.1、cesium 绘制线以及距离测量 --- 懒得去开启地形了,直接上代码吧---有问题再私我 measure.drawTrianglesMeasureGraphics({ style: { line: { width: 2, material: Cesium.Color.BLUE.withAlpha(0.8) }, point: { pixelSize: 5, outlineColor: Cesium.Color.BLUE, outlineWidth: 5, show: true,//默认为true } }, callback: () => { } }) 3.4、 cesium绘制矩形和矩形面积测量(cesium中并没有计算圆的方法--所以是使用的Math.PI*r*r)来计算的(有可能有问题) 当然你也可以使用遍历图层,获取CustomDataSource名字为 measureLayer 的方式去移除 var dataSource = viewer.dataSources.getByName('measureLayer')[0]; // 确保数据源存在 if (Cesium.defined(dataSource)) { // 这里可以使用 dataSource 对象进行进一步的操作 console.log('成功获取到数据源:', dataSource); } else { console.log('未找到名为 measureLayer 的数据源。'); } 5、总结:如果在使用中有其他问题或者想要丰富的功能可以留言或者+QQ2933634771 开启地形的我没截图,需要实现的改下参数即可 如果gitup没以加QQ群 825493528 cesium-measure-draw.js的gitup地址 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |