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

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

相关推荐
子兮曰2 小时前
Bun v1.3.14 深度解析:Image API、HTTP/3、全局虚拟存储与五十项变革
前端·后端·bun
kyriewen3 小时前
今天,百年巨头一次砍了9200人,而一个离职科学家的实话让全网睡不着觉
前端·openai·ai编程
问心无愧05134 小时前
ctf show web 入门42
android·前端·android studio
kyriewen4 小时前
老板逼我上AI,我偷偷在浏览器里跑LLaMA,省下20万API费
前端·react.js·llm
Beginner x_u4 小时前
前端八股整理(手写 02)|数组转树、数组扁平化、随机打乱一个数组
前端·数组·数组转树·数组扁平化
KaMeidebaby4 小时前
卡梅德生物技术快报|禽类成纤维细胞 FISH 实验:鸟类性别染色体基因定位技术实现与数据验证
前端·数据库·其他·百度·新浪微博
天若有情6735 小时前
前端高阶性能优化:跳出传统懒加载与预加载,基于用户行为做轻量预判加载
前端·性能优化
小小小小宇5 小时前
前端转后端:SQL 是什么
前端
张元清6 小时前
React Observer Hooks:7 种监听 DOM 而不写样板代码的方式
前端·javascript·面试
广州华水科技6 小时前
单北斗GNSS变形监测是什么?主要有怎样的应用与优势?
前端