2015-08-27 3 views
2

Я пытаюсь создать choropleth, используя фактические многоугольники, включенные в любую из базовых карт Mapbox.Можно ли условно покрасить страны в Mapbox Studio на основе данных?

В частности, у меня есть структура geojson с конкретным свойством данных в объекте properties, и я хотел бы иметь различную цветовую заливку для всех стран, в зависимости от того, где падение в определенном масштабе.

Пока класс 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

Спасибо заранее!

+0

Вы могли бы сделать макет того, что вы хотите, чтобы результат выглядел? – mga

+0

Вы могли бы разместить образец данных GeoJSON? – mga

+0

Да @mga. Я грубо пытается добиться: https://i.gyazo.com/b56f3c1cfc55a313b8b3d5bc14151768.png И я ставлю некоторые примеры GeoJSON здесь: https://gist.github.com/iros/e01aa4431e4d30f42ca8 Обратите внимание на 'MYVAR 'свойство. Это фактически то же самое, за исключением того, что у меня есть несколько из них, и они более значимо названы;). Моя цель - создать растровые плитки, которые я могу использовать с mapbox.js/sheetlet. – iros

ответ

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 собственности. Я бы порекомендовал свойства именования с начальным письмом, чтобы редактор не запутался.

+0

Итак, не совсем. Да, я могу использовать этот GeoJSON для рендеринга в нем многоугольников, но они не столь высокого разрешения: https://i.gyazo.com/ae56ca107a19280c6247ac4177509285.png Я бы в основном попытался воспроизвести макет и данные используя мой собственный GeoJSON. – iros

+0

Это был ответ, который я получил до сих пор: https://twitter.com/chieflybrit/status/636987450460475392 – iros

+1

, когда вы создаете новую карту на TileMill с «данными по умолчанию», вы получаете базу с полигонами с высоким разрешением. вы можете загрузить этот набор данных из [Natural Earth] (http://www.naturalearthdata.com/downloads/10m-cultural-vectors/) и добавить все атрибуты, необходимые для вашей карты. – mga