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