Javascript 在带有3857 lat/lon的传单中设置地图中心

Javascript 在带有3857 lat/lon的传单中设置地图中心,javascript,leaflet,projection,wms,Javascript,Leaflet,Projection,Wms,我正试图在传单中用3857的lat/lon投影设置地图中心。 通过使用投影4326的lat/lon,其工作性能良好 var map = L.map('map', { crs: L.CRS.EPSG3857 }).setView([51.40457186188496, -2.3741738081973844], 13); 但如果我提供3857 lat/lon,它就不起作用了 var map = L.map('map', { crs: L.CRS.E

我正试图在传单中用3857的lat/lon投影设置地图中心。 通过使用投影4326的lat/lon,其工作性能良好

var map = L.map('map', {
        crs: L.CRS.EPSG3857
    }).setView([51.40457186188496, -2.3741738081973844], 13);
但如果我提供3857 lat/lon,它就不起作用了

var map = L.map('map', {
            crs: L.CRS.EPSG3857
        }).setView([6693172.2381477, -264291.81938326], 13);
请帮助我哪里错了


感谢

传单的API在其所有操作中都使用lat/lng,因此在调用传单时不应使用投影坐标

如果您有投影坐标(严格来说不是纬度和经度),可以通过取消投影将其转换为lat/lng。由于当前稳定版本的传单对EPSG:3857的定义略有不同,因此必须将坐标除以EPSG:3857的球体半径。此外,您的坐标似乎已交换x和y。无论如何,下面是执行转换的代码:


功能标签(x、y、map){
预计风险值=L点(y,x)。除以(6378137);
返回map.options.crs.projection.unproject(projected);
}

可以这样称呼:


var latLng=toLatLng(6693172.2381477,-264291.81938326,myMap);


你也可以使用Proj4js这样的库来进行投影/取消投影:

是的,你是对的,首先我需要取消投影点。但是你提到的方法是取消投影点,但不正确。e、 g(lat:-90,lng:383490520.79999435)我不想像Proj4js那样使用额外的lib。