2017-03-15 8 views
0

Mapbox GL JSのプロパティ関数で複数のプロパティを使用する方法はありますか? CartoCSSでは、私は次のような何かをするだろう:Mapbox GL JSでMapbox GL JSのコンポジットプロパティ関数JS

.states { 
    [name="California"] { 
     "polygon-fill": "blue" 
    }, 
    [name_abbrev="WA"] { 
     "polygon-fill": "green" 
    } 
} 

私が財産name - または - name_abbrev、しかし、2つの特性のない組み合わせのいずれかに基づいてfill-colorのスタイルを設定できるようです。例えば:これは最初のオーバーライド二fill-colorになり、そして

'fill-color': { 
    'property': 'name', 
    'type': 'categorical', 
    'stops': [ 
     ['California', 'blue'] 
    ] 
}, 
'fill-color': { 
    'property': 'name_abbrev', 
    'type': 'categorical', 
    'stops': [ 
     ['WA', 'green'] 
    ] 
} 

カリフォルニア州は、単に緑のだろう。

答えて

0

Mapbox GLは、1つのレイヤー内の複数のプロパティに基づいてスタイリングをサポートしていません。 1つのレイヤーにスタイルを設定したいプロパティを組み合わせたり、2つのレイヤーを作成したり、フィルタを使用してフィーチャを分離したりすることができます。フォールバックプロパティを使用する:

{ 
    ... layer metadata (id, source, source-layer, type, etc) ... 
    'filter': ['has', 'name'], 
    'paint': { 
     'fill-color': { 
      'property': 'name', 
      'type': 'categorical', 
      'stops': [ 
       ['California', 'blue'] 
      ] 
     } 
    } 
}, 
{ 
    ... layer metadata (id, source, source-layer, type, etc) ... 
    'filter': ['!has', 'name'], 
    'paint': { 
     'fill-color': { 
      'property': 'name_abbrev', 
      'type': 'categorical', 
      'stops': [ 
       ['WA', 'green'] 
      ] 
     } 
    } 
} 
関連する問題