Mapbox 使用哪个投影

Sto*_*ace 4 javascript maps mapbox mapbox-gl mapbox-gl-js

我有UTM坐标,EPSG: 25833。查看它说的Mapbox 文档

Mapbox 支持流行的 Web 墨卡托投影,不支持任何其他投影。Web Mercator 是一种几乎共形的投影,被绝大多数 web 地图采用,它的使用允许您将 Mapbox 的地图与同一投影中的其他图层组合在一起。

通常,此投影称为 EPSG:900913 或 EPSG:3857。有关更多信息和替代编码,请参阅 epsg.io。

所以,我可能必须将UTM坐标转换为Web Mercator. 我使用proj4js库来做到这一点。

import proj4 from 'proj4';
const epsg25833 = require('epsg-index/s/25833.json');
const epsg3857 = require('epsg-index/s/3857.json');
const mapboxCoords = proj4(epsg25833.proj4, epsg3857.proj4, [point.utm_point.coordinates[0], point.utm_point.coordinates[1]]);
Run Code Online (Sandbox Code Playgroud)

如果我尝试在 上显示mapboxCoords,则Mapbox Map不会显示任何内容。但是,如果我将坐标转换为EPSG: 4326,则显示所有内容。但是,坐标可能略有偏差。

import proj4 from 'proj4';
const epsg25833 = require('epsg-index/s/25833.json');
const epsg4326 = require('epsg-index/s/4326.json');
const mapboxCoords = proj4(epsg25833.proj4, epsg4326.proj4, [point.utm_point.coordinates[0], point.utm_point.coordinates[1]]);
Run Code Online (Sandbox Code Playgroud)

使用Mapbox. 文档说它EPSG:3857,但是,当我将坐标转换为EPSG没有显示任何内容时。使用EPSG: 4326至少显示一些东西......

And*_*vey 9

使用 Mapbox 的地图库,如 Mapbox GL JS 和 Mapbox GL Native,地图在 Web Mercator Projection (EPSG:3857) 中可视化呈现,但是任何时候你想要传递数据以显示在这些地图上,无论是作为标记还是 GeoJSON 层然后该数据必须作为 WGS84 LL 传递,即。EPSG:4326。

  • @L.Youl 对于 Mapbox GL JS 任何时候你传递一组坐标(例如标记)然后 LngLat https://docs.mapbox.com/mapbox-gl-js/api/geography/#lnglat 将其定义为预期的位置WGS84 LL,即。EPSG:4326。任何时候您创建本地源时,如果作为 geojson,则按照 GeoJSON 规范 https://tools.ietf.org/html/rfc7946 “GeoJSON 使用地理坐标参考系统、世界大地测量系统 1984 和十进制单位。” (2认同)