@vuemap/vue-amap高德vue组件库常用技巧(四)

@vuemap/vue-amap是基于高德JSAPI2.0、Loca2.0封装的vue组件库,支持vue2、vue3版本。首页地址:vue-amap.guyixi.cn/

在上一个分享中,主要讲解了单信息框与多信息框的使用的使用情况,这一次分享着重讲怎么在高德地图中加载第三方瓦片的使用技巧。

对于瓦片加载,日常使用时会碰到两种坐标系,一个是基于WGS84生成的瓦片、另一个是基于火星坐标系生成的瓦片。高德地图本身只支持火星坐标系的瓦片,但高德提供了GlCustomLayer对象,可以自定义实现加载其他坐标系瓦片的能力,因此,基于GlCustomLayer我实现了一个瓦片纠偏插件,用于加载BD09(百度使用的坐标系,基于火星坐标系再次加密)和WGS84坐标系的瓦片数据。插件地址

火星坐标系瓦片加载

火星坐标系的瓦片加载是最简单,直接使用el-amap-layer-tile即可加载瓦片。 示例代码如下:

html 复制代码
<template>
  <div class="map-page-container">
    <el-amap
      :center="center"
      :zoom="zoom"
    >
      <el-amap-layer-tile
        :tile-url="'https://wprd0{1,2,3,4}.is.autonavi.com/appmaptile?x=[x]&y=[y]&z=[z]&size=1&scl=1&style=8&ltype=11'"
        :visible="visible"
      />
    </el-amap>
  </div>
  <div class="toolbar">
    <button @click="switchVisible()">
      {{ visible? '隐藏' : '显示' }}
    </button>
  </div>
</template>

<script lang="ts" setup>
import {ref} from "vue";
import {ElAmap, ElAmapLayerTile} from "@vuemap/vue-amap";

const zoom = ref(12);
const center = ref([121.59996, 31.197646]);


const visible = ref(true)
const switchVisible = () => {
  visible.value = !visible.value;
}

</script>

<style>
</style>

效果图:

加载其他坐标系瓦片

当需要加载其他坐标系瓦片时我们就需要使用el-amap-layer-custom-xyz图层来进行瓦片纠偏。 模拟的示例如下:

html 复制代码
<template>
  <div class="map-page-container">
    <el-amap
      :show-label="false"
      :center="center"
      :zoom="zoom"
      :pitch="60"
      view-mode="3D"
    >
      <el-amap-layer-custom-xyz
        url="https://maponline{s}.bdimg.com/starpic/?qt=satepc&u=x={x};y={y};z={z};v=009;type=sate&fm=46"
        :subdomains="subdomains"
        proj="bd09"
        tileType="bd09"
        :visible="visible"
      />
    </el-amap>
  </div>
  <div class="toolbar">
    <button @click="switchVisible()">
      {{ visible ? '隐藏' : '显示' }}
    </button>
  </div>
</template>

<script lang="ts" setup>
import {ref} from "vue";
import {ElAmap, ElAmapLayerCustomXyz} from "@vuemap/vue-amap";

const center = ref([116.335036, 39.900082])
const zoom = ref(8)
const visible = ref(true)
const subdomains = ref(["1", "2", "3"])

const switchVisible = () => {
  visible.value = !visible.value;
}

</script>

<style>
</style>

效果图 根据文档调整参数还可以实现掩膜,瓦片增加海拔实现瓦片浮空效果。

相关推荐
用户88766542663几秒前
Web3 前端实时通信如何落地:从 SSE 订阅到行情、订单与账户状态更新
前端·react.js·web3
an317423 分钟前
使用 LangGraph + DeepSeek 构建 AI 面试官:状态图设计与实践
前端·ai编程
代码不加糖4 分钟前
MessageChannel是什么,有什么使用场景?
前端·javascript
小小龙学IT8 分钟前
HTMX:让 HTML 重新成为前端核心的超轻量动态交互库
前端·html·交互
星栈8 分钟前
写 Makepad Demo 不难,难的是把它写成项目
前端·rust
用户0595401744610 分钟前
localStorage清除策略踩坑实录:一个过期的token让我排查了3小时
前端·css
Nanachi12 分钟前
跨框架的前端源码定位,再加上点LLM
前端
人无远虑必有近忧!31 分钟前
fetch请求图片报跨域
前端·javascript
谢院柯32 分钟前
解决修改 node_modules 依赖库源码后重复安装问题的几种方案
前端
疯狂打码的少年35 分钟前
【程序语言与编译】NFA转DFA(子集构造法)
前端·笔记