| | |
| | | var drawGrid = { |
| | | id: "Rectangle", |
| | | drawRect: function () { |
| | | this.handler = new Cesium.ScreenSpaceEventHandler(viewer.canvas); |
| | | this.handler = new Cesium.ScreenSpaceEventHandler(Viewer.canvas); |
| | | var points = []; |
| | | var shape = this.renderRect(points); |
| | | var step = 0; |
| | | var $this = this; |
| | | |
| | | this.handler.setInputAction(function (e) { |
| | | var cartesian = viewer.scene.pickPosition(e.position); |
| | | var cartesian = Viewer.scene.pickPosition(e.position); |
| | | if (!Cesium.defined(cartesian)) { |
| | | var ray = viewer.camera.getPickRay(e.position); |
| | | cartesian = viewer.scene.globe.pick(ray, viewer.scene); |
| | | var ray = Viewer.camera.getPickRay(e.position); |
| | | cartesian = Viewer.scene.globe.pick(ray, Viewer.scene); |
| | | } |
| | | points[step] = cartesian; |
| | | step++; |
| | |
| | | } |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | this.handler.setInputAction(function (e) { |
| | | var cartesian = viewer.scene.pickPosition(e.startPosition); |
| | | var cartesian = Viewer.scene.pickPosition(e.startPosition); |
| | | if (!Cesium.defined(cartesian)) { |
| | | var ray = viewer.camera.getPickRay(e.startPosition); |
| | | cartesian = viewer.scene.globe.pick(ray, viewer.scene); |
| | | var ray = Viewer.camera.getPickRay(e.startPosition); |
| | | cartesian = Viewer.scene.globe.pick(ray, Viewer.scene); |
| | | } |
| | | points[2] = cartesian; |
| | | }, Cesium.ScreenSpaceEventType.MOUSE_MOVE); |
| | | }, |
| | | renderRect: function (points) { |
| | | var shape = viewer.entities.add({ |
| | | var shape = Viewer.entities.add({ |
| | | id: this.id, |
| | | polygon: { |
| | | hierarchy: new Cesium.CallbackProperty(function () { |
| | |
| | | return shape; |
| | | }, |
| | | drawPoint: function ( res) { |
| | | var rect = viewer.entities.getById(this.id); |
| | | var rect = Viewer.entities.getById(this.id); |
| | | if (!rect) return; |
| | | |
| | | var points = rect.polygon.hierarchy.getValue().positions; |
| | |
| | | var op = { units: "meters", }; |
| | | |
| | | var arr = [p0.geometry.coordinates]; |
| | | |
| | | // for (var i = 1; i < wCount; i++) { |
| | | // var dest = turf.destination(p0, wStep * i, wAngle, op); |
| | | // arr.push(dest.geometry.coordinates); |
| | | // } |
| | | |
| | | for (var i = 1; i < wCount; i++) { |
| | | var dest = turf.destination(p0, wStep * i, wAngle, op); |
| | | arr.push(dest.geometry.coordinates); |
| | | } |
| | | |
| | | // for (var i = 0; i < wCount; i++) { |
| | | // var p = arr[i]; |
| | | // for (var j = 1; j < hCount; j++) { |
| | | // var dest = turf.destination(p, hStep * j, hAngle, op); |
| | | // arr.push(dest.geometry.coordinates); |
| | | // } |
| | | // } |
| | | for (var i = 0; i < wCount; i++) { |
| | | var p = arr[i]; |
| | | for (var j = 1; j < hCount; j++) { |
| | | var dest = turf.destination(p, hStep * j, hAngle, op); |
| | | arr.push(dest.geometry.coordinates); |
| | | } |
| | | } |
| | | |
| | | console.log(arr); |
| | | // 显示点 |
| | | // for (var i = 0; i < arr.length; i++) { |
| | | // var p = arr[i]; |
| | | // console.log(arr[i]) |
| | | // viewer.entities.add({ |
| | | // Viewer.entities.add({ |
| | | // name: "点", |
| | | // show: true, |
| | | // position: Cesium.Cartesian3.fromDegrees(p[0], p[1], 0), |