{ "currentVersion": 10.91, "cimVersion": "2.9.0", "id": 4, "name": "Parcel Dimensions - Labels", "type": "Feature Layer", "description": "", "geometryType": "esriGeometryPolyline", "sourceSpatialReference": { "wkid": 103455, "latestWkid": 8124, "xyTolerance": 0.0032808333333333335, "zTolerance": 0.001, "mTolerance": 0.001, "falseX": -17840200, "falseY": -48376900, "xyUnits": 3048.0060960121914, "falseZ": -100000, "zUnits": 10000, "falseM": 0, "mUnits": 1 }, "copyrightText": "", "parentLayer": { "id": 3, "name": "Dimensions" }, "subLayers": [], "minScale": 5101, "maxScale": 0, "referenceScale": 0.0, "drawingInfo": { "renderer": { "type": "uniqueValue", "valueExpression": "return \"COGO\"", "valueExpressionTitle": "Custom", "uniqueValueInfos": [ { "symbol": { "type": "esriSLS", "style": "esriSLSSolid", "color": [ 0, 0, 0, 255 ], "width": 0.75 }, "value": "COGO", "label": "Tax Lines" } ], "fieldDelimiter": ",", "authoringInfo": { "colorRamp": { "type": "multipart", "colorRamps": [ { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 187, 252, 192, 255 ], "toColor": [ 187, 252, 192, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 212, 182, 252, 255 ], "toColor": [ 212, 182, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 194, 179, 255 ], "toColor": [ 252, 194, 179, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 189, 238, 252, 255 ], "toColor": [ 189, 238, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 244, 204, 255 ], "toColor": [ 252, 244, 204, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 207, 235, 255 ], "toColor": [ 252, 207, 235, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 215, 252, 235, 255 ], "toColor": [ 215, 252, 235, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 187, 203, 252, 255 ], "toColor": [ 187, 203, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 233, 252, 187, 255 ], "toColor": [ 233, 252, 187, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 184, 240, 255 ], "toColor": [ 252, 184, 240, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 225, 210, 255 ], "toColor": [ 252, 225, 210, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 179, 252, 224, 255 ], "toColor": [ 179, 252, 224, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 216, 179, 255 ], "toColor": [ 252, 216, 179, 255 ] } ] } } }, "scaleSymbols": true, "transparency": 0, "labelingInfo": [ { "labelExpressionInfo": {"expression": "// Change the settings portion to configure direction format, color, rounding and abbreviations\n// This is an Arcade expression\n\n// SETTINGS\nvar QuadrantBearingFormat = true; //set 'true' for quadrant bearing, 'false' for north azimuth\nvar ShowDistance = true; //set as 'true' to show distance\nvar ShowDirection = false; //set as 'true' to show direction\nvar ShowRadius = false; //set as 'true' to show radius\nvar ShowCurveParemater = true; //set as 'true' to show a curve parameter\nvar CurveParameter = \"ArcLength\"; //set as 'ArcLength' or 'Chord' or 'Angle' for central angle. Case sensitive!\nvar ErrorString = \"COGO ERROR\"; //set to display invalid COGO combinations\nvar RadiusAbbr = 'R='; //radius abbreviation\nvar Radius2Abbr = 'R2='; //radius2 abbreviation for spiral curves\nvar ArclengthAbrr = ''; //arclength abbreviation\nvar ChordAbbr = 'C='; //chord abbreviation\nvar AngleAbbr = 'A='; //central Angle abbreviation\nvar DistUnitRounding = 2; //number of decimal places for distance units: distance, radius, arclength & chord\nvar NumberFormat = \"#,###.00\" //number format. In this example: thousands separator with padding of 2 zeros \nvar directionColor = \"blue='255'\"; //direction color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar distanceColor = \"black='255'\"; //distance color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar radiusColor = \"blue='255'\"; //radius color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar curveParamColor = \"black='255'\"; //curve parameter color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar partialCOGOColor = \"magenta='255'\"; //partial COGO color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar invalidCOGOColor = \"red='255'\"; //invalid COGO color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar fontNameSize = \"\"; //font type and size\n\n// VARIABLES\nvar direction=$feature.Direction;\nvar dist=$feature.Distance;\nvar radius=$feature.Radius;\nvar arclength=$feature.Arclength;\nvar radius2=$feature.Radius2\nvar prefix; // quadrant bearing prefix\nvar postfix; // quadrant bearing postfix\nvar tempBearing; \nvar quadbearing;\nvar binaryDictionary; //binary dictionary to check COGO combinations\nvar checksum=0; //initialize checksum\nvar validValuesArray; //array of valid values for COGO combinations\nvar partialValuesArray; //array of partial values for COGO\nvar degrees;\nvar minutes;\nvar seconds;\nvar DMS;\nvar directionStr = \"\"; //direction string using for label\nvar distanceStr = \"\"; //distance string using for label\nvar radiusStr = \"\"; //radius string using for label\nvar radius2Str = \"\"; //radius2 string using for labeling spiral curves\nvar curveStr = \"\"; //curve parameter string using for label\nvar angleRad; //curve angle in radians\nvar COGOValidity; //COGO combinations validity. can be valid, partial or invalid.\nvar Dimension = $feature.Dimension\n\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n if (azimuth<90 && azimuth>=0){\n tempBearing=azimuth;\n prefix = \"N\";\n postfix= \"E\";}\n else if (azimuth<180 && azimuth>=90){\n tempBearing=180-azimuth;\n prefix = \"S\";\n postfix= \"E\";}\n else if (azimuth<270 && azimuth>=180){\n tempBearing=abs(180-azimuth);\n prefix = \"S\";\n postfix= \"W\";}\n else if (azimuth<360 && azimuth>=270){\n tempBearing=360-azimuth;\n prefix = \"N\";\n postfix= \"W\";}\n \n degrees=floor(tempBearing);\n minutes=floor((tempBearing-degrees)*60)\n seconds=((tempBearing-degrees-minutes/60)*3600)\n if (seconds>=59.5){\n seconds=0;\n minutes+=1;\n if (minutes==60){\n minutes=0;\n degrees+=1;}}\n quadbearing=prefix+degrees+\"°\"+text(minutes,\"00\")+\"'\"+text(seconds,\"00\")+\"''\"+postfix;\n return quadbearing;\n}\n\nfunction DMS(tempBearing){\n degrees=floor(tempBearing);\n minutes=floor((tempBearing-degrees)*60)\n seconds=((tempBearing-degrees-minutes/60)*3600)\n if (seconds>=59.5){\n seconds=0;\n minutes+=1;\n if (minutes==60){\n minutes=0;\n degrees+=1;}}\n DMS=degrees+\"°\"+text(minutes,\"00\")+\"'\"+text(seconds,\"00\")+\"''\";\n return DMS;\n \n}\nfunction IsValidCOGO(direction, dist, radius, arclength, radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(dist)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(radius2)) {checksum+=binaryDictionary.rad2}\n \n validValuesArray=[0,3,13,29]; //array of valid combinations: '0' for nothing, ... '13' for direction & radius & arclength ...\n partialValuesArray=[1,2,4,5,8,9,12,16,20,21,25,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n \n if (IndexOf(validValuesArray,checksum)>-1) { // a negative value is returned if checksum value is not in the a valid combination array\n return \"valid\";\n }\n if (IndexOf(partialValuesArray,checksum)>-1){\n return \"partial\"; \n }\n return \"invalid\";\n}\n\nCOGOValidity = IsValidCOGO(direction, dist, radius, arclength, radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return \"\" + fontNameSize + ErrorString + \"<\/FNT><\/CLR><\/BOL>\"; \n}\n\nelse if (COGOValidity == \"partial\") { //if a partial COGO change colors\n distanceColor = partialCOGOColor;\n directionColor = partialCOGOColor;\n radiusColor = partialCOGOColor;\n curveParamColor = partialCOGOColor;\n}\n\n// Direction string\nif (ShowDirection) {\n if (IsEmpty(direction)==false) { \n if (QuadrantBearingFormat==true) { //using quadrant bearing format\n directionStr = \"\" + fontNameSize + NorthAzimuth2Quadbearing(direction) + \"<\/FNT><\/CLR>\";\n }\n else { //using north azimuth format\n directionStr = \"\" + fontNameSize + DMS(direction) + \"<\/FNT><\/CLR>\";\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(dist)==false) {\n distanceStr = trim(\"\" + fontNameSize + text(round(dist, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\");\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(radius)) { //it can be a curve or a spiral\n if (IsEmpty(radius$feature.Label$feature.Label2)) { //if radius2 is empty this is a curve\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" \" + text(round(radius, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\";\n }\n else { // it is a spiral\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" \" + text(round(radius, DistUnitRounding),NumberFormat) + \"<\/FNT><\/CLR>\";\n radius2Str = \"\" + fontNameSize + Radius2Abbr + \" \" + text(round(radius2, DistUnitRounding),NumberFormat) + \"<\/FNT><\/CLR>\";\n if (radius == 0) { //substitute to infinity sign\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" ∞ \" + \"<\/FNT><\/CLR>\";\n }\n if (radius2 == 0) { //substitute to infinity sign\n radius2Str = \"\" + fontNameSize + Radius2Abbr + \" ∞ \" + \"<\/FNT><\/CLR>\";\n }\n } \n \n }\n}\n\n// Curve Parameter\nif (ShowCurveParemater) {\n if (!IsEmpty(arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = \"\" + fontNameSize + ArclengthAbrr + text(round(arclength, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\"; //return Arc length \n }\n angleRad = arclength/(abs(radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = \"\" + fontNameSize + AngleAbbr + DMS(angleRad * 180 / pi) + \"<\/FNT><\/CLR>\"; // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = \"\" + fontNameSize + ChordAbbr + text(round((2 * abs(radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\"; //calculate chord length\n } \n }\n}\n \n// Assemble label string\nif ((IsEmpty(radius)) && (IsEmpty(curveStr))) { //if radius and curveStr are empty it is not a curve \n if (!IsEmpty(Dimension)) {return trim(\"\" + fontNameSize + Dimension + \"<\/FNT><\/CLR>\");}\n return directionStr + \"\\n\" + trim(distanceStr + $feature.Label)\n}\nelse { //it's a curve\n if (!IsEmpty(Dimension)) {return trim(\"\" + fontNameSize + Dimension + \"<\/FNT><\/CLR>\");;}\n return radiusStr + \" \" + radius2Str + \" \\n \" + trim(curveStr + $feature.Label); \n}"}, "labelPlacement": "esriServerLinePlacementBelowStart", "textLayout": "followFeature", "deconflictionStrategy": "static", "lineConnection": "none", "multiPart": "labelPerFeature", "offsetDistance": 3, "stackLabel": false, "removeDuplicates": "all", "removeDuplicatesDistance": 50, "where": "COGOType = 1 And created_date >= '2023-06-15 08:02:47' And LabelPosition = 1", "useCodedValues": true, "maxScale": 0, "minScale": 5101, "name": "COGO Right 1", "priority": 70, "symbol": { "type": "esriTS", "color": [ 0, 0, 0, 255 ], "backgroundColor": null, "borderLineColor": null, "borderLineSize": null, "verticalAlignment": "bottom", "horizontalAlignment": "left", "rightToLeft": false, "angle": 0, "xoffset": 0, "yoffset": 0, "kerning": true, "haloColor": [ 255, 255, 255, 255 ], "font": { "family": "Tahoma", "size": 10, "style": "normal", "weight": "normal", "decoration": "none" } } }, { "labelExpressionInfo": {"expression": "// Change the settings portion to configure direction format, color, rounding and abbreviations\n// This is an Arcade expression\n\n// SETTINGS\nvar QuadrantBearingFormat = true; //set 'true' for quadrant bearing, 'false' for north azimuth\nvar ShowDistance = true; //set as 'true' to show distance\nvar ShowDirection = false; //set as 'true' to show direction\nvar ShowRadius = false; //set as 'true' to show radius\nvar ShowCurveParemater = true; //set as 'true' to show a curve parameter\nvar CurveParameter = \"ArcLength\"; //set as 'ArcLength' or 'Chord' or 'Angle' for central angle. Case sensitive!\nvar ErrorString = \"COGO ERROR\"; //set to display invalid COGO combinations\nvar RadiusAbbr = 'R='; //radius abbreviation\nvar Radius2Abbr = 'R2='; //radius2 abbreviation for spiral curves\nvar ArclengthAbrr = ''; //arclength abbreviation\nvar ChordAbbr = 'C='; //chord abbreviation\nvar AngleAbbr = 'A='; //central Angle abbreviation\nvar DistUnitRounding = 2; //number of decimal places for distance units: distance, radius, arclength & chord\nvar NumberFormat = \"#,###.00\" //number format. In this example: thousands separator with padding of 2 zeros \nvar directionColor = \"blue='255'\"; //direction color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar distanceColor = \"black='255'\"; //distance color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar radiusColor = \"blue='255'\"; //radius color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar curveParamColor = \"black='255'\"; //curve parameter color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar partialCOGOColor = \"magenta='255'\"; //partial COGO color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar invalidCOGOColor = \"red='255'\"; //invalid COGO color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar fontNameSize = \"\"; //font type and size\n\n// VARIABLES\nvar direction=$feature.Direction;\nvar dist=$feature.Distance;\nvar radius=$feature.Radius;\nvar arclength=$feature.Arclength;\nvar radius2=$feature.Radius2\nvar prefix; // quadrant bearing prefix\nvar postfix; // quadrant bearing postfix\nvar tempBearing; \nvar quadbearing;\nvar binaryDictionary; //binary dictionary to check COGO combinations\nvar checksum=0; //initialize checksum\nvar validValuesArray; //array of valid values for COGO combinations\nvar partialValuesArray; //array of partial values for COGO\nvar degrees;\nvar minutes;\nvar seconds;\nvar DMS;\nvar directionStr = \"\"; //direction string using for label\nvar distanceStr = \"\"; //distance string using for label\nvar radiusStr = \"\"; //radius string using for label\nvar radius2Str = \"\"; //radius2 string using for labeling spiral curves\nvar curveStr = \"\"; //curve parameter string using for label\nvar angleRad; //curve angle in radians\nvar COGOValidity; //COGO combinations validity. can be valid, partial or invalid.\nvar Dimension = $feature.Dimension\n\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n if (azimuth<90 && azimuth>=0){\n tempBearing=azimuth;\n prefix = \"N\";\n postfix= \"E\";}\n else if (azimuth<180 && azimuth>=90){\n tempBearing=180-azimuth;\n prefix = \"S\";\n postfix= \"E\";}\n else if (azimuth<270 && azimuth>=180){\n tempBearing=abs(180-azimuth);\n prefix = \"S\";\n postfix= \"W\";}\n else if (azimuth<360 && azimuth>=270){\n tempBearing=360-azimuth;\n prefix = \"N\";\n postfix= \"W\";}\n \n degrees=floor(tempBearing);\n minutes=floor((tempBearing-degrees)*60)\n seconds=((tempBearing-degrees-minutes/60)*3600)\n if (seconds>=59.5){\n seconds=0;\n minutes+=1;\n if (minutes==60){\n minutes=0;\n degrees+=1;}}\n quadbearing=prefix+degrees+\"°\"+text(minutes,\"00\")+\"'\"+text(seconds,\"00\")+\"''\"+postfix;\n return quadbearing;\n}\n\nfunction DMS(tempBearing){\n degrees=floor(tempBearing);\n minutes=floor((tempBearing-degrees)*60)\n seconds=((tempBearing-degrees-minutes/60)*3600)\n if (seconds>=59.5){\n seconds=0;\n minutes+=1;\n if (minutes==60){\n minutes=0;\n degrees+=1;}}\n DMS=degrees+\"°\"+text(minutes,\"00\")+\"'\"+text(seconds,\"00\")+\"''\";\n return DMS;\n \n}\nfunction IsValidCOGO(direction, dist, radius, arclength, radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(dist)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(radius2)) {checksum+=binaryDictionary.rad2}\n \n validValuesArray=[0,3,13,29]; //array of valid combinations: '0' for nothing, ... '13' for direction & radius & arclength ...\n partialValuesArray=[1,2,4,5,8,9,12,16,20,21,25,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n \n if (IndexOf(validValuesArray,checksum)>-1) { // a negative value is returned if checksum value is not in the a valid combination array\n return \"valid\";\n }\n if (IndexOf(partialValuesArray,checksum)>-1){\n return \"partial\"; \n }\n return \"invalid\";\n}\n\nCOGOValidity = IsValidCOGO(direction, dist, radius, arclength, radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return \"\" + fontNameSize + ErrorString + \"<\/FNT><\/CLR><\/BOL>\"; \n}\n\nelse if (COGOValidity == \"partial\") { //if a partial COGO change colors\n distanceColor = partialCOGOColor;\n directionColor = partialCOGOColor;\n radiusColor = partialCOGOColor;\n curveParamColor = partialCOGOColor;\n}\n\n// Direction string\nif (ShowDirection) {\n if (IsEmpty(direction)==false) { \n if (QuadrantBearingFormat==true) { //using quadrant bearing format\n directionStr = \"\" + fontNameSize + NorthAzimuth2Quadbearing(direction) + \"<\/FNT><\/CLR>\";\n }\n else { //using north azimuth format\n directionStr = \"\" + fontNameSize + DMS(direction) + \"<\/FNT><\/CLR>\";\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(dist)==false) {\n distanceStr = trim(\"\" + fontNameSize + text(round(dist, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\");\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(radius)) { //it can be a curve or a spiral\n if (IsEmpty(radius$feature.Label$feature.Label2)) { //if radius2 is empty this is a curve\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" \" + text(round(radius, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\";\n }\n else { // it is a spiral\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" \" + text(round(radius, DistUnitRounding),NumberFormat) + \"<\/FNT><\/CLR>\";\n radius2Str = \"\" + fontNameSize + Radius2Abbr + \" \" + text(round(radius2, DistUnitRounding),NumberFormat) + \"<\/FNT><\/CLR>\";\n if (radius == 0) { //substitute to infinity sign\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" ∞ \" + \"<\/FNT><\/CLR>\";\n }\n if (radius2 == 0) { //substitute to infinity sign\n radius2Str = \"\" + fontNameSize + Radius2Abbr + \" ∞ \" + \"<\/FNT><\/CLR>\";\n }\n } \n \n }\n}\n\n// Curve Parameter\nif (ShowCurveParemater) {\n if (!IsEmpty(arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = \"\" + fontNameSize + ArclengthAbrr + text(round(arclength, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\"; //return Arc length \n }\n angleRad = arclength/(abs(radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = \"\" + fontNameSize + AngleAbbr + DMS(angleRad * 180 / pi) + \"<\/FNT><\/CLR>\"; // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = \"\" + fontNameSize + ChordAbbr + text(round((2 * abs(radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\"; //calculate chord length\n } \n }\n}\n \n// Assemble label string\nif ((IsEmpty(radius)) && (IsEmpty(curveStr))) { //if radius and curveStr are empty it is not a curve \n if (!IsEmpty(Dimension)) {return trim(\"\" + fontNameSize + Dimension + \"<\/FNT><\/CLR>\");}\n return directionStr + \"\\n\" + trim(distanceStr + $feature.Label)\n}\nelse { //it's a curve\n if (!IsEmpty(Dimension)) {return trim(\"\" + fontNameSize + Dimension + \"<\/FNT><\/CLR>\");;}\n return radiusStr + \" \" + radius2Str + \" \\n \" + trim(curveStr + $feature.Label); \n}"}, "labelPlacement": "esriServerLinePlacementAboveStart", "textLayout": "followFeature", "deconflictionStrategy": "static", "lineConnection": "none", "multiPart": "labelPerFeature", "offsetDistance": 3, "stackLabel": false, "removeDuplicates": "all", "removeDuplicatesDistance": 50, "where": "LabelPosition = 2 And COGOType = 1 And created_date >= '2023-06-15 08:03:49'", "useCodedValues": false, "maxScale": 0, "minScale": 2000, "name": "COGO Left 1", "priority": 72, "symbol": { "type": "esriTS", "color": [ 0, 0, 0, 255 ], "backgroundColor": null, "borderLineColor": null, "borderLineSize": null, "verticalAlignment": "bottom", "horizontalAlignment": "left", "rightToLeft": false, "angle": 0, "xoffset": 0, "yoffset": 0, "kerning": true, "haloColor": [ 255, 255, 255, 255 ], "font": { "family": "Tahoma", "size": 10, "style": "normal", "weight": "normal", "decoration": "none" } } }, { "labelExpressionInfo": {"expression": "// Change the settings portion to configure direction format, color, rounding and abbreviations\n// This is an Arcade expression\n\n// SETTINGS\nvar QuadrantBearingFormat = true; //set 'true' for quadrant bearing, 'false' for north azimuth\nvar ShowDistance = true; //set as 'true' to show distance\nvar ShowDirection = false; //set as 'true' to show direction\nvar ShowRadius = false; //set as 'true' to show radius\nvar ShowCurveParemater = true; //set as 'true' to show a curve parameter\nvar CurveParameter = \"ArcLength\"; //set as 'ArcLength' or 'Chord' or 'Angle' for central angle. Case sensitive!\nvar ErrorString = \"COGO ERROR\"; //set to display invalid COGO combinations\nvar RadiusAbbr = 'R='; //radius abbreviation\nvar Radius2Abbr = 'R2='; //radius2 abbreviation for spiral curves\nvar ArclengthAbrr = ''; //arclength abbreviation\nvar ChordAbbr = 'C='; //chord abbreviation\nvar AngleAbbr = 'A='; //central Angle abbreviation\nvar DistUnitRounding = 2; //number of decimal places for distance units: distance, radius, arclength & chord\nvar NumberFormat = \"#,###.00\" //number format. In this example: thousands separator with padding of 2 zeros \nvar directionColor = \"blue='255'\"; //direction color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar distanceColor = \"black='255'\"; //distance color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar radiusColor = \"blue='255'\"; //radius color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar curveParamColor = \"black='255'\"; //curve parameter color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar partialCOGOColor = \"magenta='255'\"; //partial COGO color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar invalidCOGOColor = \"red='255'\"; //invalid COGO color: red, green, blue, cyan, magenta, yellow, black. You can also use RGB or CYMK combinations.\nvar fontNameSize = \"\"; //font type and size\n\n// VARIABLES\nvar direction=$feature.Direction;\nvar dist=$feature.Distance;\nvar radius=$feature.Radius;\nvar arclength=$feature.Arclength;\nvar radius2=$feature.Radius2\nvar prefix; // quadrant bearing prefix\nvar postfix; // quadrant bearing postfix\nvar tempBearing; \nvar quadbearing;\nvar binaryDictionary; //binary dictionary to check COGO combinations\nvar checksum=0; //initialize checksum\nvar validValuesArray; //array of valid values for COGO combinations\nvar partialValuesArray; //array of partial values for COGO\nvar degrees;\nvar minutes;\nvar seconds;\nvar DMS;\nvar directionStr = \"\"; //direction string using for label\nvar distanceStr = \"\"; //distance string using for label\nvar radiusStr = \"\"; //radius string using for label\nvar radius2Str = \"\"; //radius2 string using for labeling spiral curves\nvar curveStr = \"\"; //curve parameter string using for label\nvar angleRad; //curve angle in radians\nvar COGOValidity; //COGO combinations validity. can be valid, partial or invalid.\nvar Dimension = $feature.Dimension\n\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n if (azimuth<90 && azimuth>=0){\n tempBearing=azimuth;\n prefix = \"N\";\n postfix= \"E\";}\n else if (azimuth<180 && azimuth>=90){\n tempBearing=180-azimuth;\n prefix = \"S\";\n postfix= \"E\";}\n else if (azimuth<270 && azimuth>=180){\n tempBearing=abs(180-azimuth);\n prefix = \"S\";\n postfix= \"W\";}\n else if (azimuth<360 && azimuth>=270){\n tempBearing=360-azimuth;\n prefix = \"N\";\n postfix= \"W\";}\n \n degrees=floor(tempBearing);\n minutes=floor((tempBearing-degrees)*60)\n seconds=((tempBearing-degrees-minutes/60)*3600)\n if (seconds>=59.5){\n seconds=0;\n minutes+=1;\n if (minutes==60){\n minutes=0;\n degrees+=1;}}\n quadbearing=prefix+degrees+\"°\"+text(minutes,\"00\")+\"'\"+text(seconds,\"00\")+\"''\"+postfix;\n return quadbearing;\n}\n\nfunction DMS(tempBearing){\n degrees=floor(tempBearing);\n minutes=floor((tempBearing-degrees)*60)\n seconds=((tempBearing-degrees-minutes/60)*3600)\n if (seconds>=59.5){\n seconds=0;\n minutes+=1;\n if (minutes==60){\n minutes=0;\n degrees+=1;}}\n DMS=degrees+\"°\"+text(minutes,\"00\")+\"'\"+text(seconds,\"00\")+\"''\";\n return DMS;\n \n}\nfunction IsValidCOGO(direction, dist, radius, arclength, radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(dist)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(radius2)) {checksum+=binaryDictionary.rad2}\n \n validValuesArray=[0,3,13,29]; //array of valid combinations: '0' for nothing, ... '13' for direction & radius & arclength ...\n partialValuesArray=[1,2,4,5,8,9,12,16,20,21,25,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n \n if (IndexOf(validValuesArray,checksum)>-1) { // a negative value is returned if checksum value is not in the a valid combination array\n return \"valid\";\n }\n if (IndexOf(partialValuesArray,checksum)>-1){\n return \"partial\"; \n }\n return \"invalid\";\n}\n\nCOGOValidity = IsValidCOGO(direction, dist, radius, arclength, radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return \"\" + fontNameSize + ErrorString + \"<\/FNT><\/CLR><\/BOL>\"; \n}\n\nelse if (COGOValidity == \"partial\") { //if a partial COGO change colors\n distanceColor = partialCOGOColor;\n directionColor = partialCOGOColor;\n radiusColor = partialCOGOColor;\n curveParamColor = partialCOGOColor;\n}\n\n// Direction string\nif (ShowDirection) {\n if (IsEmpty(direction)==false) { \n if (QuadrantBearingFormat==true) { //using quadrant bearing format\n directionStr = \"\" + fontNameSize + NorthAzimuth2Quadbearing(direction) + \"<\/FNT><\/CLR>\";\n }\n else { //using north azimuth format\n directionStr = \"\" + fontNameSize + DMS(direction) + \"<\/FNT><\/CLR>\";\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(dist)==false) {\n distanceStr = trim(\"\" + fontNameSize + text(round(dist, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\");\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(radius)) { //it can be a curve or a spiral\n if (IsEmpty(radius$feature.Label$feature.Label2)) { //if radius2 is empty this is a curve\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" \" + text(round(radius, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\";\n }\n else { // it is a spiral\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" \" + text(round(radius, DistUnitRounding),NumberFormat) + \"<\/FNT><\/CLR>\";\n radius2Str = \"\" + fontNameSize + Radius2Abbr + \" \" + text(round(radius2, DistUnitRounding),NumberFormat) + \"<\/FNT><\/CLR>\";\n if (radius == 0) { //substitute to infinity sign\n radiusStr = \"\" + fontNameSize + RadiusAbbr + \" ∞ \" + \"<\/FNT><\/CLR>\";\n }\n if (radius2 == 0) { //substitute to infinity sign\n radius2Str = \"\" + fontNameSize + Radius2Abbr + \" ∞ \" + \"<\/FNT><\/CLR>\";\n }\n } \n \n }\n}\n\n// Curve Parameter\nif (ShowCurveParemater) {\n if (!IsEmpty(arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = \"\" + fontNameSize + ArclengthAbrr + text(round(arclength, DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\"; //return Arc length \n }\n angleRad = arclength/(abs(radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = \"\" + fontNameSize + AngleAbbr + DMS(angleRad * 180 / pi) + \"<\/FNT><\/CLR>\"; // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = \"\" + fontNameSize + ChordAbbr + text(round((2 * abs(radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat) + \"<\/FNT><\/CLR>\"; //calculate chord length\n } \n }\n}\n \n// Assemble label string\nif ((IsEmpty(radius)) && (IsEmpty(curveStr))) { //if radius and curveStr are empty it is not a curve \n if (!IsEmpty(Dimension)) {return trim(\"\" + fontNameSize + Dimension + \"<\/FNT><\/CLR>\");}\n return directionStr + \"\\n\" + trim(distanceStr + $feature.Label)\n}\nelse { //it's a curve\n if (!IsEmpty(Dimension)) {return trim(\"\" + fontNameSize + Dimension + \"<\/FNT><\/CLR>\");;}\n return radiusStr + \" \" + radius2Str + \" \\n \" + trim(curveStr + $feature.Label); \n}"}, "labelPlacement": "esriServerLinePlacementCenterStart", "textLayout": "followFeature", "deconflictionStrategy": "static", "lineConnection": "none", "multiPart": "labelPerFeature", "stackLabel": false, "removeDuplicates": "all", "removeDuplicatesDistance": 50, "where": "LabelPosition = 3 And COGOType = 1 And created_date >= '2023-06-15 08:04:15'", "useCodedValues": false, "maxScale": 0, "minScale": 2000, "name": "COGO Shared 1", "priority": 71, "symbol": { "type": "esriTS", "color": [ 0, 0, 0, 255 ], "backgroundColor": null, "borderLineColor": null, "borderLineSize": null, "verticalAlignment": "bottom", "horizontalAlignment": "left", "rightToLeft": false, "angle": 0, "xoffset": 0, "yoffset": 0, "kerning": true, "haloColor": [ 255, 255, 255, 255 ], "font": { "family": "Tahoma", "size": 10, "style": "normal", "weight": "normal", "decoration": "none" } } } ] }, "defaultVisibility": true, "extent": { "xmin": 499834.28015992045, "ymin": 125116.92359367758, "xmax": 688523.4998935871, "ymax": 299199.06033684313, "spatialReference": { "wkid": 103455, "latestWkid": 8124, "xyTolerance": 0.0032808333333333335, "zTolerance": 2, "mTolerance": 0.001, "falseX": -1.968474211914704E7, "falseY": -5.165807134344478E7, "xyUnits": 1.2476172341580173E8, "falseZ": 0, "zUnits": 1, "falseM": -100000, "mUnits": 10000 } }, "hasAttachments": false, "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", "displayField": "created_user", "typeIdField": null, "subtypeFieldName": null, "subtypeField": null, "defaultSubtypeCode": null, "fields": [ { "name": "OBJECTID", "type": "esriFieldTypeOID", "alias": "OBJECTID", "domain": null }, { "name": "Shape", "type": "esriFieldTypeGeometry", "alias": "SHAPE", "domain": null }, { "name": "GlobalID", "type": "esriFieldTypeGlobalID", "alias": "GlobalID", "length": 38, "domain": null }, { "name": "CreatedByRecord", "type": "esriFieldTypeGUID", "alias": "Created By Record", "length": 38, "domain": null }, { "name": "RetiredByRecord", "type": "esriFieldTypeGUID", "alias": "Retired By Record", "length": 38, "domain": null }, { "name": "ParentLineID", "type": "esriFieldTypeGUID", "alias": "Parent Line ID", "length": 38, "domain": null }, { "name": "Direction", "type": "esriFieldTypeDouble", "alias": "Direction", "domain": null }, { "name": "Distance", "type": "esriFieldTypeDouble", "alias": "Distance", "domain": null }, { "name": "Radius", "type": "esriFieldTypeDouble", "alias": "Radius", "domain": null }, { "name": "ArcLength", "type": "esriFieldTypeDouble", "alias": "Arc Length", "domain": null }, { "name": "Radius2", "type": "esriFieldTypeDouble", "alias": "Radius2", "domain": null }, { "name": "COGOType", "type": "esriFieldTypeInteger", "alias": "COGO Type", "domain": null }, { "name": "IsCOGOGround", "type": "esriFieldTypeInteger", "alias": "Is COGO Ground", "domain": null }, { "name": "Rotation", "type": "esriFieldTypeDouble", "alias": "Rotation", "domain": null }, { "name": "Scale", "type": "esriFieldTypeDouble", "alias": "Scale", "domain": null }, { "name": "DirectionAccuracy", "type": "esriFieldTypeDouble", "alias": "Direction Accuracy", "domain": null }, { "name": "DistanceAccuracy", "type": "esriFieldTypeDouble", "alias": "Distance Accuracy", "domain": null }, { "name": "LabelPosition", "type": "esriFieldTypeInteger", "alias": "Label Position", "domain": null }, { "name": "created_user", "type": "esriFieldTypeString", "alias": "Created By", "length": 255, "domain": null }, { "name": "created_date", "type": "esriFieldTypeDate", "alias": "Created Date", "length": 8, "domain": null }, { "name": "last_edited_user", "type": "esriFieldTypeString", "alias": "Modified By", "length": 255, "domain": null }, { "name": "last_edited_date", "type": "esriFieldTypeDate", "alias": "Modified Date", "length": 8, "domain": null }, { "name": "VALIDATIONSTATUS", "type": "esriFieldTypeSmallInteger", "alias": "Validation status", "domain": null }, { "name": "Delta", "type": "esriFieldTypeDouble", "alias": "Delta", "domain": null }, { "name": "LegalStartDate", "type": "esriFieldTypeDate", "alias": "LegalStartDate", "length": 8, "domain": null }, { "name": "LegalEndDate", "type": "esriFieldTypeDate", "alias": "LegalEndDate", "length": 8, "domain": null }, { "name": "OriginalFeatureOID", "type": "esriFieldTypeInteger", "alias": "OriginalFeatureOID", "domain": null }, { "name": "Label", "type": "esriFieldTypeString", "alias": "Label", "length": 255, "domain": null }, { "name": "Dimension", "type": "esriFieldTypeString", "alias": "Dimension", "length": 255, "domain": null }, { "name": "Chord", "type": "esriFieldTypeDouble", "alias": "Chord", "domain": null }, { "name": "Shape.STLength()", "type": "esriFieldTypeDouble", "alias": "Shape.STLength()", "domain": null } ], "geometryField": { "name": "Shape", "type": "esriFieldTypeGeometry", "alias": "SHAPE" }, "indexes": [ { "name": "R2410_pk", "fields": "OBJECTID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "UUID_2410", "fields": "GlobalID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "S1787_idx", "fields": "Shape", "isAscending": true, "isUnique": true, "description": "" } ], "subtypes": [], "relationships": [], "canModifyLayer": true, "canScaleSymbols": false, "hasLabels": true, "capabilities": "Query,Map,Data", "maxRecordCount": 1000, "supportsStatistics": true, "supportsExceedsLimitStatistics": true, "supportsAdvancedQueries": true, "hasZ": true, "supportedQueryFormats": "JSON, geoJSON, PBF", "isDataVersioned": false, "ownershipBasedAccessControlForFeatures": {"allowOthersToQuery": true}, "useStandardizedQueries": true, "supportedSpatialRelationships": [ "esriSpatialRelIntersects", "esriSpatialRelContains", "esriSpatialRelCrosses", "esriSpatialRelEnvelopeIntersects", "esriSpatialRelIndexIntersects", "esriSpatialRelOverlaps", "esriSpatialRelTouches", "esriSpatialRelWithin", "esriSpatialRelRelation" ], "advancedQueryCapabilities": { "useStandardizedQueries": true, "supportsStatistics": true, "supportsPercentileStatistics": true, "supportsHavingClause": true, "supportsOrderBy": true, "supportsDistinct": true, "supportsCountDistinct": true, "supportsPagination": true, "supportsLod": false, "supportsQueryWithLodSR": false, "supportsTrueCurve": true, "supportsQueryWithDatumTransformation": true, "supportsReturningQueryExtent": true, "supportsQueryWithDistance": true, "supportsSqlExpression": true, "supportsTimeRelation": true, "supportsSqlFormat": false, "supportsQueryAnalytic": true }, "supportsDatumTransformation": true, "advancedQueryAnalyticCapabilities": { "supportsLinearRegression": true, "supportsAsync": false, "supportsPercentileAnalytic": true }, "dateFieldsTimeReference": { "timeZone": "Central Standard Time", "respectsDaylightSaving": false }, "preferredTimeReference": { "timeZone": "Central Standard Time", "respectsDaylightSaving": false }, "datesInUnknownTimezone": false, "hasGeometryProperties": true, "geometryProperties": { "shapeLengthFieldName": "Shape.STLength()", "units": "esriFeet" }, "hasMetadata": true, "isDataArchived": false, "archivingInfo": { "supportsQueryWithHistoricMoment": false, "startArchivingMoment": -1 }, "supportsCoordinatesQuantization": true, "supportsDynamicLegends": true, "serviceItemId": "9a423b08293e456a8a03dca4cda352c5" }