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

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

相关推荐
网络点点滴13 小时前
前端与后端的区别与联系
前端
EnCi Zheng14 小时前
M5-markconv自定义CSS样式指南 [特殊字符]
前端·css·python
kyriewen14 小时前
你的网页慢,用户不说直接走——前端性能监控教你“读心术”
前端·性能优化·监控
广州华水科技14 小时前
北斗GNSS变形监测在大坝安全监测中的应用与优势分析
前端
前端老石人14 小时前
前端开发中的 URL 完全指南
开发语言·前端·javascript·css·html
CAE虚拟与现实14 小时前
五一假期闲来无事,来个前段、后端的说明吧
前端·后端·vtk·three.js·前后端
Sarvartha14 小时前
三目运算符
linux·服务器·前端
晓晨的博客14 小时前
ROS1录制的bag包转换为ROS2格式
前端·chrome
Wect14 小时前
LeetCode 72. 编辑距离:动态规划经典题解
前端·算法·typescript
donecoding15 小时前
别再让 pnpm 跟着 nvm 跑了!独立安装终极指南
前端·node.js·前端工程化