Openlayers简介|体系架构|主要API|

openlayers版本:9.2.4(latest)

OpenLayers简介

OpenLayers是最早的WebGIS开源库之一,迭代开发的历史较长,目前是WebGIS中功能齐全、资料和教程丰富的框架,同时其学习曲线比较平缓,很容易上手。OpenLayers采用了Canvas、WebGL和HTML5中最新的技术来构建框架,可以在移动设备上运行。
OpenLayers支持多种地图来源,包括天地图(Tianditu)、百度地图(Baidu Map)、谷歌地图(Google Map)、必应地图(Bing Map)、OpenStreetMap(OSM)等在线地图,可以对图片地图进行叠加,可对接OGC制定的各种标准服务,如WMS、WFS和WMTS等Web服务,能通过远程服务的方式将地图数据加载到浏览器中并进行显示。另外,OpenLayers还提供了丰富的图形、空间交互、地图渲染和投影转换的API。

OpenLayers体系架构

OpenLayers将抽象事物具体化为类,其核心类是MapLayerSourceView,几乎所有的动作都是围绕这几个核心类展开的,以实现地图加载和相关操作。(这几个核心概念详见:核心概念教程)

image.png

把整个地图看作一个地图容器(Map),核心部分为地图表现相关的视图(View)、地图图层(Layer)、对应图层的数据源(Source)与矢量图层样式(Style)。底层是OpenLayers的数据源,即Image、GML、KML、JSON、OGC服务资源等。

OpenLayers的地图数据是通过地图图层(Layer)组织渲染的,且通过数据源(Source)设置具体的地图数据来源。
image.png

除此之外容器中还有地图交互(Interaction)、操作控件(Control)、覆盖层(Overlay),以及绑定在Map和Layer上的一系列待请求的事件(MapEvent)。

OpenLayers的几何数据

OpenLayers的空间数据是由点、线、面要素构成的,以ol/geom/Geometry类为基本类,扩展出简单图形和图形集合,其中简单图形又派生出了点、线、面、圆、多线、多面等图形。
image.png
更多:

OpenLayers主要特点

  • OpenLayers将地图图层(Layer)与数据源(Source)分离,并将地图视图相关类(如投影、分辨率、中心点设置等)抽离为视图(View),地图数据的加载和显示更为灵活。
  • OpenLayers将地图交互操作的相关内容抽离,封装为各种交互(Interaction)类,如涉及地图交互的要素选择、绘图,以及图形要素编辑的操作、缩放、拖动、旋转等。
  • )OpenLayers在地图容器中用覆盖层(Overlay)来承载和表现诸如地图标注(Marker、Popup)等HTML元素内容。
  • OpenLayers优化了空间几何对象(Geometry)类,专注于管理空间图形,更简便、易用。
  • OpenLayers在矢量图层中叠加了矢量要素(Feature),由图形(geometry)、属性(properties)、样式(style)组成。

OpenLayers API

OpenLayers的常用接口可参考官网文档:https://openlayers.org/en/latest/apidoc/
image.png

核心模块

  1. **ol/Map**
    • 用于创建和管理地图实例。
    • 主要功能:地图初始化、层管理、视图设置等。
  2. **ol/View**
    • 用于管理地图视图的类。
    • 主要功能:设置地图中心、缩放级别、旋转等。
  3. **ol/Layer**
    • 用于管理地图上的图层。
    • 主要类型:
      • **ol/layer/Tile**: 瓦片图层。
      • **ol/layer/Vector**: 矢量图层。
      • **ol/layer/Image**: 图像图层。
  4. **ol/Source**
    • 用于管理图层的数据源。
    • 主要类型:
      • **ol/source/OSM**: OpenStreetMap 瓦片源。
      • **ol/source/Vector**: 矢量数据源。
      • **ol/source/XYZ**: XYZ 瓦片源。
      • **ol/source/TileWMS**: WMS 瓦片源。
  5. **ol/Geom**
    • 用于表示和操作几何图形。
    • 主要类型:
      • **ol/geom/Point**: 点。
      • **ol/geom/LineString**: 线。
      • **ol/geom/Polygon**: 多边形。
      • **ol/geom/MultiPoint**: 多点。
      • **ol/geom/MultiLineString**: 多线。
      • **ol/geom/MultiPolygon**: 多多边形。
  6. **ol/Feature**
    • 用于表示地图上的特征。
    • 主要功能:包含几何图形和属性数据,支持样式设置。

辅助模块

  1. **ol/style**
    • 用于设置特征的样式。
    • 主要类型:
      • **ol/style/Style**: 样式。
      • **ol/style/Icon**: 图标样式。
      • **ol/style/Fill**: 填充样式。
      • **ol/style/Stroke**: 线样式。
      • **ol/style/Text**: 文本样式。
  2. **ol/control**
    • 用于添加地图控件。
    • 主要类型:
      • **ol/control/Zoom**: 缩放控件。
      • **ol/control/FullScreen**: 全屏控件。
      • **ol/control/ScaleLine**: 比例尺控件。
      • **ol/control/OverviewMap**: 概览地图控件。
  3. **ol/interaction**
    • 用于添加地图交互功能。
    • 主要类型:
      • **ol/interaction/Draw**: 绘制交互。
      • **ol/interaction/Modify**: 修改交互。
      • **ol/interaction/Select**: 选择交互。
      • **ol/interaction/DragPan**: 拖动平移交互。
      • **ol/interaction/MouseWheelZoom**: 滚轮缩放交互。
  4. **ol/overlay**
    • 用于在地图上添加覆盖物。
    • 主要类型:
      • **ol/Overlay**: 覆盖物,用于显示 HTML 元素。

数据处理模块

  1. **ol/format**
    • 用于解析和写入各种地理数据格式。
    • 主要类型:
      • **ol/format/GeoJSON**: GeoJSON 格式。
      • **ol/format/WKT**: WKT 格式。
      • **ol/format/GML**: GML 格式。
      • **ol/format/KML**: KML 格式。
  2. **ol/proj**
    • 用于处理地图投影。
    • 主要功能:坐标转换、投影定义等。

渲染模块

  1. **ol/render**
    • 用于地图的渲染。
    • 主要功能:支持矢量图形的绘制和样式应用。

其他实用模块

  1. **ol/loadingstrategy**
    • 用于定义矢量数据的加载策略。
    • 主要类型:all(加载所有数据)、bbox(按边界框加载数据)等。
  2. **ol/events**
    • 用于事件处理。
    • 主要功能:添加、删除和触发事件。

3.**ol/MapEvent**

  • ol/MapEvent 是专门用于处理地图事件的类,继承自 ol/events/Event
  • 主要功能:封装与地图相关的事件数据,比如地图点击、移动、缩放等事件。

OpenLayers 学习内容

参考资料

1、《WebGIS原理及开发:基于开源框架的WebGIS技术》
2、https://openlayers.org/en/latest/apidoc/

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值