|
// Definitie Rijksdriehoekstelsel (EPSG:28992) |
|
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, 0.210, 0.105, 0.0525]}); |
|
|
|
var map = new L.Map('map-canvas', { |
|
crs: RD |
|
}); |
|
|
|
map.attributionControl.setPrefix(''); |
|
|
|
// Gebruik BRT-Achtergrondkaart van PDOK: |
|
|
|
new L.TileLayer('http://geodata.nationaalgeoregister.nl/tms/1.0.0/brtachtergrondkaart/{z}/{x}/{y}.png', { |
|
tms: true, |
|
minZoom: 3, |
|
maxZoom: 16, |
|
attribution: 'Kaartgegevens: <a href="http://www.kadaster.nl">Kadaster</a>', |
|
errorTileUrl: 'http://www.webmapper.net/theme/img/missing-tile.png', // plaatje als tegels niet worden gevonden... |
|
}).addTo(map); |
|
|
|
// WMS van bevolkingsdichtheid van CBS |
|
|
|
var overlay = new L.NonTiledLayer.WMS('http://geodata.nationaalgeoregister.nl/wijkenbuurten2013/ows', { |
|
zIndex: 0, |
|
layers: 'gemeenten2013', |
|
opacity: 0.8, |
|
styles: 'wijkenbuurten_thema_gemeenten_gemeentewijkbuurt_bevolkingsdichtheid_inwoners_per_km2', |
|
format: 'image/png', |
|
transparent: true, |
|
srs: 'EPSG:28992', |
|
attribution: 'gemeentelijke statistieken: <a title="Centraal Bureau voor de Statistiek" href="http://www.cbs.nl/">CBS</a>', |
|
}); |
|
map.addLayer(overlay); |
|
|
|
var geojson = L.geoJson(null, |
|
{ |
|
zIndex: 1, |
|
style: { |
|
color: 'green', |
|
fillColor: 'red', |
|
weight: 2.0, |
|
opacity: 0.6, |
|
fillOpacity: 0.2 |
|
}, |
|
// Zoomfunctionaliteit obv dubbelklik expliciet op de laag! |
|
onEachFeature: function (feature, layer) { |
|
layer.on({ |
|
dblclick: function(e) {map.setView(e.latlng, map.getZoom() + 1);} |
|
}); |
|
} |
|
} |
|
).addTo(map); |
|
|
|
// WFS-endpoint voor de buurt-, wijk- en gemeentekaart 2014 van het CBS: |
|
|
|
var url = 'http://geodata.nationaalgeoregister.nl/wijkenbuurten2014/ows?'; |
|
|
|
// Deze parameters zijn voor alle GeoJSON-requests hetzelfde: |
|
var params = 'service=WFS&version=1.0.0&request=GetFeature&outputFormat=application/json&srsName=EPSG:4326&'; |
|
|
|
// Deze parameters zijn per GeoJSON-request aan te passen |
|
// Geef de buurtenkaart 2014: |
|
params += 'typeName=wijkenbuurten2014:cbs_buurten_2014&'; |
|
|
|
// Alleen de velden met de gemeentecode, -naam en de geometrie |
|
params += 'propertyName=gemeentecode,gemeentenaam,geom&'; |
|
|
|
// Alleen de buurten in de gemeente Amsterdam |
|
params += 'cql_filter=gemeentenaam \= \'Amsterdam\''; |
|
|
|
// Ajax zonder jQuery ;-) |
|
var xhr = new XMLHttpRequest(); |
|
xhr.open('GET', encodeURI(url + params)); |
|
xhr.onload = function() { |
|
if (xhr.status === 200) { |
|
geojson.addData(JSON.parse(xhr.responseText)); |
|
map.fitBounds(geojson.getBounds()); |
|
} |
|
else { |
|
alert('Request failed. Returned status of ' + xhr.status); |
|
} |
|
}; |
|
xhr.send(); |
|
|
|
// Bronvermelding van de WFS: |
|
geojson.getAttribution = function() { |
|
return 'buurtgrenzen <a title="Centraal Bureau voor de Statistiek" href="http://www.cbs.nl/">CBS</a>.'; |
|
} |