一、抛砖引玉
对于Leaflet创建map。总有一个很重要头疼的属性–crs
:
this.map = L.map("view-map", {
zoomControl: false,
attributionControl: false,
crs: L.CRS.EPSG3857,
minZoom: 1,
maxZoom: 20,
}).setView([38.00315, 114.28898], 4);
对。就是这么一个简单的属性,却是整个leaflet瓦片加载的核心算法必然依赖项。当然,对于leaflet官档,自然而然的给出了一句忠告:
Don’t change this if you’re not sure what it means.
嘿嘿。你这给了一个不要轻易去动,然后给死了一个坐标系L.CRS.EPSG3857
。这怎么可能满足我等的需求嘛?如果我要支持地方坐标系呢?咋办?
二、进入主题
好奇的我们打开了leaflet的源码。发现对于CRS的定义就几个函数:
没错。你看出来了,其实这玩意就是提供了wgs84坐标系与目标坐标系之间转换的一种算法。因为