<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Even geleden, maar bleef knagen:<br><br>OGC-services aan de praat krijgen met de nieuwste versies van:<br><br>- Leaflet.js (0.7.5)<br>- Proj4.js (2.3.10)<br><br>Bart heeft een versie obv een oudere Leaflet en Proj <a href="http://bartvde.github.io/PDOK-Leaflet/." target="_blank">http://bartvde.github.io/PDOK-Leaflet/.</a> Het is nu gelukt om TMS en WFS in RD te combineren met een aangepaste versie van "proj4leaflet.js". Deze is nu te vinden op:<br><br><a href="https://github.com/emacgillavry/Proj4Leaflet/tree/master/src" target="_blank">https://github.com/emacgillavry/Proj4Leaflet/tree/master/src</a><br><br>Ontvang graag input van anderen:<br>- werkt het voor jullie?<br>- kan het eleganter?<br>- breekt dit andere projecties?<br><br>Dan kan er pull-request naar Kartena, zodat iedereen Leaflet kan gebruiken icm OGC-services in RD.<br><br>Groet,<br><br>Edward<br><br><br><div>> From: ron@rwgc.nl<br>> Date: Wed, 15 Apr 2015 21:51:31 +0200<br>> To: dutch@lists.osgeo.org<br>> Subject: Re: [Dutch] Dutch Verzamelmail, Volume 52, Nummer 5<br>> <br>> Hallo Gertjan, Edward en Steven,<br>> <br>> Bedankt voor de hulp. Het lek is wel boven geloof ik als je maar de juiste versies gebruikt en de beschreven patch. Ik ga dat binnenkort proberen. <br>> <br>> Groeten,<br>> Ron<br>> <br>> > Op 15 apr. 2015 om 21:11 heeft dutch-request@lists.osgeo.org het volgende geschreven:<br>> > <br>> > Stuur Dutch maillijst aanmeldingen naar<br>> >    dutch@lists.osgeo.org<br>> > <br>> > Om u aan of af te melden via het web, bezoek<br>> >    http://lists.osgeo.org/mailman/listinfo/dutch<br>> > of stuur een e-mail bericht met als onderwerp of tekst het woord<br>> > 'help' naar<br>> >    dutch-request@lists.osgeo.org<br>> > <br>> > U kunt de persoon die de lijst beheert bereiken op<br>> >    dutch-owner@lists.osgeo.org<br>> > <br>> > Als u berichten beantwoordt, gelieve meer specifieke informatie in de<br>> > onderwerp-regel op te nemen dan alleen maar "Re: Inhoud van Dutch<br>> > verzamelmail..."<br>> > <br>> > <br>> > Onderwerpen van vandaag:<br>> > <br>> >   1. Re: Leaflet tile URL probleem (Edward Mac Gillavry)<br>> > <br>> > <br>> > ----------------------------------------------------------------------<br>> > <br>> > Message: 1<br>> > Date: Wed, 15 Apr 2015 21:06:40 +0200<br>> > From: Edward Mac Gillavry <emacgillavry@hotmail.com><br>> > To: "Steven M. Ottens" <steven@minst.net>, "dutch@lists.osgeo.org"<br>> >    <dutch@lists.osgeo.org><br>> > Subject: Re: [Dutch] Leaflet tile URL probleem<br>> > Message-ID: <DUB115-W706633F46BE8162CFB0D68D7E50@phx.gbl><br>> > Content-Type: text/plain; charset="iso-8859-1"<br>> > <br>> > Dankjewel voor je reactie! Inderdaad de bbox teruggezet naar de <br>> > coördinaten die Bart had opgegeven. Vervolgens heb ik de ene deling <br>> > omgezet in een vermenigvuldiging. Vervolgens kreeg ik de juiste paden, <br>> > zonder afrondingsfouten! Daarna een upgrade geprobeerd naar de nieuwste versie van de         Proj4Leaflet geprobeerd samen met een verse download van proj4js. Dat bleek een brug te ver voor nu. Kortom: voorbeeld van Bart nemen en zoals Steven aangeeft de deling in een vermenigvuldiging veranderen werkt!<br>> > <br>> > Date: Wed, 15 Apr 2015 10:40:08 +0200<br>> > From: steven@minst.net<br>> > To: dutch@lists.osgeo.org<br>> > Subject: Re: [Dutch] Leaflet tile URL probleem<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >    Oh sorry, ik had de mail niet helemaal<br>> >      goed gelezen, het is niet het probleem dat op niveau 13 in ene de<br>> >      verkeerde tegels worden gevraagd, het is een afrondingsprobleem.<br>> > <br>> > <br>> > <br>> >      Ik haal met leaflet gewoon tegeltjes op niveau 14:<br>> > <br>> > http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/14/7571/8636.jpeg<br>> > <br>> > <br>> > <br>> >      Leaflet heeft een probleem met afronden (of eigenlijk browsers<br>> >      hebben een probleem met afronden ze onthouden maar n cijfers<br>> >      achter de komma) Leaflet berekent alles in WGS84, of in ieder<br>> >      geval alles wat niet spherical mercator is, en dan krijg je last<br>> >      van de afrondingsbugs van browsers: 21 cm in Nederland is<br>> >      0.000zoveel graden in WGS84: veel relevante cijfers achter de<br>> >      komma.<br>> > <br>> > <br>> > <br>> >      Daarnaast gaat Leaflet uit van het OSM tileschema en TMS is<br>> >      precies omgekeerd dus er is ergens een 'max - tegel' functie die<br>> >      zorgt dat als een tegeltje precies op de de boundingbox valt hij<br>> >      bij de verkeerde rij/kolom wordt getoond, vandaar dat Bart met<br>> >      -285401.92,22598.08,595401.9199999999,903401.9199999999 is<br>> >      gekomen, dan val je precies niet op het randje.<br>> > <br>> > <br>> > <br>> >      Ik heb mijn werkende Leaflet versie hier gezet:<br>> >      http://research.geodan.nl/sites/pico-pm/#14/52.3554/4.8997<br>> > <br>> >      De luchtfoto komt van PDOK en je kan zien dat die werkt. Ik<br>> >      gebruik een iets oudere versie van Proj4Leaflet met mijn eigen<br>> >      patch, dus misschien dat daar het verschil zit?<br>> > <br>> > <br>> > <br>> >      groet,<br>> > <br>> >      Steven<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >      On 15/04/15 09:59, Steven M. Ottens wrote:<br>> > <br>> > <br>> > <br>> > <br>> >      Hoi Allemaal,<br>> > <br>> > <br>> > <br>> >        Ik ben er ook een keer tegenaan gelopen en de versie van<br>> >        Proj4Leaflet die ik gebruikte had een bug in de functie<br>> >        _calculateSizes() De nieuwste versie van proj4leaflet lijkt de<br>> >        bug niet te hebben, maar die heb ik verder niet getest.<br>> > <br>> > <br>> > <br>> > <br>> > <br>> >        Origineel wordt de grootte van de projectbounds horizontaal<br>> >        gedeeld door de schaal (bold) en verticaal vermenigvuldigd met<br>> >        de schaal (italic):<br>> > <br>> > <br>> > <br>> >            _calculateSizes: function() {<br>> > <br>> >                    var sizes = [],<br>> > <br>> >                        crsBounds = this.projectedBounds,<br>> > <br>> >                        projectedTileSize,<br>> > <br>> >                        upperY,<br>> > <br>> >                        i;<br>> > <br>> >                    for (i = this._scales.length - 1; i >= 0; i--) {<br>> > <br>> >                        if (this._scales[i]) {<br>> > <br>> >                            projectedTileSize = this.options.tileSize /<br>> >        this._scales[i];<br>> > <br>> >                            upperY = crsBounds[1] +<br>> >        Math.ceil((crsBounds[3] - crsBounds[1]) /<br>> > <br>> >                                                    projectedTileSize) *<br>> >        projectedTileSize;<br>> > <br>> >                            sizes[i] = L.point((crsBounds[2] -<br>> >          crsBounds[0]) / this._scales[i],<br>> > <br>> >                                (upperY - crsBounds[1]) *<br>> >          this._scales[i]);<br>> > <br>> >                        }<br>> > <br>> >                    }<br>> > <br>> > <br>> > <br>> >                    return sizes;<br>> > <br>> >                },<br>> > <br>> > <br>> > <br>> >        Correct is beide vermenigvuldigen met de schaal:<br>> > <br>> >            _calculateSizes: function() {<br>> > <br>> >                    var sizes = [],<br>> > <br>> >                        crsBounds = this.projectedBounds,<br>> > <br>> >                        projectedTileSize,<br>> > <br>> >                        upperY,<br>> > <br>> >                        i;<br>> > <br>> >                    for (i = this._scales.length - 1; i >= 0; i--) {<br>> > <br>> >                        if (this._scales[i]) {<br>> > <br>> >                            projectedTileSize = this.options.tileSize /<br>> >        this._scales[i];<br>> > <br>> >                            upperY = crsBounds[1] +<br>> >        Math.ceil((crsBounds[3] - crsBounds[1]) /<br>> > <br>> >                                                    projectedTileSize) *<br>> >        projectedTileSize;<br>> > <br>> >                            sizes[i] = L.point((crsBounds[2] -<br>> >        crsBounds[0]) * this._scales[i],<br>> > <br>> >                                (upperY - crsBounds[1]) *<br>> >        this._scales[i]);<br>> > <br>> >                        }<br>> > <br>> >                    }<br>> > <br>> > <br>> > <br>> >                    return sizes;<br>> > <br>> >                },<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >        On 14/04/15 22:44, Edward Mac Gillavry wrote:<br>> > <br>> > <br>> > <br>> > <br>> >        Zet ik trouwens de maxZoom op 16 voor de<br>> >          referentiekaartlaag, dan krijg ik ook fracties in de URL's<br>> >          naar bijvoorbeeld de BRT-Achtergrondkaart op zoomniveaus 15 en<br>> >          16. Het is dus niet specifiek voor de luchtfoto's maar wel op<br>> >          een ander zoomniveau. Hopelijk sluiten we zo steeds meer uit.<br>> > <br>> > <br>> > <br>> >          Groet,<br>> > <br>> > <br>> > <br>> >          Edward<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >            From: emacgillavry@hotmail.com<br>> > <br>> >            To: ron@rwgc.nl;<br>> >            dutch@lists.osgeo.org<br>> > <br>> >            Date: Tue, 14 Apr 2015 22:30:51 +0200<br>> > <br>> >            Subject: Re: [Dutch] Leaflet tile URL probleem<br>> > <br>> > <br>> > <br>> > <br>> >            Ha Ron,<br>> > <br>> > <br>> > <br>> >              Nieuwsgierig geworden heb ik even een poging gewaagd.<br>> >              Stuitte op dezelfde issues en constateerde, dat ik normaal<br>> >              gesproken een andere bbox gebruik voor het tile grid,<br>> >              namelijk <br>> > <br>> > <br>> > <br>> >              -285401.92,22598.08,595401.91,903401.92 (genoemd in de<br>> >              Geonovum tiling richtlijn [1], pagina 6)<br>> > <br>> > <br>> > <br>> >              ipv<br>> > <br>> > <br>> > <br>> >              -285401.92,22598.08,595401.9199999999,903401.9199999999<br>> > <br>> > <br>> > <br>> >              Dit maakte echter geen verschil. Ook zag ik, dat de<br>> >              resolutions array nog extra entries nodig heeft voor de<br>> >              diepste zoomniveaus:<br>> > <br>> > <br>> > <br>> >              resolutions: [3440.640, 1720.320, 860.160, 430.080,<br>> >              215.040, 107.520, 53.760, 26.880, 13.440, 6.720, 3.360,<br>> >              1.680, 0.840, 0.420, 0.21, 0.105,  0.0575]<br>> > <br>> > <br>> > <br>> >              (genoemd in de Geonovum tiling richtlijn [1], in de tabel<br>> >              op pagina 13)<br>> > <br>> > <br>> > <br>> >              Dit maakte echter nog steeds geen verschil ;-(. Toen keek<br>> >              ik ook nog even naar de PDOK-Kaartwizard [2]. Ook hier<br>> >              gebeurt het, dat je bij het gebruik van de lufo op de<br>> >              diepste zoomniveaus fracties krijgt in de URL's die de<br>> >              tegels ophalen... Kortom: het lijkt niet een specifiek<br>> >              Leaflet issue te zijn. Maar waar ligt het dan wel aan?<br>> > <br>> > <br>> > <br>> >              Groetjes,<br>> > <br>> > <br>> > <br>> >              Edward<br>> > <br>> > <br>> > <br>> >              [1]<br>> >              http://www.geonovum.nl/sites/default/files/nederlandse_richtlijn_tiling_-_versie_1.1.pdf<br>> > <br>> >              [2] http://kaart.pdok.nl/<br>> > <br>> > <br>> > <br>> > <br>> >                From: ron@rwgc.nl<br>> > <br>> >                Date: Tue, 14 Apr 2015 20:55:38 +0200<br>> > <br>> >                To: dutch@lists.osgeo.org<br>> > <br>> >                Subject: [Dutch] Leaflet tile URL probleem<br>> > <br>> > <br>> > <br>> >                Hallo OSGeo.nl-ers,<br>> > <br>> > <br>> > <br>> >                Bij het maken van een<br>> >                  heel basic Leaflet kaart loop ik tegen een probleem<br>> >                  aan met de tile URL en hopelijk weet iemand raad.<br>> > <br>> > <br>> > <br>> >                  Ik heb het voorbeeld met de PDOK BRT TMS in Leaflet<br>> >                  die door Bart van den Eijnden is gemaakt genomen als<br>> >                  basis (zie https://github.com/bartvde/PDOK-Leaflet).<br>> > <br>> > <br>> > <br>> >                  Daar heb ik de open luchtfoto TMS aan toegevoegd. Dat<br>> >                  werkt prima maar bij zoom level 12 en hoger gaat het<br>> >                  mis. Dan treedt er een afrondingsfout op in de tile<br>> >                  URL die er voor zorgt dat de luchtfoto op die levels<br>> >                  niet getoond wordt.<br>> > <br>> > <br>> > <br>> >                  Leaflet vraagt dan:<br>> > <br>> >                  http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/12/2402.0000000000005/2602.jpeg<br>> > <br>> >                  en dat levert niets op want de gewenste tile is:<br>> > <br>> >                  http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/12/2402/2602.jpeg<br>> > <br>> > <br>> > <br>> >                  Het vreemde is ook dat dit niet optreedt bij de BRT<br>> >                  service.<br>> > <br>> > <br>> > <br>> >                  Ik zou zeggen, een simpele round functie ergens<br>> >                  volstaat maar waar?<br>> > <br>> > <br>> > <br>> >                  NB dit is de config in script.js :<br>> > <br>> > <br>> > <br>> >                  var RD = new L.Proj.CRS.TMS(<br>> > <br>> >                      'EPSG:28992',<br>> > <br>> >                      '+proj=sterea +lat_0=52.15616055555555<br>> >                  +lon_0=5.38763888888889<br>> > <br>> >                  +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel<br>> >                  +units=m<br>> > <br>> > +towgs84=565.2369,50.0087,465.658,-0.406857330322398,0.350732676542563,-1.8703473836068,4.0812<br>> > <br>> >                  +no_defs',<br>> > <br>> > <br>> >                    [-285401.92,22598.08,595401.9199999999,903401.9199999999],<br>> >                  {<br>> > <br>> >                      resolutions: [3440.640, 1720.320, 860.160,<br>> >                  430.080, 215.040,<br>> > <br>> >                  107.520, 53.760, 26.880, 13.440, 6.720, 3.360, 1.680,<br>> >                  0.840, 0.420]<br>> > <br>> >                  });<br>> > <br>> > <br>> > <br>> >                  var map = new L.Map('map', {<br>> > <br>> >                    continuousWorld: true,<br>> > <br>> >                    crs: RD,<br>> > <br>> >                    layers: [<br>> > <br>> >                      new<br>> > <br>> >                  L.TileLayer('http://geodata.nationaalgeoregister.nl/tms/1.0.0/brtachtergrondkaartpastel@EPSG:28992@png8/{z}/{x}/{y}.png',<br>> > <br>> >                  {<br>> > <br>> >                          tms: true,<br>> > <br>> >                          minZoom: 3,<br>> > <br>> >                          maxZoom: 14,<br>> > <br>> >                          attribution: 'Kaartgegevens: © <a<br>> > <br>> >                  href="http://www.cbs.nl">CBS</a>,<br>> > <br>> >                  <a<br>> > <br>> >                  href="http://www.kadaster.nl">Kadaster</a>,<br>> > <br>> >                  <a<br>> > <br>> >                  href="http://openstreetmap.org">OpenStreetMap</a><span<br>> > <br>> >                  class="printhide">-auteurs (<a<br>> > <br>> >                  href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>).</span>',<br>> > <br>> >                          continuousWorld: true,<br>> > <br>> >                          opacity: 0.5<br>> > <br>> >                      }),<br>> > <br>> >                      new<br>> > <br>> >                  L.TileLayer('http://geodata1.nationaalgeoregister.nl/luchtfoto/tms/1.0.0/luchtfoto/EPSG28992/{z}/{x}/{y}.jpeg',<br>> > <br>> >                  {<br>> > <br>> >                          tms: true,<br>> > <br>> >                          minZoom: 3,<br>> > <br>> >                          maxZoom: 14,<br>> > <br>> >                          attribution: 'Kaartgegevens: © <a<br>> > <br>> >                  href="http://www.kadaster.nl">Kadaster</a>.</span>',<br>> > <br>> >                          continuousWorld: false,<br>> > <br>> >                          opacity: 0.5,<br>> > <br>> >                          maxNativeZoom: 14 // The map will use zoom<br>> >                  level 14 (max<br>> > <br>> >                  luchtfoto zoom level) tiles for all zoom levels beyond<br>> >                  this level<br>> > <br>> >                      })<br>> > <br>> >                    ],<br>> > <br>> >                    //center: new L.LatLng(52, 5.3),<br>> > <br>> >                    center: new L.LatLng(53.223606, 6.532480),<br>> > <br>> >                    zoom: 9,<br>> > <br>> >                    minZoom: 3,<br>> > <br>> >                    maxZoom: 14,<br>> > <br>> >                  });<br>> > <br>> >                  // test RD coordinates<br>> > <br>> >                  map.on('click', function(e) {<br>> > <br>> >                      if (window.console) {<br>> > <br>> >                          var point = RD.projection.project(e.latlng);<br>> > <br>> >                          console.log("RD X: " + point.x + ", Y: " +<br>> >                  point.y);<br>> > <br>> >                      }<br>> > <br>> >                  });<br>> > <br>> > <br>> > <br>> >                  // functie om huidig zoom level in het kaartbeeld te<br>> >                  tonen<br>> > <br>> >                  map.on('zoomend', function(){<br>> > <br>> >                      document.getElementById('zoom-level').innerHTML =<br>> >                  'Zoom Level: ' +<br>> > <br>> >                  map.getZoom();<br>> > <br>> >                  });<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >                  Bedankt en groeten,<br>> > <br>> >                  Ron Wardenier<br>> > <br>> > <br>> >                _______________________________________________ Dutch<br>> >                mailing list Dutch@lists.osgeo.org<br>> >                http://lists.osgeo.org/mailman/listinfo/dutch<br>> > <br>> > <br>> > <br>> >            _______________________________________________ Dutch<br>> >            mailing list Dutch@lists.osgeo.org<br>> >            http://lists.osgeo.org/mailman/listinfo/dutch<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >        _______________________________________________<br>> > Dutch mailing list<br>> > Dutch@lists.osgeo.org<br>> > http://lists.osgeo.org/mailman/listinfo/dutch<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> >      _______________________________________________<br>> > Dutch mailing list<br>> > Dutch@lists.osgeo.org<br>> > http://lists.osgeo.org/mailman/listinfo/dutch<br>> > <br>> > <br>> > <br>> > <br>> > <br>> > <br>> > _______________________________________________<br>> > Dutch mailing list<br>> > Dutch@lists.osgeo.org<br>> > http://lists.osgeo.org/mailman/listinfo/dutch                         <br>> > ------------- volgend deel ------------<br>> > Een HTML-bijlage is gescrubt...<br>> > URL: <http://lists.osgeo.org/pipermail/dutch/attachments/20150415/10fd659d/attachment.html><br>> > <br>> > ------------------------------<br>> > <br>> > _______________________________________________<br>> > Dutch mailing list<br>> > Dutch@lists.osgeo.org<br>> > http://lists.osgeo.org/mailman/listinfo/dutch<br>> > <br>> > Eind van Dutch Verzamelmail, Volume 52, Nummer 5<br>> > ************************************************<br>> _______________________________________________<br>> Dutch mailing list<br>> Dutch@lists.osgeo.org<br>> http://lists.osgeo.org/mailman/listinfo/dutch<br></div>                                       </div></body>
</html>