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.天地图图层源

相关推荐
小蜜蜂dry2 分钟前
nestjs学习 - 管道(pipe)
前端·nestjs
进击的尘埃2 分钟前
LangGraph.js 核心机制拆解:从状态管理到完整数据分析 Agent 实战
javascript
梦鱼5 分钟前
🖥️ 告别 Electron 托盘图标模糊:一套精准的 PNG 生成方案
前端·electron
进击的尘埃5 分钟前
Cursor Rules 配置指南:提示词工程与多模型切换
javascript
张元清6 分钟前
React Hooks 性能优化:如何避免不必要的重新渲染
前端·javascript·面试
不甜情歌11 分钟前
JavaScript this绑定规则:告别踩坑指南!
前端·javascript
小J听不清17 分钟前
CSS 三种引入方式全解析:行内 / 内部 / 外部样式表(附优先级规则)
前端·javascript·css·html·css3
一步一个脚印一个坑29 分钟前
用 APM 全链路追踪,29ms 内定位到 Docker 部署的 SSL 配置错误
javascript·后端·监控
没有了遇见34 分钟前
Android 项目架构之<用户信息模块>
android
aircrushin1 小时前
端到端AI决策架构如何重塑实时协作体验?
前端·javascript·后端