vue3对openlayers使用(加高德,天地图图层)

OpenLayers认识

WebGIS四大框架:== Leaflet、OpenLayers、Mapbox、Cesium ==

OpenLayers 是一个强大的开源 JavaScript 地图库,专注于提供可嵌入网页的交互式地图体验。作为一款地理信息系统(GIS)的前端开发工具,OpenLayers 提供了灵活的 API,允许开发者构建各种地图应用,从简单的地图显示到复杂的地理信息分析。

1.下载ol 插件

npm i ol

2.初始化

 const map = new Map({  
        target: mapElement.value,  
        layers: tiandilayers,  
        view: view
      });  
  • 1.参数target
    制定初始化的地图设置到html页面上的哪一个DOM元素上。

  • 2.参数layers
    一个map可以设置多个layer,图层是构成openlayers的基本单位,地图是由多个layer组成的。

  • 3.参数view
    视图是设置地图的显示范围,包括中心点,放大级别,坐标。

EPSG:4326 是一个GIS(地理信息系统) 中使用的坐标参考系代码,它表示一个地理坐标系,即使用经纬度表示地理位置。
EPSG:4326 常被用于在网络上传输地理位置信息,如在Web地图服务和地理位置Api等。
EPSG:4326 的经纬度范围:经度范围在-180°到180°之间,维度范围在-90°到90°之间。

区别:
EPSG:4326 表示一个地理坐标系,使用经纬度来表示地理位置,通常用于地理位置的显示和制图。
EPSG:3857表示一个Web墨卡托坐标系,使用平面墨卡托投影来表示地理位置。

3.结合高德地图

 <template>  
    <div id="map" ref="mapElement"></div>  
 </template> 
 <script setup>  
 import Map from 'ol/Map';  
 import View from 'ol/View';  
 import TileLayer from 'ol/layer/Tile';  
 import XYZ from 'ol/source/XYZ';  
 import VectorLayer from 'ol/layer/Vector';  
 import VectorSource from 'ol/source/Vector';  
 import Feature from 'ol/Feature';  
 import Point from 'ol/geom/Point';
 import { fromLonLat } from 'ol/proj'; 
 import { onMounted, ref } from 'vue';

 const mapElement=ref(null)
 const initMap=()=>{    
      // 创建高德地图的 XYZ 瓦片源  
      const amapSource = new XYZ({  
        url: 'http://webst0{1-4}.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}&lang=zh_cn&scale=1&size=1',  
        // 高德地图的瓦片服务可能有不同的 URL 格式和参数,这里是一个示例  
      });  
      // 创建 OpenLayers 图层,使用上面创建的瓦片源  
      const amapLayer = new TileLayer({  
        source: amapSource,  
      });  
      // 创建 OpenLayers 地图实例  
      const map = new Map({  
        target: mapElement.value,  
        layers: [amapLayer],  
        view: new View({  
          center: fromLonLat([116.397428, 39.90923]), // 设置地图中心点坐标(例如:北京)  
          zoom: 8, // 设置初始缩放级别  
          // projection:"EPSG:4326"
        }), 
      });  
    }
  onMounted(()=>{
    initMap()
  })
 
</script>
<style scoped>  

4.结合天地图

//主要改变图层layers
 //图层数组 layers,天地图
   let tiandilayers= [
        new TileLayer({
          source: new XYZ({
            crossOrigin: 'anonymous',
            url: 'https://t0.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=你的key'
          })
        }),
        new TileLayer({
          source: new XYZ({
            crossOrigin: 'anonymous',
            url: 'https://t0.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=你的key'
          })
        })
      ]
 	const map = new Map({  
        target: mapElement.value,  
        layers: tiandilayers,  
        view: new View({  
          center: fromLonLat([116.397428, 39.90923]), // 设置地图中心点坐标(例如:北京)  
          zoom: 8, // 设置初始缩放级别  
          // projection:"EPSG:4326"
        }), 
      });  
      //添加点图层
      const source = new VectorSource({  
        features: [new Feature(new Point(fromLonLat([116.485467, 39.907761])))], // 假设的点坐标(需转换为 OpenLayers 使用的坐标系统)  
      });  
      const vectorLayer = new VectorLayer({  
        source: source,  
      });  
      map.addLayer(vectorLayer); 

