OpenLayers3 学习-1-简介


OpenLayers3(OL3)对OL2进行了重新设计和实现,支持多种格式的商业和免费的地图数据源。未来的版本将包括显示3D地图或利用WebGL进行大规模矢量数据的展示的功能。

OL3基于Google的 Closure Tools,大量应用了Closure Library中的内容。

OL3利用了Canvas, DOM和WebGL来实现数据渲染。因此,IE9以下的浏览器是不支持的。OL3的设计目标是能够在桌面/平板和移动设备上都能应用。

  

OL3应用了和Closure library类似的对象层次结构。顶层是ol命名空间(即 var ol={}). 其下又分为几类:

  1. 更深一层的命名空间: 如ol.layers,以小写字母开头;
  2. 包含静态属性和方法的简单对象,如ol.animation,同样以小写字母开头;
  3. 类型(types)以大写字母开头。他们主要是一些,即拥有构造函数,如ol.Map,ol.layer.Vector。也有一些是简单类型,如数组类型的ol.Extent.

类命名空间,如ol.layer,拥有同名的基本类类型,如ol.layer.Layer,主要是用于给其他类继承的抽象类。

 

OL3的源码的组织方式和命名空间类似,如ol/layer/vectorlayer.js.


参考:

http://openlayers.org/en/latest/doc/tutorials/introduction.html


OpenLayers3 学习-1-基本概念

Map - 地图

OL3的核心组件是地图ol.map).他被渲染到 target容器(即一个在页面上包含地图的div)。所有的地图属性可以在创建地图时设置,或是使用 setter 方法,如setTarget()

<div id="map" style="width: 100%, height: 400px"></div>
<script>
var map = new ol.Map({target: 'map'});
</script>

View - 视图

ol.Map不负责地图的中心点、缩放和投影属性设置,它们是ol.View的实例的属性。

map.setView(new ol.View({
center: [0, 0],
zoom: 2
}));

ol.View同时拥有projection属性。投影决定了坐标系统的中心(center)和地图分辨率的计算单位。OL3默认的投影是球形墨卡托(Spherical Mercator,EPSG:3857),单位为 米。

zoom属性是一个设定地图分辨率的便捷的方法。可用的缩放级别由maxZoom(默认28)、zoomFactor(默认2)和maxResolution(默认值根据投影的有效范围适应256X256像素的瓦片来计算)。0级时分辨率是每像素maxResolution个单元,缩放时根据zoomFactor计算,直到maxZoom

Source - 源

OL3利用ol.source.Source子类来加载远程数据。商业地图服务源如OpenStreetMap、Bing,以及OGC规范源如WMS、WMTS,以及矢量数据如GeoJSON、KML都是可以使用的。

var osmSource = new ol.source.OSM();

Layer - 图层

layer 是source数据的可视化表达。OL3 有3种基本图层类型:ol.layer.Tileol.layer.Imageol.layer.Vector

  • ol.layer.Tile用来表达那些提供预渲染的、依据缩放级别决定分辨率并以格网形式平铺的图片数据。(原文感觉有点拗口)
  • ol.layer.Image 用来表达由服务端渲染的、可提供任意范围和分辨率的图片数据。
  • ol.layer.Vector 用来表达在客户端渲染的矢量数据。
var osmLayer = new ol.layer.Tile({source: osmSource});
map.addLayer(osmLayer);

综合

<div id="map" style="width: 100%, height: 400px"></div>
<script>
new ol.Map({
layers: [
new ol.layer.Tile({source: new ol.source.OSM()})
],
view: new ol.View({
center: [0, 0],
zoom: 2
}),
target: 'map'
});
</script>

参考:

http://openlayers.org/en/latest/doc/tutorials/concepts.html

OpenLayers3 学习-1的更多相关文章

  1. Openlayers3学习心得(初识)

    最近刚辞了原来的那家公司,准备新找一份工作.其中有个公司要求会Openlayers3.一看到这个要求,就知道公司业务涉及地图图表比较多. Openlayers本身是一个基于GIS地图相关的功能丰富的J ...

  2. Arcgis for Js之加载wms服务

    概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...

  3. openlayers3入门教程

                                                                                                        ...

  4. 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3

    Web GIS系列: 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 使用GeoServer+QGIS发布WMTS服务 使用GeoSe ...

  5. Openlayers3 编辑要素

    参考文章 Openlayers之编辑要素 MAPZONE GIS SDK接入Openlayers3之五——图形编辑工具 [学习笔记之Openlayers3]要素保存篇(第四篇) openlayers实 ...

  6. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  7. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  8. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  9. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

随机推荐

  1. C# 对json对象嵌套数组

    看图: 这里可以看到是二层嵌套!!使用C#如何实现?? 思路:使用list集合实现 → 建立类 → list集合 → 微软的   Newtonsoft.Json  (一款.NET中开源的Json序列化 ...

  2. Linux 进程、线程运行在指定CPU核上

    /******************************************************************************** * Linux 进程.线程运行在指定 ...

  3. Linux wget auto login and backup database

    #!/bin/bash # 这是一份本来打算采用自动备份数据的代码,由于测试过程中出现了无法连接的问题,导致不能测试, # 于是最后放弃了这份代码的进一步的开发,但是记录还是有必要的 login_ur ...

  4. POJ3177 Redundant Paths【tarjan边双联通分量】

    LINK 题目大意 给你一个有重边的无向图图,问你最少连接多少条边可以使得整个图双联通 思路 就是个边双的模板 注意判重边的时候只对父亲节点需要考虑 你就dfs的时候记录一下出现了多少条连向父亲的边就 ...

  5. java面试题6

    1.写一个冒泡排序的算法 升序排列: int[] nums = {5,6,9,10,20,30,28,27,15}; for(int i = 0;i<nums.length;i++){ for( ...

  6. 最佳C/C++编辑器 source insight3

    C/C++嵌入式代码编辑器source insight3下载地址 http://www.sourceinsight.com/eval.html 注册码:SI3US-361500-17409

  7. java编程之常见的排序算法

    java常见的排序算法 第一种:插入排序 直接插入排序 1, 直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n个数插到前面的 ...

  8. python2用pip进行安装时报错Fatal error in launcher: Unable to create process using '"'

    win7下python3和python2共存环境 用pip安装一个包执行pip2 install xxx的时候报错Fatal error in launcher: Unable to create p ...

  9. laravel 整合 swoole ,并简单 ab 测试对比性能以及在 PHPstorm 中利用debug调试配置swoole服务中的PHP代码

    安装PHP 的 swoole 扩展 及 安装 laravel,就不描述了 整合 laravel 和 swoole 用了这个轮子,侵入性很小,一行代码搞定,推荐一下,今天刚用,不能预测未来是否会遇见坑 ...

  10. selenium+python 移动鼠标方法

    from selenium import webdriver from selenium.webdriver.common.keys import Keys import time driver=we ...