Я использую листовки и геойзоны некоторых регионов, чтобы показать связанные вычисления по этим регионам на карте по цвету. Я вычисляю каждое значение области с помощью функции, которая называется calculation()
. Выход этой функции является простым поплавком. Вот что я сделал:настройка стиля каждой функции листовки
- Я использую
onEachFeature
для загрузки каждой функции. - Затем я использую Ajax для выполнения некоторых расчетов. (Я использую JQuery здесь)
- Я сохраняю результаты вычислений в массиве.
- Затем я использую
.done
, чтобы задать стиль каждой функции (которая является областью), чтобы установить ее цвет.
Вот мой код:
var region=L.geoJSON(qom, {onEachFeature:
function (feature, layer) {
$.ajax({ //send the ajax with following parameter
type:"POST",
timeout: 2000,
cache:false,
url: "../tool/calculation.php", //the php we are sending info too and has got
data: { }, // multiple data sent using ajax
success: function (data) { //now we have data
$.each(data, function(calculation_related_key,calculation_related_content) {
region_array_calculation.push([the_region_id, calculation_related_content['result']]);
});
}
}).done(function(){
L.geoJSON(qom, {style : set_feature_style(feature, region_array_calculation)}).addTo(mymap);
});
}
});
Вот настройки кода стиля:
function set_feature_style (feature, calculation_array) {
for (i=0;i<calculation_array.length;i++) {
if (calculation_array[i][0]==feature.properties.region_id) {
return {
weight: 0.5,
opacity: 0.3,
color: 'Black',
dashArray: '3',
fillOpacity: 0.2,
fillColor:get_feature_color(calculation_array[i][1])
}
}
}
}
Здесь я устанавливаю цвет
function get_feature_color(input) {
var x= input;
switch (true) {
case (x>=0 && x<=0.5):
return 'blue';
break;
case (x>0.5 && x<=1):
return 'green';
}
}
Но, к сожалению, результат я получаю все в синем. Однако расчет для некоторых регионов составляет более 0,5.
Спасибо за ваш ответ. На самом деле, я использую буклет, а qom - это geojson, который будет загружен. Мне нужно использовать стиль, который находится в листовке api. Проблема в том, что когда я запускаю вышеуказанный код, стиль не влияет только на каждую функцию. Все цвета региона меняются. Я не знаю, что здесь не так. – keloniton