From: Hendrik B. <nh...@us...> - 2013-08-23 20:50:14
|
Update of /cvsroot/arianne/stendhal_website/css In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8086/css Modified Files: script-leaflet.js Log Message: some more experiments with projections Index: script-leaflet.js =================================================================== RCS file: /cvsroot/arianne/stendhal_website/css/script-leaflet.js,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** script-leaflet.js 21 Aug 2013 22:05:24 -0000 1.3 --- script-leaflet.js 23 Aug 2013 20:50:10 -0000 1.4 *************** *** 152,158 **** */ function initializeLeafletAtlas() { var map = L.map('map_leaflet', { ! center: [1, 1], zoom: 3, // set maxBounds to prevent draging into a copy of the world --- 152,203 ---- */ + var mapX0 = -180, mapY0 = 90, gameX0 = 499616, gameY0 = 499744; + var mapXZ = 124, mapYZ = -22, gameXZ = 501280, gameYZ = 500896; + + var gameXD = gameXZ - gameX0; + var gameYD = gameYZ - gameY0; + var mapXD = mapXZ = mapX0; + var mapYD = mapYZ - mapY0; + + function gameToMap(point) { + var x_ = point[0] - gameX0; + var y_ = point[1] - gameY0; + + return [x_ * mapXD / gameXD + mapX0, y_ * mapYD / gameYD + mapY0]; + } + + function fromPointToLatLng(point) { + var x = point[0] * (360 / 255) - 180; // (0 - 255) => (-180 - 180) + var y = (255 - point[1]) * (180 / 255) - 90; // (0 - 255) => (-90 - 90) + return [y, x]; + } + + function worldToLatLng(point) { + var x = point[0]; + var y = point[1]; + var xw0 = 499616; + var yw0 = 499744; + var xwz = 501280; + var ywz = 500896; + + var xl0 = 0; + var yl0 = 0; + var xlz = 208.15; + var ylz = 144.2; + + var lx = (x - xw0) / (xwz - xw0) * (xlz - xl0) + xl0; + var ly = (y - yw0) / (ywz - yw0) * (ylz - yl0) + yl0; + console.log(x, y, "^=", lx, ly); + return fromPointToLatLng([lx, ly]); + } + function initializeLeafletAtlas() { + + console.log(worldToLatLng([499616, 499744])); + console.log(worldToLatLng([500000, 500000])); + console.log(worldToLatLng([501280, 500896])); + var map = L.map('map_leaflet', { ! // center: worldToLatLng([500000, 500000]), zoom: 3, // set maxBounds to prevent draging into a copy of the world *************** *** 160,164 **** map.crs = L.CRS.Simple; ! map.setView([80, -100], 3) L.tileLayer('https://stendhalgame.org/map/2/{z}-{x}-{y}.png', { attribution: '', --- 205,211 ---- map.crs = L.CRS.Simple; ! map.setView(worldToLatLng([501280, 500896]), 3); ! ! L.tileLayer('https://stendhalgame.org/map/2/{z}-{x}-{y}.png', { attribution: '', |