有人能帮我解决这个在geoserver上的CSS sld吗?
如果有人有更好的选择,而不是我的方法,请建议。
[activity_group_id = 20] [application_status = 'PreSanction-Pending']{
mark:symbol('ttf://ESRI Business#39');
:symbol {
fill:#FF0000;
}
}
[activity_group_id = 20] [application_status = 'Payment-Done']{
mark:symbol('ttf://ESRI Business#39');
:symbol {
fill:#00FF00;
}
}
[activity_group_id = 20] [application_status = 'Work-Completed']{
mark:symbol('ttf://ESRI Business#39');
:symbol {
fill:#0000FF;
}
}
[activity_group_id = 20] [application_status = 'PreSanction-Received']{
mark:symbol('ttf://ESRI Business#39');
:symbol {
fill:#00FFFF;
}
}这很好,但我想简化一下,如果-那么-否则我就被困在这上面了。
因为有30多个独特的“activity_group_id”
我有点数据,每一行都有两个变量'activity_group_id‘和’activity‘,我使用ttf符号作为层显示,但条件是,每个点需要根据其状态分配颜色(Fill) --总共有4个唯一值,因为我对sld引用的文档并不熟悉,但没有找到任何解决方案。
编辑:-为点定位层添加一些测试数据
activity_group_id application_status desk4_longitude desk4_latitude
20 "Work-Completed" 77.8912643252645 20.7848792063826
20 "PreSanction-Pending" 77.8912791454753 20.7796634062134
20 "Payment-Done" 77.874307404545 20.7786504284761
20 "PreSanction-Pending" 77.8748653559629 20.7777572907007
20 "Payment-Done" 77.8935239518168 20.7742195299066
20 "PreSanction-Pending" 77.8887775696933 20.7848194877974
20 "PreSanction-Received" 77.8829004567405 20.7622202218188发布于 2021-11-30 11:45:51
使用记录函数简化样式。我不能测试它,但应该是这样的:
[activity_group_id = 20] {
mark:symbol('ttf://ESRI Business#39');
:symbol {
fill: recode(application_status,
'Payment-Done', #00FF00,
'Work-Completed', #0000FF,
'PreSanction-Received', #00FFFF);
}
}如果基于application_status的颜色是相同的,但是形状是根据组id变化的,那么使用级联并设置单独的规则:
[activity_group_id = 20] {
mark:symbol('ttf://ESRI Business#39');
}
[activity_group_id = anotherId] {
mark:symbol('ttf://anotherSymbol');
}
* {
:symbol {
fill: recode(application_status,
'Payment-Done', #00FF00,
'Work-Completed', #0000FF,
'PreSanction-Received', #00FFFF);
}
}发布于 2021-11-30 15:27:52
@Andrea Aime
从您的参考资料来看,我检查了docs,并对您的答案的语法进行了一些修改,以供其他人使用。
/* @title Apiculture */
[activity_group_id = 20] {
mark:symbol('ttf://ESRI Business#39');
mark-size:15;
:symbol {
fill: [recode(application_status,
'PreSanction-Pending','#FF0000',
'Payment-Done', '#00FF00',
'Work-Completed', '#0000FF',
'PreSanction-Received', '#00FFFF')];
}
}
/* @title Sprinkler Irrigation */
[activity_group_id = 19] {
mark:symbol('ttf://ESRI Business#40');
mark-size:15;
:symbol {
fill: [recode(application_status,
'PreSanction-Pending','#FF0000',
'Payment-Done', '#00FF00',
'Work-Completed', '#0000FF',
'PreSanction-Received', '#00FFFF')];
}
}https://stackoverflow.com/questions/70168539
复制相似问题