首页 > 其他分享 >WebGIS开发系列教程(2):Openlayers概述

WebGIS开发系列教程(2):Openlayers概述

时间:2024-09-12 13:50:48浏览次数:18  
标签:控件 教程 ol Map WebGIS 地图 Openlayers 事件 图层

本系列教程为webgis二维开发入门openlayers零基础小白学习教程,本篇为第二篇。

完整版可以查看文末链接下载。

上一篇:

下一篇:

1.Openlayers是什么

Openlayers是一个模块化、高性能并且功能丰富的WebGIS客户端的JavaSript包,用于显示地图及空间数据,并与之进行交互,具有灵活的扩展机制。

2.Openlayers5的体系架构

Openlayers将抽象事物具体化为类,其核心类是Map、Layer、Source、View,几乎所有的动作都围绕这个核心类展开,从而实现地图的加载和相关操作。

上图为Openlayers5的体系架构图,可以将整个地图看成一个Map容器,核心为地图图层Layer,对应图层的数据源Source与矢量图层样式Style,与地图表现相关的地图视图View,还有一些覆盖层Overlayers,地图交互的操作控件Interactions,以及绑定在Map和Layer上的一系列请求事件,底层是Openlayers的数据源,这些数据源经过Render渲染,显示在地图容器中的图层Layer上。

3.Openlayers5核心类的简介

(1)类

Map(ol.Map):地图容器,核心部分,可加载各类地图与功能控件,用于渲染、表现动态地图

WebGLMap(ol.WebGLMap):使用WebGL渲染的地图容器,使用WebGL渲染地图图层,但是该容器对矢量数据的支持有限,目前不支持矢量瓦片数据。

View(ol.View):地图视图,控制地图缩放等的基本交互,以及地图投影坐标系、地图中心点、分辨率、旋转角度等。

Layers(ol.Layer.Base):图层,包含多个调用数据的子类,由子类的实例加载地图数据,必须结合图层数据源匹配使用

Source(ol.source.Source):图层数据源,与图层子类对应,由图层数据源的实例来加载各种类型的地图数据

Format(ol.format.Format):数据解析类,此类用于读写各种格式的数据,并创建了多种格式的子类,即数据解析器。目前支持多种数据格式,如:GeoJson、GML、XML、WKT、WFS等。

Geometry(ol.geom.Geometry):地理空间对象的几何实体,由其子类(如Point、LineString、Polygon)的实例构成所看到的矢量地图

Feature(ol.Feature):地图要素,可以看出矢量地图的组成单元,是地图中的主要部分。例如:点、线、面等几何实体均位地图要素,可配合要素的样式渲染到客户端的地图上。

Overlay(ol.Overlay):叠加层,即叠加到地图上显示的要素,关联了一个自定义的HTML要素,由一个单一的地图坐标点确定叠加的位置。与控件类似,但不同的是叠加元素不是固定在一个固定的屏幕位置上, 而是通过关联一个地图的逻辑坐标点跟随地图移动,如:标注点,popup等。

Controls(ol.control.Control):即通常所说的控件类,可提供各种各样的地图功能控件,如地图缩放控件(Zoom),鼠标位置控件(MousePosition),鹰眼(OverViewMap),比例尺(ScaleLine)控件等。

Interaction(ol.interaction.Interaction):地图交互控件类。地图交互一般通过鼠标和键盘进行,因此Interaction的子类为基于鼠标与键盘操控的地图交互功能控件,如:选择要素控件(Select),键盘缩放地图控件(KeyboradZoom),鼠标控件基类(Pointer)下的绘制控件(Draw),修改控件(Modify),拖放平移地图控件(DrawPan)

Style(ol.style.Style):样式类,可通过其子类实例来渲染矢量要素的样式,包括填充样式(Fill)、边界样式(Stroke)、图标样式(Image与Icon),文字样式(Text)等

Projections(ol.pro.Projection):地图投影定义类,包括EPSG:4326(ol.proj.EPSG4326)与EPSG:3857(ol.proj.EPSG:3857)的定义,用于在地图视图View中设置地图的投影坐标系,也可通过ol.proj提供的方法进行投影变换。

Render(ol.render.Render):渲染器,在Openlayers5中,渲染功能是作为Map类的一个属性存在的,支持Canvas与WebGL两种渲染方式,可通过设置Map类的render属性设置渲染方式。

(2)类的事件

★ol.MapEvent:地图事件类,继承于ol.events.Event,其子类ol.MapBrowserEvent,可查看ol.Map中哪些事件触发了地图事件,如单击(click)、双击(dbclick)、鼠标拖拽(pointerdrag),鼠标移动(pointermove),单次单击(singleclick)等事件可以触发地图浏览器事件(ol.MapBrowserEvent),而移动结束(moveend)事件可触发地图事件★ol.Object.Event:ol.Object的事件,继承于ol.events.Event,可以提供属性变更事件(Propertychange),当属性发生变更时触发此事件

