http://blog.csdn.net/gisshixisheng/article/details/46761535

概述:

本文讲述的是Ol3中的control的介绍和应用。

OL2和OL3 control比较:

相比较Ol2的control,OL3显得特别少,下图分别为Ol2和Ol3的control:

Ol2的control

Ol3的control

相比较Ol2,OL3保留了mouseposition,scaleline,zoom,zoomslider,而将很多东西例如draw等转移到了interaction下面,下图为Ol3的interaction:

OL3中control的常用操作:

Ol3中control的常用操作包括获取control集,添加,删除。

获取control集

  1. var controls = map.getControls();

添加

  1. map.addControl(ctrl);

删除

  1. map.removeControl(ctrl);

OL3添加control示例:

下面是一个比较完成的OL3的Control的示例,

  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>control</title>
  5. <link rel="stylesheet" type="text/css" href="http://localhost/ol3/css/ol.css"/>
  6. <style type="text/css">
  7. body, #map {
  8. border: 0px;
  9. margin: 0px;
  10. padding: 0px;
  11. width: 100%;
  12. height: 100%;
  13. font-size: 13px;
  14. }
  15. #location{
  16. position: absolute;
  17. bottom: 10px;
  18. left: 45%;
  19. font-weight: bold;
  20. z-index: 99;
  21. }
  22. #switch{
  23. position:absolute;
  24. right:20pt;
  25. top:40pt;
  26. z-index:999;
  27. }
  28. #rotation{
  29. position: absolute;
  30. top: 10px;
  31. left: 45%;
  32. font-weight: bold;
  33. z-index: 99;
  34. }
  35. .ol-zoomslider{
  36. background: #d0e5f5;
  37. width: 20px;
  38. }
  39. .zoom-to-extent{
  40. position: absolute;
  41. top: 5pt;
  42. left: 28pt;
  43. }
  44. .map-rotate{
  45. position: absolute;
  46. top: 5pt;
  47. left: 45%;
  48. }
  49. </style>
  50. <script type="text/javascript" src="http://localhost/ol3/build/ol.js"></script>
  51. <script type="text/javascript" src="http://localhost/jquery/jquery-1.8.3.js"></script>
  52. <script type="text/javascript">
  53. function init(){
  54. var format = 'image/png';
  55. var bounds = [73.4510046356223, 18.1632471876417,
  56. 134.976797646506, 53.5319431522236];
  57. var controls = new Array();
  58. //鼠标位置
  59. var mousePositionControl = new ol.control.MousePosition({
  60. className: 'custom-mouse-position',
  61. target: document.getElementById('location'),
  62. coordinateFormat: ol.coordinate.createStringXY(5),//保留5位小数
  63. undefinedHTML: ' '
  64. });
  65. controls.push(mousePositionControl);
  66. //缩放至范围
  67. var zoomToExtentControl = new ol.control.ZoomToExtent({
  68. extent: bounds,
  69. className: 'zoom-to-extent',
  70. tipLabel:"全图"
  71. });
  72. controls.push(zoomToExtentControl);
  73. //比例尺
  74. var scaleLineControl = new ol.control.ScaleLine({});
  75. controls.push(scaleLineControl);
  76. //全图
  77. var fullScreenControl = new ol.control.FullScreen({});
  78. controls.push(fullScreenControl);
  79. //缩放控件
  80. var zoomSliderControl = new ol.control.ZoomSlider({});
  81. controls.push(zoomSliderControl);
  82. var rotate = new ol.control.Rotate({
  83. //              label:"↑",
  84. tipLabel:"重置",
  85. target:document.getElementById('rotation'),
  86. autoHide:false
  87. });
  88. controls.push(rotate);
  89. var untiled = new ol.layer.Image({
  90. source: new ol.source.ImageWMS({
  91. ratio: 1,
  92. url: 'http://localhost:8081/geoserver/lzugis/wms',
  93. params: {'FORMAT': format,
  94. 'VERSION': '1.1.1',
  95. LAYERS: 'lzugis:province',
  96. STYLES: ''
  97. }
  98. })
  99. });
  100. var projection = new ol.proj.Projection({
  101. code: 'EPSG:4326',
  102. units: 'degrees'
  103. });
  104. var map = new ol.Map({
  105. controls: ol.control.defaults({
  106. attribution: false
  107. }).extend(controls),
  108. interactions: ol.interaction.defaults().extend([
  109. new ol.interaction.DragRotateAndZoom()
  110. ]),
  111. target: 'map',
  112. layers: [
  113. untiled
  114. ],
  115. view: new ol.View({
  116. projection: projection,
  117. rotation:-45
  118. })
  119. });
  120. map.getView().fitExtent(bounds, map.getSize());
  121. $("#setRotate").on("click",function(){
  122. var angle = $("#rotate").val();
  123. map.getView().setRotation(angle);
  124. });
  125. }
  126. </script>
  127. </head>
  128. <body onLoad="init()">
  129. <div class="layer-change-switch" id="switch">
  130. <div id="slider">
  131. <input id="rotate" type="text" value="-45" maxlength="10" style="width: 50px;" /><button id="setRotate">旋转</button>
  132. </div>
  133. </div>
  134. <div id="map">
  135. <div id="rotation"></div>
  136. <div id="location"></div>
  137. </div>
  138. </body>
  139. </html>

