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之一
Apr 27 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
Sep 25 Javascript
自定义的一个简单时尚js下拉选择框
Nov 20 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
javascript表单控件实例讲解
Sep 13 Javascript
浅谈js中的引用和复制(传值和传址)
Sep 18 Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 Javascript
JavaScript Canvas绘制圆形时钟效果
Aug 20 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
Sep 18 Javascript
Vue基于NUXT的SSR详解
Oct 24 Javascript
使用p5.js实现动态GIF图片临摹重现
Oct 23 Javascript
在vue中使用Echarts画曲线图的示例
Oct 03 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
基于jQuery判断两个元素是否有重叠部分的代码
2012/07/25 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
javascript中的this作用域详解
2019/07/15 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
Python进程间通信用法实例
2015/06/04 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
python开发前景如何
2020/06/11 Python
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
大学本科毕业生求职信范文
2013/12/18 职场文书
大三学生入党思想汇报
2014/01/02 职场文书
自主实习接收函
2014/01/13 职场文书
旅游项目开发策划书
2014/01/18 职场文书
大学军训感言1000字
2014/02/25 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
Python 阶乘详解
2021/10/05 Python