From f460702d6d59be9e53f3b16bf183814567f881c0 Mon Sep 17 00:00:00 2001
From: lixuliang <lixuliang_hd@126.com>
Date: 星期五, 13 十月 2023 17:33:06 +0800
Subject: [PATCH] rpc

---
 src/assets/js/rpc.js |  274 ++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 180 insertions(+), 94 deletions(-)

diff --git a/src/assets/js/rpc.js b/src/assets/js/rpc.js
index 6a1dcaf..01f6583 100644
--- a/src/assets/js/rpc.js
+++ b/src/assets/js/rpc.js
@@ -6,7 +6,8 @@
     liushisijiayuanqudizhibianmafuwu,
     findAddressCandidates,
     getDiKuanFanWei,
-    ent_selectByName
+    ent_selectByName,
+    shengwuSearch
 } from "../../api/api";
 import vueEvents from "@/utils/vueEvent.js";
 let PoiLayerConstructor = Vue.extend(coord);
@@ -25,9 +26,30 @@
     pointerFly: null, //瀹氱偣婕父
     isShow: false,
     objArr: [],
+    pointrange: null,
+
     //鍏抽敭瀛楁煡璇�
     getFuzzyQuery(res) {
-        store.queryLayer.val = res.message;
+        if (res.message.indexOf('濂旈┌') > -1) {
+            store.queryLayer.val = '濂旈┌鍏徃'
+        } else if (res.message.indexOf('浜笢') > -1) {
+            store.queryLayer.val = '浜笢'
+        } else if (res.message.indexOf('灏忕背') > -1) {
+            store.queryLayer.val = '灏忕背'
+        } else if (res.message.indexOf('鍗氬ぇ') > -1) {
+            store.queryLayer.val = '鍗氬ぇ澶у帵'
+        } else if (res.message.indexOf('淇℃伅鎶�鏈�') > -1) {
+            store.queryLayer.val = '淇℃伅鎶�鏈�'
+        } else if (res.message.indexOf('鐢熺墿鍖昏嵂') > -1) {
+            store.queryLayer.val = '鐢熺墿鍖昏嵂'
+        } else if (res.message.indexOf('鏈哄櫒浜�') > -1) {
+            store.queryLayer.val = '鏈哄櫒浜�'
+        } else if (res.message.indexOf('姹借溅') > -1) {
+            store.queryLayer.val = '姹借溅'
+        } else {
+            store.queryLayer.val = res.message;
+        }
+
         this.setClearAllMsg();
         if (!res.baidu_keys) return;
         var flag = true;
@@ -70,89 +92,158 @@
 
             this.dataQuery = [];
             this.objArr = [];
+            this.pointrange = 6000;
             for (var i = 0; i < length; i++) {
                 var world = keyWorld[i].word;
-                console.log("world", world);
+                // if (world == '濂旈┌') return
+                if (world.indexOf('濂旈┌鍏徃') > -1) {
+                    world = '濂旈┌';
+                    this.pointrange = 12000
+                } else if (world.indexOf('浜笢') > -1) {
+                    world = '浜笢'
+                } else if (world.indexOf('灏忕背') > -1) {
+                    world = '灏忕背'
+                } else if (world.indexOf('鍗氬ぇ澶у帵') > -1) {
+                    world = '鍗氬ぇ澶у帵'
+                } else if (world.indexOf('淇℃伅鎶�鏈�') > -1) {
+                    world = '淇℃伅鎶�鏈�'
+                } else if (world.indexOf('鐢熺墿鍖昏嵂') > -1) {
+                    world = '鐢熺墿鍖昏嵂'
+                } else if (world.indexOf('鏈哄櫒浜�') > -1) {
+                    world = '鏈哄櫒浜�'
+                } else if (world.indexOf('姹借溅') > -1) {
+                    world = '姹借溅'
+                }else if (world.indexOf('鍥�') > -1) {
+                   
+                }else if (world.indexOf('鍗氬ぇ') > -1 && world.indexOf('鍗氬ぇ澶у帵') == -1){
+                    world = '鍗氬ぇ'
+                } else{
+                    continue
+                }
                 this.setFuzzyQueryData(world, i, length - 1);
             }
         }
     },
     async setFuzzyQueryData(res, index, length) {
-        Promise.all([
-            ent_selectByName(res), //浼佷笟
-            liushisijiayuanqudizhibianmafuwu(res), //鍥尯
-            findAddressCandidates(res) //鍦板潡
-        ]).then(result => {
-            var that = this;
-            store.queryLayer.data = [];
-            //浼佷笟
-            var EntArr = result[0].result.filter(item => {
-                return item.entName.includes(res);
-            });
-            EntArr.forEach(val => {
-                let itemObj = {
-                    type: "浼佷笟",
-                    name: val.entName,
-                    address: val.address,
-                    lon: val.x,
-                    lat: val.y
-                };
-                that.objArr.push(itemObj);
-            });
-            //鍥尯
-            var YQArr = result[1].features.filter(item => {
-                return item.properties.YQmingchen.includes(res);
-            });
+        if (res == "淇℃伅鎶�鏈�" || res == "鐢熺墿鍖昏嵂" || res == "鏈哄櫒浜�" || res == "姹借溅") {
+            shengwuSearch(res).then(result => {
+                var that = this; 
+                store.queryLayer.data = [];
+                result.features.forEach(val => {
+                    let itemObj = {
+                        type: "鍥尯",
+                        name: val.properties.YQmingchen,
+                        address: val.properties.YQdizhi,
+                        lon: val.properties.longtitude,
+                        lat: val.properties.latitude,
+                        geom: val.geometry.coordinates[0].flat()
 
-            YQArr.forEach(val => {
-                let itemObj = {
-                    type: "鍥尯",
-                    name: val.properties.YQmingchen,
-                    address: val.properties.YQdizhi,
-                    lon: val.geometry.coordinates[0],
-                    lat: val.geometry.coordinates[1],
-                    geom: val.properties.Coor1 + val.properties.Coor2
-
-                };
-                that.objArr.push(itemObj);
-            });
-            //鍦板潡
-            var LandArr = result[2].candidates.filter((item) => {
-                return item.attributes.QYMC.includes(res);
-            })
-            // 缁撴灉鏍规嵁QYMC浠庣煭鍒伴暱鎺掑簭
-            LandArr.sort((a, b) => (b.attributes.QYMC.length === a.attributes.QYMC.length ? 0 : a.attributes.QYMC.length > b.attributes.QYMC.length ? 1 : -1))
-            LandArr.forEach((val) => {
-                let itemObj = {
-                    type: "鍦板潡",
-                    name: val.attributes.QYMC,
-                    area: val.attributes.area,
-                    code: val.attributes["鍦板潡缂�"],
-                    lon: val.location.x,
-                    lat: val.location.y,
-                };
-                that.objArr.push(itemObj);
-            });
-            if (index == length) {
-                if (that.objArr.length <= 0) {
-
-                    vueEvents.$emit("queryData", true);
-                    return;
-                }
-                var num = that.objArr.length;
-                for (var i = 0; i < num; i++) {
-                    if (i < 6) {
-                        that.dataQuery.push(that.objArr[i]);
+                    };
+                    that.objArr.push(itemObj);
+                });
+                if (index == length) {
+                    if (that.objArr.length <= 0) {
+                        vueEvents.$emit("queryData", true);
+                        return;
                     }
+                    var num = that.objArr.length;
+                    for (var i = 0; i < num; i++) {
+                        if (i < 6) {
+                            that.dataQuery.push(that.objArr[i]);
+                        }
+                    }
+                    store.queryLayer.data = that.dataQuery;
+                    that.setClearAllMsg();
+                    setTimeout(() => {
+                        vueEvents.$emit("queryData", true);
+                        that.setLocation(that.dataQuery[0]);
+                    }, 1000);
                 }
-                store.queryLayer.data = that.dataQuery;
-                that.setClearAllMsg();
-                setTimeout(() => {
-                    vueEvents.$emit("queryData", true);
-                    that.setLocation(that.dataQuery[0]);
-                }, 1000);
-            }
-        });
+            })
+        } else {
+            Promise.all([
+                ent_selectByName(res), //浼佷笟
+                liushisijiayuanqudizhibianmafuwu(res), //鍥尯
+                findAddressCandidates(res),//鍦板潡,
+            ]).then(result => {
+                var that = this;
+                store.queryLayer.data = [];
+                //浼佷笟
+                var EntArr = result[0].result.filter(item => {
+                    return item.entName.includes(res);
+                });
+                EntArr.forEach(val => {
+                    let itemObj = {
+                        type: "浼佷笟",
+                        name: val.entName,
+                        address: val.address,
+                        lon: val.x,
+                        lat: val.y
+                    };
+                    that.objArr.push(itemObj);
+                });
+                //鍥尯
+                var YQArr = result[1].features.filter(item => {
+                    return item.properties.YQmingchen.includes(res);
+                });
+
+                YQArr.forEach(val => {
+                    let itemObj = {
+                        type: "鍥尯",
+                        name: val.properties.YQmingchen,
+                        address: val.properties.YQdizhi,
+                        lon: val.properties.longtitude,
+                        lat: val.properties.latitude,
+                        geom: val.geometry.coordinates[0].flat()
+                        // lon: val.geometry.coordinates[0],
+                        // lat: val.geometry.coordinates[1],
+                        // geom: val.properties.Coor1 + val.properties.Coor2
+
+                    };
+                    that.objArr.push(itemObj);
+                });
+                //鍦板潡
+                var LandArr = result[2].candidates.filter((item) => {
+                    return item.attributes.QYMC.includes(res);
+                })
+                // 缁撴灉鏍规嵁QYMC浠庣煭鍒伴暱鎺掑簭
+                LandArr.sort((a, b) => (b.attributes.QYMC.length === a.attributes.QYMC.length ? 0 : a.attributes.QYMC.length > b.attributes.QYMC.length ? 1 : -1))
+                LandArr.forEach((val) => {
+                    let itemObj = {
+                        type: "鍦板潡",
+                        name: val.attributes.QYMC,
+                        area: val.attributes.area,
+                        code: val.attributes["鍦板潡缂�"],
+                        lon: val.location.x,
+                        lat: val.location.y,
+                    };
+                    that.objArr.push(itemObj);
+                });
+
+                if (index == length) {
+                    if (that.objArr.length <= 0) {
+
+                        vueEvents.$emit("queryData", true);
+                        return;
+                    }
+                    var num = that.objArr.length;
+                    for (var i = 0; i < num; i++) {
+                        if (i < 6) {
+                            that.dataQuery.push(that.objArr[i]);
+                        }
+                    }
+                    store.queryLayer.data = that.dataQuery;
+                    that.setClearAllMsg();
+                    setTimeout(() => {
+                        vueEvents.$emit("queryData", true);
+                        that.setLocation(that.dataQuery[0]);
+                    }, 1000);
+                }
+            });
+        }
+
+
+
     },
 
     getFuzzyQueryData(res, index, length, flag) {
@@ -180,17 +271,18 @@
     },
     // 鏄剧ず鍦板潡鑼冨洿
     getLandmass(res) {
-
         let that = this;
         if (res.type == "鍥尯") {
-            var geom = res.geom.split(',');
+            this.setDrawPolyExtent(res.geom)
 
-            var coord = [];
-            for (var i in geom) {
-                coord.push(parseFloat(geom[i]))
-            }
-            this.setDrawPolyExtent(coord)
-        } else if (res.type == "鍦板潡") {
+            // var geom = res.geom.split(',');
+
+            // var coord = [];
+            // for (var i in geom) {
+            //     coord.push(parseFloat(geom[i]))
+            // }
+            // this.setDrawPolyExtent(coord)
+        } else if (res.type == "鍦板潡" || res.type == "浼佷笟") {
             getDiKuanFanWei(res.lon, res.lat).then(response => {
                 let center = { lon: 0, lat: 0 };
                 let polygon = that.read(response.geometry);
@@ -231,7 +323,6 @@
             }
         })
     },
-
     read(wkt) {
         var regExes = {
             typeStr: /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/,
@@ -432,7 +523,6 @@
 
         return geometry;
     },
-
     //鍦板浘澶嶄綅
     setMapRest() {
         const data = mapData.mapRest;
@@ -450,7 +540,6 @@
             duration: 8 //椋炶鏃堕棿8s
         });
     },
-
     //鍔ㄧ敾瀵艰埅
     setLineRoaming() {
         var valdata = mapData.animaNavigation;
@@ -462,13 +551,13 @@
             geom.push(valdata[i].lng, valdata[i].lat, valdata[i].height);
         }
 
-        var that = this;
+        var that = this; 
         sgworld.Creator.getFlyData(geom, data => {
             data.showPoint = false;
             data.showLine = false;
             data.mode = 1;
             data.pitch = -10;
-            data.height = 75;
+            data.height = 500;
             data.speed = 25;
 
             that.LineRoaming = sgworld.Creator.createDynamicObject(
@@ -521,7 +610,6 @@
         //鑼冨洿璋冪敤
         this.getLandmass(res);
     },
-
     setAddPointLocation(res) {
         // 娓呴櫎鏂规硶
         store.setlocalLayerShowAction(false);
@@ -561,9 +649,9 @@
         });
         window.Viewer.flyTo(this.position, {
             offset: {
-                heading: Cesium.Math.toRadians(0.0),
-                pitch: Cesium.Math.toRadians(-30),
-                range: 1500
+                heading: Cesium.Math.toRadians(-200),
+                pitch: Cesium.Math.toRadians(-45),
+                range: this.pointrange
             },
             duration: 3
         });
@@ -789,8 +877,6 @@
         this.setClearPointFly();
         vueEvents.$emit("queryLayer", false);
     },
-
-
     setLacationLineClear() {
         if (this.lacationLine) {
             Viewer.entities.remove(this.lacationLine)

--
Gitblit v1.9.3