其他事件

地图交互绘制事件(ol.interaction.Draw.Event),交互选择事件(ol.interaction.Select.Event)、集合事件(ol.Collection.Event)、地图渲染事件(ol.render.Event)

4.openlayers下载和使用

官网下载:

目录结构:

文章来源:gitee,已找不到具体来源,如侵删。

需要的小伙伴可以点这里下载完整版:

https://download.csdn.net/download/2301_78220461/89734486

更多webgis开发学习资料和视频资料,点这里:

免费领取2024最新webgis学习教程

标签:控件,教程,ol,Map,WebGIS,地图,Openlayers,事件,图层
From: https://blog.csdn.net/2301_78220461/article/details/142132326

相关文章

  • GIS开发从0到1|MapboxGL可视化项目实战教程(含步骤说明和代码展示)1
    通用可视化聚类代码展示<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>聚类显示</title>&l......
  • Gitee上那些开源的WebGIS项目(三):基于webGIS的大气监测系统
    项目介绍本项目是我的本科毕业设计,基于webGIS的大气监测系统,主要是基于ArcgisApiforjs构建了一个大气监测系统,并且通过Deeplearning4j深度学习库构建lstm模型进行空气质量指数预测。主要实现污染物可视化,模型训练,AQI指数预测等。项目地址:https://gitee.com/nimi317该......
  • Stable Diffusion4.9(Ai绘画)安装教程(永久许可)
    前言软件获取软件名称StableDiffusion4.9软件语言简体中文软件大小9.6G推荐平台Win10或更高,64位操作系统本次教程将使用AI绘画工具StableDiffusion进行讲解,如还未安装SD的小伙伴可以扫描免费获取哦~软件介绍StableDiffusion(简称SD)是一种生......
  • 2024年9月最新Stable Diffusion下载+安装+使用教程(超详细教学)
    前言注意:本文讲解的用的是用“整合包”来本地部署安装及使用StableDiffusionWebUI,你不需要懂太多的计算机知识,而且用整合包对新手也是比较友好的,磁盘需要预留100G~200G空间才能玩。整合包我会放在文末前言本文将基于最新的SD整合包,结合笔者整合的资源,为大家介绍最......
  • SD入门教程一:Stable Diffusion 基础(技术篇)
    前言在开篇的时候就大致讲了SD和VAE,那么今天我们具象化地再来讲讲StableDiffusion(稳定扩散)。严格说来它是一个由几个组件(模型)构成的系统,而非单独的一个模型。我以最常见的文生图为例,解释下StableDiffusion的整体架构和工作原理。本次教程将使用AI绘画工具StableD......
  • 最新PHP在线客服系统I聊天源码网页端在线客服系统 带教程
    安装教程1.上传源码压缩包到网站目录并解压2.设置网站运行目录public(防跨站不要勾选)3.设置伪静态,选择thinkphp4.进入网站目录,打开终端 输入启动命令5.宝塔配置开启1238和2346端口后台登录地址:https://域名/admin详细教程查看压缩包中的安装说明.doc文档效果展示......
  • HeaderFile 1.2 中 hct.h 使用教程
    下载HeaderFile1.2HCT是干什么的辅助数据生成主干框架你需要包含必须的头文件hct.h此外,你需要实现如下函数:voidcreate()数据生成函数voidsolve()答案生成函数(正解)voidtest()测试函数即使你并没有用到以上三个函数,你也必须对上述函数实例化(将会在下个版本得......
  • pbootcms伪静态设置教程含apache、naginx、IIS不同环境配置规则
    其实pbootcms伪静态已经整理好,在根目录就可以找到作为使用者,只需要根据不同的服务器环境,使用不同格式的数据就行。 naginx#请复制下面伪静态配置到nginx配置文件中:#规则适合PbootCMSV2.0+版本location/{ if(!-e$request_filename){ rewrite^/(.*)$/index.php......
  • 最新PyCharm下载安装教程保姆级教程(详细步骤)附激活码!!
    一、软件简介PyCharm是一种Python IDE(IntegratedDevelopmentEnvironment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于......
  • DevExpress WinForms中文教程:Data Grid - 如何自定义行和单元格的样式?
    在本教程中您将学习如何使用事件更改数据单元格样式,您将从要给显示任务数据的网格开始,并且没有应用条件格式。通过处理GridView.RowStyle事件,您将对Priority字段值为High的行应用不同的背景颜色。然后如果Status设置为New,您将使用GridView.RowCellStyle事件来突出显示这些行中的St......