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 相关文章推荐
新手常遇到的一些jquery问题整理
Aug 16 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
May 31 Javascript
AngularJS 如何在控制台进行错误调试
Jun 07 Javascript
详解javascript立即执行函数表达式IIFE
Feb 13 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
Feb 14 Javascript
Bootstrap表格使用方法详解
Feb 17 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
详解vue axios二次封装
Jul 22 Javascript
基于Vue实现微信小程序的图文编辑器
Jul 25 Javascript
微信小程序实现顶部下拉菜单栏
Nov 04 Javascript
详解axios中封装使用、拦截特定请求、判断所有请求加载完毕)
Apr 09 Javascript
js通过循环多张图片实现动画效果
Dec 19 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实现递归循环每一个目录
2010/08/08 PHP
PHP中的session安全吗?
2016/01/22 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
对YUI扩展的Gird组件 Part-2
2007/03/10 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
JS打开层/关闭层/移动层动画效果的实例代码
2013/05/11 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
javascript删除元素节点removeChild()用法实例
2015/05/26 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
jQuery简单倒计时效果完整示例
2016/09/20 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python 求1-100之间的奇数或者偶数之和的实例
2019/06/11 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
毕业生自我鉴定
2013/12/04 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
2014高考励志标语
2014/06/05 职场文书
基于Python编写一个监控CPU的应用系统
2022/06/25 Python
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技
js 实现Material UI点击涟漪效果示例
2022/09/23 Javascript