当前位置: 首页 > wzjs >正文

个人建什么样的网站好郑州小程序开发报价

个人建什么样的网站好,郑州小程序开发报价,网站定制牛七科技,乡镇中心小学校园网站建设指南🎬 效果预览 👇 点击按钮即可对地图进行遮罩、剪切、取消操作: 🧠 功能说明 本文将教你如何在 Vue 3 中使用 OpenLayers ol-ext 插件,实现以下功能: 加载地图并显示中国边界图层; 点击“遮罩…

🎬 效果预览

👇 点击按钮即可对地图进行遮罩、剪切、取消操作:


🧠 功能说明

本文将教你如何在 Vue 3 中使用 OpenLayers + ol-ext 插件,实现以下功能:

  • 加载地图并显示中国边界图层;

  • 点击“遮罩”按钮,对地图指定区域进行灰色遮罩处理;

  • 点击“剪切”按钮,只显示地图中指定区域,其他部分裁剪掉;

  • 点击“取消”按钮恢复地图原始显示效果。


🛠️ 技术栈

  • Vue 3 + Composition API

  • OpenLayers(地图渲染)

  • ol-ext(高级图层效果如 Mask、Crop)

  • Element Plus(按钮组件)

  • Tailwind CSS(页面布局)


🧩 整体结构

├── src/
│   ├── assets/
│   │   └── map/
│   │       └── china.json        // 中国边界 GeoJSON 数据
│   ├── views/
│   │   └── MapMaskCrop.vue       // 本文的核心组件

📦 安装依赖

npm install ol ol-ext

确保你已经安装并使用 element-plustailwindcss


📄 核心代码实现(Vue3 + Composition)

<!--* @Author: 彭麒* @Date: 2025/5/28* @Email: 1062470959@qq.com* @Description: 此源码版权归吉檀迦俐所有,可供学习和借鉴或商用。-->
<template><div class="container"><div class="w-full flex justify-center flex-wrap"><div class="font-bold text-[24px]">在Vue3中使用OpenLayers加载 Feature 做剪切、遮罩处理</div></div><h4><el-button type="primary" size="small" @click="mapmask">遮罩</el-button><el-button type="danger" size="small" @click="mapcrop">剪切</el-button><el-button type="danger" size="small" @click="cancel">取消</el-button></h4><div id="vue-openlayers"></div></div>
</template><script setup>
import { ref, onMounted } from 'vue'
import 'ol/ol.css'
import 'ol-ext/dist/ol-ext.min.css'import { Map, View } from 'ol'
import OSM from 'ol/source/OSM'
import TileLayer from 'ol/layer/Tile'
import GeoJSON from 'ol/format/GeoJSON'
import Fill from 'ol/style/Fill'
import Mask from 'ol-ext/filter/Mask'
import Crop from 'ol-ext/filter/Crop'// 引入地理数据
import jsonData from '@/assets/map/china.json'let map = null
let osmLayer = null
const mask = ref(null)
const crop = ref(null)const cancel = () => {if (mask.value) {mask.value.set('active', false)}if (crop.value) {crop.value.set('active', false)}
}const mapcrop = () => {cancel()const feature = new GeoJSON().readFeature(jsonData.features[0])crop.value = new Crop({feature,wrapX: true,inner: false,})osmLayer.addFilter(crop.value)
}const mapmask = () => {cancel()try {const feature = new GeoJSON().readFeature(jsonData.features[0])console.log('加载的要素:', feature)mask.value = new Mask({feature,wrapX: true,inner: false,fill: new Fill({color: [0, 0, 0, 0.5],}),})osmLayer.addFilter(mask.value)} catch (error) {console.error('遮罩创建错误:', error)}
}const initMap = () => {osmLayer = new TileLayer({source: new OSM(),})map = new Map({layers: [osmLayer],target: 'vue-openlayers',view: new View({// 调整为中国的合适坐标范围center: [105, 35],  // 中国中心大致位置zoom: 4,  // 缩小以显示整个中国projection: 'EPSG:4326',}),})
}onMounted(() => {initMap()
})
</script><style scoped>
.container {width: 840px;height: 570px;margin: 50px auto;border: 1px solid #42B983;
}
#vue-openlayers {width: 800px;height: 400px;margin: 0 auto;border: 1px solid #42B983;position: relative;background-color: #f5f5f5; /* 添加背景色以便于调试 */
}
</style>

📁 附:china.json 示例结构

确保你使用的是标准 GeoJSON 格式的中国边界数据:

{ "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [ ... ] }, "properties": { ... } } ] }

你可以从 阿里地图GeoJSON数据 下载所需边界数据。


✅ 总结

本文通过 Vue3 + OpenLayers + ol-ext 演示了地图遮罩与裁剪的效果,适用于政务可视化、地理信息系统、可交互地图开发等场景。

✨ 如果你觉得有帮助,欢迎留言交流、点赞收藏!
📌 更多 OpenLayers 高级玩法,后续会持续更新!


文章转载自:

http://FgRR9eRi.jypsm.cn
http://EK4ZwHa3.jypsm.cn
http://q1DL0Ei7.jypsm.cn
http://M1lF1we2.jypsm.cn
http://sLQIXfem.jypsm.cn
http://AZYFDX1w.jypsm.cn
http://1tj4GuUb.jypsm.cn
http://kkpPcFzQ.jypsm.cn
http://q6bkSY1G.jypsm.cn
http://vuKmXBDv.jypsm.cn
http://Y32C9U3J.jypsm.cn
http://40Julpjw.jypsm.cn
http://jUKnxhWw.jypsm.cn
http://rOsnw8pq.jypsm.cn
http://zbuGXe8d.jypsm.cn
http://cy4iozDJ.jypsm.cn
http://hD7eWoin.jypsm.cn
http://7n3Rx23x.jypsm.cn
http://7JSan0es.jypsm.cn
http://bJIffpaB.jypsm.cn
http://xevtr5cR.jypsm.cn
http://e4IqVpjc.jypsm.cn
http://78lq5j1i.jypsm.cn
http://WezIX6MD.jypsm.cn
http://NksqLDqT.jypsm.cn
http://q4rfMAdO.jypsm.cn
http://chrIbsvg.jypsm.cn
http://h6juLqZW.jypsm.cn
http://rLtUg0DN.jypsm.cn
http://NZDA7FzP.jypsm.cn
http://www.dtcms.com/wzjs/693530.html

相关文章:

  • 阿里巴巴装修网站wordpress 删除插件
  • 企业网站优化设计应该把什么放在首位展示型网站建设的标准
  • 建设网站需要什么硬件wordpress 站外链接
  • 网站建设都有什么技术支持dw如何制作多个网页
  • 易讯网络网站建设石家庄百度推广排名优化
  • 动易网站风格免费下载网站建设和管理颁奖
  • 做网站必须要公司才能做吗单页面网站推广方法
  • 网站建设信息平台深圳注册公司需要什么资料
  • 网站推广合同灵武网站建设
  • 郑州建站多少钱锦绣大地seo
  • 秸秆可以发酵吗网站建设吗jsp企业网站源码
  • 太原网站建wordpress 公告
  • 做网站需求文档怎么创网站赚钱
  • 网站打开速度优化视频网站建设报价单
  • 关于建设公司网站的请示wordpress建手机网站
  • 昆明网站制作的方法湘潭今天刚刚发生的新闻
  • 网站只做wordpress文章列表分页代码
  • 网站设计设dedecms安装教程
  • 公司网站建设视频教程做微信视频的网站
  • 手机的网站有哪些瑞诺国际做外贸网站好吗
  • 校园网站建设开题报告网站不能正常显示出现后台代码
  • 外贸网站seo搜索引擎快速优化排名
  • 创建手机网站模版深圳网站开发学习
  • 互动网站建设多少钱重庆网站建设设计
  • 用wix做外贸网站极速微网站建设cms
  • 企业做网站设置哪些模块手工制作大全废物利用
  • 江门做网站软件网站策划 要求
  • 域名弄好了网站怎么建设品牌设计
  • 用dw做的网站容易变形长沙专业网站建设服务
  • 南京广告公司排名前十如何做好seo优化