openlayers3 气泡框展示鼠标点击坐标
来源:互联网 发布:什么时候跑步最好知乎 编辑:程序博客网 时间:2024/05/16 17:52
根据这篇文章改写而来,主要实现了在地图上点击弹出气泡框,用来展示经纬度,当然你也可以改成展示其他内容。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="apple-mobile-web-app-capable" content="yes"> <title>OpenLayers MapQuest Demo</title> <link rel="stylesheet" type="text/css" href="css/ol.css"/> <style type="text/css"> html, body, #map{ padding:0; margin:0; height:100%; width:100%; } .mouse-position-wrapper{ width:300px; height:29px; color:#FF00FF; position:absolute; right:20px; bottom:6px; z-index:999; } .ol-rotate{ right:40px; } .ol-scale-line { left:180px; } .ol-zoomslider{ top:120px; left: 9px; } .ol-popup { position: absolute; background-color: white; -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)); padding: 15px; border-radius: 10px; border: 1px solid #cccccc; bottom: 12px; left: -50px; } .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; } .ol-popup-closer { text-decoration: none; position: absolute; top: 2px; right: 8px; } .ol-popup-closer:after { content: "✖"; } </style> <script type="text/javascript" src="build/ol.js"></script> <script type="text/javascript"> var map; function init(){ //封装底图函数 function getBaseLayer(layername, layer){ return new ol.layer.Tile({ title:layername, source:new ol.source.XYZ({ url:"http://t4.tianditu.com/DataServer?T="+layer+"&x={x}&y={y}&l={z}" }) }); }; //封装标注图层 function getAnnoLayer(layername, layer, visiable){ return new ol.layer.Tile({ title:layername, source:new ol.source.XYZ({ url:"http://t4.tianditu.com/DataServer?T="+layer+"&x={x}&y={y}&l={z}" }) }); }; //天地图图层 var baseLayers = ["vec_w","img_w","ter_w"]; var vecLayer = getBaseLayer("地图",baseLayers[0]); var imgLayer = getBaseLayer("影像",baseLayers[1]); var terLayer = getBaseLayer("地形",baseLayers[2]); var vecAnno = getAnnoLayer("地图标注", "cva_w", true); //使用GeoServer发布的地图 function getWMSLayer(){ return new ol.layer.Image({ source:new ol.source.ImageWMS({ url:'http://localhost:8080/geoserver/wms', params: {'LAYERS': 'topp:testpoly_landmarks','VERSION':'1.1.1'}, serverType: 'geoserver' }) }) } //GeoServer中图层范围BBOX范围值 var extent=[-74.047,40.68,-73.908,40.882]; //地图投影类型 var projection=new ol.proj.Projection({ code:'EPSG:4326', units:'degrees', extent:extent }); var geoServerTest=getWMSLayer(); map = new ol.Map({ controls:ol.control.defaults().extend([ new ol.control.FullScreen(), new ol.control.MousePosition({ coordinateFormat: ol.coordinate.createStringXY(4), projection: 'EPSG:4326', className: 'custom-mouse-position', target: document.getElementById('mouse-position') }) , new ol.control.OverviewMap({ }), new ol.control.Rotate({ autoHide:false }), new ol.control.ScaleLine({ }), new ol.control.ZoomSlider({ }), new ol.control.ZoomToExtent({ }) ]), view:new ol.View({ /* projection:projection, */ center: ol.extent.getCenter(extent), /* minZoom:1, maxZoom:5, */ zoom:2 }), target: 'map', layers: [vecLayer,vecAnno], }); var container = document.getElementById('popup'); var content = document.getElementById('popup-content'); var closer = document.getElementById('popup-closer'); var overlay = new ol.Overlay(/** @type {olx.OverlayOptions} */ ({ element: container, autoPan: true, autoPanAnimation: { duration: 250 //当Popup超出地图边界时,为了Popup全部可见,地图移动的速度. } })); /** * Add a click handler to the map to render the popup. */ map.addEventListener('click', function(evt) { var coordinate = evt.coordinate; var hdms = ol.coordinate.toStringHDMS(ol.proj.transform( coordinate, 'EPSG:3857', 'EPSG:4326')); content.innerHTML = '<p>你点击的坐标是:</p><code>' + hdms + '</code>'; overlay.setPosition(coordinate); map.addOverlay(overlay); }); closer.onclick = function() { overlay.setPosition(undefined); closer.blur(); return false; }; } </script> </head> <body onload="init()"> <div id="map"></div> <div id="mouse-position" class="mouse-position-wrapper"> <div class="custom-mouse-position"></div> </div><!-- 弹框 --> <div id="popup" class="ol-popup"> <a href="#" id="popup-closer" class="ol-popup-closer"></a> <div id="popup-content" style="width:300px; height:120px;"></div> </div> </body>
阅读全文
0 0
- openlayers3 气泡框展示鼠标点击坐标
- Openlayers3点击获取坐标
- js 获取鼠标点击坐标
- Javascript获取鼠标点击坐标
- Java 获取鼠标点击坐标
- js获取鼠标点击坐标
- python 读取鼠标点击坐标
- python 读取鼠标点击坐标
- 鼠标经过出现气泡框
- JS中找到鼠标点击的坐标
- Javascript获得鼠标点击图片的坐标
- 获取鼠标点击的坐标处理
- 鼠标点击事件按钮和触电坐标
- Unity 射线 (之鼠标点击的坐标)
- unity3D鼠标点击获取地面坐标
- js获取鼠标点击时坐标
- JavaScript 获取鼠标点击位置坐标
- unity3d鼠标点击,获取世界坐标
- node.js后台快速搭建在阿里云(二)(pm2和nginx篇)
- 关于JUnit 的笔记
- Golden.Software.Grapher.v12.7.855.Win32_64 1CD
- 虚拟机中除去虚拟网桥virbr0
- Shanghai 2006,UVaLive(LA) 3695 Distant Galaxy题解
- openlayers3 气泡框展示鼠标点击坐标
- android相关视频下载地址
- hdu 1024 Max Sum Plus Plus 最大m个子序列
- ZYNQ学习笔记(一): uboot 编译
- Ubuntu Tomcat服务器设置自动重启,定时检查崩溃后重启
- BFS & DFS的基础学习
- PAT (Basic Level) Practise (中文) 1037. 在霍格沃茨找零钱(20)
- Cocos2d-x里面如何实现MVC(四)
- Linux 中errno 错误对照表