cesium多边形描边_Cesium绘制点、线、面、圆、矩形

本文介绍了如何使用Cesium在三维球面上通过鼠标绘制点、线、面、矩形和圆形,并提供了详细的代码实现,包括监听鼠标点击和移动事件,以及将坐标转换为WGS84坐标系的方法。

本文基于《基于Webpack的Cesium+Vue应用》文章,在此基础之上,进行功能的扩展。本文主要讲解如何在Cesium三维球上用鼠标绘制点、线、面、矩形。

1、搭建项目结构

image.png

2、MainViewer.vue代码

import Cesium from 'cesium/Source/Cesium.js'

import buildModuleUrl from "cesium/Source/Core/buildModuleUrl"

import "cesium/Source/Widgets/widgets.css";

import CesiumViewer from './CesiumViewer.vue'

export default {

name: 'MainViewer',

components:{CesiumViewer},

data () {

return {

viewer:''

}

},

mounted:function(){

//设置静态资源目录

buildModuleUrl.setBaseUrl('../../static/Cesium/');

//创建viewer实例

this.viewer = new Cesium.Viewer('cesiumContainer',{

animation: false,

baseLayerPicker: false,

fullscreenButton: false,

geocoder: false,

homeButton: false,

sceneModePicker: false,

selectionIndicator: false,

timeline: false,

navigationHelpButton: false,

infoBox: false,

navigationInstructionsInitiallyVisible: false

});

this.viewer._cesiumWidget._creditContainer.style.display = "none"; //去掉logo

}

}

#mainDiv{

width:100%;

height:100%;

}

#cesiumContainer{

width:100%;

height:100%;

}

3、CesiumViewer.vue代码

画点

画线

画面

画矩形

画圆

清除

import Cesium from 'cesium/Source/Cesium.js'

import $ from 'jquery'

export default {

name: 'CesiumViewer',

props:['viewer'],

data () {

return {

removeImageryLayers:[]

}

},

mounted:function(){

var _this = this;

$("#pointBtn").bind('click',function(){

_this.drawPoint(function(positions){

var wgs84_positions = [];

for(var i=0; i

var wgs84_point = _this.Cartesian3_to_WGS84({

x: positions[i].x,

y: positions[i].y,

z: positions[i].z

});

wgs84_positions.push(wgs84_point);

}

console.log(wgs84_positions);

});

});

$("#lineBtn").bind('click',function(){

_this.drawLineString(function(positions){

var wgs84_positions = [];

for(var i=0; i

var wgs84_point = _this.Cartesian3_to_WGS84({

x: positions[i].x,

y: positions[i].y,

z: positions[i].z

});

wgs84_positions.push(wgs84_point);

}

console.log(wgs84_positions);

});

});

$("#polyBtn").bind('click',function(){

_this.drawPolygon(function(positions){

var wgs84_positions = [];

for(var i=0; i

var wgs84_point = _this.Cartesian3_to_WGS84({

x: positions[i].x,

y: positions[i].y,

z: positions[i].z

});

wgs84_positions.push(wgs84_point);

}

console.log(wgs84_positions);

});

});

$("#rectBtn").bind('click',function(){

_this.drawRect(function(positions){

var wgs84_positions = [];

for(var i=0; i

var wgs84_point = _this.Cartesian3_to_WGS84({

x: positions[i].x,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值