diff --git a/.env.development b/.env.development index b9d0906..a058ab5 100644 --- a/.env.development +++ b/.env.development @@ -13,6 +13,9 @@ VITE_GLOB_UPLOAD_URL= http://60.213.14.14:6070 VITE_GLOB_INFO_IMAGE_URL=http://120.222.154.48:6050 +# geoserver +VITE_GLOB_GEOSERVER_BASE_URL = http://192.168.10.163:8080 + # Interface prefix VITE_GLOB_API_URL_PREFIX= diff --git a/src/utils/env.ts b/src/utils/env.ts index 982d452..33e3e2a 100644 --- a/src/utils/env.ts +++ b/src/utils/env.ts @@ -40,7 +40,8 @@ export function getAppEnvConfig() { VITE_GLOB_APP_TECHINICAL_SUPPORT, VITE_GLOB_APP_VERSIONS, VITE_GLOB_YINGXIANG_SERVER, - VITE_GLOB_FILE_PREVIEW + VITE_GLOB_FILE_PREVIEW, + VITE_GLOB_GEOSERVER_BASE_URL, } = ENV; let { VITE_GLOB_API_URL } = ENV; if (localStorage.getItem(API_ADDRESS)) { @@ -58,7 +59,8 @@ export function getAppEnvConfig() { VITE_GLOB_APP_TECHINICAL_SUPPORT, VITE_GLOB_APP_VERSIONS, VITE_GLOB_YINGXIANG_SERVER, - VITE_GLOB_FILE_PREVIEW + VITE_GLOB_FILE_PREVIEW, + VITE_GLOB_GEOSERVER_BASE_URL }; } diff --git a/src/views/demo/layer/LayerTree.vue b/src/views/demo/layer/LayerTree.vue index bf89241..b88a716 100644 --- a/src/views/demo/layer/LayerTree.vue +++ b/src/views/demo/layer/LayerTree.vue @@ -62,16 +62,12 @@ emit('select', item); selectItem.value = item; } - function handleCheck(checkedKeys, e) { - let checkedNode = e.node - let checked = e.checked - emit("checked",checkedNode, checked); + function handleCheck(keys){ + const item = treeFindById(treeData.value, keys[0]); + emit("checked",item); } - function handleChange(key,e){ - console.log(key,e); - } /** * 根据id值或某个属性的值从树结构中查询数据 * @param {Array} treeArray 树结构数据 diff --git a/src/views/demo/layer/geometryHandler.ts b/src/views/demo/layer/geometryHandler.ts index d10f05a..897e6b2 100644 --- a/src/views/demo/layer/geometryHandler.ts +++ b/src/views/demo/layer/geometryHandler.ts @@ -74,6 +74,12 @@ const EditDrawingGeometry = (map,geometry) => { console.log("geojson",geojson); // 加载图层 + if(drawingGraphicLayer){ + drawingGraphicLayer.clear(); + map.removeLayer(drawingGraphicLayer); + drawingGraphicLayer = null; + } + drawingGraphicLayer = new mars3d.layer.GeoJsonLayer({ name: "编辑图层", data:geojson, @@ -103,7 +109,7 @@ const EditDrawingGeometry = (map,geometry) => { popupOptions: { showNull: true }, - flyTo: true + // flyTo: true }) map.addLayer(drawingGraphicLayer) @@ -156,7 +162,7 @@ const AddDrawingGeometry = (map,type) => { popupOptions: { showNull: true }, - flyTo: true + // flyTo: trues }) map.addLayer(drawingGraphicLayer); diff --git a/src/views/demo/layer/index.vue b/src/views/demo/layer/index.vue index 1b79d41..c298508 100644 --- a/src/views/demo/layer/index.vue +++ b/src/views/demo/layer/index.vue @@ -99,7 +99,7 @@
- 编辑 + 编辑 关闭
@@ -205,43 +205,75 @@ import { EventBus } from '@/utils/eventBus'; + import { GetGeometryCenter, EditDrawingGeometry, AddDrawingGeometry, PreviewDrawingGeometry, DrawingEnd, + GeojsonToWkt } from './geometryHandler.ts'; + import * as mars3d from 'mars3d'; + const { VITE_GLOB_GEOSERVER_BASE_URL } = getAppEnvConfig(); + let globalMap: mars3d.Map; const onMapLoad = (map) => { globalMap = map; }; - - EventBus.on('editLayerEnd', function (e) { + + EventBus.on("editLayerEnd",function(e){ formState.value.geom = e; }); // 加载图层 - const handlerLoadLayer = (record, checked) => { + + const handlerLoadLayer = (record) => { + let layer = globalMap.getLayerById(record.id); - if (layer) { - layer.show = checked; - } else { - const wmsLayer = new mars3d.layer.WmsLayer({ - id: record.id, - name: record.applicationName, - url: 'http://192.168.10.163:8080/geoserver/my_workspace/wms', - layers: 'workspace:' + record.tableName, - parameters: { - transparent: true, - format: 'image/png', - }, - }); - globalMap.addLayer(wmsLayer); + + if(layer){ + layer.show = !layer.show + }else{ + + let tileLayer = new mars3d.layer.WmsLayer({ + name: record.applicationName, + id:record.id, + url: VITE_GLOB_GEOSERVER_BASE_URL+"/geoserver/my_workspace/wms", + layers: "my_workspace:"+record.tableName, + parameters: { + transparent: true, + format: 'image/png', + }, + getFeatureInfoParameters: { + feature_count: 10 + }, + // 单击高亮及其样式 + highlight: { + type: "wallP", + diffHeight: 100, + materialType: mars3d.MaterialType.LineFlow, + materialOptions: { + image: "https://data.mars3d.cn/img/textures/fence.png", + color: "#ffff00", + speed: 10, // 速度,建议取值范围1-100 + axisY: true + } + }, + popup: "all", + flyTo: true, + featureToGraphic:function(e){ // 获取点击查询到的数据 + let wkt = GeojsonToWkt(e.data.geometry); + let editData = {...e.data.properties} + editData.geom = wkt; + viewData(editData) + } + }) + globalMap.addLayer(tileLayer); } }; @@ -350,7 +382,7 @@ headData.value?.forEach((item, index) => { params.list.push({ - name: item, + name: item.dataIndex, value: formState.value[item] ? formState.value[item] : null, }); }); @@ -367,6 +399,8 @@ } }); } + //清空图层 + DrawingEnd(); }) .catch((error: ValidateErrorEntity) => { console.log('error', error); @@ -398,9 +432,13 @@ isUpdate: false, }); }; - const checkedLayer = (node, checked) => { - handlerLoadLayer(node, checked); - }; + + const checkedLayer = (e) => { + console.log("e123",e); + handlerLoadLayer(e); + } + + const hanlerLoadLayer = () => {}; const handleSuccess = () => { @@ -418,9 +456,9 @@ EditDrawingGeometry(globalMap, record.geom); }; + const viewData = (record) => { - console.log('record', record); - PreviewDrawingGeometry(globalMap, record.geom); + PreviewDrawingGeometry(globalMap,record.geom); selectVal.value = record; formState.value = record; showTable.value = 'detail'; @@ -436,6 +474,14 @@ } } }; + + const detailToEdit = ()=>{ + + editData(formState.value); + showTable.value = 'edit'; + + } + const delData = (record) => { createConfirm({ iconType: 'info', diff --git a/tsconfig.json b/tsconfig.json index 45a71de..8109e54 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,4 +27,4 @@ "vite.config.ts" ], "exclude": ["node_modules", "tests/server/**/*.ts", "dist", "**/*.js"] -} +} \ No newline at end of file