Is there an easy way to generate the JSON for a symbol renderer. For example, can I automatically generate the symbol JSON from a layer file for symbology that we have already defined via ArcMap?
I can update the renderer for a loaded FeatureLayer with something similar to the following.
Renderer ren = Renderer.FromJson(File.ReadAllText(symbolJson));
loadedLayer.Renderer = ren;
Symbol JSON is similar to the following
{
"type": "uniqueValue",
"field1": "SUBTYPECD",
"field2": "WORKFUNCTION",
"field3": null,
"defaultSymbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
156,
156,
156,
255
],
"width": 1
},
"defaultLabel": "<all other values>",
"uniqueValueInfos": [
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 0.5
},
"value": "1,30",
"label": "Primary Bus Bar, In Service",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 0.5
},
"value": "1,5",
"label": "Primary Bus Bar, In Service",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 1
},
"value": "2,30",
"label": "Secondary Bus Bar, In Service",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
0,
0,
0,
255
],
"width": 1
},
"value": "2,5",
"label": "Secondary Bus Bar, In Service",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
255,
0,
0,
255
],
"width": 1
},
"value": "1,0",
"label": "Primary Bus Bar, Proposed - Install",
"description": ""
},
{
"symbol": {
"type": "esriSLS",
"style": "esriSLSSolid",
"color": [
255,
0,
0,
255
],
"width": 0.5
},
"value": "2,0",
"label": "Secondary Bus Bar, Proposed - Install",
"description": ""
}
],
"fieldDelimiter": ","
}
I have this question too.