在这里插入图片描述

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

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

相关文章

微软Microsoft Surface Go 2

1个小玩具 Microsoft Surface Go 2的评测结果出炉&#xff01;它是目前最好的中端Windows 二合一笔记本平板。 外形简洁小巧&#xff0c;工作娱乐两不误。 它有多个版本。 我们测试的是配备8GB Ram和128GB SSD的Pentium 4425Y处理器&#xff08;第8代&#xff09;的型号。 S…

OpenCV学习笔记(十一)——利用Sobel算子计算梯度

Sobel算子是基于一阶导数的离散差分算子&#xff0c;其中Sobel对于像素值的变化是十分敏感的&#xff0c;在进行边缘检测的时候&#xff0c;Sobel算子常用于对周围像素的重要性进行检测。 Sobel算子包括检验水平方向的算子和检测竖直方向的算子 计算机梯度值的操作如下&#x…

Dr4g0n

信息收集 # nmap -sn 192.168.56.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-04 08:52 CST Nmap scan report for 192.168.56.2 Host is up (0.00012s latency). MAC Address: 00:50:56:FE:B1:6F (VMware) Nmap scan report …

Spring Boot从入门到实战

课程介绍 本课程从SpringBoot的最基础的安装、配置开始到SpringBoot的日志管理、Web业务开发、数据存储、数据缓存&#xff0c;安全控制及相关企业级应用&#xff0c;全程案例贯穿&#xff0c;案例每一步的都会讲解实现思路&#xff0c;全程手敲代码实现。让你不仅能够掌Sprin…

JavaEE-文件操作和IO

我们先来认识狭义上的⽂件(file)。针对硬盘这种持久化存储的I/O设备&#xff0c;当我们想要进⾏数据保存时&#xff0c;往往不是保存成⼀个整体&#xff0c;⽽是独⽴成⼀个个的单位进⾏保存&#xff0c;这个独⽴的单位就被抽象成⽂件的概念&#xff0c;就类似办公桌上的⼀份份真…

鸿蒙Harmony应用开发—ArkTS-枚举说明

说明&#xff1a; 本模块首批接口从API version 7开始支持&#xff0c;后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 Color 从API version 9开始&#xff0c;该接口支持在ArkTS卡片中使用。 颜色名称颜色值颜色示意Black0x000000 Blue0x0000ff Brown…

【LAMMPS学习】三、构建LAMMPS(7)具有额外构建选项的软件包

3. 构建 LAMMPS 3.7.具有额外构建选项的软件包 当使用某些包进行构建时&#xff0c;除了Build_package页面上描述的步骤之外&#xff0c;可能还需要额外的步骤。 ​ 对于CMake构建&#xff0c;可能有额外的可选或必需的变量要设置。对于使用make进行构建&#xff0c;可能需…

探索 Flutter 中的 NavigationRail:使用详解

1. 介绍 在 Flutter 中&#xff0c;NavigationRail 是一个垂直的导航栏组件&#xff0c;用于在应用程序中提供导航功能。它通常用于更大屏幕空间的设备&#xff0c;如平板电脑和桌面应用程序。NavigationRail 提供了一种直观的方式来浏览应用程序的不同部分&#xff0c;并允许…

适合马犬吃的狗粮有哪些?

亲爱的朋友们&#xff0c;你们是不是也在为家里的马犬挑选合适的狗粮而犯愁呢&#xff1f;&#x1f436;&#x1f35a; 今天&#xff0c;我就来和大家分享一下适合马犬吃的狗粮有哪些&#xff0c;以及为什么我要特别推荐福派斯鲜肉无谷狗粮。 首先&#xff0c;我们得了解马犬的…

深入理解Redis的Sentinel机制

Sentinel简述 Sentinel为了解决什么问题&#xff1f; Sentinel&#xff08;哨岗、哨兵&#xff09;是Redis的高可用性&#xff08;high availability&#xff09;解决方案。 我们知道Redis 的主从复制模式可以将主节点的数据改变同步给从节点&#xff0c;这样从节点就可以起…

