[Dutch] Leaflet tile URL probleem

Ron Wardenier GeoConsult ron op rwgc.nl
Di Apr 14 11:55:38 PDT 2015


Hallo OSGeo.nl <http://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 <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.jpe <http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/12/2402.0000000000005/2602.jpe>g
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 <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' <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 <http://www.cbs.nl/>">CBS</a>, <a
href="http://www.kadaster.nl <http://www.kadaster.nl/>">Kadaster</a>, <a
href="http://openstreetmap.org <http://openstreetmap.org/>">OpenStreetMap</a><span
class="printhide">-auteurs (<a
href="http://creativecommons.org/licenses/by-sa/2.0/ <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' <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 <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
------------- volgend deel ------------
Een HTML-bijlage is gescrubt...
URL: <http://lists.osgeo.org/pipermail/dutch/attachments/20150414/9d5d8f55/attachment.html>


Meer informatie over de Dutch maillijst