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

vue2+OpenLayers 天地图上打点(1)

在这里用的是 7.2.2版本的
安装ol

npm install ol

代码如下

<template><divclass="container"><div id="vue-openlayers"class="map-x"></div><div id="info-box"class="info-box"style="width: 100px; height: 100px"></div><div id="canv"style="width: 100px; height: 100px"></div></div></template><script>import"ol/ol.css";import{Map,View,style,Feature,geom,Overlay}from"ol";importTileLayerfrom"ol/layer/Tile";importXYZfrom"ol/source/XYZ";import{VectorasVectorSource}from"ol/source";importVectorLayerfrom"ol/layer/Vector";import{Point,LineString}from"ol/geom";import{Style,Icon,Stroke,Text,Fill}from"ol/style";importlogofrom"@/assets/logo.png";// 图片的地址import*asolfrom"ol";import"ol-ext/dist/ol-ext.css";// 引入 js 文件和css文件exportdefault{name:"FirstMap",data(){return{map:null,draw:null,maskLayer:null,logo,layers:[],};},methods:{initMap(){letthat=this;// 将图标样式应用到点要素constfeatures=[];constpoint=newPoint([108.56,34.15]);// 修改坐标格式constfeature=newFeature({geometry:point,custom:{data:"123",type:"icon"},// 可以放一些自己的数据type:"icon",// 自己设置一个标识});feature.setStyle([newStyle({image:newIcon({crossOrigin:"anonymous",src:this.logo,// size: [40, 40],scale:0.2,// 图标缩放比例}),}),]);features.push(feature);//设置地图的数据源constsource=newVectorSource({features,});letmarkLayerPoints=newVectorLayer({source:source,});letmap=newMap({target:"vue-openlayers",layers:[newTileLayer({source:newXYZ({url:"https://gdtc.shipxy.com/tile.g?l=en&m=d&z={z}&x={x}&y={y}",// 网上找的图层}),}),markLayerPoints,// 确保图层顺序正确// vectorLayers,],view:newView({projection:"EPSG:4326",center:[108.56,34.15],// 修改中心坐标格式zoom:6,}),});this.map=map;},},mounted(){this.initMap();},};</script><style scoped lang="scss">.input{position:fixed;top:10px;right:10px;border-radius:10px;background:#fff;display:flex;flex-direction:column;padding:5px;padding-bottom:10px;>*{margin-top:10px;display:flex;align-items:center;}}</style><style scoped lang="scss">.container{position:relative;.btn{position:absolute;left:4%;top:1%;}}#vue-openlayers{width:100vw;height:100vh;}h3{line-height:40px;}/* 隐藏信息盒子的初始样式 */#info-box{display:none;position:absolute;background:white;border:1px solid black;padding:10px;border-radius:5px;font-size:14px;pointer-events:none;/* 防止信息盒子影响鼠标事件 */}</style>
http://www.cnnetsun.cn/news/1386181.html

相关文章:

  • 用lat_mem_rd和numactl给你的服务器内存‘把把脉’:从L1缓存到NUMA节点的延迟全解析
  • 如何在PyTorch中实现CAB通道注意力模块?完整代码解析与性能优化技巧
  • 如何用Python快速构建Web应用:PyWebIO终极指南
  • Postgres与Mybatis高效批量操作实战:从基础到高级冲突处理
  • Jitsi Meet与Teams集成:企业协作平台视频会议方案
  • 快速部署nanobot:超轻量AI助手打造个人QQ智能问答系统
  • 从2038年到2106年:STM32无符号时间戳的隐藏优势与实战应用
  • TP-LINK 企业路由器 PPTP 配置实战:从零搭建安全办公隧道
  • 基于低通滤波反电势观测器的永磁同步电机无感FOC算法研究与实践
  • 自动驾驶中的‘定海神针’:深入浅出聊聊IMU与GNSS的紧组合到底怎么‘紧’
  • LineageOS刷机指南:如何让你的旧手机重获新生(附Android 14适配教程)
  • 亚马逊SP-API开发者账号申请实战:从零到通过审核的全记录
  • 雷达信号分选实战:用MATLAB实现PRI变换法(附完整代码)
  • 深度学习篇---SENet模块
  • macOS Monterey新功能在OSX-KVM上的测试结果
  • 实战对比:tSNE vs UMAP vs hypertools,哪个降维可视化工具更适合你的数据集?
  • 企业多出口网络流量精准引导实战:基于PBR与VRF的防火墙策略部署
  • PostgreSQL实战技巧:CASE WHEN THEN END在数据分类与统计中的高效应用
  • GitHub Linguist Extension API深度探索:自定义语言检测规则开发指南
  • 微电网并网与孤岛模式无缝切换的优化控制策略研究
  • Plasmo框架背景服务Worker:浏览器扩展持久化任务处理终极方案
  • 5分钟搞定!用Anaconda在Ubuntu22.04上快速创建Pytorch虚拟环境(Python3.8版)
  • 告别分区大小烦恼:Android R+ Super动态分区实战配置指南(附BoardConfig.mk详解)
  • 小螃蟹抢票口令工具|支持猫眼App/小程序/美团猫眼/大众点评四端|Storm Sniffer演唱会门票加速器
  • 深入理解Maestro项目架构与开发指南
  • Baseweb表单组件详解:从Input到Select的完整方案
  • 为什么大厂微服务都在用gRPC?从HTTP/2到protobuf的全面性能对比
  • bRPC生产环境性能调优与故障排查完整指南:10个关键技巧提升RPC性能
  • 如何彻底解决Kohya_ss项目中WD14 Tagger模型路径问题的完整指南
  • 终极指南:如何快速解决Kohya_SS中LoRA训练报错问题