繁体   English   中英

在Mapbox.js中计算人口密度

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM