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

怎么在电脑上自己做网站wordpress 表单 验证

怎么在电脑上自己做网站,wordpress 表单 验证,天水网站建设惠普,wordpress企业宣传电商在前端 GIS(地理信息系统)开发中,OpenLayers 是一个强大的开源地图库,可以帮助开发者快速构建 Web 地图应用。本文将详细介绍如何在 Vue3 项目中,使用 OpenLayers 并结合 marker-feature 插件来添加 Marker。 1. 项目初…

在前端 GIS(地理信息系统)开发中,OpenLayers 是一个强大的开源地图库,可以帮助开发者快速构建 Web 地图应用。本文将详细介绍如何在 Vue3 项目中,使用 OpenLayers 并结合 marker-feature 插件来添加 Marker


1. 项目初始化

如果你的 Vue3 项目还没有创建,可以使用 Vite 进行快速搭建:

npm create vite@latest vue-openlayers-demo --template 
vue cd vue-openlayers-demo npm install

然后安装 OpenLayersmarker-feature 插件:

npm install ol ol-marker-feature ol-popup

2. 创建 MarkerFeature.vue 组件

components 目录下新建 MarkerFeature.vue,然后使用 setup 语法来封装 OpenLayers 地图,并添加 marker-feature

<!--* @Author: 彭麒* @Date: 2025/3/12* @Email: 1062470959@qq.com* @Description: 此源码版权归吉檀迦俐所有,可供学习和借鉴或商用。-->  
<template><div class="container"><div class="w-full flex justify-center"><div class="font-bold text-[24px]">在Vue3 + OpenLayers使用 marker-feature 来添加 marker</div></div><div id="vue-openlayers"></div></div>
</template><script setup>
import { onMounted } from "vue";
import "ol/ol.css";
import { Map, View } from "ol";
import Tile from "ol/layer/Tile";
import OSM from "ol/source/OSM";
import Marker from "ol-marker-feature";
import Popup from "ol-popup";let map; // map 作为普通变量,不使用 refconst initMap = () => {if (map) return; // 避免重复初始化const OSMlayer = new Tile({ source: new OSM() });map = new Map({target: "vue-openlayers",layers: [OSMlayer],view: new View({center: [113.448, 23.986],zoom: 7,projection: "EPSG:4326",}),});const marker = new Marker([113.448, 23.986]);marker.set("info",`<div style="background:#fff; padding:20px;"><h3>我的 Marker 标题</h3><h4>vue-openlayers 的信息内容</h4></div>`);marker.setMap(map);const popup = new Popup({ offset: [0, -32] });map.addOverlay(popup);marker.on("click", () => {popup.show(marker.getLocation(), marker.get("info"));});
};onMounted(initMap);
</script><style scoped>
.container {width: 840px;height: 590px;margin: 50px auto;border: 1px solid #42B983;
}
#vue-openlayers {width: 800px;height: 470px;margin: 0 auto;border: 1px solid #42B983;position: relative;
}
</style>

3. 组件解析

3.1 OpenLayers 地图初始化

我们创建了一个 OSM(OpenStreetMap)底图,并在 div#vue-openlayers 内渲染 Map 实例:

map = new Map({ target: "vue-openlayers", layers: [OSMlayer], view: new View({ center: [113.448, 23.986], zoom: 7, projection: "EPSG:4326", }), 
});

注意:OpenLayers 默认使用 EPSG:3857 投影,因此如果你的坐标是 EPSG:4326,请确保所有数据一致。


3.2 添加 Marker

ol-marker-feature 允许我们直接创建 Marker 并绑定到 Map

const marker = new Marker([113.448, 23.986]); 
marker.set("info", "<div>Vue3 OpenLayers Marker</div>"); 
marker.setMap(map);

这样,我们的 Marker 就会出现在指定经纬度的位置。


3.3 绑定 Popup 信息框

为了让 Marker 可以在点击时弹出 Popup,我们使用 ol-popup 插件:

const popup = new Popup({ offset: [0, -32] }); 
map.addOverlay(popup); 
marker.on("click", () => { popup.show(marker.getLocation(), marker.get("info")); 
});

这样,点击 Marker 时就能弹出对应的 HTML 内容。


4. 在 App.vue 引用组件

App.vue 中引入 MarkerFeature.vue 并使用:

<template> <MarkerFeature /> 
</template> 
<script setup> import MarkerFeature from "./components/MarkerFeature.vue"; 
</script>

5. 运行项目

npm run dev

打开浏览器,访问 http://localhost:5173(默认 Vite 端口),你应该可以看到地图,以及点击 Marker 后弹出的 Popup 信息框。


6. 常见问题

Uncaught TypeError: Class constructor _Feature cannot be invoked without 'new'

如果 ol-marker-feature 发生此错误,可以使用 Feature + Point 方式替代:

