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 | 211 +++++++++++++++++++++++++++------------------------- 1 files changed, 108 insertions(+), 103 deletions(-) diff --git a/src/components/viewer2.vue b/src/components/viewer2.vue index 24b7784..4a27409 100644 --- a/src/components/viewer2.vue +++ b/src/components/viewer2.vue @@ -3,20 +3,12 @@ <!-- openlayer --> <div id="openlayerContainer" @click="clicktoclose"></div> - <div id="ponitPanel"> - <div class="title">鐐逛綅璇︽儏</div> - <div class="content"> - - </div> - - </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" /> @@ -32,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> @@ -65,9 +57,9 @@ </template> <script> import store from "@/utils/store2.js"; -import { setClick } from '@/utils/map2.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"; @@ -84,19 +76,30 @@ 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 poplayer from "./poplayer/main.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", @@ -120,7 +123,7 @@ "my-history": history, "my-land-admin-info": landAdminInfo, "my-slider": sliderAlpha, - "my-poplayer": poplayer + "my-poplayer": mainPoplayer, }, data() { return { @@ -146,9 +149,7 @@ 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) { @@ -162,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 = []; @@ -182,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, @@ -191,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", @@ -202,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", @@ -219,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", @@ -236,31 +241,50 @@ 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; - setClick(true) + 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); @@ -317,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) { @@ -391,7 +415,7 @@ width: 100%; height: 100%; background: black; - position: absolute !important; + /* position: absolute !important; */ z-index: 0; } @@ -427,23 +451,4 @@ .colseBtn img { width: 30px; } - -#ponitPanel { - width: 80vw; - background-repeat: no-repeat; - background-size: 100% 100%; - background-image: url("./poplayer/img/bg.png"); - z-index: 999; - color: #fff; - font-family: SourceHanSansSC-R; - padding: 10px 5px 10px 5px; - box-sizing: border-box; - font-size: 16px; - pointer-events: all; - position: absolute; - bottom: 12px; - left: -50px; -} - - </style> -- Gitblit v1.9.3