suerprisePlus
2024-10-23 559f0776123a2205863b5787d5b8e1e012d397d3
src/assets/js/mapSdk/menuManager.js
@@ -263,31 +263,18 @@
                break;
            case 'a3':
                earthCtrl.factory.createSimpleGraphic('polyline', { showSize: false }, (entity) => {
                    // console.log(entity);
                    // const obj = entity.polyline.positions.getValue();
                    // var std = [];
                    // for (var i in obj) {
                    //     var ellipsoid =Viewer.scene.globe.ellipsoid;
                    //     // 将世界坐标转换为地理坐标(Cartographic)
                    //     var cartographic = ellipsoid.cartesianToCartographic(obj[i]);
                    //     // 获取经纬度
                    //     var longitude = Cesium.Math.toDegrees(cartographic.longitude);
                    //     var latitude = Cesium.Math.toDegrees(cartographic.latitude);
                    //     var height = 0;
                    //     std.push([longitude, latitude, height]);
                    // }
                    // console.log(std);
                    const obj = this.getWKtCoord(entity.polyline.positions.getValue());
                    console.log('polyline Wkt:' + obj);
                });
                break;
            case 'a4':
                earthCtrl.factory.createSimpleGraphic('rectangle', { showSize: false }, (entity) => {});
                break;
            case 'a5':
                earthCtrl.factory.createSimpleGraphic('polygon', { showSize: false }, (entity) => {});
                earthCtrl.factory.createSimpleGraphic('polygon', { showSize: false }, (entity) => {
                    const obj = this.getWKtCoord(entity.polygon.hierarchy.getValue().positions);
                    console.log('polygon Wkt:' + obj);
                });
                break;
            case 'a6':
                earthCtrl.factory.SimpleGraphic.clear();
@@ -297,6 +284,20 @@
        }
        return null;
    },
    getWKtCoord(obj) {
        var ellipsoid = Viewer.scene.globe.ellipsoid;
        var std = [];
        for (var i in obj) {
            // 将世界坐标转换为地理坐标(Cartographic)
            var cartographic = ellipsoid.cartesianToCartographic(obj[i]);
            // 获取经纬度
            var longitude = Cesium.Math.toDegrees(cartographic.longitude);
            var latitude = Cesium.Math.toDegrees(cartographic.latitude);
            var height = 0;
            std.push([longitude, latitude, height]);
        }
        return std;
    },
    // 测量
    setMenuS8(res) {
        const colorAll = this.colorAll;