Javascript 将“我的传单”地图上的坐标系更改为“自定义”(比例和0,0位置)

Javascript 将“我的传单”地图上的坐标系更改为“自定义”(比例和0,0位置),javascript,leaflet,Javascript,Leaflet,我正在为游戏创建自定义tilelayer地图。游戏中有一个当前内置的坐标系统,我希望复制它,以方便用户查找坐标并连接到位置数据库 我正在尝试将CRS的0,0移动到地图的中心位置,但是我尝试过的所有操作都始终在左上角 是否有方法在将tilelayer添加到地图后移动它 还有,我该如何改变坐标的比例 我一直在努力寻找一个解决方案,但没有找到任何适合我所寻找的。我已经试过了,但是除非我错过了什么,否则这对我没有帮助 下面是一个例子:蓝线是当前的坐标系,而红色是我希望它位于的位置 这里是我初始化贴图和平

我正在为游戏创建自定义tilelayer地图。游戏中有一个当前内置的坐标系统,我希望复制它,以方便用户查找坐标并连接到位置数据库

我正在尝试将CRS的0,0移动到地图的中心位置,但是我尝试过的所有操作都始终在左上角

是否有方法在将tilelayer添加到地图后移动它

还有,我该如何改变坐标的比例

我一直在努力寻找一个解决方案,但没有找到任何适合我所寻找的。我已经试过了,但是除非我错过了什么,否则这对我没有帮助

下面是一个例子:蓝线是当前的坐标系,而红色是我希望它位于的位置

这里是我初始化贴图和平铺层的地方

    var map = new L.Map('map', {
        crs: L.CRS.Simple, 
        zoom: 3, 
        center:(hash), 
        minZoom: 2, 
        zoomControl: false, 
        noWrap: true, });
    var TopoLayer = L.tileLayer('map-tiles/{z}/{x}/{y}.jpg').addTo(map);  
谢谢,我觉得这个解决方案很简单,我只是略过了一下

    var factorx = 8
    var factory = 8

    L.CRS.pr = L.extend({}, L.CRS.Simple, {
      projection: L.Projection.LonLat,
      transformation: new L.Transformation(factorx, 160, -factory, 52.9),

      scale: function(zoom) {
        return Math.pow(2, zoom);
      },

      zoom: function(scale) {
        return Math.log(scale) / Math.LN2;
      },

      distance: function(latlng1, latlng2) {
        var dx = latlng2.lng - latlng1.lng,
          dy = latlng2.lat - latlng1.lat;

        return Math.sqrt(dx * dx + dy * dy);
      },
      infinite: true
    });
这似乎起到了作用:)创建了一个自定义crs。

请参见