Unity基于天地图API自动下载瓦片地图【工具】

  • 类型: [工具]

概述

这个工具是一个在Unity中基于天地图API,实现所定区域范围地图瓦片的自动下载和存储

设计初衷

  • 解决了什么问题: 在GIS、智慧城市、模拟仿真等项目中,常常需要大范围、高精度的真实世界地图作为底图。手动下载成千上万张瓦片地图不仅效率低下,而且难以管理。此模块旨在自动化这一过程。
  • 设计目标: 提供一个高效、可复用的开发工具,只需简单配置经纬度范围和缩放层级,即可快速生成一套可离线使用的本地地图瓦片缓存

核心特性

  • 瓦片自动下载: 根据设定的经纬度范围和缩放级别(3-18级),自动计算瓦片矩阵,并请求天地图API下载对应的瓦片图片。
  • 本地缓存机制: 首次下载的瓦片图片会以PNG格式保存到本地指定路径,后续可直接从本地加载,实现离线运行并节省网络资源。
  • 异步高性能下载: 采用 UniTaskUnityWebRequest 异步下载图片,下载过程完全不阻塞Unity主线程,保证了编辑期和运行时的流畅体验
  • 高质量纹理保障: 脚本启动时会自动设置高质量的纹理参数(各向异性过滤、Mipmap等),避免地图贴图在打包后因压缩而变得模糊。
  • 精准定位与范围选择: 自由输入地图中心的经纬度,并设定需要下载的精确范围
  • 多级LOD按需加载: 支持自定义下载一个或多个地图缩放层级,从宏观概览到微观细节,实现按需加载。
  • 天地图API深度集成: 提供专属字段预设API Token,并能一键切换地图类型(影像、地形等)与注记样式,满足多样化的需求下载。
  • 资源管理自由化: 可以根据项目需求,自由定义下载瓦片的分辨率大小和本地存储路径

依赖与源代码

依赖项

  • Unity版本: 2021.3.x 或更高

  • 外部库: UniTask (Cysharp.Threading.Tasks): 用于异步编程。

源代码

  1. 在您的项目 Scripts 文件夹中,创建TianMapDownloading脚本。
    • 创建 TianMapDownloading.cs 脚本** (随便挂载到场景中物体上)
public class TianMapDownloading : MonoBehaviour  
{
	public enum MapLayerType  
 {  
    [InspectorName("矢量地图")]  
    [Tooltip("vec_c: 标准矢量地图")]  
    Vector = 0,  
    [InspectorName("卫星影像")]  
    [Tooltip("img_c: 卫星影像地图")]  
    Satellite = 1,  
    [InspectorName("地形晕渲")]  
    [Tooltip("ter_c: 地形晕渲地图")]  
    Terrain = 2  
 }
	public enum Anno
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值