tile-lnglat-transform三方库发布啦

2024-02-22 13:24:26 浏览数 (2)

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相关 坐标举例:
代码语言:javascript复制
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

欢迎大家点击阅读原文,下载体验,喜欢的话,可以帮忙三连,是对坚果派最大的支持。

0 人点赞