【openlayers系统学习】1.1渲染GeoJSON,添加link交互

一、渲染GeoJSON

在进入编辑之前,我们将看一下使用矢量源和图层进行基本要素渲染。Workshop在 data​ 目录中包含一个 countries.json​ GeoJSON文件。我们首先加载该数据并将其渲染在地图上。

首先,编辑 index.html​ 以便向地图添加深色背景:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>OpenLayers</title>
    <style>
      @import "node_modules/ol/ol.css";
    </style>
    <style>
      html, body, #map-container {
        margin: 0;
        height: 100%;
        width: 100%;
        font-family: sans-serif;
        background-color: #04041b;
      }
    </style>
  </head>
  <body>
    <div id="map-container"></div>
    <script src="./main.js" type="module"></script>
  </body>
</html>

image

现在我们在mian.js文件中导入处理矢量数据的三个重要要素:

  • ‘ol/format/GeoJSON’:用于读取和写入序列化数据的格式(本例中为 GeoJSON)
  • ‘ol/source/Vector’:用于获取数据和管理要素空间索引的矢量源
  • ‘ol/layer/Vector’:用于在地图上渲染要素的矢量图层
import GeoJSON from 'ol/format/GeoJSON';
import Map from 'ol/Map';
import VectorLayer from 'ol/layer/Vector';
import VectorSource from 'ol/source/Vector';
import View from 'ol/View';

new Map({
  target: 'map-container',
  layers: [
    new VectorLayer({
      source: new VectorSource({
        format: new GeoJSON(),
        url: './data/countries.json',
      }),
    }),
  ],
  view: new View({
    center: [0, 0],
    zoom: 2,
  }),
});

您现在应该能够在 http://localhost:5173/ 上看到带有国家边界的地图。image

由于我们将多次重新加载页面,因此如果地图重新加载时保留位置,那就太好了。我们可以引入 Link​ 交互来完成这项工作。

i/**
 * 导入Link交互功能。
 * 该交互功能允许用户在地图上创建一个链接,将地图上的两个位置连接起来。
 * 
 * 参数无。
 * 
 * 返回值无,仅为导入模块。
 */
import Link from 'ol/interaction/Link';

接下来我们需要将地图分配给一个变量(名为 map​ ),以便我们可以向其中添加交互:

