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

2.vue3+openlayers加载OpenStreetMap地图

 效果图:

 代码如下:

<!--
 * @Author: 彭麒
 * @Date: 2024/12/1
 * @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加载OpenStreetMap地图</div></div>
    <div id="vue-openlayers"></div>
  </div>
</template>

<script setup>
import 'ol/ol.css';
import { ref, onMounted } from 'vue';
import { Map, View } from 'ol';
import { Tile as TileLayer } from 'ol/layer';
import { OSM } from 'ol/source';
import router from "@/router";
const goBack = () => {
  router.push('/OpenLayers');
};
// 创建 ref 来持有 map 对象
const map = ref(null);

// 初始化地图的函数
const initMap = () => {
  const osmLayer = new TileLayer({
    source: new OSM(),
    zIndex: 1,
  });

  map.value = new Map({
    target: 'vue-openlayers',
    layers: [osmLayer],
    view: new View({
      projection: 'EPSG:4326',
      center: [104.389, 30.903],
      zoom: 9,
    }),
  });
};

// 在组件挂载后调用初始化地图函数
onMounted(() => {
  initMap();
});
</script>

<style scoped>
.container {
  width: 840px;
  height: 570px;
  margin: 150px auto;
  border: 1px solid #42B983;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
#vue-openlayers {
  width: 800px;
  height: 450px;
  margin: 0 auto;
  border: 1px solid #42B983;
  position: relative;
}
</style>


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

相关文章:

  • 深度学习基础2
  • 【python】图像、音频、视频等文件数据采集
  • [网络安全]sqli-labs Less-5 解题详析
  • 【接口封装】——11、Qt 的单例模式
  • 网络安全运行与维护 加固练习题
  • GitLab的使用
  • 【开源项目】经典开源项目数字孪生智慧商场—开源工程及源码
  • LeetCode 动态规划 爬楼梯
  • Python uvloop性能测试:异步事件循环的性能对比与实践
  • UNDO LOG日志
  • 使用Compose Multiplatform开发跨平台的Android调试工具
  • 树莓集团:以人工智能为核心,打造数字化生态运营新典范
  • python数据分析之爬虫基础:爬虫介绍以及urllib详解
  • redis揭秘-redis01-redis单例与集群安装总结
  • 网络安全方面的专业词汇大全[荐]
  • Vue Router开发常见技术点总结
  • Transformers 框架 Pipeline 任务详解:文本转音频(text-to-audio 或 text-to-speech)
  • Search with Orama
  • Fiddler抓包手机和部分app无法连接网络问题
  • 智能图像识别系统设计与实现
  • Vue3 开源UI 框架推荐 (大全)
  • 「Mac畅玩鸿蒙与硬件33」UI互动应用篇10 - 数字猜谜游戏
  • SQL面试题——抖音SQL面试题 最近一笔有效订单
  • Element UI 中国省市区级联数据
  • 手撸了一个文件传输工具
  • NFT Insider #157:The Sandbox 开启新一期 VoxEdit 比赛