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

Openlayers基础教程|从前端框架到GIS开发系列课程(21)geojson实现线要素和区要素

设置线要素

本篇教程我们将学习如何利用geojson实现线要素。实现效果如下图:

图片

1.1. 实现步骤:

1.1.1. 设置线要素的geojson数据​​​​​​​

var data = {  type: "FeatureCollection", // 定义这是一个要素集合  features: [                // 要素集合中的要素数组    {      type: "Feature",       // 定义这是一个要素      geometry: {            // 要素的几何属性        type: "LineString",   // 几何类型是线字符串        coordinates: [        // 线字符串的坐标数组          [114.30, 30.50],    // 第一个坐标点          [116, 30.50]        // 第二个坐标点

1.1.2. 设置矢量数据源读取数据​​​​​​​

let source = new ol.source.Vector({  features: new ol.format.GeoJSON().readFeatures(data) // 从GeoJSON数据中读取要素});

1.1.3. 设置矢量图层​​​​​​​

let layer = new ol.layer.Vector({  source: source // 将之前创建的矢量数据源赋值给图层的source属性});map.addLayer(layer); // 将矢量图层添加到地图上

1.1.4. 添加地图容器​​​​​​​

// 设置矢量图层let layer = new ol.layer.Vector({  source: source // 这里source应该是之前定义的矢量数据源});
// 添加地图容器map.addLayer(layer); // 将创建的矢量图层添加到地图对象中

图片

1.1.5. 给线要素添加样式信息​​​​​​​

let style = new ol.style.Style({  // stroke线设置样式  stroke: new ol.style.Stroke({    color: "#ff2d51", // 设置线条颜色为红色(#ff2d51)    width: 3           // 设置线条宽度为3像素  })});
layer.setStyle(style); // 将样式应用到图层上

图片

示例代码

var data = {  type: "FeatureCollection",  features: [    // {    //     type: "Feature",    //     geometry: {    //         type: "Point",    //         coordinates: [114.30, 30.50]    //     }    // },    {      type: "Feature",      geometry: {        type: "LineString",        coordinates: [[114.30, 30.50], [116, 30.50]]      }    }  ]}
// 设置样式const style = new ol.style.Style({  // 边线颜色  stroke: new ol.style.Stroke({    color: '#ff2d51',    width: 4  })})

设置区要素

下面我们学习如何设置区要素,效果如下图所示:

图片

var data = {   type: "FeatureCollection",   features: [     {       type: "Feature",       geometry: {         type: "Polygon",         coordinates: [[[114.30, 30.50], [116, 30.50], [116, 30]]] }     }   ] } //设置样式 const style = new ol.style.Style({   //边线颜色   stroke: new ol.style.Stroke({     color: '#ff2d51',     width: 2   }),   //设置填充色   fill: new ol.style.Fill({     color: "rgba(50, 50, 50, 0.3)"   }) })
http://www.dtcms.com/a/324708.html

相关文章:

  • git merge的原理和过程,merge conflict产生的原因、处理的逻辑
  • 【话题讨论】GPT-5 发布全解读:参数升级、长上下文与多领域能力提升
  • MCP学习与实践
  • ESP32安装于配置
  • [激光原理与应用-216]:设计 - 皮秒紫外激光器 - 热管理设计,多维策略保障高效稳定运行
  • 腾讯云EdgeOne Pages深度使用指南
  • 计算机网络:什么是AD域
  • 线程的sleep、wait、join、yield如何使用?
  • 随想记——excel报表
  • XGBoost参数evals的作用及使用方法
  • 【图像算法 - 11】基于深度学习 YOLO 与 ByteTrack 的目标检测与多目标跟踪系统(系统设计 + 算法实现 + 代码详解 + 扩展调优)
  • 什么是缓存击穿、缓存穿透、缓存雪崩及其解决方案
  • Oracle lgwr触发条件
  • Docker 容器化工具及常用操作
  • Excel版经纬度和百分度互转v1.1
  • crc32算法php版----crc32.php
  • 【Spring IoC 核心实现类详解:DefaultListableBeanFactory】
  • Leetcode 3646. Next Special Palindrome Number
  • 分发糖果(贪心算法)
  • Vue.js设计于实现 - 响应式(三)
  • Spring Boot 全局异常处理与日志监控实战
  • OneCode 3.0 可视化功能全面分析:从开发者到用户的全场景解析
  • 一周学会Matplotlib3 Python 数据可视化-绘制条形图(Bar)
  • 论文复现与分析内容关于一种实用的车对车(V2V)可见光通信(VLC)传播模型
  • Z20K118库中寄存器及其库函数封装-REGFILE库
  • Windows执行kubectl提示拒绝访问【Windows安装k8s】
  • imx6ull-驱动开发篇17——linux原子操作实验
  • PXE自动化安装部署OpenEuler24.03LTS
  • MySQL中的in和exists的区别
  • mmdetection3d中centerpoint解析