From 065669d31914a2f65c48d351417f48e49bd79c0c Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期三, 13 三月 2024 11:30:46 +0800 Subject: [PATCH] Merge branch 'master' of http://103.135.160.14:9034/r/PM20221203225_MobileWeb --- src/components/viewer2.vue | 192 ++++++++++++++++++++++++++++------------------- 1 files changed, 115 insertions(+), 77 deletions(-) diff --git a/src/components/viewer2.vue b/src/components/viewer2.vue index 158d9f6..4a27409 100644 --- a/src/components/viewer2.vue +++ b/src/components/viewer2.vue @@ -4,11 +4,11 @@ <div id="openlayerContainer" @click="clicktoclose"></div> <!-- 椤甸潰鏍囬 --> - <div class="titleBg"> + <!-- <div class="titleBg"> <img src="@/assets/img/title/title.png" /> - </div> + </div> --> <!-- 鍘嗗彶褰卞儚 --> - <!-- <my-history v-if="state.show"></my-history> --> + <my-history v-if="state.show"></my-history> <!-- 鍘嗗彶褰卞儚鍏抽棴鎸夐挳 --> <!-- <div class="colseBtn" v-if="state.show" @click="closeHistory(false)"> <img class="searchBtn" src="@/assets/closeinput1.png" /> @@ -24,7 +24,7 @@ <!-- 鍘熷乏涓嬭彍鍗� --> <!-- <my-menu v-on:getshowsta="datafromchild" ref="menu"></my-menu> --> <!-- 宸︿笅蹇嵎鍖哄煙锛堝浣嶃�佹寚鍖楃瓑锛� --> - <my-left-bottom :test="childrendata"></my-left-bottom> + <!-- <my-left-bottom :test="childrendata"></my-left-bottom> --> <!-- 鍙充笅蹇嵎鍖哄煙锛堟斁澶х缉灏忥級 --> <my-right-bottom :test="childrendata"></my-right-bottom> @@ -52,13 +52,14 @@ <!-- 鍦熷湴绠$悊寮圭獥 --> <my-land-admin-info></my-land-admin-info> <my-slider></my-slider> + <my-poplayer></my-poplayer> </div> </template> <script> import store from "@/utils/store2.js"; - +import { setClick, leftClick, touchClick } from "@/utils/map2.js"; import _GLOBAL from "@/assets/GLOBAL2"; -import { leftClick, loadLayer } from "@/utils/map.js"; +// import { leftClick, loadLayer } from "@/utils/map.js"; import leftBottom from "@/components/leftMenu/bottom2.vue"; import rightBottom from "@/components/rightMenu/bottom2.vue"; import sousuo from "@/components/leftMenu/sousuo2.vue"; @@ -66,27 +67,39 @@ import NavigationBar from "./rightNavigation/NavigationBar2.vue"; import layertree from "@/components/rightMenu/layerTree2.vue"; import settingPanel from "./sideMenu/settingMenu/main.vue"; -import collectionPanel from "./sideMenu/collectionMenu/main.vue"; +import collectionPanel from "./sideMenu/collectionMenu/main2.vue"; import directionPanel from "./sideMenu/directionMenu/main.vue"; -import addCollectionPanel from "./sideMenu/addCollectionMenu/main.vue"; +import addCollectionPanel from "./sideMenu/addCollectionMenu/main2.vue"; import statisticsPanel from "./sideMenu/statisticsMenu/main.vue"; import manholePanel from "./sideMenu/manholeStatistics/main.vue"; import videoPanel from "./sideMenu/videoStatistics/main.vue"; import layerPanel from "./sideMenu/layerMenu/main2.vue"; import roamPanel from "./sideMenu/roamPanel/main.vue"; import layerTreePanel from "./sideMenu/layerTreePanel/main2.vue"; -import history from "./poplayer/history.vue"; -import landAdminInfo from "./poplayer/landAdmin.vue"; -import sliderAlpha from "./sideMenu/sliderAlpha/main.vue"; +import history from "./poplayer/history2.vue"; +import landAdminInfo from "./poplayer/landAdmin2.vue"; +import mainPoplayer from "./poplayer/poplayer2.vue"; +import sliderAlpha from "./sideMenu/sliderAlpha/main2.vue"; import Axios from "axios"; - -import Map from "ol/Map.js"; -import TileLayer from "ol/layer/Tile.js"; -import View from "ol/View.js"; -import { get as getProjection, getTransform } from "ol/proj"; -import { getWidth, getTopLeft, applyTransform } from "ol/extent"; -import WMTS from "ol/source/WMTS"; -import WMTSTileGrid from "ol/tilegrid/WMTS"; +import { + addImageLayer, + addAnnotationLayer, + addHxLayer, + addYzLayer, + loadBaseMap, + loadGeoMap, + listenDirection, + getCurrentPosition +} from "@/utils/tool"; +// import Map from "ol/Map.js"; +// import TileLayer from "ol/layer/Tile.js"; +// import View from "ol/View.js"; +// import { get as getProjection, getTransform } from "ol/proj"; +// import { getWidth, getTopLeft, applyTransform } from "ol/extent"; +// import WMTS from "ol/source/WMTS"; +// import WMTSTileGrid from "ol/tilegrid/WMTS"; +// import XYZ from "ol/source/XYZ"; +// import {createXYZ} from "ol/tilegrid"; export default { name: "viewer2", @@ -110,6 +123,7 @@ "my-history": history, "my-land-admin-info": landAdminInfo, "my-slider": sliderAlpha, + "my-poplayer": mainPoplayer, }, data() { return { @@ -132,12 +146,10 @@ state: store.history, }; }, - created() {}, + created() { }, mounted() { this.$nextTick(function () { - console.log("openlayer init"); - - Map.prototype.getLayerByName = function (name) { + ol.Map.prototype.getLayerByName = function (name) { var layer; this.getLayers().array_.forEach(function (lyr) { if (name == lyr.values_.name) { @@ -151,19 +163,23 @@ const TDTKey = "f234b950740b8c2e0d9959a51c169d21"; const tiandituUrl = "http://t0.tianditu.gov.cn"; - let options = { proj: "EPSG:4326", layer: "img", matrixSets: "c" }; + let options = { proj: "EPSG:3857", layer: "img", matrixSets: "c" }; let _proj = options.proj; let _layer = options.layer; let _key = TDTKey; let _matrixSets = options.matrixSets; - let projection = getProjection(_proj); + let projection = ol.proj.get(_proj); let projectionExtent = projection.getExtent(); - let origin = projectionExtent ? getTopLeft(projectionExtent) : [-180, 90]; - let fromLonLat = getTransform("EPSG:4326", projection); + let origin = projectionExtent + ? ol.extent.getTopLeft(projectionExtent) + : [-180, 90]; + let fromLonLat = ol.proj.getTransform("EPSG:3857", projection); let width = projectionExtent - ? getWidth(projectionExtent) - : getWidth(applyTransform([-180.0, -90.0, 180.0, 90.0], fromLonLat)); + ? ol.extent.getWidth(projectionExtent) + : ol.extent.getWidth( + ol.extent.applyTransform([-180.0, -90.0, 180.0, 90.0], fromLonLat) + ); let resolutions = []; let matrixIds = []; @@ -171,7 +187,7 @@ resolutions[z] = width / (256 * Math.pow(2, z)); matrixIds[z] = z; } - let wmtsTileGrid = new WMTSTileGrid({ + let wmtsTileGrid = new ol.tilegrid.WMTS({ origin: origin, resolutions: resolutions, matrixIds: matrixIds, @@ -180,7 +196,7 @@ "url:", `${tiandituUrl}/${_layer}_${_matrixSets}/wmts?tk=${_key}` ); - let wmtsSource = new WMTS({ + let wmtsSource = new ol.source.WMTS({ url: `${tiandituUrl}/${_layer}_${_matrixSets}/wmts?tk=${_key}`, layer: _layer, version: "1.0.0", @@ -191,13 +207,13 @@ style: "default", tileGrid: wmtsTileGrid, }); - let wmtsLayer = new TileLayer({ + let wmtsLayer = new ol.layer.Tile({ name: "褰卞儚鍦板浘", id: _layer + "_" + _matrixSets, source: wmtsSource, }); - let wmtsSource1 = new WMTS({ + let wmtsSource1 = new ol.source.WMTS({ url: `${tiandituUrl}/cia_${_matrixSets}/wmts?tk=${_key}`, layer: "cia", version: "1.0.0", @@ -208,13 +224,13 @@ style: "default", tileGrid: wmtsTileGrid, }); - let wmtsLayer1 = new TileLayer({ + let wmtsLayer1 = new ol.layer.Tile({ name: "璺綉鍥惧眰", id: "cia_c", source: wmtsSource1, }); - let wmtsSource2 = new WMTS({ + let wmtsSource2 = new ol.source.WMTS({ url: `${tiandituUrl}/vec_c/wmts?tk=${_key}`, layer: "vec", version: "1.0.0", @@ -225,30 +241,49 @@ style: "default", tileGrid: wmtsTileGrid, }); - let wmtsLayer2 = new TileLayer({ + let wmtsLayer2 = new ol.layer.Tile({ name: "浜岀淮鍦板浘", id: "cva_c", source: wmtsSource2, }); - wmtsLayer2.setVisible(false); - ////鍗槦褰卞儚 - layers.push(wmtsLayer); + // wmtsLayer2.setVisible(false); ////浜岀淮鍦板浘 - layers.push(wmtsLayer2); + // layers.push(wmtsLayer2); + ////鍗槦褰卞儚 + // layers.push(wmtsLayer); ////璺綉 - layers.push(wmtsLayer1); + // layers.push(wmtsLayer1); - const map = new Map({ + const map = new ol.Map({ layers: layers, target: "openlayerContainer", - view: new View({ - center: [116.505348, 39.795592], - projection: "EPSG:4326", - zoom: 12, + view: new ol.View({ + center: ol.proj.fromLonLat([116.505348, 39.795592]), + projection: "EPSG:3857", + zoom: 11.5, + minZoom: 7, + maxZoom: 19.5, + enableRotation: false, + // constrainResolution: true, + smoothResolutionConstraint: false, }), }); - window.map = map; + window.mapapi = map; + // addImageLayer(); + // addAnnotationLayer(); + window.mapapi.getView().setZoom(14); + loadGeoMap(); + loadBaseMap(); + addHxLayer(); + addYzLayer(); + + setClick(true); + touchClick(); + + getCurrentPosition(); + listenDirection(); + // leftClick() window.layerOpen = function (name, options) { layuiLayer.close(SmartEarthPopupData.layerProp); @@ -306,34 +341,34 @@ }, methods: { clicktoclose() { - clearTimeout(this.timer); - this.timer = setTimeout(() => { - this.count++; - if (this.count == 2) { - // console.log("鍗曞嚮浜嬩欢"); - // 鍏抽棴鎵�鏈夊脊绐� - //this.$refs.menu.closeall(); - // 娓呴櫎瀹氫綅涓殑浣嶇疆鏍囪 - //this.$refs.menu.clearFlyPoint(); - } else { - // 鎵ц鏀惧ぇ鎿嶄綔 - // console.log("鍙屽嚮"); - // Viewer.camera.zoomIn(); - // console.log(window.clickPOI); - let p = sgworld.Navigate.getDegrees(); - // console.log(p); - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees( - window.clickPOI.lon, - window.clickPOI.lat, - p.height / 1.8 - ), - duration: 1.0, - }); - } - this.count = 0; - }, 300); - this.count++; + // clearTimeout(this.timer); + // this.timer = setTimeout(() => { + // this.count++; + // if (this.count == 2) { + // // console.log("鍗曞嚮浜嬩欢"); + // // 鍏抽棴鎵�鏈夊脊绐� + // //this.$refs.menu.closeall(); + // // 娓呴櫎瀹氫綅涓殑浣嶇疆鏍囪 + // //this.$refs.menu.clearFlyPoint(); + // } else { + // // 鎵ц鏀惧ぇ鎿嶄綔 + // // console.log("鍙屽嚮"); + // // Viewer.camera.zoomIn(); + // // console.log(window.clickPOI); + // // let p = sgworld.Navigate.getDegrees(); + // // console.log(p); + // // Viewer.camera.flyTo({ + // // destination: Cesium.Cartesian3.fromDegrees( + // // window.clickPOI.lon, + // // window.clickPOI.lat, + // // p.height / 1.8 + // // ), + // // duration: 1.0, + // // }); + // } + // this.count = 0; + // }, 300); + // this.count++; }, datafromchild(data) { for (var i in data) { @@ -366,7 +401,7 @@ console.log(window.gisBaseUrl); Axios.get( window.gisBaseUrl + - "/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�" + "/gisserver/wfsserver/qiyelianqiye?version=1.3.0&request=GetFeature&format=json&typename=浼佷笟閾句紒涓�" ).then((res) => { console.log(res); }); @@ -380,7 +415,8 @@ width: 100%; height: 100%; background: black; - position: absolute !important; + /* position: absolute !important; */ + z-index: 0; } .titleBg { @@ -404,12 +440,14 @@ .bottomLeft { display: none; } + .colseBtn { position: absolute; z-index: 2; top: 0.55rem; left: 0.2rem; } + .colseBtn img { width: 30px; } -- Gitblit v1.9.3