import Feature from "ol/Feature"; 
import Point from "ol/geom/Point"; 
import VectorLayer from "ol/layer/Vector"; 
import VectorSource from "ol/source/Vector"; 
import { Icon, Style } from "ol/style"; 
import { fromLonLat } from "ol/proj"; // 使用 Feature + Point 方式创建 Marker 
const markerFeature = new Feature({ geometry: new Point(fromLonLat([113.448, 23.986])), 
}); 
markerFeature.setStyle( new Style({ image: new Icon({ anchor: [0.5, 1], src: "https://openlayers.org/en/latest/examples/data/icon.png", // 自定义图标 }), 
}) ); // 创建矢量图层 
const vectorLayer = new VectorLayer({ source: new VectorSource({ features: [markerFeature], }), 
}); 
map.addLayer(vectorLayer);

推荐:如果 marker-feature 兼容性不好,建议直接用 Feature + Point 方式实现。


7. 总结

  • Vue3 + OpenLayers 提供了强大的 Web 地图能力
  • marker-feature 可以快速添加 Marker,但兼容性可能有问题
  • 推荐使用 Feature + Point 方式 来实现 Marker
  • 可以结合 ol-popup 添加信息弹窗交互

8. 参考文档

  • OpenLayers 官网
  • ol-marker-feature GitHub
  • Vue.js 官网

这样,你的 CSDN 文章就完成了!🚀 希望能帮到你,记得给文章加点排版,效果会更好哦! 🎉


文章转载自:

http://DxcQongp.fhykt.cn
http://FUFkGR80.fhykt.cn
http://pcrmvklj.fhykt.cn
http://M9khV18v.fhykt.cn
http://ygHRZq9f.fhykt.cn
http://rMVAmkQx.fhykt.cn
http://ndwFoNcg.fhykt.cn
http://XEuXlpJN.fhykt.cn
http://fHKikJDe.fhykt.cn
http://MXvtZnI7.fhykt.cn
http://XOT1BK0O.fhykt.cn
http://efReE8J2.fhykt.cn
http://LzJiH7QB.fhykt.cn
http://HB13rJGZ.fhykt.cn
http://K3l0c3qg.fhykt.cn
http://5f3R0LCB.fhykt.cn
http://lY9FuaQO.fhykt.cn
http://jO3c4nd9.fhykt.cn
http://LP50Aw2e.fhykt.cn
http://lXG1jlx7.fhykt.cn
http://32R6nSEw.fhykt.cn
http://u7GC3jNj.fhykt.cn
http://0kmoS3gS.fhykt.cn
http://h8bWcvcU.fhykt.cn
http://NhZHVy70.fhykt.cn
http://r7djQyNE.fhykt.cn
http://F071HImt.fhykt.cn
http://hi8ZkpYY.fhykt.cn
http://2fdMFTxi.fhykt.cn
http://BYD02goa.fhykt.cn
http://www.dtcms.com/wzjs/728862.html

相关文章:

  • 郑州网站建设知名公司排名佛山网站制作哪里好
  • 莆田网站建设莆田做eso哪家网站好
  • 企业网站优化费用wordpress语言切换网站
  • rp网站做多大官网模板建站塔山双喜
  • 怎样建设网站后台搜索引擎优化排名优化培训
  • 蕲春住房和城乡建设局网站wordpress怎么首页幻灯片
  • 河南做网站哪个公司好音乐网站制作源代码
  • 如何给自己网站做网站优化app开发网站建设包含项目
  • 心理咨询网站模板个人摄影网站制作
  • 小皮phpstudy快速搭建网站wordpress与phpstudy
  • 破解wordpress网站密码河南省工程建设业协会网站
  • 做网站的专业叫什么音乐视频怎么做mp3下载网站
  • 重庆江北区网站建设佛山优化企业网站排名平台
  • 兰州网站建设cheng陕西省建设网三类人员成绩公示
  • 佛山骏域网站建设北京米兰广告设计有限公司
  • 长春建设网站展览展厅设计案例
  • 上海做网站要多少钱app下载排行榜
  • 女性做网站很有名的室内装饰设计师国家职业技能标准
  • 做网站编程用什么语言好苏州网站开发的企业
  • 广告网站设计哪家快arcengine网站开发
  • 最简单的制作网站搭建WordPress教程
  • 资阳房产网站建设东莞核酸检测时间
  • asp.net 开发网站开发长沙小程序公司
  • 网站制作的核心要点是什么erp系统软件有哪些
  • 继电器做网站东莞大型企业网站建设
  • 网站设计软件开发网站建设课程报告
  • 做网站的无锡英文版企业网站布局设计
  • 国外哪些网站可以注册域名尚层装饰官网
  • 郑州自助建站模板如何建设高等数学课程网站
  • 宿州网站开发公司宁波seo排名方案优化