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

从本节开始,我会陆陆续续的更新有关OL3的相关文章——OpenLayers3基础教程,欢迎大家关注我的博客,同时也希望我的博客能够给大家带来一点帮助。

概述:

OpenLayers 3对OpenLayers网络地图库进行了根本的重新设计。版本2虽然被广泛使用,但从JavaScript开发的早期发展阶段开始,已日益现实出它的落后。 OL3已运用现代的设计模式从底层重写。OpenLayers 3同时设计了一些主要的新功能,如显示三维地图,或使用WebGL快速显示大型矢量数据集,这些功能将在以后的版本中加入。

基本概念:

OL3结构图

1、Map

OpenLayers 3的核心部件是Map(ol.Map)。它被呈现到对象target容器(例如,包含在地图的网页上的div元素)。所有地图的属性可以在构造时进行配置,或者通过使用setter方法,如setTarget()。

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

2、View

ol. View负责地图的中心点,放大,投影之类的设置。

一个ol.View实例包含投影projection,该投影决定中心center 的坐标系以及分辨率的单位,如果没有指定(如下面的代码段),默认的投影是球墨卡托(EPSG:3857),以米为地图单位。

放大zoom 选项是一种方便的方式来指定地图的分辨率,可用的缩放级别由maxZoom (默认值为28)、zoomFactor (默认值为2)、maxResolution (默认由投影在256×256像素瓦片的有效成都来计算)
决定。起始于缩放级别0,以每像素maxResolution 的单位为分辨率,后续的缩放级别是通过zoomFactor区分之前的缩放级别的分辨率来计算的,直到缩放级别达到maxZoom 。

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

3、Source

OpenLayers 3使用ol.source.Source子类获取远程数据图层,包含免费的和商业的地图瓦片服务,如OpenStreetMap、Bing、OGC资源(WMS或WMTS)、矢量数据(GeoJSON格式、KML格式…)等。

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

4、Layer

一个图层是资源中数据的可视化显示,OpenLayers 3包含三种基本图层类型:ol.layer.Tileol.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>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 02:45:15

OpenLayers3基础教程——OL3基本概念的相关文章

OpenLayers3基础教程——OL3只之Popup

概述: 本节重点讲述OpenLayers3中Popup的调用时实现,OL3改用Overlay代替OL2的Popup功能. 接口简介: overlay跟ol.control.Control一样,是一个可见的窗口,但是不和Control一样,不是固定在地图区域的某个部分,而是显示在一个地图坐标上,随着地图的移动或者缩放而移动的.其调用方式如下: var popup = new ol.Overlay({ element: document.getElementById('popup') }); pop

OpenLayers3基础教程——OL3 介绍interaction

概述: 本节主要讲述OL3的交互操作interaction,重点介绍draw,select以及modify. 接口说明: OL3的interaction继承自ol.interaction.defaults,下面实现了以下几中交互操作: 创建方式为: var interaction = new ol.interaction.InteractionType({options});添加和移除方式为:map.addInteraction(draw);map.removeInteraction(draw)

OpenLayers3基础教程——OL3 介绍control

概述: 本文讲述的是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中contr

OpenLayers3基础教程——加载资源

概述: 本节讲述如何在Ol3中加载wms图层并显示到地图中. Ol3下载: 你可以在OL官网去下载,下载地址为http://openlayers.org/download/,也可以去我的百度云盘下载,下载地址为http://pan.baidu.com/s/1o6wwHTo.官网上的最新版本为3.6.0,我的网盘的版本为3.0.0,不过官网上的链接好像是失效的. OL3必须资源引入: OL3必须引入的资源有两个,一个为样式文件,ol.css:一个为js文件,ol.js. OL3加载wms: 在Ol

RabbitMq基础教程之基本概念

RabbitMq基础教程之基本概念 RabbitMQ是一个消息队列,和Kafka以及阿里的ActiveMQ从属性来讲,干的都是一回事.消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之间的异步协调工作 由于工作原因,接触和使用rabbitmq作为生产环境下的消息队列,因此准备写一些博文,记录下这个过程中的收货:而开篇除了环境搭建之外,就是对于其内部的基本概念进行熟悉和了解了. 基础环境搭建可以参考: <RabbitMq基础教程之安装与测试> 本文则主要集中在以下几点: 几个基本

GStreamer基础教程02 - 基本概念

摘要 在 Gstreamer基础教程01 - Hello World中,我们介绍了如何快速的通过一个字符串创建一个简单的pipeline.为了能够更好的控制pipline中的element,我们需要单独创建element,然后再构造pipeline,下面将介绍GStreamer的一些基本概念并展示pipeline的另一种构造方式. 基本概念 Element 我们知道element是构建GStreamer pipeline的基础,element在框架中的类型为GstElement,所有GStrea

Java基础教程(4)--面向对象概念

??如果你之前从来没有使用过面向对象编程语言,那么在学习Java之前需要先理解几个有关面向对象编程的基本概念.这篇教程将会向你介绍对象.类.集成.接口和包的概念,以及这些概念是如何与现实世界相关联,并介绍这些概念在Java语言中的体现. 一.对象 ??对象将状态和行为绑定在一起,它可以被用来模拟你能列举出的现实世界中的任何实体.这一小节将会解释如何在对象中表示状态和行为,介绍封装的概念,并解释这种软件设计方式的好处. ??对象是理解面向对象技术的关键.环顾四周,你会发现许多现实世界中的对象:狗.

RabbitMQ基础教程之基本使用篇

RabbitMQ基础教程之基本使用篇 最近因为工作原因使用到RabbitMQ,之前也接触过其他的mq消息中间件,从实际使用感觉来看,却不太一样,正好趁着周末,可以好好看一下RabbitMQ的相关知识点:希望可以通过一些学习,可以搞清楚以下几点 基础环境搭建 可以怎么使用 实现原理是怎样的 实际工程中的使用(比如结合SpringBoot可以怎么玩) 相关博文,欢迎查看: <RabbitMq基础教程之安装与测试> <RabbitMq基础教程之基本概念> I. 前提准备 在开始之前,先得

Python基础教程(第九章 魔法方法、属性和迭代器)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5437223.html______ Created on Marlowes 在Python中,有的名称会在前面和后面都加上两个下划线,这种写法很特别.前面几章中已经出现过一些这样的名称(如__future__),这种拼写表示名字有特殊含义,所以绝不要在自己的程序中使用这样的名字.在Python中,由这些名字组成的集合所包含的方法称