如何在地图上生成多边形的填充颜色范围?

时间:2017-07-13 13:05:04

标签: javascript jquery leaflet

我正在尝试为地图上的每个多边形指定填充颜色,我正在关注leaflet example for choropleth,该示例根据geojson文件中的适当性生成颜色,例如"density":94.65

// get color depending on population density value
function getColor(d) {
    return d > 1000 ? '#800026' :
            d > 500  ? '#BD0026' :
            d > 200  ? '#E31A1C' :
            d > 100  ? '#FC4E2A' :
            d > 50   ? '#FD8D3C' :
            d > 20   ? '#FEB24C' :
            d > 10   ? '#FED976' :
                        '#FFEDA0';
}

function style(feature) {
    return {
        weight: 2,
        opacity: 1,
        color: 'white',
        dashArray: '3',
        fillOpacity: 0.7,
        fillColor: getColor(feature.properties.density)
    };
}

我没有使用这种适当性,我想做的是使用每个"properties":{"name":"id":

生成填充颜色

这就是我的尝试:

function style(feature) {
    jQuery("svg path").each(function(){
        myColour = '#'+(0x1000000+(Math.random())*0xffffff).toString(16).substr(1,6)
    });
    return {
        weight: 2,
        opacity: 1,
        color: 'white',
        dashArray: '3',
        fillOpacity: 0.7,
        fillColor: myColour
    };
}

var geojson = L.geoJson(statesData, {
    style: style,
}).addTo(map);
  

未捕获的ReferenceError:未定义myColour

1 个答案:

答案 0 :(得分:1)

解决了它:

function style(feature) {
    return {
        weight: 2,
        opacity: 1,
        color: 'white',
        dashArray: '3',
        fillOpacity: 0.7,
        fillColor: '#'+(0x1000000+(Math.random())*0xffffff).toString(16).substr(1,6)
    };
}