是否可以根据数据有条件地为Mapbox Studio中的国家/地区着色?

时间:2015-08-27 19:10:07

标签: mapbox tilemill cartocss

我正在尝试使用任何一个基本Mapbox地图中包含的实际多边形创建一个等值区。

具体来说,我在属性对象中有一个具有数据特定属性的geojson结构,我希望所有国家/地区都有不同的颜色填充,具体取决于特定比例下降的位置。

到目前为止,Map类似乎同时为所有土地着色:

Map { background-color: red; }

我似乎无法做到这一点:

Map { [myVar > 0.4] { background-color: pink; } [myVar <= 0.4] { background-color: green; } }

我尝试使用我自己的GeoJSON文件中的多边形,但它们并不像Mapbox多边形一样干净,即使是我发现的最高分辨率。此外,我希望能够覆盖Mapbox基本样式所具有的标签和其他标记,就在我的cholorpleth之上。

我还试图为#admin[admin_level=2][maritime=0]区域着色,但它们似乎不是多边形,并且会产生如下结果:

admin-2 areas fill fail

提前致谢!

1 个答案:

答案 0 :(得分:3)

假设Tilemill 0.10.1并使用this GeoJSON(导入为countrydata)和此CartoCSS:

#countrydata {
  line-color:#594;
  line-width:0.5;
  polygon-opacity:1;
  polygon-fill:#ae8;
  [2014_pop>=100000] {polygon-fill:@yellow;}
  [2014_pop>=10000000] {polygon-fill:@orange;}
  [2014_pop>=20000000] {polygon-fill:@pink;}
  [2014_pop>=200000000] {polygon-fill:@red;}
}

我明白了:

注意2014_pop属性如何通知颜色。我建议用起始字母命名属性,这样编辑就不会感到困惑。