это мой первый пост, поэтому, если я сделал что-то неправильно, заранее прошу прощения, так как я очень новичок.
Я работаю с geo JSON Leaflet и пытаюсь сделать следующее:
- Когда пользователи вводят страну в поле поиска, карту необходимо масштабировать до этой страны
- Область этой страны должна изменить цвет. Если выполняется другой поиск, страна предыдущего поиска меняет цвет на исходный.
Мне удалось выполнить первую задачу, но я не могу выполнить вторую. Вот код, который я написал:
//geoJSON object including all countries
let geoObject = {
"type": "FeatureCollection",
"name": "borders",
"features": [{
"type": "Feature",
"properties": {
"FIPS": "AC",
"ISO2": "AG",
"ISO3": "ATG",
"UN": 28,
"NAME": "Antigua and Barbuda",
"AREA": 44,
"POP2005": 83039,
"REGION": 19,
"SUBREGION": 29,
"LON": -61.783,
"LAT": 17.078
},
"geometry": {
"type": "MultiPolygon",
"coordinates": [
[
[
[-61.69, 17.02],
[-61.74, 16.99],
[-61.83, 17.0],
[-61.88, 17.02],
.
.
.
}
function countryStyle(country) {
//country is the input from search box converted to ISOA2
for (var i = 0; i <= 245; i++) {
if (Object.values(geoObject.features[i].properties).includes(country)) {
console.log('exists' + country);
}
}
function style(feature) {
console.log(feature);
return {
fillColor: "red",
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7
};
}
L.geoJson(geoObject, {
style: style
}).addTo(mymap);
}
Очевидно, каждый поиск приводит к тому, что вся карта меняет цвет на красный. Кто-нибудь может объяснить, что я делаю не так?
Спасибо!