Ваши функции должны быть всегда преобразованы в проекцию вида:
var vectorSource = new ol.source.Vector({
features: (new ol.format.GeoJSON({
dataProjection: 'EPSG:4326',
featureProjection: map.getView().getProjection(),
})).readFeatures(geojsonObject)
});
(опция defaultDataProjection
была переименована в dataProjection
, так как OpenLayers 5)
В настоящее время ваш вид использует веб-mercator по умолчанию, используемый OSM.
Если вы хотите просмотреть все (функции и OSM) в EPSG: 28992, вам нужно зарегистрировать proj4 и установить проекцию вида
ol.proj.proj4.register(proj4);
var map = new ol.Map({
target: 'map',
view: new ol.View({
center: [0, 0],
zoom: 2,
projection: 'EPSG:28992'
})
});
При использовании geojsonSource
с url
вам не нужно указывать проекцию, данные автоматически преобразуются в проекцию вида.
Если, однако, если данные в вашем гео json находятся в EPSG: 28992 вам понадобится
ol.proj.proj4.register(proj4);
var vectorSource = new ol.source.Vector({
features: (new ol.format.GeoJSON({
dataProjection: 'EPSG:28992',
featureProjection: map.getView().getProjection(),
})).readFeatures(geojsonObject)
});
или
ol.proj.proj4.register(proj4);
var geojsonSource = new ol.source.Vector({
format: new ol.format.GeoJSON({
dataProjection: 'EPSG:28992'
}),
url: 'PS2019_buurt.geo.json'
});