openlayers实现地图弹窗


Posted in Javascript onSeptember 25, 2020

本文实例为大家分享了openlayers实现地图弹窗的具体代码,供大家参考,具体内容如下

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <link rel="stylesheet" href="https://openlayers.org/en/v5.3.0/css/ol.css" />
 <script type="text/javascript" src="https://openlayers.org/en/v5.3.0/build/ol.js"></script>
 <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
 <title>Ol3 popup</title>
 <style type="text/css">
 body, #map {
 border: 0px;
 margin: 0px;
 padding: 0px;
 padding: 0px;
 padding: 0px;
 width: 100%;
 height: 100%;
 font-size: 13px;
 }
 
 .ol-popup {
 display: none;
 position: absolute;
 background-color: white;
 -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.2);
 -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
 filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
 border: 1px solid #cccccc;
 bottom: 12px;
 left: -50px;
 width: 200px;
 }
 .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;
 }
 .popup-title{
 font-weight: bold;
 border-bottom:1px solid #cccccc;
 padding: 5px 8px;
 }
 .popup-content{
 padding: 5px 8px;
 }
 .ol-popup-closer {
 text-decoration: none;
 position: absolute;
 top: 6px;
 right: 6px;
 }
 .ol-popup-closer:after {
 content: "✖";
 }
 </style>

 <script type="text/javascript">
 function init(){
 var format = 'image/png';
 var bounds = [73.4510046356223, 18.1632471876417,
 134.976797646506, 53.5319431522236];
 var vectorSource = new ol.source.TileWMS({
 url: 'http://localhost:8080/geoserver/map/wms?service=WMS&version=1.1.0&request=GetMap&layers=map:capital&styles=&bbox=87.57607938302118,19.97015007757606,126.56705607814561,45.69385655384421&width=768&height=506&srs=EPSG:4326&format=application/openlayers',
   params:{ 
    'LAYERS':'capital',
    'TILED':false 
   }, 
 serverType:'geoserver'
  
 });
 var untiled = new ol.layer.Tile({
 source: vectorSource
 });
 var container = document.getElementById('popup');
 var content = document.getElementById('popup-content');
 var title = document.getElementById('popup-title');
 var closer = document.getElementById('popup-closer');
 closer.onclick = function(){
 container.style.display = 'none';
 closer.blur();
 return false;
 };
 var overlay = new ol.Overlay({
 element: container
 });
 
  var osmsource = new ol.source.OSM()
 //console.log(osmsource.getProjection().getCode()); 
 var map = new ol.Map({
 controls: ol.control.defaults({
 attribution: false
 }),
 target: 'map',
 layers: [new ol.layer.Tile({
 source: osmsource, //将数据源坐标系统进行转换
 projection:ol.proj.getTransform("EPSG:3857", "EPSG:4326")
 }),
 untiled],
 overlays: [overlay],
 view: new ol.View({
 center:[117,42],
 projection:'EPSG:4326',
 zoom:1
 })
 });
 map.addOverlay(overlay);
 map.getView().fit(bounds, map.getSize());
 
 map.on('click', function(evt) {
 var coordinate = evt.coordinate;
 var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(
 coordinate, 'EPSG:4326', 'EPSG:4326'));
 overlay.setPosition(coordinate);
 content.innerHTML = '<p>You clicked here:</p><code>' + hdms +
 '</code>';
 container.style.display = 'block';
 title.innerHTML = "提示信息";
 title.style.display = 'block';
 map.getView().setCenter(coordinate);
 });
 }
 </script>
</head>
<body onLoad="init()">
<div id="map">
 <div id="popup" class="ol-popup">
 <a href="#" rel="external nofollow" id="popup-closer" class="ol-popup-closer"></a>
 <div id="popup-title" class="popup-title"></div>
 <div id="popup-content" class="popup-content"></div>
 </div>
</div>
</body>
</html>

效果图:

openlayers实现地图弹窗

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个无限级XML绑定跨框架菜单(For IE)
Jan 27 Javascript
不要在cookie中使用特殊字符的原因分析
Jul 13 Javascript
jQuery实现切换页面布局使用介绍
Oct 09 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
js实现照片墙功能实例
Feb 05 Javascript
jQuery前端分页示例分享
Feb 10 Javascript
jQuery使用ajax跨域获取数据的简单实例
May 18 Javascript
原生js实现放大镜效果
Jan 11 Javascript
详解JavaScript栈内存与堆内存
Apr 04 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
JavaScript arguments.callee作用及替换方案详解
Sep 02 Javascript
openlayers实现地图测距测面
Sep 25 #Javascript
openlayers 3实现车辆轨迹回放
Sep 24 #Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 #Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
Sep 24 #Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 #Javascript
vue使用openlayers实现移动点动画
Sep 24 #Javascript
Openlayers实现点闪烁扩散效果
Sep 24 #Javascript
You might like
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
vue使用jsonp抓取qq音乐数据的方法
2018/06/21 Javascript
jQuery实现简单复制json对象和json对象集合操作示例
2018/07/09 jQuery
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
python flask 多对多表查询功能
2017/06/25 Python
python安装twisted的问题解析
2018/08/21 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
2014年教师政治学习材料
2014/06/02 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
工作年限证明模板
2015/06/15 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
Nginx实现会话保持的两种方式
2022/03/18 Servers
Moment的feature导致线上bug解决分析
2022/09/23 Javascript