上述代码效果如下:

(转) OpenLayers3基础教程——OL3 介绍control的更多相关文章

  1. OpenLayers3基础教程——OL3 介绍control

    概述: 本文讲述的是Ol3中的control的介绍和应用. OL2和OL3 control比較: 相比較Ol2的control,OL3显得特别少,下图分别为Ol2和Ol3的control: Ol2的c ...

  2. (转)OpenLayers3基础教程——OL3 介绍interaction

    http://blog.csdn.net/gisshixisheng/article/details/46808647 概述: 本节主要讲述OL3的交互操作interaction,重点介绍draw,s ...

  3. OpenLayers3基础教程——OL3之Popup

    概述: 本节重点讲述OpenLayers3中Popup的调用时实现,OL3改用Overlay取代OL2的Popup功能. 接口简单介绍: overlay跟ol.control.Control一样,是一 ...

  4. (转)OpenLayers3基础教程——OL3基本概念

    http://blog.csdn.net/gisshixisheng/article/details/46756275 OpenLayers3基础教程——OL3基本概念 从本节开始,我会陆陆续续的更新 ...

  5. OpenLayers3基础教程——OL3基本概念

    从本节開始,我会陆陆续续的更新有关OL3的相关文章--OpenLayers3基础教程,欢迎大家关注我的博客,同一时候也希望我的博客可以给大家带来一点帮助. 概述: OpenLayers 3对OpenL ...

  6. (转)OpenLayers3基础教程——OL3之Popup

    http://blog.csdn.net/gisshixisheng/article/details/46794813 概述: 本节重点讲述OpenLayers3中Popup的调用时实现,OL3改用O ...

  7. ActiveMQ基础教程----简单介绍与基础使用

    概述 ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线.ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多 ...

  8. Embedded Linux Primer----嵌入式Linux基础教程--章节介绍

    章节介绍 第一章,“导引”,简要介绍了Linux被迅速应用在嵌入式环境的驱动因素,介绍了与嵌入式Linux相关的几个重要的标准和组织. 第二章,“第一个嵌入式经历”,介绍了与后几章所构建的嵌入式Lin ...

  9. (转) OpenLayers3基础教程——加载资源

    概述: 本节讲述如何在Ol3中加载wms图层并显示到地图中. Ol3下载: 你可以在OL官网去下载,下载地址为http://openlayers.org/download/,也可以去我的百度云盘下载, ...

随机推荐

  1. Struts2 Action重启偶尔404 偶尔正常

    这是一个痛苦的教训 因想懒省事,复制module.action  到product.action  跟user.action 然后修改代码内容  ,最痛苦的是  还用查找替换功能进行全部文字替换  , ...

  2. broker监控dataguard配置

    使用broker查看dataguard信息时有告警 DGMGRL> show configuration; Configuration - DRTEST Protection Mode: Max ...

  3. noip模拟赛 公交车

    题目描述LYK在玩一个游戏.有k群小怪兽想乘坐公交车.第i群小怪兽想从xi出发乘坐公交车到yi.但公交车的容量只有M,而且这辆公交车只会从1号点行驶到n号点.LYK想让小怪兽们尽可能的到达自己想去的地 ...

  4. hdu 3657 最大点权独立集变形(方格取数的变形最小割,对于最小割建图很好的题)

    转载:http://blog.csdn.net/cold__v__moon/article/details/7924269 /* 这道题和方格取数2相似,是在方格取数2的基础上的变形. 方格取数2解法 ...

  5. mbr gpt

    超过2T硬盘的磁盘要用gpt格式,准确地说,应该是分区超过2T地硬盘要选用GPT模式. 做个小推广:程序员经常久坐,颈椎毛病比较多,特别推荐ventry颈椎保健枕

  6. Grails用CONSOLE测试,比写集成测试还快

    一般,这个可以用过开发当中的脚本测试吧. 如果正规的开发流程里,集成测试显然可以作为报告提交,必不可少.

  7. nyoj_524_A-B Problem_201312012035

    A-B Problem 时间限制:1000 ms  |           内存限制:65535 KB 难度:3   描述 A+B问题早已经被大家所熟知了,是不是很无聊呢?现在大家来做一下A-B吧. ...

  8. 洛谷 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows

    P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 题目描述 Each of Farmer John's N (4 <= N <= 16) cows has a u ...

  9. Android:解决cannot find zipalign的问题

    如果当前使用的Android SDK是v20的话,在通过Eclipse或者Intellij IDEA打包Android项目时,会出现一个”cannot find zipalign”的错误. 这个错误的 ...

  10. Thrift源代码分析(八)--总结加一个完整的可执行的Thrift样例

    前面七篇文章分析了Thrfit的方方面面,看到这里时应该对Thrift有了深入的理解. Thrift源代码分析(一)-- 基本概念 Thrift源代码分析(二)-- 协议和编解码 Thrift源代码分 ...