我如何将lng和lat从OpenLayers转换为mapbox?



OpenLayers使用这样的数组:[15711464.77174924, 1340284.424706252]处理中心的坐标,但对于mapbox-gl,我应该设置一个值在-90到90之间,我得到这个错误:

Error: Invalid LngLat latitude value: must be between -90 and 90

那么,有没有办法将像:15711464.77174924这样的坐标转换为-90到90之间?

球面墨卡托坐标假设世界是一个半径为6378137米的球体。要转换为度数(基于OpenLayers源代码https://github.com/openlayers/openlayers/blob/main/src/ol/proj/epsg3857.js#L132-L134),函数将为

function toLonLat(input) {
const RADIUS = 6378137;
const HALF_SIZE = Math.PI * RADIUS;
const lon = (180 * input[0]) / HALF_SIZE;
const lat =
(360 * Math.atan(Math.exp(input[1] / RADIUS))) / Math.PI - 90;
return [lon, lat];
}

相关内容

  • 没有找到相关文章

最新更新