[英]Calculating population density in Mapbox.js
我一直在尝试根据人口密度对图层进行着色,但遇到了一些问题。 我在图层中有两个属性,即Area(“ ALAND”)和人口(“ B01001_001”),我想用它们来计算人口密度,然后用它来填充。这是我的尝试:
map.setPaintProperty('fullcitylayer', 'fill-color', ['interpolate', interpolation: ['linear'], input:['/', ['get', 'B19001_017'], ['/',['get', 'ALAND'],1000000]], stop_input1: 10, stop_output1: '#00adef', stop_input2: 100, stop_output2: '#212529', stop_input3: 1000, stop_output3: '#ea950b', stop_input4: 5000, stop_output4: '#e94e34'] )
由于某种原因,当我尝试运行此语法时,我一直收到语法错误。 知道为什么吗?
从github问题复制过来,我回答了你的问题:
为了使表达式起作用,您仍然必须编写有效的JavaScript😉
您的问题是使用['interpolation', interpolation: ['linear'], ...]
。 您不能像这样“标记”数组项,它们的用途已经由数组/表达式中的位置确定。 表达式始终采用[<operator>, <arg1>, <arg2>, <argN>, ...]
。 因此,您的表情应如下所示:
[
'interpolate',
['linear'],
['/', ['get', 'B19001_017'], ['/', ['get', 'ALAND'], 1000000]],
10,
'#00adef',
100,
'#212529',
1000,
'#ea950b',
5000,
'#e94e34'
];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.