【发布时间】:2013-02-08 16:50:58
【问题描述】:
我正在使用 Leaflet 框架处理等值线图。我想有几个单独的层几年,所以我写了这段代码(注意只有'style2002'和'style2010'的名字应该被传递,没有任何参数):
population2002 = L.geoJson(regionData, {
style: style2002
});
population2010 = L.geoJson(regionData, {
style: style2010
});
,根据属性(名称是前缀“Pop_”加上年份)为我的矢量多边形着色的“样式”函数是:
function style2002(feature)
{
return {
fillColor: getColor(feature.properties.Pop_2002),
weight: 2,
opacity: 1,
color: 'white',
dashArray: '',
fillOpacity: 0.7
};
}
function style2010(feature)
{
return {
fillColor: getColor(feature.properties.Pop_2010),
weight: 2,
opacity: 1,
color: 'white',
dashArray: '',
fillOpacity: 0.7
};
};
您可以猜到,我想为我需要的每一年使用一个“样式”函数而不是单独的函数。比如:
function styleByYear(feature, year)
{
var property = 'feature.properties.Pop_';
property += year;
return {
fillColor: getColor(property),
weight: 2,
opacity: 1,
color: 'white',
dashArray: '',
fillOpacity: 0.7
};
}
但是如何将第二个参数传递给样式函数呢?在 L.geoJson 构造函数中,我只写了函数的名称,没有任何参数,正如您从第一段代码中看到的那样! 我该怎么办? 还有一个问题:如何将第一个参数('feature')传递给层构造函数..?
【问题讨论】:
标签: javascript oop web-applications gis leaflet