2017-10-06 109 views
0

目前,我手动设置停靠点,但是我的GeoJSON文件有不同的范围,每次都必须设置停靠点值。 是否可以使用map.addLayer函数中属性的最小值和最大值?然后将其分成一系列值? 我目前正在解析GeoJSON以获取最小值和最大值,我不确定mapbox是否提供了此功能。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功能。

相关问题