turfjs 能否提供地理坐标和应用程序坐标之间的坐标转换
Posted
技术标签:
【中文标题】turfjs 能否提供地理坐标和应用程序坐标之间的坐标转换【英文标题】:Can turfjs provide a coordinate transform between geo coords and application coords 【发布时间】:2020-04-28 23:53:23 【问题描述】:我需要从地理坐标系统到另一个坐标系统的转换。 我认为这样做的明显方法是给出系统的两个边界框。
因此,如果我有一个地理 bbox,在 lon/lat 坐标中,以及一个与此相对应但在我自己的坐标中的非地理 bbox,我想要一个可以将地理到我和我的 xfm -到地理位置。
我需要一个基于代理的编程环境,它有自己的基于 minX、minY、maxX、maxY 的坐标系统,就像 Turf 表达 bboxes 一样。例如,它也适用于在画布中的地理坐标和像素之间进行转换。
我在 Turf 中找不到这样的坐标变换,但我可能缺少它,或者可能有一种简单的方法可以使用 Turf 基元来实现。
有没有办法使用 Turf 进行这种坐标变换?
【问题讨论】:
【参考方案1】:我会使用处理投影转换的proj4js
。
您的画布可以在 Pseudo-Mercator ([x,y]) 中表示,而 turf 将继续在 WGS84 ([lon, lat]) 中工作。
const xyCoordsToLatLong = (xy_pair) =>
return proj4(PSEUDO_MERC_DATUM, WGS84_DATUM, xy_pair);
const latLongCoordsToXY = (latlong_pair) =>
return proj4(WGS84_DATUM, PSEUDO_MERC_DATUM, latlong_pair);
然后,bbox [0,0,500,200]
的画布将表示为[0, 0, 0.004491576420597608, 0.0017966305679443192]
。
完整演示here。
【讨论】:
以上是关于turfjs 能否提供地理坐标和应用程序坐标之间的坐标转换的主要内容,如果未能解决你的问题,请参考以下文章
GlobalMapper精品教程055:GM坐标转换器的巧妙使用