openlayers3入门教程

摘要:
Openlayers3从根本上重新设计了OpenLayers网络地图库。尽管版本2被广泛使用,但自JavaScript开发的早期开发阶段以来,它已经变得越来越落后。OL3已经使用现代设计模式从底层重写。OpenLayers3还设计了一些主要的新功能,例如显示3D地图或使用WebGL快速显示大型矢量数据集,这些功能将在未来版本中添加。为了清楚地看到OpenLayers的层架构,首先看下面的UML图。
                                                                                                           openlayers3入门教程
摘要
       OpenLayers 3对OpenLayers网络地图库进行了根本的重新设计。版本2虽然被广泛使用,但从JavaScript开发的早期发展阶段开始,已日益现实出它的落后。 OL3已运用现代的设计模式从底层重写。
       最初的版本旨在支持第2版提供的功能,提供大量商业或免费的瓦片资源以及最流行的开源矢量数据格式。与版本2一样,数据可以被任意投影。最初的版本还增加了一些额外的功能,如能够方便地旋转地图以及显示地图动画。
       OpenLayers 3同时设计了一些主要的新功能,如显示三维地图,或使用WebGL快速显示大型矢量数据集,这些功能将在以后的版本中加入。
为了看清楚OpenLayers的Layer结构体系,先看下面的UML图。
openlayers3入门教程第1张
  1. <script type="text/javascript">  
  2.         window.onload = function () {  
  3.             //实例化map对象并加载地图  
  4.             var map = new ol.Map({  
  5.                 //存放地图目标容器  
  6.                 target: 'map',  
  7.                 //加载图层  
  8.                 layers: [  
  9.                         //新建一个瓦片地图图层  
  10.                         new ol.layer.Tile({  
  11.                             //瓦片地图数据源  
  12.                             source: new ol.source.OSM()  
  13.                         })  
  14.                 ],  
  15.                 //初始化视图  
  16.                 view: new ol.View({  
  17.                     //视图中心点坐标  
  18.                     center: [12550000, 3680000],  
  19.                     //缩放等级  
  20.                     zoom: 8,  
  21.                     //最小缩放等级  
  22.                     minZoom: 6,  
  23.                     //最大缩放等级  
  24.                     maxZoom: 12,  
  25.                     //地图旋转30度  
  26.                     rotation: Math.PI/6  
  27.                 })  
  28.             });  
  29.   
  30.             //获取地图的初始化信息  
  31.             var view = map.getView();  
  32.             var zoom = view.getZoom();  
  33.             var center = view.getCenter();  
  34.             var rotation = view.getRotation();  
  35.   
  36.             //地图缩小  
  37.             document.getElementById("zoom-out").onclick = function () {  
  38.                 //获取地图当前视图  
  39.                 var view = map.getView();  
  40.                 //获取地图当前缩放等级  
  41.                 var zoom = view.getZoom();  
  42.                 //每单击一次地图的缩放等级减一,以实现地图缩小  
  43.                 view.setZoom(zoom - 1);  
  44.             };  
  45.   
  46.             //地图放大  
  47.             document.getElementById("zoom-in").onclick = function () {  
  48.                 //获取地图当前视图  
  49.                 var view = map.getView();  
  50.                 //获取地图当前缩放等级  
  51.                 var zoom = view.getZoom();  
  52.                 //每单击一次地图的缩放等级加一,以实现地图放大  
  53.                 view.setZoom(zoom + 1);  
  54.             };  
  55.   
  56.             //地图平移  
  57.             document.getElementById("panto").onclick = function () {  
  58.                 //获取地图当前视图  
  59.                 var view = map.getView();  
  60.                 //指定要平移到的位置的坐标  
  61.                 var position = ol.proj.fromLonLat([115.2341, 32.4652]);  
  62.                 //重设地图中心点,实现平移  
  63.                 view.setCenter(position);  
  64.             };  
  65.   
  66.             //地图重置  
  67.             document.getElementById("restore").onclick = function () {  
  68.                 //重置中心点位置为初始化位置  
  69.                 view.setCenter(center);  
  70.                 //重置旋转角度为初始化角度  
  71.                 view.setRotation(rotation);  
  72.                 //重置缩放等级为初始化缩放等级  
  73.                 view.setZoom(zoom);  
  74.             };  
  75.         }  
  76. 为地图添加弹出框(完整代码详见:http://blog.csdn.net/qingyafan/article/details/44415631
  77. /** 
  78.  * Add a click handler to the map to render the popup. 
  79.  */  
  80. map.addEventListener('click', function(evt) {  
  81.   var coordinate = evt.coordinate;  
  82.   var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(  
  83.       coordinate, 'EPSG:3857', 'EPSG:4326'));  
  84.   content.innerHTML = '<p>你点击的坐标是:</p><code>' + hdms + '</code>';  
  85.   overlay.setPosition(coordinate);  
  86.   map.addOverlay(overlay);  
  87. });
  88. openlayers3入门教程第2张
  89.   </script>
  90. openlayers进阶学习——多标注显示/点击弹出框/图层控制/搜索定位/新增标注等
  91. 多标注显示
  92. 、多标注显示:通过Feature和Marker实现多点标注。(技术:http://blog.csdn.net/linlzk/article/details/20049405
  93. .openlayers3之动态点扩散效果(http://blog.csdn.net/qingyafan/article/details/49848455
  94. openlayers中三种动画实现(http://blog.csdn.net/u014529917/article/details/52514204

免责声明:文章转载自《openlayers3入门教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Node.js_Buffer 缓冲区c# 扩展方法奇思妙用高级篇六:WinForm 控件选择器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

golang-指针,函数,map

指针普通类型变量存的就是值,也叫值类型。指针类型存的是地址,即指针的值是一个变量的地址。一个指针只是值所保存的位置,不是所有的值都有地址,但是所有的变量都有。使用指针可以在无需知道变量名字的情况下,间接读取或更新变量的值。 获取变量的地址,用&,例如:var a int 获取a的地址:&a,&a(a的地址)这个表达式获取一个指向整型...

QNX 实时操作系统(Quick Unix)

Gordon Bell和Dan Dodge在1980年成立了Quantum Software Systems公司,他们根据大学时代的一些设想写出了一个能在IBM PC上运行的名叫QUNIX(Quick UNIX)的系统,直到AT&T发律师函过来才把名字改成QNX。 中文名 QNX 实时操作系统 POSⅨ 规范 系统 嵌入式系统 目录...

Windows启动过程详解

Windows启动过程详解   我们每天都在和Windows打交道,很多人可能每天都要面对多次Windows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的。 本文的适用范围 随着技术的发展,我们能够见到的...

用Gitolite搭建服务器上的Git

使用git作为版本控制工具,确实非常流行且好用,常用的git代码服务器有Github还是国内的Gitcafe和OSC都是很不错,可以免费存放一些开源的项目代码,对于私人项目,则需要支付一定的费用。同时对于代码安全隐私的考虑,有时需要搭建自己的私有git服务器,官方wiki有介绍,这里在整理一遍自己的搭建过程,供之后参看。 安装基础依赖包 1 # yum...

Camera Service

上面这张图比较清楚的表现了camera provider进程在camera架构中位置,作为承上启下的部分,和cameraserver进程和底层的驱动交互,camera provider进程非常重要,camera HAL层几乎全部运行在camera provider进程中完成。 首先看下camera provider所在源码中的位置:hardware/in...

微信小程序 生命周期函数详解

微信小程序 生命周期函数 小程序中 判断当前首页是从其他页面返回,还是由入口打开 由于小程序的数据在我们退出小程序时并没有得到释放,因此再次点击开来数据依然没有变成初始化 解决方法:在小程序 data 数据中声明一个变量 isClose 默认为 true 用于判断 是否为从入口打开,当点击跳转页面或者关闭小程序的时候,会触发 OnHide 函数在此函数中将...