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 相关文章推荐
JS 显示当前日期与时间的代码
Mar 24 Javascript
读jQuery之十一 添加事件核心方法
Jul 31 Javascript
Bootstrap每天必学之按钮
Nov 26 Javascript
关于JavaScript作用域你想知道的一切
Feb 04 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
Vue2 SSR渲染根据不同页面修改 meta
Nov 20 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
Jan 16 Javascript
vue给组件传递不同的值方法
Sep 29 Javascript
Vue SPA 初次进入加载动画实现代码
Nov 14 Javascript
js实现从右往左匀速显示图片(无缝轮播)
Jun 29 Javascript
JavaScript实现雪花飘落效果
Dec 27 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
下载文件的点击数回填
2006/10/09 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
PHP对象的浅复制与深复制的实例详解
2017/10/26 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
判断对象是否Window的实现代码
2012/01/10 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
JavaScript设计模式之外观模式介绍
2014/12/28 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
Sublime Text 3常用插件及安装方法
2015/12/16 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
深入理解Ajax的get和post请求
2016/06/02 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
jQuery开发仿QQ版音乐播放器
2020/07/10 jQuery
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
2018/03/22 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python 面向对象之封装、继承、多态操作实例分析
2019/11/21 Python
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
给领导的检讨书
2014/02/16 职场文书
詹天佑教学反思
2014/04/30 职场文书
运动会方队口号
2014/06/07 职场文书
五心教育心得体会
2014/09/04 职场文书
机关作风建设整改方案
2014/10/27 职场文书
寒假安全保证书
2015/02/28 职场文书
老公婚前保证书
2015/02/28 职场文书
学雷锋献爱心倡议书
2015/04/27 职场文书
搭讪开场白台词大全
2015/05/28 职场文书
拉贝日记观后感
2015/06/05 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书