OpenLayers 3自定义地图工具条(一)
2016-03-03 15:45
323 查看
对于一个WEB地图应用来说,地图工具条可以说是不可或缺的一个部分,但由于一些样式、功能往往并不能满足实际项目需要,所以仍要对此部分进行定制,从这里将说明如何利用Oplenayers 3根据项目要求做一个定制化的工具条。
视图放大、缩小
全图【全图范围,初始化地图到默认的层级,以及预先设定的中心点】
地图标绘【点、线、面】
地理定位【省份定位】
地图切换【影像地图、地形地图】
建立CSS样式文件
全屏以及取消全屏的实现
全图最大的实现
放大以及缩小的实现
标绘页面需要增加的HTML结构,功能在后面再做介绍
定位页面需增加的HTML结构。
说明:切换地图的实现,这里主要用了地图组的切换来实现,即ol.layer.Group的setVisible来实现。
1、工具条功能内容内容
全屏、取消全屏视图放大、缩小
全图【全图范围,初始化地图到默认的层级,以及预先设定的中心点】
地图标绘【点、线、面】
地理定位【省份定位】
地图切换【影像地图、地形地图】
2、最终工具条效果图
3、具体实现
构建页面HTML元素<div class="tool-container"> <div class="t_close"></div> <ul> <li id="tfullscreen"> <span class="t_1"></span><i>全屏</i> </li> <b></b> <li id="tfullmap"> <span class="t_2"></span><i>最大</i> </li> <b></b> <li id="tzoomin"> <span class="t_3"></span><i>放大</i> </li> <b></b> <li id="tzoomout"> <span class="t_4"></span><i>缩小</i> </li> <b></b> <li id="draw"> <span class="t_10"></span><i>标绘</i> <em></em> </li> <b></b> <li id="tpos"> <span class="t_6"></span><i>定位</i> <em></em> </li> <b></b> <li id="tcgmap"> <span class="t_7"></span><i>切换</i> </li> <b></b> </ul> </div>
建立CSS样式文件
/*此处略*/ .tool-container{ }
全屏以及取消全屏的实现
var fullscreen = function() { var elem = document.body; if (elem.webkitRequestFullScreen) { elem.webkitRequestFullScreen() } else { if (elem.mozRequestFullScreen) { elem.mozRequestFullScreen() } else { if (elem.msRequestFullscreen) { elem.msRequestFullscreen() } else { if (elem.requestFullScreen) { elem.requestFullscreen() } else { alert("浏览器不支持全屏") } } } } }; var exitFullscreen = function() { var elem = parent.document; if (elem.webkitCancelFullScreen) { elem.webkitCancelFullScreen() } else { if (elem.mozCancelFullScreen) { elem.mozCancelFullScreen() } else { if (elem.cancelFullScreen) { elem.cancelFullScreen() } else { if (elem.msExitFullscreen) { elem.msExitFullscreen() } else { if (elem.exitFullscreen) { elem.exitFullscreen() } else { alert("浏览器不支持全屏") } } } } } };
全图最大的实现
var fullmap = function() { map.setView(new ol.View({ center: ol.proj.fromLonLat([95.23, 35.33]), zoom: 4 })); }
放大以及缩小的实现
var zoomin = function() { var view = map.getView(); var zoom = view.getZoom(); view.setZoom(zoom + 1); } var zoomout = function() { var view = map.getView(); var zoom = view.getZoom(); view.setZoom(zoom - 1); }
标绘页面需要增加的HTML结构,功能在后面再做介绍
<div class="draw_open"> <ul> <li> <span class="t_5"> </span><i class="pdl10">点</i> </li> <li> <span class="t_8"> </span><i class="pdl10">线</i> </li> <li> <span class="t_9"> </span><i class="pdl10">面</i> </li> </ul> </div>
定位页面需增加的HTML结构。
<div id="citylist" class="city-list"> <header class="city-header"> <span class="city-current">省份列表</span> </header> <div class="city-province"> <!--此处有后台获取省份、城市列表数据动态产生,或固定json串之类均可--> </div> </div>
说明:切换地图的实现,这里主要用了地图组的切换来实现,即ol.layer.Group的setVisible来实现。
相关文章推荐
- 百度地图经纬度转换到腾讯地图/Google 对应的经纬度
- 基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
- 在Google 地图上实现做的标记相连接
- PHP计算百度地图两个GPS坐标之间距离的方法
- sogou地图API用法实例教程
- 使用OpenLayers3 添加地图鼠标右键菜单
- Python和Perl绘制中国北京跑步地图的方法
- Javascript学习总结@html5实现定位地理位置
- gps各种地图坐标系转换
- [IOS地图开发系类]1、CLLocationManager 位置定位
- [IOS地图开发系类]2、位置解码CLGeocoder
- [IOS地图开发系类]3、地图视图MKMapview
- [IOS地图开发系类]4、MKMapview上添加MKAnnotationView,标记当前位置
- [IOS地图开发系类]5、改变大头针MKPinAnnotationView的颜色
- 魔兽地图修改器
- 国家测绘局副局长解释什么是“问题地图”ぁ
- 地图 点聚合
- asp.net地理统计图表控件
- Yahoo前端优化性能规则
- 基于高德地图写的不同功能的地图应用