11
lixuliang
2024-01-09 cbde2b4fb938ce62c204390544c52935906c8962
src/assets/js/Layer/drawGrid.js
@@ -3,17 +3,17 @@
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++;
@@ -23,16 +23,16 @@
            }
        }, 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 () {
@@ -89,7 +89,7 @@
        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;
@@ -117,24 +117,25 @@
        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),