I have a GeoJSON vector file with some polygons representing country borders. I have added a property called "processed" to each country which defaults to 0 (i.e. false). I want to create a function that changes this value to 1 (true) when i select a country on OpenLayers map and click a button. And i want to overwrite old data with this edited data or make new data exportable to server-side.
Vector data source looks like this: https://raw.githubusercontent.com/mleontenko/openlayers-edit-properties/master/borders1.geojson
Full html file is here: https://github.com/mleontenko/openlayers-edit-properties/blob/master/map1.html
Script code (commented missing parts) looks like this:
var vectorSource = new ol.source.Vector({
url: 'https://raw.githubusercontent.com/mleontenko/openlayers-edit-properties/master/borders1.geojson',
format: new ol.format.GeoJSON()
});
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: vectorSource
})
],
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([4.8, 47.75]),
zoom: 5
})
});
// a normal select interaction to handle click
var select = new ol.interaction.Select();
map.addInteraction(select);
//button that changes 0 to 1
var PushButton = document.getElementById('store-data');
PushButton.addEventListener('click', function(){
if(select){
// missing code that changes "processed" value from 0 to 1
}else {
window.alert("You have not selected anything");
}
});
So, how can i change value of "processed" property from 0 to 1 and store changes to GeoJSON to "update" the map?