Openlayers基础教程|从前端框架到GIS开发系列课程(19)地图控件和矢量图形绘制

1. 地图控件

本篇教程主要介绍以下地图控件:

  • 视图跳转控件

  • 放大缩小控件

  • 全屏控件

实现步骤

1. 初始化地图

上一篇已经介绍了,这一篇直接跳过该步骤。

2. 视图跳转控件

复制代码
/* 视图跳转控件 */const ZoomToExtent = new ol.control.ZoomToExtent({  extent: [110, 30, 160, 30]});
map.addControl(ZoomToExtent);

3. 放大缩小控件

复制代码
/* 放大缩小控件 */const zoomslider = new ol.control.ZoomSlider();map.addControl(zoomslider);

4. 全屏控件

复制代码
//全屏控件 const fullScreen = new ol.control.FullScreen(); map.addControl(fullScreen) 

代码示例:

复制代码
/* 视图跳转控件 */ const ZoomToExtent = new ol.control.ZoomToExtent({   extent: [110, 30, 160, 30], }) map.addControl(ZoomToExtent) /* 放大缩小控件 */ const zoomslider = new ol.control.ZoomSlider(); map.addControl(zoomslider) //全屏控件 const fullScreen = new ol.control.FullScreen(); map.addControl(fullScreen) 

以上我们实现视图跳转、放大缩小和全屏控制三个控件,openlayers中还有很多控件,本篇主要介绍到这里,接下来我们学习一下矢量图形绘制。

2.矢量图形绘制

2.1绘图步骤

1、通过几何信息和样式信息构建要素

2、将要素添加到 矢量数据源

3、将矢量数据源添加到 矢量图层

4、将 矢量图层 添加到地图容器

绘制步骤还是遵循下图逻辑来进行

2.2代码和实现步骤

首先实现地图初始化:

导入ol依赖------设置地图容器的挂载点------初始化openlayers地图------点要素绘制

①.绘制点要素

通过样式信息和几何信息构建点要素​​​​​​​

复制代码
// 通过样式信息和几何信息构建点要素const point = new ol.Feature({  geometry: new ol.geom.Point([114.30, 30.50])});
let style = new ol.style.Style({  // image属性设置点要素的样式  image: new ol.style.Circle({    // radius设置点的半径 单位degree    radius: 10,    fill: new ol.style.Fill({      color: "#ff2d51"    })  })});
point.setStyle(style);

②. 将要素添加到矢量数据源​​​​​​​

复制代码
let source = new ol.source.Vector({  features: [point]});

③.将矢量数据源添加到矢量图层​​​​​​​

复制代码
let layer = new ol.layer.Vector({  source: source});

④. 添加矢量图层到地图容器

复制代码
map.addLayer(layer)

呈现效果:

**⑤. 我们再给点要素设置描边:**​​​​​​​

复制代码
stroke: new ol.style.Stroke({  width: 2,  color: "#333"})

代码示例:

​​​​​​​

复制代码
/* 1、构建要素 */ var point = new ol.Feature({   geometry: new ol.geom.Point([114.30, 30.50]) }) let style = new ol.style.Style({   image: new ol.style.Circle({     radius: 10,     fill: new ol.style.Fill({       color: "#ff2d51"     }),     stroke: new ol.style.Stroke({       color: "#333",       width: 2     })   }) }) point.setStyle(style); /* 2、将要素添加到矢量数据源 */ const source = new ol.source.Vector({         features: [point] })   /* 3、将矢量数据源添加到矢量图层 */ const layer = new ol.layer.Vector({         source })   /* 4、将矢量图层添加到地图容器 */ map.addLayer(layer) 
相关推荐
GIS遥遥3 天前
本科想找三维GIS的工作,需要学什么?
cesium·gis开发·三维gis·webgis开发
刘一说4 天前
WebGIS开发核心库深度解析:从2D到3D的全栈选择
3d·openlayers·webgis
WebGIS开发4 天前
WebGIS开发实战|基于Mapbox GL的智慧城市三维可视化系统
信息可视化·智慧城市·gis开发·webgis
WebGIS开发7 天前
WebGIS开发实战:武汉旅游资源可视化平台开发与应用
信息可视化·gis·智慧城市·旅游·gis开发·webgis
GIS遥遥8 天前
基于VUE+mapbox+L7实现的西安智慧城市地图可视化项目
gis开发·三维gis·webgis开发
GIS遥遥8 天前
2025cesium进阶教程(6)| webgis智慧城市开发,3DTiles 卷帘对比效果(附完整源码)
microsoft·3d·智慧城市·cesium·gis开发·webgis开发
WebGIS开发8 天前
GIS开发实战 | 基于WebGIS的南京市古遗迹旅游管理系统
gis·gis开发·智慧文旅·webgis
GIS好难学9 天前
2025年华中农业大学暑期实训优秀作品(5):智慧煤仓监控系统平台——重塑煤炭仓储管理新模式
前端·vue.js·信息可视化·gis开发·webgis
WebGIS开发10 天前
WebGIS开发实战:智慧旅游地理信息服务系统
智慧城市·gis开发
GIS学姐嘉欣11 天前
学习GIS开发,你需要了解的基本概念(含WebGIS编程语言应用方向等)
学习·gis·gis开发·webgis