mapboxgl 地图样式唯一值渲染-match转换成if else代码格式

mapboxgl 地图样式唯一值渲染match转换成if else代码格式

1. mapbox 地图样式唯一值示例如下
const data = [
    "match",
    ["get","name"],
    "怀柔区","#FFFFCC",
    "密云区","#CCFFFF",
    "平谷区","#FFCCCC",
    "通州区","#FFFF99",
    "房山区","#CCCCFF",
    "延庆区","#FFCC99",
    "门头沟区","#CCFF99",
    "大兴区","#66CCFF",
    "顺义区","#99CCFF",
    "海淀区","#CCCCCC",
    "西城区","#CCFFCC",
    "东城区","#CC99CC",
    "朝阳区","#99CC99",
    "石景山区","#CCCC99",
    "昌平区","#FF9969",
    "丰台区","#999999",
    "black"
];
2. 将上面的数据格式转换成javascript中的if else 格式,代码如下:
function generateColorStringFunction(data) {
    let colorString = "function getColor(feature) {\n";
    colorString += "    switch(feature.properties.name) {\n";

    for (let i = 2; i < data.length - 1; i += 2) {
        colorString += `        case "${data[i]}":\n`;
        colorString += `            return "${data[i  + 1]}";\n`;
    }

    colorString += "        default:\n";
    colorString += "            return 'black';\n";
    colorString += "    }\n";
    colorString += "}\n";

    return colorString;
}
3. 完整代码如下:
function generateColorStringFunction(data) {
    let colorString = "function getColor(feature) {\n";
    colorString += "    switch(feature.properties.name) {\n";

    for (let i = 2; i < data.length - 1; i += 2) {
        colorString += `        case "${data[i]}":\n`;
        colorString += `            return "${data[i  + 1]}";\n`;
    }

    colorString += "        default:\n";
    colorString += "            return 'black';\n";
    colorString += "    }\n";
    colorString += "}\n";

    return colorString;
}

const data = [
    "match",
    ["get","name"],
    "怀柔区","#FFFFCC",
    "密云区","#CCFFFF",
    "平谷区","#FFCCCC",
    "通州区","#FFFF99",
    "房山区","#CCCCFF",
    "延庆区","#FFCC99",
    "门头沟区","#CCFF99",
    "大兴区","#66CCFF",
    "顺义区","#99CCFF",
    "海淀区","#CCCCCC",
    "西城区","#CCFFCC",
    "东城区","#CC99CC",
    "朝阳区","#99CC99",
    "石景山区","#CCCC99",
    "昌平区","#FF9969",
    "丰台区","#999999",
    "black"
];

const getColorFunctionString = generateColorStringFunction(data);
console.log(getColorFunctionString);
4. 打印结果如下:
function getColor(feature) {
    switch(feature.properties.name) {
        case "怀柔区":
            return "#FFFFCC";
        case "密云区":
            return "#CCFFFF";
        case "平谷区":
            return "#FFCCCC";
        case "通州区":
            return "#FFFF99";
        case "房山区":
            return "#CCCCFF";
        case "延庆区":
            return "#FFCC99";
        case "门头沟区":
            return "#CCFF99";
        case "大兴区":
            return "#66CCFF";
        case "顺义区":
            return "#99CCFF";
        case "海淀区":
            return "#CCCCCC";
        case "西城区":
            return "#CCFFCC";
        case "东城区":
            return "#CC99CC";
        case "朝阳区":
            return "#99CC99";
        case "石景山区":
            return "#CCCC99";
        case "昌平区":
            return "#FF9969";
        case "丰台区":
            return "#999999";
        default:
            return 'black';
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值