const map = new Map({

image

现在我们可以向地图添加新的链接交互:

/**
 * 向地图中添加一个交互操作。
 * 这里的交互操作是指通过`Link`类创建的一个新的交互实例,它允许用户与地图进行某种形式的交互。
 * 
 * new Link() - 创建的一个新的Link交互实例。
 * 参数通过`new Link()`的方式创建,并直接传递给`addInteraction`方法进行添加。
 * 
 * 该方法没有返回值,其主要作用是将新的交互实例添加到地图中,以增强地图的可用性和用户体验。
 */
map.addInteraction(new Link());

现在您应该看到页面重新加载时保持地图视图稳定。并且后退按钮的功能与您预期的一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/637891.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

树洞陪聊系统源码/陪聊/陪玩/树洞/陪陪/公众号开发/源码交付/树洞系统源码

独立版本源码交付&#xff0c;自研UI和前后端代码 平台自带店员&#xff0c;无需自主招募&#xff0c;搭建直接运营 支持三方登录&#xff0c;官方支付、虎皮椒、易支付/码支付 支持首单体验、盲盒订单、指定下单等多个模式 支持钱包预充值、店员收藏、订单评价等功能 支持…

网页加载时,大图片文件如何分片加载,有示例代码。

浏览网页时候&#xff0c;碰到大图片半天加载不出来&#xff0c;急死人&#xff0c;本问分享一种分片加载的方式&#xff0c;其实还有其他方式&#xff0c;比如先模糊后清晰等。 一、为什么要分片加载 大图片文件可以通过分片加载来提高加载性能和用户体验。分片加载的基本思…

智能禁区监控:计算机视觉在人员禁区闯入检测中的应用

基于视觉分析的人员禁区闯入行为检测算法主要依赖于计算机视觉技术和深度学习算法。这些技术结合高性能的摄像头和图像处理硬件&#xff0c;实现了对监控区域内人员行为的自动识别和分析。具体来说&#xff0c;这种检测算法利用摄像头捕捉的视频数据&#xff0c;通过深度学习模…

科技前沿:IDEA插件Translation v3.6 带来革命性更新,翻译和发音更智能!

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

leetcode124 二叉树中的最大路径和-dp

题目 二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root &…

50.WEB渗透测试-信息收集-CDN识别绕过(3)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;49.WEB渗透测试-信息收集-CDN识别绕过&#xff08;2&#xff09; 关于cdn的识别方法内容…

基于SpringBoot的社区医院管理系统

基于SpringBootVue的社区医院管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 首页 医生预约 管理员界面 医生界面 摘要 基于Spring Boot的社区医院管理系…

linux命令日常使用思考

linux命令日常使用思考 复制的相关问题scp和cp的区别root192.168.5.229-r的理解 更新版本的相关问题svn info 根目录和家目录的区别根目录家目录 复制的相关问题 scp和cp的区别 安全性&#xff1a;SCP 是基于 SSH 的加密传输协议&#xff0c;可以保证数据在传输过程中的安全性…

揭秘网红老阳的选品师项目:从选品到赚钱的全方位解析

在快节奏的互联网时代&#xff0c;网红隋总以其独特的洞察力和前瞻性&#xff0c;为我们揭示了人力RPO(招聘流程外包)项目背后的变革与机遇。这次&#xff0c;我们不再单纯地从市场或企业的角度来探讨这个项目&#xff0c;而是从更宏观的视角&#xff0c;看看它如何推动了人力资…

Python 调整PDF文件的页面大小

在处理PDF文件时&#xff0c;我们可能会遇到这样的情况&#xff1a;原始PDF文档不符合我们的阅读习惯&#xff0c;或者需要适配不同显示设备等。这时&#xff0c;我们就需要及时调整PDF文档中的页面尺寸&#xff0c;以满足不同应用场景的需求。 利用Python语言的高效性和灵活性…

关于redis设置的密码不生效问题

今天申请了阿里云使用3个月的服务器&#xff0c;于是想在服务器上部署一下自己的项目&#xff0c;但是吸取了上次的教训&#xff0c;再也不敢随便开放redis的端口号了&#xff0c;就算要开放redis的端口&#xff0c;也要设置密码&#xff0c;保证不会被挖矿病毒通过redis入侵服…

自用升级centos7.2的默认Python 2.7.5为python3.8

wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgztar zxvf Python-3.8.8.tgz 进入刚刚解压后的目录 ./configure --prefix/data/soft/python3按照上面截图所属&#xff0c;需要安装gcc 安装报错需要安装 sudo yum install zlib1g-dev make -j4 make install -…

VBA语言専攻每周通知20240524

通知20240524 各位学员∶本周MF系列VBA技术资料增加611-615讲&#xff0c;T3学员看到通知后请免费领取,领取时间5月24日晚上18:00-5月26日晚上18:00。本次增加内容&#xff1a; MF611:用InputBox录入日期 MF612:信息提示10秒后关自动关闭 MF613:只是信息提示10秒 MF614:显…

VUE2 tab切换导航 展示页面内容(父级子级独立)

VUE2 tab切换导航 展示页面内容 父级子级独立 图片示例代码 图片示例 代码 <template><div class"center"><!-- 一级导航 --><div class"menu"><div class"menu_list"><div v-for"item of List" :k…

新定义RD8T36P48使用USCI0的TWI功能点亮OLED

时间不多&#xff0c;因此先只给出工程&#xff0c;等有时间再添加详细说明 现象 这是从之前的一个51单片机的程序移植过来的&#xff0c;主要修改了IIC启动和停止&#xff0c;以及数据发送的代码&#xff0c;我现在还不是很满意的一点是发送过程中要等待上一个字节发送完才能…

CDH6.3.2集成Flink1.17

直接运行脚本即可&#xff0c;一键输出相关依赖包 运行步骤已给到文档 下载地址

如何灵活运用keil工具进行问题分析(1)— 解决日常程序卡死问题

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff08;2&#xff0…

支付宝支付-SpringBoot基于沙箱环境实现支付宝支付

目录 一、支付宝沙箱环境介绍 二、沙箱环境准备 2.1 注册入驻支付宝开放平台 2.2 配置沙箱环境 2.3 沙箱应用 三、SpringBoot 结合 支付宝沙箱 3.1 pom.xml 3.2 application.yml 3.3 对应的配置类 3.4 支付接口&#xff0c;和支付的回调接口 3.5 支付页面 apy.html 3…

做好智慧校园的顶层设计,助力教育信息化发展

教育信息化已被视为我国教育事业发展的重要支撑。随着国家教育信息化一系列重大工程的部署和实施&#xff0c;我国教育信息化进入快速发展时期&#xff0c;取得了显著成绩。我们认识到国家教育信息化正由初步应用融合阶段向着全面融合创新阶段过度&#xff0c;无论从国家地区的…

炫酷网页设计:HTML5 + CSS3打造8种心形特效

你以为520过去了&#xff0c;你就逃过一劫了&#xff1f;那不是还有分手呢&#xff0c;那不是还得再找对象呢&#xff0c;那不是还有七夕节呢&#xff0c;那不是还有纪念日呢&#xff0c;那不是还有各种各样的节日呢&#xff0c;所以呀&#xff0c;这8种HTML5 CSS3打造8种心形…