Javascript 传单.js choropleth示例-基于单独的数据文件更新颜色
这将基于geoJSON文件密度值指定多边形颜色Javascript 传单.js choropleth示例-基于单独的数据文件更新颜色,javascript,leaflet,Javascript,Leaflet,这将基于geoJSON文件密度值指定多边形颜色 function getColor(d) { return d > 1000 ? '#800026' : d > 500 ? '#BD0026' : d > 200 ? '#E31A1C' : d > 100 ? '#FC4E2A' : d > 50 ? '#FD8D3C' : d >
function getColor(d) {
return d > 1000 ? '#800026' :
d > 500 ? '#BD0026' :
d > 200 ? '#E31A1C' :
d > 100 ? '#FC4E2A' :
d > 50 ? '#FD8D3C' :
d > 20 ? '#FEB24C' :
d > 10 ? '#FED976' :
'#FFEDA0';
}
这将在函数stylefeature中更新每个多边形的颜色
这种新样式将添加到地图中
L.geoJson(statesData, {style: style}).addTo(map);
然而,在我的情况下,我的示例statesData geoJSON文件的等效文件中没有密度值
相反,我将密度值放在一个单独的数据文件中,用于创建新阵列。此数组具有状态名称值和密度值
var my_array = [
['name': 'alabama', 'density': 59],
['name': 'alaska', 'density': 30],
etc
]
问题是如何将geoJSON文件和单独的数据文件中的名称字符串值关联起来,以便将关联的密度值转换为函数stylefeature以更改多边形颜色
这可能不一定是一个传单.js问题,但可能是一个一般的Javascript“如何”问题
到目前为止,我可以循环使用我的_数组,并使用名称和颜色值创建一个新数组
color_array = []
for(var i=0; i < my_array.length; i++) {
color_array.push([my_array[i][0] + ', ' + getColor(my_array[i][1])]);
}
现在,如何将这个新的颜色数组与函数stylefeature一起使用,以便为每个名称正确设置颜色
在SQL中,我将对名称进行连接,并将名称和相关的密度值提供给getColor函数,输出为名称、密度和颜色
如何在javascript中实现这一点?除非出于性能原因需要缓存颜色数组,否则您可能可以跳过前面创建颜色数组的步骤 只要这样做: 变量my_数组=[{ “姓名”:“阿拉巴马州”, “密度”:59 }, { '姓名':'阿拉斯加', “密度”:30 }]; 函数getColordensity{ 如果密度>30,则返回“蓝色”; 返回“红色”; } 函数getStateColorstateName{ 颜色变异; 对于变量i=0;i
color_array = []
for(var i=0; i < my_array.length; i++) {
color_array.push([my_array[i][0] + ', ' + getColor(my_array[i][1])]);
}
color_array = [
['alabama', '#FFEDA0'],
['alaska', '#FEB24C'],
etc
]