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

5.vue3+openlayers加载ArcGIS地图示例

前言

ArcGIS 地图作为一个广泛应用的地理信息平台,其高质量的地图服务和丰富的 API 被大量项目采用。在前端开发中,结合 Vue 3 和 OpenLayers,可以快速加载和展示 ArcGIS 地图。本篇文章将详细介绍如何通过 Vue 3 的 Composition API 和 OpenLayers 加载 ArcGIS 的高分辨率地图服务。


开发环境准备
1. 安装 Vue 3 项目

如果尚未创建 Vue 3 项目,可以通过以下命令快速初始化一个 Vue 3 项目:

复制代码

npm init vue@latest

根据提示选择 Vue 3 + Composition API 的配置。

2. 安装 OpenLayers

在项目目录下安装 OpenLayers:

复制代码

npm install ol

实现 ArcGIS 地图加载

以下是完整代码实现:

<!--
 * @Author: 彭麒
 * @Date: 2024/12/2
 * @Email: 1062470959@qq.com
 * @Description: 此源码版权归吉檀迦俐所有,可供学习和借鉴或商用。
 -->  
<template>
  <button class="back-button" @click="goBack">返回</button>
  <div class="container">
    <div class="w-full flex justify-center">
      <div class="font-bold text-[24px]">在Vue3中使用OpenLayers加载ArcGIS地图</div></div>
    <div id="vue-openlayers"></div>
  </div>
</template>

<script setup>
import "ol/ol.css";
import { ref, onMounted } from "vue";
import Map from "ol/Map";
import View from "ol/View";
import Tile from "ol/layer/Tile";
import XYZ from "ol/source/XYZ";
import router from "@/router";
const goBack = () => {
  router.push('/OpenLayers');
};
// 定义地图引用
const map = ref(null);

const initMap = () => {
  // 初始化地图实例
  map.value = new Map({
    target: "vue-openlayers",
    layers: [
      new Tile({
        source: new XYZ({
          url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
        }),
      }),
    ],
    view: new View({
      projection: "EPSG:4326",
      center: [114.064839, 22.548857], // 中心点设置为深圳
      zoom: 12,
    }),
  });
};

// 组件挂载时初始化地图
onMounted(() => {
  initMap();
});
</script>

<style scoped>
.container {
  width: 840px;
  height: 550px;
  margin: 50px auto;
  border: 1px solid #42B983;
}
#vue-openlayers {
  width: 800px;
  height: 420px;
  margin: 0 auto;
  border: 1px solid #42B983;
  position: relative;
}
</style>

代码解析
1. ArcGIS 地图服务

ArcGIS 提供多种地图服务,包括矢量地图、影像地图等。上述代码中使用了影像地图服务,其瓦片服务 URL 为:

复制代码

https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}
2. OpenLayers 配置
  • XYZ 数据源:加载 ArcGIS 提供的瓦片地图。
  • View:设置地图投影为 EPSG:4326,并通过中心点和缩放级别调整视图。
3. Vue 3 的优势
  • 使用 Composition API 更简洁地管理逻辑。
  • script setup 写法让组件代码更清晰。

效果预览

运行代码后,页面会显示一个加载了 ArcGIS 高分辨率地图的区域,地图以深圳为中心,支持缩放与移动。


常见问题
  1. 地图未能正确加载?

    • 请检查 ArcGIS 服务 URL 是否正确。
    • 确保网络连接正常。
  2. 坐标系问题?

    • ArcGIS 瓦片通常使用 EPSG:4326EPSG:3857,确保与地图数据源的投影一致。

总结

通过 Vue 3 与 OpenLayers 的结合,加载 ArcGIS 地图变得简单高效。本篇文章不仅展示了完整实现代码,还详细解释了核心逻辑,希望对你有所帮助。如果你有更多需求,比如添加地图交互功能或加载更多数据源,可以在此基础上继续扩展。


参考资料
  • Vue 3 官方文档
  • OpenLayers 官方文档
  • ArcGIS 地图服务

欢迎在评论区留下你的问题与建议! 😊


http://www.kler.cn/a/420738.html

相关文章:

  • 工作:三菱PLC防止程序存储器爆满方法
  • 8. Debian系统中显示屏免密码自动登录
  • TinyXML2的一些用法
  • 一文解析Kettle开源ETL工具!
  • 种花问题算法
  • 前端 如何用 div 标签实现 步骤审批
  • Kafka 图形化工具 Eagle安装
  • ios上滚动条不能滑动 滚动卡住的问题
  • HTTP协议详解:从HTTP/1.0到HTTP/3的演变与优化
  • 在超表面中琼斯矩阵的使用
  • vue3+element-plus多选框全选与单选
  • matlab 中的 bug
  • K8S控制台kubernetes-dashboard快速安装
  • RHCE: SELinux
  • 力扣第81题 搜索旋转排序数组 II
  • SHELL脚本2(Linux网络服务器 23)
  • 如何运用Java爬虫获得1688商品详情数据
  • 架构03-事务处理
  • YunSDR通信小课堂-10
  • 扩展欧几里得——acwing
  • dify接入ollama模型报错:max retries exceeded with url
  • Java的反射(Reflection)
  • AWTK fscript 中的 串口 扩展函数
  • Linux:systemd进程管理【1】
  • 如何在vue中禁用eslint检查?
  • Nextjs 前端设置正向代理 解决 跨域问题