<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>