uni-app 安卓端完美接入卫星地图:解决图层缺失与层级过高难题

前言:

uni-app 的 renderjs 特性:

  • 运行环境 :在 App 端(Android/iOS)的 WebView 视图层 中执行(和 H5 一样)
  • 能力:可直接操作 DOM、调用浏览器 API、加载第三方 JS 库(如高德 JS API)
  • 通信 :通过 $ownerInstance.callMethod() 与逻辑层(JS 引擎)双向通信

换句话说:你在 renderjs 里写的代码,就相当于在一个"内嵌网页"中运行 ------ 所以 Web 地图 SDK 完全可用!

问题:

在一些农业物联网APP应用中,常常对卫星地图的需求比较高,并且zoom的放大层级要求比较高,在使用高德的卫星地图过程中,我发现它的层级最高只能到16,无法满足放大查看更多层级图层,如图:

解决方案:

更换图层源(这两个卫星地图的图层源的层级都可以到18,对用户去放大地图的细节完全够用):

1.使用mapbox图层源

目前国内已经无法注册

javascript 复制代码
const mapboxSatelliteLayer = new AMap.TileLayer({
            zooms: [12, 18],
            getTileUrl: (x, y, z) => {
                const accessToken = '你的token';
                return `https://api.mapbox.com/v4/mapbox.satellite/${z}/${x}/${y}.webp?sku=101MJBaF81K8z&access_token=${accessToken}`;
            },
            opacity: 1,
        });

2.使用天地图图层源

javascript 复制代码
const tiandituImgLayer = new AMap.TileLayer({
          zooms: [12, 18],
            getTileUrl: (x, y, z) => {
                return `http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX=${z}&TILEROW=${y}&TILECOL=${x}&tk=你的tk&sk=你的sk`;
            },
            opacity: 1
        });

在创建地图实例时,加入对应图层源

javascript 复制代码
                // 创建地图实例
				map = new AMap.Map("container", {
					pitch: 50, //地图俯仰角度
					viewMode: '3D',
					zoom: 14,
					center: [84.920629, 45.417129], // 设置初始中心点 [lng, lat]
					layers: [mapboxSatelliteLayer],
					visible: true,
					resizeEnable: true,
					zooms: [2, 20], //地图显示的缩放级别范围
				});

实现效果:

1.mapbox图层源

2.天地图图层源

相关推荐
_AaronWong41 分钟前
Electron 实现仿豆包划词取词功能:从 AI 生成到落地踩坑记
前端·javascript·vue.js
cxxcode41 分钟前
I/O 多路复用:从浏览器到 Linux 内核
前端
用户5433081441941 小时前
AI 时代,前端逆向的门槛已经低到离谱 — 以 Upwork 为例
前端
JarvanMo1 小时前
Flutter 版本的 material_ui 已经上架 pub.dev 啦!快来抢先体验吧。
前端
JohnYan1 小时前
工作笔记-CodeBuddy应用探索
javascript·ai编程·aiops
恋猫de小郭1 小时前
AI 可以让 WIFI 实现监控室内人体位置和姿态,无需摄像头?
前端·人工智能·ai编程
哀木1 小时前
给自己整一个 claude code,解锁编程新姿势
前端
程序员鱼皮1 小时前
GitHub 关注突破 2w,我总结了 10 个涨星涨粉技巧!
前端·后端·github
UrbanJazzerati2 小时前
Vue3 父子组件通信完全指南
前端·面试
是一碗螺丝粉2 小时前
5分钟上手LangChain.js:用DeepSeek给你的App加上AI能力
前端·人工智能·langchain