项目背景:用leaflet中加载天地图,并采用4490坐标系
问题:leaflet默认采用EPSG3857坐标系,也定义了EPSG4623坐标系,这两种坐标系比较通用,也能够满足大部分的开发需求。
鉴于项目的特殊性,在开发过程中使用proj4和proj4leaflet自定义了4490坐标系,特此记录并分享出来,可以让更多人能够快速处理此类问题。
const CRS_4490 = new L.Proj.CRS("EPSG:4490", "+proj=longlat +ellps=GRS80 +no_defs", {
resolutions: [
1.40625,
0.703125,
0.3515625,
0.17578125,
0.087890625,
0.0439453125,
0.02197265625,
0.010986328125,
0.0054931640625,
0.00274658203125,
0.001373291015625,
6.866455078125E-4,
3.4332275390625E-4,
1.71661376953125E-4,
8.58306884765625E-5,
4.291534423828125E-5,
2.1457672119140625E-5,
1.0728836059570312E-5,
5.364418029785156E-6,
2.682209064925356E-6,
1.3411045324626732E-6
],
origin: [-180, 90]
});
var map = L.map('map', {
center: [39.750837, 116.148174],
zoom: 10,
crs: CRS_4490
})
"EPSG:4490", "+proj=longlat +ellps=GRS80 +no_defs" 这段参数可在https://epsg.io/4490 查找,自定义其他坐标系亦是如此。resolutions是缩放,origin是原点,这几个参数尤为重要。