当前位置: 首页 > news >正文

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) 
http://www.xdnf.cn/news/1267525.html

相关文章:

  • SimBA算法实现过程
  • GitHub第三方登录全解析:OAuth 2.0流程详解(适合初学者)
  • 华为实验: 单区域/多区域OSPF
  • 华为实验-VLAN基础
  • ComfyUI——舒服地让大模型为我所用
  • 微信原生小程序 Timeline 组件实现
  • AI大语言模型在生活场景中的应用日益广泛,主要包括四大类需求:文本处理、信息获取、决策支持和创意生成。
  • python学智能算法(三十六)|SVM-拉格朗日函数求解(中)-软边界
  • 算法题(183):质量检测
  • Java异常:认识异常、异常的作用、自定义异常
  • 扣证件照要点
  • 全栈:JDBC驱动版本和SQLserver版本是否有关系?怎么选择JDBC的版本号?
  • 数据结构—二叉树及gdb的应用
  • WebGIS视角下基孔肯雅热流行风险地区分类实战解析
  • 开源智能手机安全相机推荐:Snap Safe
  • Python如何将图片转换为PDF格式
  • PDF编辑工具,免费OCR识别表单
  • 论文阅读-ZeroDCE和ZeroDCE++
  • 【Spring Boot 快速入门】八、登录认证(二)统一拦截
  • elementui input无法输入问题
  • 202506 电子学会青少年等级考试机器人一级理论综合真题
  • 【n8n教程笔记——工作流Workflow】文本课程(第二阶段)——5 自动化业务工作流——0 用例 (Use case)
  • 阿里云 ECS 怎么用 nginx 部署80端口多个网站
  • 大语言模型提示工程与应用:前沿提示工程技术探索
  • Baumer高防护相机如何通过YoloV8深度学习模型实现输电线路塔电缆检测分割(C#代码UI界面版)
  • 图片拆分工具,自定义宫格切割
  • AI 算法优化实战指南:从理论到部署的全流程优化策略
  • Python樱花树
  • 创业者焦虑与转型决策分析
  • Kafka服务端NIO操作原理解析(二)