c语言——通讯录(文件版)

大家好我是小锋&#xff0c;今天我们来实现一个通讯录 准备工作 为了让我们的代码具有条理我们要建立三个文件一个文件用来放头文件一个文件用来放函数的实现&#xff0c;一个文件用来实现通讯录的基本逻辑。 然后我们其他的.c文件要使用头文件时我们要用# include<tongxu…

一笔画--PTA

文章目录 题目描述思路AC代码 题目描述 输入样例1 3 2 1 2 2 3 输出样例1 Y输入样例2 4 3 1 2 1 3 1 4 输出样例2 N输入样例3 1 0 输出样例3 Y思路 dfs 、欧拉通路、欧拉回路的判定 前导知识 欧拉通路、欧拉回路、欧拉图 无向图&#xff1a; ①设G是连通无向图&#xff0c;则称…

pycharm免费下载安装教程

pycharm下载地址 Download PyCharm: The Python IDE for data science and web development by JetBrains 1.进入官网之后可以下拉到最底下&#xff0c;可以设置一下所属地是中国大陆&#xff08;China Mainland)&#xff0c;这样在安装的时候展示的就是中文。 2.设置好语言之…

一个单生产-多消费模式下无锁方案(ygluu/卢益贵)

一个单生产-多消费模式下无锁方案 ygluu/卢益贵 关键词&#xff1a;生产者-消费者模型、无锁队列、golang、RWMutex 本文介绍一个“单生产(低频)-多消费”模式下的无锁哈希类方案&#xff0c;这个方案的性能优于golang的RWMutex&#xff0c;因为它永远不会因为“写”而导致与…

Java代码基础算法练习-数位交换-2024.03.23·

任务描述&#xff1a; 输入一个三位整数&#xff0c;将其个位和百位交换后输出 任务要求&#xff1a; package march0317_0331;import java.util.Scanner;public class m240323 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out…

家用路由器和企业路由器的区别?

一、家用路由器 家用路由器路由器交换机 它只有一个WAN口和一个LAN口&#xff0c;WAN口接公网一个地址&#xff0c;LAN口接你电脑一个IP地址&#xff0c;完全符合路由器的设计&#xff0c;而因为家里如果用了&#xff0c;说明要接多个电脑&#xff0c;那么如果还需要对每个接口…

查立得源码如何去除版权

最近发现很多人百度&#xff1a;查立得源码如何去除版权。 每个源代码/软件都是有版权的&#xff0c;无法去除&#xff0c;我们也得尊重知识产权/劳动成果。 可以去除/修改的是&#xff1a;页面显示的版权信息,查立得底部信息均可自定义(一般conn.php可修改)。 另&#xff1…

FFmepg--AVFilter过滤器使用以及yuv视频裁剪

文章目录 AVFilter 流程:api核心代码变量yuv视频裁剪AVFilter 流程: ⾸先使⽤split滤波器将input流分成两路流(main和tmp),然后分别对两路流进⾏处理。对于tmp流,先经过crop滤波器进⾏裁剪处理,再经过flip滤波器进⾏垂直⽅向上的翻转操作,输出的结果命名为flip流。再将…

浮点数在内存中的存储

目录 一.回顾&#xff1a;整数在内存中的存储 二.大小端字节序和字节序的判断 什么是大小端 &#xff1f; 为什么需要有大小端之分呢&#xff1f; 判断当前机器的字节序 三.练习 四.浮点数在内存中的存储 数字M 数字E 浮点数取的过程 E不全为0或者E不全为1 E全为0 E…

Spring Cloud二:核心组件解析

在微服务架构中&#xff0c;Spring Cloud凭借其强大的组件集合&#xff0c;为开发者提供了从服务注册与发现、负载均衡、服务调用到分布式跟踪与日志等全方位的支持。本文将深入解析Spring Cloud的核心组件&#xff0c;通过源码分析和示例代码&#xff0c;帮助读者更好地理解这…