专栏名称: 锐多宝
遥感技术教程、资讯与前沿论文
目录
相关文章推荐
Hacking黑白红  ·  DeepSeek,紧急声明 ·  昨天  
Hacking黑白红  ·  DeepSeek,紧急声明 ·  昨天  
优秀网页设计  ·  AI工具丨AI头像生成神器,定制专属情人节微 ... ·  3 天前  
自然资源部  ·  自然资源部2025年生态文明大讲堂第一讲开讲 ·  3 天前  
自然资源部  ·  自然资源部2025年生态文明大讲堂第一讲开讲 ·  3 天前  
福建省人民政府公报  ·  公告 ·  3 天前  
字体设计  ·  推荐 8 款字体设计组合 ·  4 天前  
51好读  ›  专栏  ›  锐多宝

ArcGIS 加载吉林一号地图的探索

锐多宝  · 公众号  ·  · 2024-09-13 18:39

正文

ArcGIS 不支持吉林一号在线地图服务,有两种方面的原因 🤔

第一,ArcGIS 桌面软件不支持webp图片格式的加载显示,刚好吉林一号瓦片格式就是webp;

第二,ArcGIS 桌面软件不支持瓦片原点坐标为左下角的瓦片地图服务。

吉林一号瓦片格式

# 1-问题描述

# 1.1-ArcGIS不支持webp瓦片

ESRI的产品定义跟苹果刀法精准,现在原生支持webp瓦片已经在ArcGIS Pro的功能建议清单中了。今年8月份,已经是【In Product Plan】状态了,说明已经着手编写代码了,该功能建议由 [xingchenc] 提出。

(https://community.esri.com/t5/user/viewprofilepage/user-id/567991)
最新动态

Add WMTS (Webp format tile) support for ArcGIS Pro

⇲https://community.esri.com/t5/arcgis-pro-ideas/add-wmts-webp-format-tile-support-for-arcgis-pro/idi-p/1306431

ArcGIS Pro Labels (功能建议状态说明)

⇲https://community.esri.com/t5/arcgis-pro-documents/arcgis-pro-labels/ta-p/1000519

# 1.2-ArcGIS不支持瓦片Y轴翻转

吉林一号在线地图服务的原点坐标不是标准的左上角(谷歌标准),而是左下角(TMS标准),这导致了Y轴方向的瓦片索引需要翻转;对于QGIS软件,可以采用-y的方式解决、奥维地图则用y!的地址格式。

Google XYZ Tile VS OGC TMS

谷歌XYZ:Z表示缩放层级,Z=zoom;XY的原点在左上角,X从左向右,Y从上向下。

TMS:开源产品的标准,Z的定义与谷歌相同;XY的原点在左下角,X从左向右,Y从下向上。

🧐引用自瓦片(Tile)行列号计算方法

⇲https://xcsf.github.io/blog/2020/06/12/%E7%93%A6%E7%89%87Tile%E8%A1%8C%E5%88%97%E5%8F%B7%E8%AE%A1%E7%AE%97%E6%96%B9%E6%B3%95/

# 2-解决思路

# 2.1-webp转png

编写webp图片格式的动态转换程序,实现不同图片格式的动态转换中间代理,将.webp实时转换成jpg/png可以解决ArcGIS桌面软件不兼容的问题。采用api接口的形式,瓦片地图链接改成https://webp2jgg.cc/api?url=https://api.jl1mall.com/getMap/{z}/{x}/{y}。

这样请求的顺序是先下载对应的瓦片,接着由本地程序转换图片格式,返回ArcGIS适配的瓦片格式如PNG。

# 2.2-瓦片Y轴翻转

标准的XYZ瓦片地图服务采用左上角为原点(0,0)的谷歌标准,吉林一号则是从左下角开始索引编号的,这意味着X轴没有改变,只是将Y轴翻转了;那么我们请求吉林一号的z=1,x=0,y=0的时候,应该下载翻转之后的索引编号,设ymax的最大值是2^1 - 1=1,此时请求的y=0,那么翻转的-y=ymax - y=1;此时我们编写一段程序代码将请求改成z=1,x=0,y=1,即可解决瓦片Y轴翻转的问题了。

🌏设谷歌瓦片索引为XYZ,TMS瓦片索引为X-YZ,其中有

·>>>  -Y = 2^Z - 1 - Y

# 3-实现步骤

# 3.1-开发环境

+ NVM

nvm 允许您通过命令行快速安装和使用不同版本的 node。

⇲https://nvm.p6p.net/download.html

查看安装版本

nvm -v

  • NodeJS

下载最新稳定版本的nodejs

nvm install lts
nvm use lts

如果上述命令行执行报错,试着切换至国内镜像

nvm npm_mirror https://npmmirror.com/mirrors/npm/
nvm node_mirror https://npmmirror.com/mirrors/node/

查看安装版本

node -v

# 3.2-程序编写

+ NPM

npm 是nodejs的插件管理程序,首先 npm install 项目引用的插件集,新建空文件夹用于存放项目文件,安装项目所需要的库。
npm install express sharp axios
其中 sharp是图片格式转换的插件、axios是提供api接口的插件。
接下来,构建我们的项目配置文件
npm init
最后,新建JavaScript文件,命名为  server.js
  • server.js

我们编写程序有1个流程、4个步骤,首先解决程序的输入形式,ArcGIS 请求XYZ瓦片地图时,会发送 xyz 三个数值参数到服务器中,那么输入的参数就是 z, x, y了;
const { z, x, y } = req.params;
接着,我们需要对瓦片Y轴翻转,即 -y = ymax -y, yamx = 2^z -1
const yInverted = (Math.pow(2, z) - 1) - y;
然后,对获取的瓦片进行图片格式转换,使用 sharp 将 WebP 图像转换为 PNG






请到「今天看啥」查看全文


推荐文章
Hacking黑白红  ·  DeepSeek,紧急声明
昨天
Hacking黑白红  ·  DeepSeek,紧急声明
昨天
福建省人民政府公报  ·  公告
3 天前
字体设计  ·  推荐 8 款字体设计组合
4 天前