OpenLayers3 学习-1
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={}). 其下又分为几类:
- 更深一层的命名空间: 如
ol.layers,以小写字母开头; - 包含静态属性和方法的简单对象,如
ol.animation,同样以小写字母开头; - 类型(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.Tile、ol.layer.Image和ol.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的更多相关文章
- Openlayers3学习心得(初识)
最近刚辞了原来的那家公司,准备新找一份工作.其中有个公司要求会Openlayers3.一看到这个要求,就知道公司业务涉及地图图表比较多. Openlayers本身是一个基于GIS地图相关的功能丰富的J ...
- Arcgis for Js之加载wms服务
概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: ...
- openlayers3入门教程
...
- 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3
Web GIS系列: 搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 使用GeoServer+QGIS发布WMTS服务 使用GeoSe ...
- Openlayers3 编辑要素
参考文章 Openlayers之编辑要素 MAPZONE GIS SDK接入Openlayers3之五——图形编辑工具 [学习笔记之Openlayers3]要素保存篇(第四篇) openlayers实 ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
随机推荐
- windows配置Scrapy爬虫框架
一.环境 Windows10 64位 Python2.7.13 64位 下面的安装步骤最好配置代理,可能会遇到被墙的情况. 二.Python的安装 可以去参考这篇文章:http://blog.csdn ...
- JDK配置 java跨平台性
jdk 虚拟机jre 依赖包javac 编译java 运行JAVA_HOME 一个存储jdk路径的自定义的变量,方便其他地方配置以后更改方便其他地方调用JAVA_HOME使用%JAVA_HOME%配置 ...
- IOS layoutSubviews总结
ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit - (void)layoutSubviews - (voi ...
- 管道通信Pipe
通信原理: 在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进程操作即可实现通信 函数方法: fd1,fd2 = Pipe(duplex = True) 功能: 创建管道 参数: ...
- 《DSP using MATLAB》示例Example 9.9
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- windows 不能在本地计算机启动SqlServer. 参考特定服务错误代码10048
这一般都是由于Sql Server的端口号被其他应用程序占用导致的,可以使用dos命令或者网络工具查看当前端口的使用情况,看看哪个程序占用了Sql Server的默认端口1433,将这个程序结束就可以 ...
- hibernate映射xml文件配置之一对多,多对多
一对多配置 [1]班级和学生模型 --->班级可容纳多个学生 --->学生只能属于一个班级 [2]一对多配置中的关系维护(inverse) --->一端放弃关系的维护 ---> ...
- 设计模式(Python)-单例模式
本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的 ...
- RabbitMQ 概念与Java例子
RabbitMQ简介 目前RabbitMQ是AMQP 0-9-1(高级消息队列协议)的一个实现,使用Erlang语言编写,利用了Erlang的分布式特性. 概念介绍: Broker:简单来说就是消息队 ...
- Autocad 2010+ObjectArx 2010 +Vs2010 的.net 开发设置(转)
Autocad 2010+ObjectArx 2010 +Vs2010 的.net 开发设置 分类: ObjectArx.net2010-09-14 16:52 4203人阅读 评论(7) 收藏 举报 ...