基于Openlayers对GeoServer发布的数据进行增删改

使用GeoServer进行图斑数据管理

本文将介绍如何使用GeoServer进行图斑数据的新增、删除和修改。我们将通过一个Vue.js应用来演示这些功能。

设置Vue.js应用

首先,我们设置Vue.js应用,并添加必要的组件和交互逻辑。

Check.vue

Check.vue文件包含初始化地图和处理图斑交互的主要逻辑。

// filepath: /D:/workspace/check/client/src/views/Check.vue
<template>
  <div class="page">
    <Header />
    <Map @map="init" />
    <div class="tool">
      <button @click="enableDraw">新增</button>
      <button @click="enableModify">编辑</button>
      <button @click="enableDelete">删除</button>
    </div>
  </div>
</template>

<script setup>
import Header from '../components/Header.vue'
import Map from '../components/Map.vue'
import {
   
    getBlockData, addBlockData, updateBlockData, deleteBlockData } from '../api'
// ...existing code...

function init(mapInstance) {
   
   
  map = mapInstance
  // ...existing code...
  select.on('select', (e) => {
   
   
    e.selected.forEach((feature) => {
   
   
      const featureId = feature.getId()
      deleteBlockData(featureId)
        .then(response => {
   
   
          vectorLayer.getSource().removeFeature(feature)
        })
        .catch(error => {
   
   
          console.error('Error deleting block data:', error)
        })
    })
  })
  getBlock()
  // ...existing code...
}

function getBlock() {
   
   
  const view = map.getView()
  const extent = view.calculateExtent()
  getBlockData(extent)
    .then(response => {
   
   
      const features = new GeoJSON().readFeatures(response.data, {
   
   
        featureProjection: map.getView().getProjection()
      })
      vectorLayer.getSource().clear()
      vectorLayer.getSource().addFeatures(features)
    })
    .catch(error => {
   
   
      console.error('Error fetching block data:', error
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值