首页 > 其他分享 >3.vue3+openlayers加载Mapbox地图

3.vue3+openlayers加载Mapbox地图

时间:2024-12-01 12:00:46浏览次数:11  
标签:Mapbox Access token API openlayers Key vue3 import

1. 注册 Mapbox 账户

  • 访问 Mapbox官网,并点击右上角的 Sign Up 按钮,创建一个新的账户。如果你已有 Mapbox 账户,可以直接登录。

2. 创建一个 Mapbox 项目

  • 登录后,进入 Mapbox 的 Account Dashboard 页面。
  • 在页面上,你会看到一个 Create a new token 或者 Access tokens 的按钮。点击它进入令牌(token)管理页面。

3. 生成 API Key (Access Token)

  • Access tokens 页面中,点击 Create a new token
  • 为你的 token 设置一个名字(例如:“Vue App Token”),并根据需要选择相应的权限。通常,选择 Default public token 即可。
  • 创建后,Mapbox 会生成一个新的 API Key(也叫 Access Token)。你可以将这个 token 用在你的项目中。

4. 使用 API Key

  • 在你的 Vue 代码中,你可以将生成的 API Key 用于加载 Mapbox 地图。上面代码中的 key 变量就是你从 Mapbox 获取的 API Key。

示例:

qqq
<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>

javascript

复制代码

const key = "你的Mapbox API Key";

5. 管理你的 API Key

  • Mapbox 允许你管理和更新你的 Access Tokens。如果你需要撤销某个 API Key 或创建新的 Key,可以在 Access tokens 页面中进行管理。

注意: Mapbox 的免费套餐有一定的使用限制。如果你的应用需要更高的请求量或高级功能,可能需要升级为付费套餐。你可以在 Mapbox 的价格页面找到详细的定价信息。

这样,你就能够获得并使用 Mapbox 的 API Key 来加载地图了。

标签:Mapbox,Access,token,API,openlayers,Key,vue3,import
From: https://blog.csdn.net/Miller777_/article/details/144167554

相关文章

  • vue3实现自定义导航菜单
    一、创建项目    1.打开HBuilderX图1    2.新建一个空项目        文件->新建->项目->uni-app        填写项目名称:vue3demo        选择项目存放目录:D:/HBuilderProjects        一定要注意vue的版本,当前选择的版......
  • uni-app vue3 获取 package.json 自定义环境变量
    一、初始化项目 二、添加 package.json 文件(必须)注意:文件里面不要写备注{ "uni-app":{ "scripts":{ "dev":{ "title":"开发版", "env":{ "ENV_TYPE":"dev", "UNI_PLATFORM&q......
  • SpringBoot3+Vue3+NaiveUI主流前端分离开发框架 | 小蚂蚁云
     项目介绍基于SpringBoot3、SpringSecurity、MybatisPlus、Vue3、TypeScript、Vite、NaiveUI、MySQL等技术栈实现的单体前后端分离后台管理系统;后端基于Java语言采用SpringBoot3、SpringSecurity、MybatisPlus、MySQL等主流技术栈,前端基于Vue3、TypeScript、Vite等技术栈实现......
  • SpringBoot3+Vue3+NaiveUI项目实例源码 | 小蚂蚁云
     项目介绍基于SpringBoot3、SpringSecurity、MybatisPlus、Vue3、TypeScript、Vite、NaiveUI、MySQL等技术栈实现的单体前后端分离后台管理系统;后端基于Java语言采用SpringBoot3、SpringSecurity、MybatisPlus、MySQL等主流技术栈,前端基于Vue3、TypeScript、Vite等技术栈实现......
  • vue3自定义指令实现截图
    依赖:•使用html2canvas(需要先安装:npminstallhtml2canvas)。绑定事件:•在目标DOM上绑定click事件。截图逻辑:•点击后调用html2canvas截取目标元素的截图。•使用Canvas的toDataURL()方法生成Base64图片。保存文件:•创建一个a标签,通过downloa......
  • Vue3+Element plus 实现表格可编辑
     <template>  <div>   <el-buttontype="primary"@click="handleAdd">    新增   </el-button>   <el-buttontype="primary"@click="handleAdd10">    新增10个点表   &l......
  • 手动实现vue3的select下拉框的滚动加载和虚拟滚动,简单易懂
    首先,滚动加载和虚拟滚动都是为了解决数据量大的渲染性能问题,但是也有区别,滚动加载并没有从根本上解决问题,只是滚动到可视区域底部动态加载,二虚拟滚动是永远只渲染固定数量(通常是可视区域内)的所以可以从根本上解决这种性能问题。如果只想了解滚动加载只看第一部分即可。这两种技......
  • Paypal最新版本 paypal-server-sdk 使用案例(前端 Vue3 + 后端Spring Boot )
    背景在项目中对接Paypal支付,一开始在网上查了好久,发现资料少,而且陈旧,甚至我都没弄清楚我应该哪个SDK。我到maven中央仓库中,搜索com.paypal.sdk,能查出不少结果,据我所知,至少有三个sdk可以从后端访问到Paypal:paypal-core:非常陈旧,2016年就停止更新了,但网上还有一些关于它的教程......
  • Vue3 的基础使用
    Vue3的基础使用npminitvue@latestref赋值一个新的对象,那么响应式也会存在shallowRef只保留最顶层的响应式更新reactive赋值一个新的对象,失去响应性直接访问对象中的属性,当访问到某个响应式数组(Map这样的原生集合类型)中的ref元素时,不会解包shallowReactive只保留最......
  • vue3实现keep-alive一个组件(一个vue使用多个页面支持缓存)使用多个页面(多个路由)已解决
    代码<router-viewv-if="routerAlive"><template#default="{Component,route}"><keep-alive:include="getCaches"><component:is="formatComponentInstance(Component,route.name)......