2017-10-06 2 views
0

現在、ストップを手動で設定していますが、GeoJSONファイルの範囲が異なり、毎回ストップ値を設定する必要があります。 map.addLayer関数内でプロパティの最小値と最大値を使用できますか?それを値の範囲に分割しますか? 現在、GeoJSONを解析して最小値と最大値を取得しています。マップボックスがこの機能を提供しているかどうかはわかりません。MAPBOX-データドリブンスタイリングでGeoJSONのフィーチャの最小値と最大値を使用する方法

map.addLayer({ 
    'id': 'heatmap', 
    'type': 'circle', 
    'source': "sourceGeoJSON", 
    paint: { 
     'circle-color': { 
     property:'pH', 
     stops: [ 
     [6,'#6879FB'], 
     [8,'#68FB75'], 
     [9, '#F94B18'], 
     [10, '#F92918'] 
     ]; 
    }, 
    'circle-opacity': 1.0 
    } 
}); 

答えて

0

Mapbox-GL-JSは自動ビニング機能を提供していません。それは範囲にわたり線形ビンを作成するために非常に簡単です:

phvals = sourceGeoJSON.features.map(f => f.properties.pH); 
min = Math.min(...phvals); 
max = Math.max(...phvals); 
range = max-min; 

map.addLayer({ 
    'id': 'heatmap', 
    'type': 'circle', 
    'source': "sourceGeoJSON", 
    paint: { 
     'circle-color': { 
     property:'pH', 
     stops: [ 
     [min,'#6879FB'], 
     [min + 1/3*range,'#68FB75'], 
     [min + 2/3*range, '#F94B18'], 
     [max, '#F92918'] 
     ]; 
    }, 
    'circle-opacity': 1.0 
    } 
}); 

さらに移動するには、単純な統計パッケージにckmeans機能のようなものを使用することを検討してください。

関連する問題