tile-lnglat-transform
提供了高德、百度、谷歌、腾讯和必应地图的经纬度坐标与瓦片坐标的相互转换
本库由刘张豪移植[1],感谢大家对坚果派的支持。
运行环境
DevEco Studio:4.0Release
OpenHarmony SDK API10
开发板:润和DAYU200
特点
- 实现了国内常用地图的经纬度坐标与瓦片坐标的相互转换
转换原理
各地图的瓦片坐标系定义、转换原理和转换公式可以参见博文:国内主要地图瓦片坐标系定义及计算原理[2]
一、下载安装
代码语言:javascript复制ohpm install @nutpi/tile-lnglat-transform
OpenHarmony ohpm 环境配置等更多内容, 请参考如何安装 OpenHarmony ohpm 包[3]
二、使用
a.通用转换函数
- 经纬度坐标转瓦片坐标
lnglatToTile
@input:(longitude, latitude, level)
@output:{tileX, tileY}
- 经纬度坐标转像素坐标
lnglatToPixel
@input:(longitude, latitude, level)
@output:{pixelX, pixelY}
- 瓦片的某一像素点坐标转经纬度坐标
pixelToLnglat
@input:(pixelX, pixelY, tileX, tileY, level)
@output:{lng, lat}
- 用通用经纬度转换高德、Google相关 坐标举例:
import TileLnglatTransform from "@nutpi/tile-lnglat-transform"
let TileLnglatTransformGaode = TileLnglatTransform.TileLnglatTransformGaode;
let tile_gaode = TileLnglatTransformGaode.lnglatToTile(this.lng, this.lat, this.level);
let pixel_gaode = TileLnglatTransformGaode.lnglatToPixel(this.lng, this.lat, this.level);
let lnglat_gaode = TileLnglatTransformGaode.pixelToLnglat(
pixel_gaode.pixelX, pixel_gaode.pixelY,
tile_gaode.tileX, tile_gaode.tileY,
this.level
);
b.某平台独有函数
高德地图/谷歌地图/腾讯地图
- 无
百度地图
- 经纬度坐标转平面坐标
lnglatToPoint
@input:{lng, lat}
@output:(pointX, pointY)
- 平面坐标转经纬度坐标
pointToLnglat
@input:(pointX, pointY)
@output:{lng, lat}
Bing 地图
Bing 地图使用 Slippy[4] 方式,经纬度坐标和瓦片坐标转换与 Google 地图相同。不同的是 Bing 地图使用 quadkey(四叉树编码)来标识瓦片。
- 瓦片坐标转四叉树编码
lnglatToQuadkey
@input: tileX, tileY, level
@output: quadkey
- 四叉树编码转瓦片坐标
quadkeyToLnglat
@input: quadkey
@output: {tileX, tileY, level}
三、开源协议
本项目基于 Apache2.0 ,请自由地享受和参与开源。由刘张豪同学完成移植。
参考资料
[1]
刘张豪移植: https://atomgit.com/nutpi/tile-lnglat-transform/blob/master
[2]
国内主要地图瓦片坐标系定义及计算原理: http://cntchen.github.io/2016/05/09/国内主要地图瓦片坐标系定义及计算原理/
[3]
如何安装 OpenHarmony ohpm 包: https://gitee.com/openharmony-tpc/docs/blob/master/OpenHarmony_har_usage.md
[4]
Slippy: http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
欢迎大家点击阅读原文,下载体验,喜欢的话,可以帮忙三连,是对坚果派最大的支持。