[Dutch] Leaflet tile URL probleem

Edward Mac Gillavry emacgillavry op hotmail.com
Di Apr 14 13:30:51 PDT 2015


Ha Ron,

Nieuwsgierig geworden heb ik even een poging gewaagd. 
Stuitte op dezelfde issues en constateerde, dat ik normaal gesproken een
 andere bbox gebruik voor het tile grid, namelijk 

-285401.92,22598.08,595401.91,903401.92 (genoemd in de Geonovum tiling richtlijn [1], pagina 6)

ipv

-285401.92,22598.08,595401.9199999999,903401.9199999999

Dit maakte echter geen verschil. Ook zag ik, dat de resolutions array nog extra entries nodig heeft voor de diepste zoomniveaus:

resolutions:
 [3440.640, 1720.320, 860.160, 430.080, 215.040, 107.520, 53.760, 
26.880, 13.440, 6.720, 3.360, 1.680, 0.840, 0.420, 0.21, 0.105,  0.0575]

(genoemd in de Geonovum tiling richtlijn [1], in de tabel op pagina 13)

Dit maakte echter nog steeds geen verschil ;-(. Toen keek ik ook nog even naar de PDOK-Kaartwizard [2]. Ook hier gebeurt het, dat je bij het gebruik van de lufo op de diepste zoomniveaus fracties krijgt in de URL's die de tegels ophalen... Kortom: het lijkt niet een specifiek Leaflet issue te zijn. Maar waar ligt het dan wel aan?

Groetjes,

Edward

[1] http://www.geonovum.nl/sites/default/files/nederlandse_richtlijn_tiling_-_versie_1.1.pdf
[2] http://kaart.pdok.nl/

From: ron op rwgc.nl
Date: Tue, 14 Apr 2015 20:55:38 +0200
To: dutch op lists.osgeo.org
Subject: [Dutch] Leaflet tile URL probleem

Hallo OSGeo.nl-ers,
Bij het maken van een heel basic Leaflet kaart loop ik tegen een probleem aan met de tile URL en hopelijk weet iemand raad.

Ik heb het voorbeeld met de PDOK BRT TMS in Leaflet die door Bart van den Eijnden is gemaakt genomen als basis (zie https://github.com/bartvde/PDOK-Leaflet).

Daar heb ik de open luchtfoto TMS aan toegevoegd. Dat werkt prima maar bij zoom level 12 en hoger gaat het mis. Dan treedt er een afrondingsfout op in de tile URL die er voor zorgt dat de luchtfoto op die levels niet getoond wordt.

Leaflet vraagt dan:
http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/12/2402.0000000000005/2602.jpeg
en dat levert niets op want de gewenste tile is:
http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/12/2402/2602.jpeg

Het vreemde is ook dat dit niet optreedt bij de BRT service.

Ik zou zeggen, een simpele round functie ergens volstaat maar waar?

NB dit is de config in script.js :

var RD = new L.Proj.CRS.TMS(
    'EPSG:28992',
    '+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889
+k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m
+towgs84=565.2369,50.0087,465.658,-0.406857330322398,0.350732676542563,-1.8703473836068,4.0812
+no_defs',
    [-285401.92,22598.08,595401.9199999999,903401.9199999999], {
    resolutions: [3440.640, 1720.320, 860.160, 430.080, 215.040,
107.520, 53.760, 26.880, 13.440, 6.720, 3.360, 1.680, 0.840, 0.420]
});

var map = new L.Map('map', {
  continuousWorld: true,
  crs: RD,
  layers: [
    new
L.TileLayer('http://geodata.nationaalgeoregister.nl/tms/1.0.0/brtachtergrondkaartpastel@EPSG:28992@png8/{z}/{x}/{y}.png',
{
        tms: true,
        minZoom: 3,
        maxZoom: 14,
        attribution: 'Kaartgegevens: © <a
href="http://www.cbs.nl">CBS</a>, <a
href="http://www.kadaster.nl">Kadaster</a>, <a
href="http://openstreetmap.org">OpenStreetMap</a><span
class="printhide">-auteurs (<a
href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>).</span>',
        continuousWorld: true,
        opacity: 0.5
    }),
    new
L.TileLayer('http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/{z}/{x}/{y}.jpeg',
{
        tms: true,
        minZoom: 3,
        maxZoom: 14,
        attribution: 'Kaartgegevens: © <a
href="http://www.kadaster.nl">Kadaster</a>.</span>',
        continuousWorld: false,
        opacity: 0.5,
        maxNativeZoom: 14 // The map will use zoom level 14 (max
luchtfoto zoom level) tiles for all zoom levels beyond this level
    })
  ],
  //center: new L.LatLng(52, 5.3),
  center: new L.LatLng(53.223606, 6.532480),
  zoom: 9,
  minZoom: 3,
  maxZoom: 14,
});
// test RD coordinates
map.on('click', function(e) {
    if (window.console) {
        var point = RD.projection.project(e.latlng);
        console.log("RD X: " + point.x + ", Y: " + point.y);
    }
});

// functie om huidig zoom level in het kaartbeeld te tonen
map.on('zoomend', function(){
    document.getElementById('zoom-level').innerHTML = 'Zoom Level: ' +
map.getZoom();
});




Bedankt en groeten,
Ron Wardenier
_______________________________________________
Dutch mailing list
Dutch op lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/dutch 		 	   		  
------------- volgend deel ------------
Een HTML-bijlage is gescrubt...
URL: <http://lists.osgeo.org/pipermail/dutch/attachments/20150414/31b69cc8/attachment.html>


Meer informatie over de Dutch maillijst