尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

OpenLayers+html5 Overlay 示例

OpenLayers+html5 Overlay 示例
📅 发布时间:2026/7/2 5:27:48

OpenLayers+html5 Overlay 示例

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <title>OpenLayers Overlay 示例</title> <!-- 引入 OL 样式 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ol@7.4.0/ol.css"> <style> body { margin: 0; padding: 0; } #map { width: 100%; height: 100vh; } /* 弹窗样式 */ .ol-popup { position: absolute; background-color: white; box-shadow: 0 1px 4px rgba(0,0,0,0.2); padding: 15px; border-radius: 10px; border: 1px solid #cccccc; bottom: 12px; left: -50px; min-width: 200px; display: none; /* 默认隐藏 */ } .ol-popup:after, .ol-popup:before { top: 100%; border: solid transparent; content: " "; height: 0; width: 0; position: absolute; pointer-events: none; } .ol-popup:after { border-top-color: white; border-width: 10px; left: 48px; margin-left: -10px; } .ol-popup:before { border-top-color: #cccccc; border-width: 11px; left: 48px; margin-left: -11px; } .closer { text-decoration: none; position: absolute; top: 2px; right: 8px; color: #999; } </style> </head> <body> <div id="map"></div> <!-- 弹窗 DOM 结构 --> <div id="popup" class="ol-popup"> <a href="#" id="popup-closer" class="closer">×</a> <div id="popup-content"></div> </div> <!-- 引入 OL JS --> <script src="https://cdn.jsdelivr.net/npm/ol@7.4.0/dist/ol.js"></script> <script> // 1. 获取 DOM 元素 const container = document.getElementById('popup'); const content = document.getElementById('popup-content'); const closer = document.getElementById('popup-closer'); // 2. 创建 Overlay 实例 const overlay = new ol.Overlay({ element: container, autoPan: true, // 弹窗超出视野时自动平移地图 positioning: 'bottom-center', stopEvent: true, // 【关键】阻止点击弹窗时事件穿透到地图 offset: [0, 0] }); // 3. 初始化地图 const map = new ol.Map({ target: 'map', layers: [ ], overlays: [overlay], // 将 Overlay 加入地图 view: new ol.View({ center: ol.proj.fromLonLat([112.9, 28.2]), // 长沙附近 zoom: 10 }) }); // 4. 加载高德底图 const gaodeLayer = new ol.layer.Tile({ source: new ol.source.XYZ({ title:"高德", url:"http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}" }) }) map.addLayer(gaodeLayer) // 5. 点击关闭弹窗 closer.onclick = function() { overlay.setPosition(undefined); closer.blur(); return false; }; // 6. 监听地图单击事件 map.on('singleclick', function(evt) { // 设置弹窗内容 const coordinate = evt.coordinate; const hdms = ol.coordinate.toStringHDMS(ol.proj.toLonLat(coordinate)); content.innerHTML = '<p>你点击了这里:</p><code>' + hdms + '</code>'; // 设置弹窗位置并显示 overlay.setPosition(coordinate); container.style.display = 'block'; // 确保显示 }); </script> </body> </html>

相关新闻

  • tomcat为什么假死了.md
  • Triton模型服务化:生产级AI推理的稳定性与可观测性实践
  • 沈阳高端腕表回收科普专业鉴定流程与要点

最新新闻

  • AI订阅拒付风险高,跨境支付风控如何覆盖续费、退款和争议管理?
  • 谁破防了?海曦技术张总语音传唤,小唐小朱两幅面孔太真实
  • 30天小白学透大模型:从入门到实战,附收藏路径助你进阶!
  • Java源码隐形水印实战:保护知识产权与追踪代码归属
  • 终极指南:5个简单技巧让waifu2x-caffe成为你的图像处理神器 [特殊字符]
  • 廊坊市有哪些专业又正规的 GEO 优化公司?一文为你揭晓!

日新闻

  • Python Playwright录制功能:从零到一构建自动化测试脚本
  • 如何用开源工具永久保存你心爱的小说:novel-downloader全攻略
  • In-Context Learning不是教知识,而是模式对齐:从5个示例到100个工业级样本的真相

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号