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

news/2024/7/10 0:52:03 标签: javascript, 前端, vue.js, vue, css

OpenLayers认识

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

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

1.下载ol 插件

npm i ol

2.初始化

javascript"> 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.结合高德地图

javascript"> <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.结合天地图

javascript">//主要改变图层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); 

在这里插入图片描述


http://www.niftyadmin.cn/n/5447598.html

相关文章

解决mysql问题: this is incompatible with sql_mode=only_full_group_by

今天在部署一趟测试环境的服务&#xff0c;各种配置文件都配好了&#xff0c;启动服务后台报错&#xff0c;解决后记录一下&#xff0c;小伙伴们也可以看看&#xff01; ### Cause: java.sql.SQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause…

perl:获取同花顺数据--业绩快报,业绩公告

perldoc LWP::UserAgent 如果没有安装&#xff0c;则安装模块&#xff0c;运行 cpanm LWP::UserAgent 。 编写 get_yjkb_10jqka.pl 如下 #!/usr/bin/perl # perl 获取同花顺数据--业绩快报 use LWP::UserAgent; use Encode qw(decode encode); use POSIX; use Data::Dump…

走迷宫----bfs再矩阵图里的应用模版

对于之前走迷宫的那个题 回忆一下dfs的代码 #include <bits/stdc.h> using namespace std; int a[110][110]; bool check[110][110]; int n,m; int ans1e9; int nxt[4][2]{{1,0},{0,-1},{-1,0},{0,1}}; void dfs(int x,int y,int step){if(xn&&ym){ansmin(ans,…

SpringCloud原理详解

Spring Cloud是一个基于Spring Boot实现的云原生应用开发工具集&#xff0c;用于构建微服务架构。它提供了一套完整的解决方案&#xff0c;帮助开发者快速构建、部署和管理微服务应用。Spring Cloud涵盖了服务发现、配置管理、负载均衡、熔断器、路由、消息总线、安全控制等一系…

基于 Drools 规则引擎的解决方案

引言 Drools 是一个基于 Java 的开源规则引擎,它允许开发者以规则的形式对业务逻辑进行建模和执行。本文将介绍 Drools 规则引擎的可用场景,并演示如何编写和预览规则。 规则引擎可用场景 规则引擎适用于各种业务场景,包括但不限于: 业务规则自动化:自动执行业务规则,…

Mybatis查询列表中的坑

前言 从一个Mybatis列表查询的Bug入手&#xff0c;看一个或许被很多人忽略的Mybatis使用中的大坑。 中间是排查思路。如果不想看排查过程&#xff0c;可以跳过【排查】这一节。 Bug描述 JavaWeb项目中&#xff0c;使用Mybatis查询pg数据库。 在查询一个列表数据的时候&#…

Install Docker

Docker Desktop 直接安装 Docker Desktop Docker Desktop includes the Docker daemon (dockerd), the Docker client (docker), Docker Compose, Docker Content Trust, Kubernetes, and Credential Helper. Linux下安装Docker CE 参考官方文档 参见阿里云的文档 # step 1…

Linux系统下C++程序运行时的内存布局详解。【C++】

Linux系统下C程序的虚拟内存模型。 1.程序代码段存储内容生命周期初始化时机特点代码演示 2.只读初始化数据段存储内容生命周期初始化时机特点代码演示 3.读写初始化数据段存储内容生命周期初始化时机特点代码演示 4. 堆区&#xff08;Heap&#xff09;存储内容生命周期初始化时…