From c922badd10ecf81a74b0e5c56d3fcd053c041ff2 Mon Sep 17 00:00:00 2001 From: ZhAkps <46207005+ZhAkps@users.noreply.github.com> Date: 星期二, 06 二月 2024 17:25:20 +0800 Subject: [PATCH] 土地管理详情 --- src/utils/map2.js | 194 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 161 insertions(+), 33 deletions(-) diff --git a/src/utils/map2.js b/src/utils/map2.js index 977fba4..e7cef48 100644 --- a/src/utils/map2.js +++ b/src/utils/map2.js @@ -1,10 +1,10 @@ -import { Feature } from "ol"; -import VectorLayer from "ol/layer/Vector"; -import VectorSource from "ol/source/Vector"; -import { Style, Icon, Fill, Stroke, Text, Circle as CircleStyle } from "ol/style"; -import { Point, LineString } from "ol/geom"; -import Overlay from 'ol/Overlay.js'; -import { unByKey } from "ol/Observable.js"; //绉婚櫎浜嬩欢 +// import { Feature } from "ol"; +// import VectorLayer from "ol/layer/Vector"; +// import VectorSource from "ol/source/Vector"; +// import { Style, Icon, Fill, Stroke, Text, Circle as CircleStyle } from "ol/style"; +// import { Point, LineString } from "ol/geom"; +// import Overlay from 'ol/Overlay.js'; +// import { unByKey } from "ol/Observable.js"; //绉婚櫎浜嬩欢 import Vue from 'vue'; import axios from "axios"; import _GLOBAL from '@/assets/GLOBAL2'; @@ -2204,20 +2204,20 @@ //openlayer 鍒涘缓鐐逛綅 export function createPointMarker(position, obj) { - let startFeature = new Feature({ - geometry: new Point(position), + let startFeature = new ol.Feature({ + geometry: new ol.geom.Point(position), }); startFeature.setProperties({ desc: obj, }); - let MarkerLayer = new VectorLayer({ + let MarkerLayer = new ol.layer.Vector({ id: 'LocationPoint', name: '鏍囪鐐�', - source: new VectorSource({ + source: new ol.source.Vector({ features: [startFeature], }), - style: new Style({ - image: new Icon({ + style: new ol.style.Style({ + image: new ol.style.Icon({ src: require('@/assets/img/collection/scdw.png'), anchorOrigin: "top-left", anchorXUnits: "fraction", @@ -2234,8 +2234,9 @@ //openlayer 鍦板浘鐐瑰嚮浜嬩欢 export function setClick(state) { + console.log('setClick'); let ponitPanel = document.getElementById('ponitPanel'); - let overlay = new Overlay({ + let overlay = new ol.Overlay({ element: ponitPanel, autoPan: { animation: { @@ -2247,9 +2248,131 @@ // let _clickCallback = callback; function handleClick(e) { + console.log(e.coordinate); + // 鍦熷湴绠$悊 + if (store.tdglInfo.flag) { + axios + .get( + // "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + + window.gisBaseUrl + "yzxncsApi/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + + e.coordinate[0] + + "&lat=" + + e.coordinate[1] + + "&geom=true&requesttype=json" + ).then(response => { + let center = { lon: 0, lat: 0 }; + if (window.tdglLine) { + window.map.removeLayer(window.tdglLine); + window.tdglLine = null; + } + var format = new ol.format.WKT(); // 鍒涘缓涓�涓� WKT 瑙f瀽鍣� + var feature = format.readFeature(response.data.geometry); // 瑙f瀽 WKT 骞剁敓鎴愯绱犲璞� + + // 鍒涘缓涓�涓绱犲浘灞� + window.tdglLine = new ol.layer.Vector({ + source: new ol.source.Vector({ + features: [feature] // 灏嗚绱犲璞″姞鍏ュ埌鍥惧眰婧愪腑 + }) + }); + window.map.addLayer(window.tdglLine) + + + axios + .get( + // "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" + + window.gisBaseUrl + "yzxncsApi/poisearch/guihuacon/getInfo?ydbm=" + + response.data.NO + ) + .then( + info => { + let data = info.data.data; + if (data.yongdishuju === null) { + objdata = { + POITYPE: "NOTDGL", + zwxx: "鏆傛棤淇℃伅", + lon: window.clickPOI.lon, + lat: window.clickPOI.lat, + } + } else { + qiyexinxi = info.data.data.qiyexinxi; + qysl = data.qiyexinxi.length; + if (qysl > 0) { + ydbm = data.qiyexinxi[0]["鍦板潡缂栧彿"]; + } else { + ydbm = data.churangxinxi["ydbh"]; + } + try { + ydlx = data.yongdishuju["ydlxmc"]; + } catch (e) { } + try { + cyfx = data.yongdishuju["cyfx"]; + } catch (e) { } + try { + // this.crzt = response.data["ZT"]; + switch (response.data["ZT"]) { + case 3: + crzt = "宸插嚭璁�"; + break; + case 4: + crzt = "鏈嚭璁�"; + break; + } + } catch (e) { } + try { + ydmj = parseFloat( + "" + data.yongdishuju["ydmj"] + ).toFixed(0); + } catch (e) { } + try { + crnx = data.churangxinxi["crnx"]; + } catch (e) { } + try { + crnf = data.churangxinxi["crnf"]; + } catch (e) { } + try { + rjl = data.yongdishuju["rjl"]; + } catch (e) { } + try { + jzxg = data.yongdishuju["jzxg"]; + } catch (e) { } + try { + jzmd = data.yongdishuju["jzmd"]; + } catch (e) { } + objdata = { + POITYPE: "TDGL", + ydbm, + ydlx, + cyfx, + crzt, + ydmj, + ydbm, + crnx, + crnf, + rjl, + jzxg, + jzmd, + lon:e.coordinate[0], + lat: e.coordinate[1], + } + } + + store.setTdglShow(false); + store.setTdlgInfo({}); + store.setTdglShow(true); + store.setTdlgInfo(objdata); + } + ); + + }) + return; + } + + window.map.forEachFeatureAtPixel(e.pixel, function (feature) { // console.log(feature, '111111') if (feature && feature.values_.desc) { + ponitPanel.style.display = 'block' + let obj = feature.values_.desc objdata = { POITYPE: "POINT", @@ -2269,7 +2392,10 @@ <span>鍦板潃锛�</span> <span>${objdata.address}</span> </div>` - overlay.setPosition(e.coordinate); + + setTimeout(() => { + overlay.setPosition(e.coordinate); + }, 0) // store.setPoplayerShowAction(true); // store.setPoplayerListAction(objdata); @@ -2288,31 +2414,33 @@ if (state) { clickEvent = window.map.on('click', handleClick); } else { - unByKey(clickEvent) + ol.Observable.unByKey(clickEvent) clickEvent = null } } export function flyToPoint(posisitons) { - let zoom = window.map.getView().getZoom(); - if (zoom >= 16) { - zoom = 12 - } - let duration = 2000; + // let zoom = window.map.getView().getZoom(); + // if (zoom >= 16) { + // zoom = 12 + // } + // let duration = 2000; window.map.getView().animate({ center: posisitons, + zoom: 12, + duration: 1500 }) - window.map.getView().animate( - //鍔ㄧ敾寮�濮嬫椂 - { - zoom: zoom > 16 ? zoom - 0.01 : zoom + 0.01, - duration: duration / 2, - }, - //鍔ㄧ敾缁撴潫鏃� - { - zoom: zoom >= 16 ? 16 : zoom + 4, - duration: duration / 2, - } - ); + // window.map.getView().animate( + // //鍔ㄧ敾寮�濮嬫椂 + // { + // zoom: zoom > 16 ? zoom - 0.01 : zoom + 0.01, + // duration: duration / 2, + // }, + // //鍔ㄧ敾缁撴潫鏃� + // { + // zoom: zoom >= 16 ? 16 : zoom + 4, + // duration: duration / 2, + // } + // ); } \ No newline at end of file -- Gitblit v1.9.3