Leaflet projections and WMS

by Leo

HTML

<script src="https://rawgit.com/proj4js/proj4js/master/dist/proj4-src.js"></script>
<script src="https://rawgit.com/gorshkov-leonid/Leaflet/master/dist/leaflet-src.js"></script>
<link rel="stylesheet" href="https://rawgit.com/gorshkov-leonid/Leaflet/master/dist/leaflet.css">
<script src="https://rawgit.com/kartena/Proj4Leaflet/leaflet-proj-refactor/src/proj4leaflet.js"></script>
<div id="map"></div>

CSS

body {
    height: 100%;
    width: 100%;
}
#map {
    position: absolute;
    top: 0;
    bottom: 0px;
    right: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
}

JavaScript

function z(unitsPerPx){
   return unitsPerPx;
   //return 40075017 / 256 / Math.pow(2, zoom);
}

var L = window.L;
var crs = new L.Proj.CRS('EPSG:3395', '+proj=merc +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs', {
    origin: [1560538.36947, 6371678.05835],    
    bounds: L.bounds([1560538.36947, 6371678.05835], [1655931.78077,
6502973.40129]),
    resolutions: [
      z(512.872433359),
      z(256.43621668),
      z(128.21810834),
      z(64.1090541699),
      z(32.054527085),
      z(16.0272635425),
      z(8.01363177124),
      z(4.00681588562),
      z(2.00340794281),
      z(1.00170397141),
      z(0.500851985703),
      z(0.25042599285),
      z(0.125212996426),
      z(0.0626064982128),
      z(0.0313032491064),
      z(0.0156516245532),
      z(0.0078258122766),
      z(0.0039129061383),
      z(0.00195645306915),
      z(0.000978226534575)  
    ]
  });

var map = new L.Map('map', {
    crs: crs, 
    minZoom: 0, //??
    maxZoom: 19 //??
  }).setView([50.08861, 14.42139], 7);

L.tileLayer('http://mapserver01.netcracker.com/tms/1.0.0/wms_prague_EPSG3395/{z}/{x}/{y}.png', {
    maxZoom: 19,
    minZoom: 1, //??
    tms: true
  }).addTo(map);