{ "layers": [ { "currentVersion": 11.1, "cimVersion": "3.1.0", "id": 1, "name": "Traverse", "type": "Feature Layer", "description": "", "geometryType": "esriGeometryPolyline", "sourceSpatialReference": { "wkid": 102719, "latestWkid": 2264, "xyTolerance": 0.0208333333333333, "zTolerance": 2.0E-5, "mTolerance": 0.001, "falseX": -1.2184189999999982E8, "falseY": -9.365899999999987E7, "xyUnits": 1536.0000000000025, "falseZ": 0, "zUnits": 1, "falseM": 0, "mUnits": 1 }, "copyrightText": "", "parentLayer": null, "subLayers": [], "minScale": 24000, "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": "COGO" } ], "fieldDelimiter": ",", "authoringInfo": { "colorRamp": { "type": "multipart", "colorRamps": [ { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 182, 238, 255 ], "toColor": [ 252, 182, 238, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 199, 252, 179, 255 ], "toColor": [ 199, 252, 179, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 192, 235, 252, 255 ], "toColor": [ 192, 235, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 206, 184, 255 ], "toColor": [ 252, 206, 184, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 179, 179, 252, 255 ], "toColor": [ 179, 179, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 251, 212, 255 ], "toColor": [ 252, 251, 212, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 192, 252, 225, 255 ], "toColor": [ 192, 252, 225, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 232, 210, 252, 255 ], "toColor": [ 232, 210, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 182, 197, 255 ], "toColor": [ 252, 182, 197, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 215, 252, 202, 255 ], "toColor": [ 215, 252, 202, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 199, 232, 255 ], "toColor": [ 252, 199, 232, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 219, 182, 252, 255 ], "toColor": [ 219, 182, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 242, 252, 182, 255 ], "toColor": [ 242, 252, 182, 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 = true; //set as 'true' to show direction\nvar DirectionType = 1; // 1 = Quadrant Bearing; 2 = North Azimuth; 3 = South Azimuth\nvar ShowRadius = true; //set as 'true' to show radius\nvar ShowCurveParameter = 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 = 'L='; //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 cogo_direction = $feature.Direction;\nvar cogo_distance = $feature.Distance;\nvar cogo_radius = $feature.Radius;\nvar cogo_arclength = $feature.Arclength;\nvar cogo_radius2 = $feature.Radius2\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.\n\n\nif (IsEmpty(cogo_direction) && IsEmpty(cogo_distance) && IsEmpty(cogo_radius) && IsEmpty(cogo_radius2) && IsEmpty(cogo_arclength)){\n return \"\"\n}\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'Quadrant', angleType: 'DMS', outputType: 'text', format: 'pd[°]mm[\\']ss[\"]b'})\n}\n\nfunction DMS_North(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'North', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction DMS_South(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'South', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction IsValidCOGO(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(cogo_direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(cogo_distance)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(cogo_radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(cogo_arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(cogo_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,17,20,21,24,25,27,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n //Invalid Values = [6,7,10,11,14,15,18,19,22,23,26,30,31]\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(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return \"\" + fontNameSize + ErrorString + \"<\/FNT><\/CLR><\/BOL>\"; \n}\n\nif (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(cogo_direction)==false) {\n if (DirectionType == 1) { //using quadrant bearing format\n directionStr = NorthAzimuth2Quadbearing(cogo_direction);\n }\n else if (DirectionType == 2) { //using north azimuth format\n directionStr = DMS_North(cogo_direction);\n }\n else if (DirectionType == 3) { //using south azimuth format\n directionStr = DMS_South(cogo_direction);\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(cogo_distance)==false) {\n distanceStr = text(round(cogo_distance,DistUnitRounding), NumberFormat);\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(cogo_radius)) { //it can be a curve or a spiral\n if (IsEmpty(cogo_radius2)) { //if radius2 is empty this is a curve\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding), NumberFormat);\n }\n else { // it is a spiral\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding),NumberFormat);\n radius2Str = Radius2Abbr + \" \" + text(round(cogo_radius2, DistUnitRounding),NumberFormat);\n if (cogo_radius == 0) { //substitute to infinity sign\n radiusStr = RadiusAbbr + \" ∞ \";\n }\n if (cogo_radius2 == 0) { //substitute to infinity sign\n radius2Str = Radius2Abbr + \" ∞ \";\n }\n } \n \n }\n}\n\n// Curve Parameter\nif (ShowCurveParameter) {\n if (!IsEmpty(cogo_arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = text(round(cogo_arclength, DistUnitRounding), NumberFormat); //return Arc length\n }\n angleRad = cogo_arclength/(abs(cogo_radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = DMS_North(angleRad * 180 / pi); // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = text(round((2 * abs(cogo_radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat); //calculate chord length\n } \n }\n}\n\n//Determine type of curve displayed\nvar CurveTypePrefix = \"\"\nif (!IsEmpty(curveStr)){\n if (CurveParameter == 'ArcLength'){\n CurveTypePrefix = ArclengthAbrr\n }\n else if (CurveParameter == 'Angle'){\n CurveTypePrefix = AngleAbbr\n }\n else if (CurveParameter == 'Chord'){\n CurveTypePrefix = ChordAbbr\n }\n}\n\nvar isStraightLine = IsEmpty(radiusStr) && IsEmpty(radius2Str) && IsEmpty(curveStr)\n\n// Assemble label string\n\n//Straight lines\nif (isStraightLine){\n if (!IsEmpty(directionStr) && !IsEmpty(distanceStr)){ //If Direction and Distance are both NOT Empty\n return fontNameSize + \"\" + directionStr + \"<\/CLR>\" + \"\\n\" +\n \"\" + distanceStr + \"<\/CLR><\/FNT>\";\n }\n else if (IsEmpty(directionStr)){ //If Direction is empty\n return fontNameSize + \"\" +\n distanceStr + \"<\/CLR><\/FNT>\";\n }\n else{ //If Distance is empty\n return fontNameSize + \"\" + directionStr + \"<\/CLR><\/FNT>\";\n }\n}\n\n//Curves\n//If one or both radii and the curve string are NOT empty show the full curve\nif ((!IsEmpty(radiusStr) || !IsEmpty(radius2Str)) && !IsEmpty(curveStr)){\n return fontNameSize + \"\" + radiusStr + \"<\/CLR>\" + \" \" +\n \"\" + radius2Str + \"<\/CLR>\" + \"\\n\" +\n \"\" + CurveTypePrefix + ' ' +\n curveStr + \"<\/CLR><\/FNT>\";\n}\n//If the curve is empty\nelse if (IsEmpty(curveStr)){\n return fontNameSize + \"\" + radiusStr + \"<\/CLR>\" + \" \" +\n \"\" + radius2Str + \"<\/CLR><\/FNT>\"\n}\n//If both radius are empty\nelse{\n return fontNameSize + \"\" + CurveTypePrefix + ' ' +\n curveStr + \"<\/CLR><\/FNT>\";\n}", "title": "DirectionAndDistance" }, "lineOrientation": "direction", "labelPlacement": "esriServerLinePlacementBelowStart", "textLayout": "followFeature", "deconflictionStrategy": "static", "lineConnection": "none", "multiPart": "labelPerFeature", "offsetDistance": 3, "stackLabel": false, "removeDuplicates": "none", "useCodedValues": false, "maxScale": 0, "minScale": 2000, "name": "Direction and Distance", "priority": -1, "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 ], "haloSize": 2, "font": { "family": "Tahoma", "size": 10, "style": "normal", "weight": "normal", "decoration": "none" } } } ] }, "defaultVisibility": true, "extent": { "xmin": 1470591.5904947668, "ymin": 599001.6477864385, "xmax": 1684005.1399739385, "ymax": 769718.9049478918, "spatialReference": { "wkid": 102719, "latestWkid": 2264, "xyTolerance": 0.003280833333333333, "zTolerance": 2, "mTolerance": 0.001, "falseX": -121841900, "falseY": -93659000, "xyUnits": 3.6365718124241434E7, "falseZ": 0, "zUnits": 1, "falseM": -100000, "mUnits": 10000 } }, "hasAttachments": false, "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", "displayFieldExpressionInfo": { "expression": "// Change the settings portion to configure direction format, rounding and abbreviations\n// This is an Arcade expression\n\n// SETTINGS\nvar ShowDistance = true; //set as 'true' to show distance\nvar ShowDirection = true; //set as 'true' to show direction\nvar DirectionType = 1; // 1 = Quadrant Bearing; 2 = North Azimuth; 3 = South Azimuth\nvar ShowRadius = true; //set as 'true' to show radius\nvar ShowCurveParameter = 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 = 'L='; //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\n\n// VARIABLES\nvar cogo_direction = $feature.Direction;\nvar cogo_distance = $feature.Distance;\nvar cogo_radius = $feature.Radius;\nvar cogo_arclength = $feature.Arclength;\nvar cogo_radius2 = $feature.Radius2\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 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.\n\nif (IsEmpty(cogo_direction) && IsEmpty(cogo_distance) && IsEmpty(cogo_radius) && IsEmpty(cogo_radius2) && IsEmpty(cogo_arclength)){\n return \"\"\n}\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'Quadrant', angleType: 'DMS', outputType: 'text', format: 'pd[°]mm[\\']ss[\"]b'})\n}\n\nfunction DMS_North(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'North', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction DMS_South(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'South', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction IsValidCOGO(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(cogo_direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(cogo_distance)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(cogo_radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(cogo_arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(cogo_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,17,20,21,24,25,27,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n //Invalid Values = [6,7,10,11,14,15,18,19,22,23,26,30,31]\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\nfunction COGOTypePrefixPostfix(cogotypeValue){\n if (ShowCOGOType){\n if (cogotypeValue == 1) { //Entered\n return COGOType_Entered\n }\n else if(cogotypeValue == 2) { //From Geometry\n return COGOType_FromGeom\n }\n else if(cogotypeValue == 3) { //Computed\n return COGOType_Computed\n }\n else { //If not set or invalid value\n return ['', '']\n }\n }\n else{\n return(['', ''])\n }\n}\n\nCOGOValidity = IsValidCOGO(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return ErrorString;\n}\n\n\n// Direction string\nif (ShowDirection) {\n if (IsEmpty(cogo_direction)==false) {\n if (DirectionType == 1) { //using quadrant bearing format\n directionStr = NorthAzimuth2Quadbearing(cogo_direction);\n }\n else if (DirectionType == 2) { //using north azimuth format\n directionStr = DMS_North(cogo_direction);\n }\n else if (DirectionType == 3) { //using south azimuth format\n directionStr = DMS_South(cogo_direction);\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(cogo_distance)==false) {\n distanceStr = text(round(cogo_distance,DistUnitRounding), NumberFormat);\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(cogo_radius)) { //it can be a curve or a spiral\n if (IsEmpty(cogo_radius2)) { //if radius2 is empty this is a curve\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding), NumberFormat);\n }\n else { // it is a spiral\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding),NumberFormat);\n radius2Str = Radius2Abbr + \" \" + text(round(cogo_radius2, DistUnitRounding),NumberFormat);\n if (cogo_radius == 0) { //substitute to infinity sign\n radiusStr = RadiusAbbr + \" ∞ \";\n }\n if (cogo_radius2 == 0) { //substitute to infinity sign\n radius2Str = Radius2Abbr + \" ∞ \";\n }\n }\n\n }\n}\n\n// Curve Parameter\nif (ShowCurveParameter) {\n if (!IsEmpty(cogo_arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = text(round(cogo_arclength, DistUnitRounding), NumberFormat); //return Arc length\n }\n angleRad = cogo_arclength/(abs(cogo_radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = DMS_North(angleRad * 180 / pi); // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = text(round((2 * abs(cogo_radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat); //calculate chord length\n }\n }\n}\n\n//Determine type of curve displayed\nvar CurveTypePrefix = \"\"\nif (!IsEmpty(curveStr)){\n if (CurveParameter == 'ArcLength'){\n CurveTypePrefix = ArclengthAbrr\n }\n else if (CurveParameter == 'Angle'){\n CurveTypePrefix = AngleAbbr\n }\n else if (CurveParameter == 'Chord'){\n CurveTypePrefix = ChordAbbr\n }\n}\n\nvar isStraightLine = IsEmpty(radiusStr) && IsEmpty(radius2Str) && IsEmpty(curveStr)\n\n\n// Assemble label string\nif (isStraightLine){\n if (!IsEmpty(directionStr) && !IsEmpty(distanceStr)){ //If Direction and Distance are both NOT Empty\n return directionStr + ' ' + distanceStr;\n }\n else if (IsEmpty(directionStr)){ //If Direction is empty\n return distanceStr;\n }\n else{ //If Distance is empty\n return directionStr\n }\n}\n\n//Curves\n//If one or both radii and the curve string are NOT empty show the full curve\nif ((!IsEmpty(radiusStr) || !IsEmpty(radius2Str)) && !IsEmpty(curveStr)){\n return radiusStr + \" \" + radius2Str + ' ' + CurveTypePrefix + ' ' + curveStr;\n}\n//If the curve is empty\nelse if (IsEmpty(curveStr)){\n return radiusStr + \" \" + radius2Str\n}\n//If both radius are empty\nelse{\n return CurveTypePrefix + ' ' + curveStr;\n}\n\n\n", "title": "Custom" }, "displayField": "FTR_CODE", "typeIdField": null, "subtypeFieldName": null, "subtypeField": null, "defaultSubtypeCode": null, "fields": [ { "name": "OBJECTID", "type": "esriFieldTypeOID", "alias": "OBJECTID", "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": "FTR_CODE", "type": "esriFieldTypeString", "alias": "FTR_CODE", "length": 20, "domain": { "type": "codedValue", "name": "TRAVERSEFTR_CODE", "description": "TRAVERSE Feature Code", "codedValues": [ { "name": "TRAVERSE", "code": "TRAVERSE" }, { "name": "TRAVERSE GRID", "code": "TRAVERSE GRID" } ], "mergePolicy": "esriMPTDefaultValue", "splitPolicy": "esriSPTDefaultValue" } }, { "name": "Notes", "type": "esriFieldTypeString", "alias": "Notes", "length": 255, "domain": null }, { "name": "created_user", "type": "esriFieldTypeString", "alias": "created_user", "length": 255, "domain": null }, { "name": "created_date", "type": "esriFieldTypeDate", "alias": "created_date", "length": 8, "domain": null }, { "name": "last_edited_user", "type": "esriFieldTypeString", "alias": "last_edited_user", "length": 255, "domain": null }, { "name": "last_edited_date", "type": "esriFieldTypeDate", "alias": "last_edited_date", "length": 8, "domain": null }, { "name": "GlobalID", "type": "esriFieldTypeGlobalID", "alias": "GlobalID", "length": 38, "domain": null }, { "name": "Shape.STLength()", "type": "esriFieldTypeDouble", "alias": "Shape.STLength()", "domain": null } ], "geometryField": {}, "indexes": [ { "name": "UUID_33", "fields": "GlobalID", "isAscending": true, "isUnique": true, "description": "" } ], "subtypes": [], "relationships": [], "canModifyLayer": true, "canScaleSymbols": false, "hasLabels": true, "capabilities": "Map,Query,Data", "maxRecordCount": 1000, "supportsStatistics": true, "supportsExceedsLimitStatistics": true, "supportsAdvancedQueries": true, "supportedQueryFormats": "JSON, geoJSON, PBF", "isDataVersioned": true, "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": "Eastern Standard Time", "respectsDaylightSaving": true }, "preferredTimeReference": null, "datesInUnknownTimezone": false, "hasGeometryProperties": true, "geometryProperties": { "shapeLengthFieldName": "Shape.STLength()", "units": "esriFeet", "mapUnits": {"uwkid": 9003} }, "hasMetadata": true, "isDataArchived": false, "archivingInfo": { "supportsQueryWithHistoricMoment": false, "startArchivingMoment": -1 }, "supportsCoordinatesQuantization": true, "supportsDynamicLegends": true }, { "currentVersion": 11.1, "cimVersion": "3.1.0", "id": 3, "name": "Workign Parcel Lines", "type": "Feature Layer", "description": "", "geometryType": "esriGeometryPolyline", "sourceSpatialReference": { "wkid": 102719, "latestWkid": 2264, "xyTolerance": 0.0208333333333333, "zTolerance": 2.0E-5, "mTolerance": 0.001, "falseX": -1.2184189999999982E8, "falseY": -9.365899999999987E7, "xyUnits": 1536.0000000000025, "falseZ": 0, "zUnits": 1, "falseM": 0, "mUnits": 1 }, "copyrightText": "", "parentLayer": null, "subLayers": [], "minScale": 24000, "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": "COGO" } ], "fieldDelimiter": ",", "authoringInfo": { "colorRamp": { "type": "multipart", "colorRamps": [ { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 182, 238, 255 ], "toColor": [ 252, 182, 238, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 199, 252, 179, 255 ], "toColor": [ 199, 252, 179, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 192, 235, 252, 255 ], "toColor": [ 192, 235, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 206, 184, 255 ], "toColor": [ 252, 206, 184, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 179, 179, 252, 255 ], "toColor": [ 179, 179, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 251, 212, 255 ], "toColor": [ 252, 251, 212, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 192, 252, 225, 255 ], "toColor": [ 192, 252, 225, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 232, 210, 252, 255 ], "toColor": [ 232, 210, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 182, 197, 255 ], "toColor": [ 252, 182, 197, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 215, 252, 202, 255 ], "toColor": [ 215, 252, 202, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 252, 199, 232, 255 ], "toColor": [ 252, 199, 232, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 219, 182, 252, 255 ], "toColor": [ 219, 182, 252, 255 ] }, { "type": "algorithmic", "algorithm": "esriCIELabAlgorithm", "fromColor": [ 242, 252, 182, 255 ], "toColor": [ 242, 252, 182, 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 = true; //set as 'true' to show direction\nvar DirectionType = 1; // 1 = Quadrant Bearing; 2 = North Azimuth; 3 = South Azimuth\nvar ShowRadius = true; //set as 'true' to show radius\nvar ShowCurveParameter = 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 = 'L='; //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 cogo_direction = $feature.Direction;\nvar cogo_distance = $feature.Distance;\nvar cogo_radius = $feature.Radius;\nvar cogo_arclength = $feature.Arclength;\nvar cogo_radius2 = $feature.Radius2\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.\n\n\nif (IsEmpty(cogo_direction) && IsEmpty(cogo_distance) && IsEmpty(cogo_radius) && IsEmpty(cogo_radius2) && IsEmpty(cogo_arclength)){\n return \"\"\n}\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'Quadrant', angleType: 'DMS', outputType: 'text', format: 'pd[°]mm[\\']ss[\"]b'})\n}\n\nfunction DMS_North(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'North', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction DMS_South(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'South', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction IsValidCOGO(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(cogo_direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(cogo_distance)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(cogo_radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(cogo_arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(cogo_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,17,20,21,24,25,27,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n //Invalid Values = [6,7,10,11,14,15,18,19,22,23,26,30,31]\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(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return \"\" + fontNameSize + ErrorString + \"<\/FNT><\/CLR><\/BOL>\"; \n}\n\nif (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(cogo_direction)==false) {\n if (DirectionType == 1) { //using quadrant bearing format\n directionStr = NorthAzimuth2Quadbearing(cogo_direction);\n }\n else if (DirectionType == 2) { //using north azimuth format\n directionStr = DMS_North(cogo_direction);\n }\n else if (DirectionType == 3) { //using south azimuth format\n directionStr = DMS_South(cogo_direction);\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(cogo_distance)==false) {\n distanceStr = text(round(cogo_distance,DistUnitRounding), NumberFormat);\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(cogo_radius)) { //it can be a curve or a spiral\n if (IsEmpty(cogo_radius2)) { //if radius2 is empty this is a curve\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding), NumberFormat);\n }\n else { // it is a spiral\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding),NumberFormat);\n radius2Str = Radius2Abbr + \" \" + text(round(cogo_radius2, DistUnitRounding),NumberFormat);\n if (cogo_radius == 0) { //substitute to infinity sign\n radiusStr = RadiusAbbr + \" ∞ \";\n }\n if (cogo_radius2 == 0) { //substitute to infinity sign\n radius2Str = Radius2Abbr + \" ∞ \";\n }\n } \n \n }\n}\n\n// Curve Parameter\nif (ShowCurveParameter) {\n if (!IsEmpty(cogo_arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = text(round(cogo_arclength, DistUnitRounding), NumberFormat); //return Arc length\n }\n angleRad = cogo_arclength/(abs(cogo_radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = DMS_North(angleRad * 180 / pi); // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = text(round((2 * abs(cogo_radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat); //calculate chord length\n } \n }\n}\n\n//Determine type of curve displayed\nvar CurveTypePrefix = \"\"\nif (!IsEmpty(curveStr)){\n if (CurveParameter == 'ArcLength'){\n CurveTypePrefix = ArclengthAbrr\n }\n else if (CurveParameter == 'Angle'){\n CurveTypePrefix = AngleAbbr\n }\n else if (CurveParameter == 'Chord'){\n CurveTypePrefix = ChordAbbr\n }\n}\n\nvar isStraightLine = IsEmpty(radiusStr) && IsEmpty(radius2Str) && IsEmpty(curveStr)\n\n// Assemble label string\n\n//Straight lines\nif (isStraightLine){\n if (!IsEmpty(directionStr) && !IsEmpty(distanceStr)){ //If Direction and Distance are both NOT Empty\n return fontNameSize + \"\" + directionStr + \"<\/CLR>\" + \"\\n\" +\n \"\" + distanceStr + \"<\/CLR><\/FNT>\";\n }\n else if (IsEmpty(directionStr)){ //If Direction is empty\n return fontNameSize + \"\" +\n distanceStr + \"<\/CLR><\/FNT>\";\n }\n else{ //If Distance is empty\n return fontNameSize + \"\" + directionStr + \"<\/CLR><\/FNT>\";\n }\n}\n\n//Curves\n//If one or both radii and the curve string are NOT empty show the full curve\nif ((!IsEmpty(radiusStr) || !IsEmpty(radius2Str)) && !IsEmpty(curveStr)){\n return fontNameSize + \"\" + radiusStr + \"<\/CLR>\" + \" \" +\n \"\" + radius2Str + \"<\/CLR>\" + \"\\n\" +\n \"\" + CurveTypePrefix + ' ' +\n curveStr + \"<\/CLR><\/FNT>\";\n}\n//If the curve is empty\nelse if (IsEmpty(curveStr)){\n return fontNameSize + \"\" + radiusStr + \"<\/CLR>\" + \" \" +\n \"\" + radius2Str + \"<\/CLR><\/FNT>\"\n}\n//If both radius are empty\nelse{\n return fontNameSize + \"\" + CurveTypePrefix + ' ' +\n curveStr + \"<\/CLR><\/FNT>\";\n}", "title": "DirectionAndDistance" }, "lineOrientation": "direction", "labelPlacement": "esriServerLinePlacementBelowStart", "textLayout": "followFeature", "deconflictionStrategy": "static", "lineConnection": "none", "multiPart": "labelPerFeature", "offsetDistance": 3, "stackLabel": false, "removeDuplicates": "none", "useCodedValues": false, "maxScale": 0, "minScale": 2000, "name": "Direction and Distance", "priority": -1, "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 ], "haloSize": 2, "font": { "family": "Tahoma", "size": 10, "style": "normal", "weight": "normal", "decoration": "none" } } } ] }, "defaultVisibility": false, "extent": { "xmin": 1472729.2395833135, "ymin": 639752.4791666418, "xmax": 1647962.1666666418, "ymax": 773522.8958333135, "spatialReference": { "wkid": 102719, "latestWkid": 2264, "xyTolerance": 0.003280833333333333, "zTolerance": 2, "mTolerance": 0.001, "falseX": -121841900, "falseY": -93659000, "xyUnits": 3.6365718124241434E7, "falseZ": 0, "zUnits": 1, "falseM": -100000, "mUnits": 10000 } }, "hasAttachments": false, "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", "displayFieldExpressionInfo": { "expression": "// Change the settings portion to configure direction format, rounding and abbreviations\n// This is an Arcade expression\n\n// SETTINGS\nvar ShowDistance = true; //set as 'true' to show distance\nvar ShowDirection = true; //set as 'true' to show direction\nvar DirectionType = 1; // 1 = Quadrant Bearing; 2 = North Azimuth; 3 = South Azimuth\nvar ShowRadius = true; //set as 'true' to show radius\nvar ShowCurveParameter = 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 = 'L='; //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\n\n// VARIABLES\nvar cogo_direction = $feature.Direction;\nvar cogo_distance = $feature.Distance;\nvar cogo_radius = $feature.Radius;\nvar cogo_arclength = $feature.Arclength;\nvar cogo_radius2 = $feature.Radius2\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 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.\n\nif (IsEmpty(cogo_direction) && IsEmpty(cogo_distance) && IsEmpty(cogo_radius) && IsEmpty(cogo_radius2) && IsEmpty(cogo_arclength)){\n return \"\"\n}\n\nfunction NorthAzimuth2Quadbearing(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'Quadrant', angleType: 'DMS', outputType: 'text', format: 'pd[°]mm[\\']ss[\"]b'})\n}\n\nfunction DMS_North(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'North', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction DMS_South(azimuth){\n return ConvertDirection(azimuth, {directionType:'North', angleType: 'Degrees'}, {directionType:'South', angleType: 'DMS', outputType: 'text', format: 'd[°]mm[\\']ss[\"]'})\n}\n\nfunction IsValidCOGO(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2) {\n binaryDictionary= Dictionary('dir', 1, 'dist',2, 'rad',4, 'arc',8, 'rad2',16)\n if (!IsEmpty(cogo_direction)) {checksum+=binaryDictionary.dir}\n if (!IsEmpty(cogo_distance)) {checksum+=binaryDictionary.dist}\n if (!IsEmpty(cogo_radius)) {checksum+=binaryDictionary.rad}\n if (!IsEmpty(cogo_arclength)) {checksum+=binaryDictionary.arc}\n if (!IsEmpty(cogo_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,17,20,21,24,25,27,28]; //array of partial combinations: '1' for only direction, '2' for only distance, '4' for only radius...\n //Invalid Values = [6,7,10,11,14,15,18,19,22,23,26,30,31]\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\nfunction COGOTypePrefixPostfix(cogotypeValue){\n if (ShowCOGOType){\n if (cogotypeValue == 1) { //Entered\n return COGOType_Entered\n }\n else if(cogotypeValue == 2) { //From Geometry\n return COGOType_FromGeom\n }\n else if(cogotypeValue == 3) { //Computed\n return COGOType_Computed\n }\n else { //If not set or invalid value\n return ['', '']\n }\n }\n else{\n return(['', ''])\n }\n}\n\nCOGOValidity = IsValidCOGO(cogo_direction, cogo_distance, cogo_radius, cogo_arclength, cogo_radius2);\nif ( COGOValidity == \"invalid\") { //if invalid COGO return error string\n return ErrorString;\n}\n\n\n// Direction string\nif (ShowDirection) {\n if (IsEmpty(cogo_direction)==false) {\n if (DirectionType == 1) { //using quadrant bearing format\n directionStr = NorthAzimuth2Quadbearing(cogo_direction);\n }\n else if (DirectionType == 2) { //using north azimuth format\n directionStr = DMS_North(cogo_direction);\n }\n else if (DirectionType == 3) { //using south azimuth format\n directionStr = DMS_South(cogo_direction);\n }\n }\n}\n\n// Distance string\nif (ShowDistance) {\n if (IsEmpty(cogo_distance)==false) {\n distanceStr = text(round(cogo_distance,DistUnitRounding), NumberFormat);\n }\n}\n\n//Radius String\nif (ShowRadius) {\n if (!IsEmpty(cogo_radius)) { //it can be a curve or a spiral\n if (IsEmpty(cogo_radius2)) { //if radius2 is empty this is a curve\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding), NumberFormat);\n }\n else { // it is a spiral\n radiusStr = RadiusAbbr + \" \" + text(round(cogo_radius, DistUnitRounding),NumberFormat);\n radius2Str = Radius2Abbr + \" \" + text(round(cogo_radius2, DistUnitRounding),NumberFormat);\n if (cogo_radius == 0) { //substitute to infinity sign\n radiusStr = RadiusAbbr + \" ∞ \";\n }\n if (cogo_radius2 == 0) { //substitute to infinity sign\n radius2Str = Radius2Abbr + \" ∞ \";\n }\n }\n\n }\n}\n\n// Curve Parameter\nif (ShowCurveParameter) {\n if (!IsEmpty(cogo_arclength)) {\n if (CurveParameter == 'ArcLength') {\n curveStr = text(round(cogo_arclength, DistUnitRounding), NumberFormat); //return Arc length\n }\n angleRad = cogo_arclength/(abs(cogo_radius)) //calculate angle in radians\n if (CurveParameter == 'Angle') {\n curveStr = DMS_North(angleRad * 180 / pi); // convert radian to degrees and show as DMS\n }\n if (CurveParameter == 'Chord') {\n curveStr = text(round((2 * abs(cogo_radius) * Sin(angleRad/2)),DistUnitRounding), NumberFormat); //calculate chord length\n }\n }\n}\n\n//Determine type of curve displayed\nvar CurveTypePrefix = \"\"\nif (!IsEmpty(curveStr)){\n if (CurveParameter == 'ArcLength'){\n CurveTypePrefix = ArclengthAbrr\n }\n else if (CurveParameter == 'Angle'){\n CurveTypePrefix = AngleAbbr\n }\n else if (CurveParameter == 'Chord'){\n CurveTypePrefix = ChordAbbr\n }\n}\n\nvar isStraightLine = IsEmpty(radiusStr) && IsEmpty(radius2Str) && IsEmpty(curveStr)\n\n\n// Assemble label string\nif (isStraightLine){\n if (!IsEmpty(directionStr) && !IsEmpty(distanceStr)){ //If Direction and Distance are both NOT Empty\n return directionStr + ' ' + distanceStr;\n }\n else if (IsEmpty(directionStr)){ //If Direction is empty\n return distanceStr;\n }\n else{ //If Distance is empty\n return directionStr\n }\n}\n\n//Curves\n//If one or both radii and the curve string are NOT empty show the full curve\nif ((!IsEmpty(radiusStr) || !IsEmpty(radius2Str)) && !IsEmpty(curveStr)){\n return radiusStr + \" \" + radius2Str + ' ' + CurveTypePrefix + ' ' + curveStr;\n}\n//If the curve is empty\nelse if (IsEmpty(curveStr)){\n return radiusStr + \" \" + radius2Str\n}\n//If both radius are empty\nelse{\n return CurveTypePrefix + ' ' + curveStr;\n}\n\n\n", "title": "Custom" }, "displayField": "Book_Page", "typeIdField": "LINE_TYPE", "subtypeFieldName": "LINE_TYPE", "subtypeField": "LINE_TYPE", "defaultSubtypeCode": 1, "fields": [ { "name": "OBJECTID", "type": "esriFieldTypeOID", "alias": "OBJECTID", "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": "Book_Page", "type": "esriFieldTypeString", "alias": "Book_Page", "length": 50, "domain": null }, { "name": "Recorded_Date", "type": "esriFieldTypeDate", "alias": "Recorded_Date", "length": 8, "domain": null }, { "name": "FTR_CODE", "type": "esriFieldTypeString", "alias": "FTR_CODE", "length": 20, "domain": { "type": "codedValue", "name": "Parcel_Lines_Feature_Codes", "description": "Valid feature codes for the parcel lines feature class", "codedValues": [ { "name": "BRIDGE-LINE", "code": "BRIDGE-LINE" }, { "name": "EASEMENT-IE", "code": "EASEMENT-IE" }, { "name": "EASEMENT-MISC", "code": "EASEMENT-MISC" }, { "name": "EASEMENT-RR", "code": "EASEMENT-RR" }, { "name": "EASEMENT-UTIL", "code": "EASEMENT-UTIL" }, { "name": "GAS-PIPELINE", "code": "GAS-PIPELINE" }, { "name": "INT-ROW-LINE", "code": "INT-ROW-LINE" }, { "name": "LAKE", "code": "LAKE" }, { "name": "LAKE-H", "code": "LAKE-H" }, { "name": "LEADER-LINE", "code": "LEADER-LINE" }, { "name": "LOT-LINE", "code": "LOT-LINE" }, { "name": "PARCEL", "code": "PARCEL" }, { "name": "PARCEL-COUNTY", "code": "PARCEL-COUNTY" }, { "name": "PARCEL-DISPUTED", "code": "PARCEL-DISPUTED" }, { "name": "PARCEL-HOOK", "code": "PARCEL-HOOK" }, { "name": "RIVER", "code": "RIVER" }, { "name": "RIVER-H", "code": "RIVER-H" }, { "name": "ROAD-ROW", "code": "ROAD-ROW" }, { "name": "ROAD-ROW-H", "code": "ROAD-ROW-H" }, { "name": "ROAD-ROW-PROPOSED", "code": "ROAD-ROW-PROPOSED" }, { "name": "RR-ROW", "code": "RR-ROW" }, { "name": "STREAM", "code": "STREAM" }, { "name": "STREAM-H", "code": "STREAM-H" }, { "name": "EASEMENT-GAS", "code": "EASEMENT-GAS" }, { "name": "EASEMENT-WATER", "code": "EASEMENT-WATER" }, { "name": "EASEMENT-SEWER", "code": "EASEMENT-SEWER" }, { "name": "PUE", "code": "PUE" }, { "name": "EASEMENT-STORM", "code": "EASEMENT-STORM" }, { "name": "RETIRED", "code": "RETIRED" }, { "name": "CONFLICT", "code": "CONFLICT" } ], "mergePolicy": "esriMPTDefaultValue", "splitPolicy": "esriSPTDuplicate" } }, { "name": "LINE_TYPE", "type": "esriFieldTypeSmallInteger", "alias": "LINE_TYPE", "domain": null }, { "name": "created_user", "type": "esriFieldTypeString", "alias": "created_user", "length": 255, "domain": null }, { "name": "created_date", "type": "esriFieldTypeDate", "alias": "created_date", "length": 8, "domain": null }, { "name": "last_edited_user", "type": "esriFieldTypeString", "alias": "last_edited_user", "length": 255, "domain": null }, { "name": "last_edited_date", "type": "esriFieldTypeDate", "alias": "last_edited_date", "length": 8, "domain": null }, { "name": "GlobalID", "type": "esriFieldTypeGlobalID", "alias": "GlobalID", "length": 38, "domain": null }, { "name": "Shape.STLength()", "type": "esriFieldTypeDouble", "alias": "Shape.STLength()", "domain": null } ], "geometryField": {}, "indexes": [ { "name": "UUID_31", "fields": "GlobalID", "isAscending": true, "isUnique": true, "description": "" } ], "types": [ { "domains": { "FTR_CODE": {"type": "inherited"} }, "id": 1, "name": "Parcel Line" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "id": 2, "name": "Easement" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "id": 3, "name": "Hooks" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "id": 4, "name": "Hydro" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "id": 5, "name": "Leader Line" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "id": 6, "name": "Lot Line" } ], "subtypes": [ { "domains": { "FTR_CODE": {"type": "inherited"} }, "defaultValues": { "Book_Page": null, "Recorded_Date": null, "FTR_CODE": "PARCEL", "LINE_TYPE": null, "Direction": null, "Distance": null, "Radius": null, "ArcLength": null, "Radius2": null, "created_user": null, "created_date": null, "last_edited_user": null, "last_edited_date": null, "GlobalID": null }, "code": 1, "name": "Parcel Line" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "defaultValues": { "Book_Page": null, "Recorded_Date": null, "FTR_CODE": "EASEMENT-IE", "LINE_TYPE": null, "Direction": null, "Distance": null, "Radius": null, "ArcLength": null, "Radius2": null, "created_user": null, "created_date": null, "last_edited_user": null, "last_edited_date": null, "GlobalID": null }, "code": 2, "name": "Easement" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "defaultValues": { "Book_Page": null, "Recorded_Date": null, "FTR_CODE": "PARCEL-HOOK", "LINE_TYPE": null, "Direction": null, "Distance": null, "Radius": null, "ArcLength": null, "Radius2": null, "created_user": null, "created_date": null, "last_edited_user": null, "last_edited_date": null, "GlobalID": null }, "code": 3, "name": "Hooks" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "defaultValues": { "Book_Page": null, "Recorded_Date": null, "FTR_CODE": "STREAM", "LINE_TYPE": null, "Direction": null, "Distance": null, "Radius": null, "ArcLength": null, "Radius2": null, "created_user": null, "created_date": null, "last_edited_user": null, "last_edited_date": null, "GlobalID": null }, "code": 4, "name": "Hydro" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "defaultValues": { "Book_Page": null, "Recorded_Date": null, "FTR_CODE": "LEADER-LINE", "LINE_TYPE": null, "Direction": null, "Distance": null, "Radius": null, "ArcLength": null, "Radius2": null, "created_user": null, "created_date": null, "last_edited_user": null, "last_edited_date": null, "GlobalID": null }, "code": 5, "name": "Leader Line" }, { "domains": { "FTR_CODE": {"type": "inherited"} }, "defaultValues": { "Book_Page": null, "Recorded_Date": null, "FTR_CODE": "LOT-LINE", "LINE_TYPE": null, "Direction": null, "Distance": null, "Radius": null, "ArcLength": null, "Radius2": null, "created_user": null, "created_date": null, "last_edited_user": null, "last_edited_date": null, "GlobalID": null }, "code": 6, "name": "Lot Line" } ], "relationships": [], "canModifyLayer": true, "canScaleSymbols": false, "hasLabels": true, "capabilities": "Map,Query,Data", "maxRecordCount": 1000, "supportsStatistics": true, "supportsExceedsLimitStatistics": true, "supportsAdvancedQueries": true, "supportedQueryFormats": "JSON, geoJSON, PBF", "isDataVersioned": true, "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": "Eastern Standard Time", "respectsDaylightSaving": true }, "preferredTimeReference": null, "datesInUnknownTimezone": false, "hasGeometryProperties": true, "geometryProperties": { "shapeLengthFieldName": "Shape.STLength()", "units": "esriFeet", "mapUnits": {"uwkid": 9003} }, "hasMetadata": true, "isDataArchived": false, "archivingInfo": { "supportsQueryWithHistoricMoment": false, "startArchivingMoment": -1 }, "supportsCoordinatesQuantization": true, "supportsDynamicLegends": true }, { "currentVersion": 11.1, "cimVersion": "3.1.0", "id": 2, "name": "Working Tax Parcels", "type": "Feature Layer", "description": "", "geometryType": "esriGeometryPolygon", "sourceSpatialReference": { "wkid": 102719, "latestWkid": 2264, "xyTolerance": 0.0208333333333333, "zTolerance": 2.0E-5, "mTolerance": 0.001, "falseX": -1.2184189999999982E8, "falseY": -9.365899999999987E7, "xyUnits": 1536.0000000000025, "falseZ": 0, "zUnits": 1, "falseM": 0, "mUnits": 1 }, "copyrightText": "", "parentLayer": null, "subLayers": [], "minScale": 20000, "maxScale": 0, "referenceScale": 0.0, "drawingInfo": { "renderer": { "type": "simple", "symbol": { "type": "esriSFS", "style": "esriSFSForwardDiagonal", "color": [ 255, 0, 197, 255 ], "outline": null } }, "scaleSymbols": true, "transparency": 0, "labelingInfo": null }, "defaultVisibility": true, "extent": { "xmin": 1472729.2395833135, "ymin": 639914.0520833135, "xmax": 1647962.1666666418, "ymax": 773483.5833333135, "spatialReference": { "wkid": 102719, "latestWkid": 2264, "xyTolerance": 0.003280833333333333, "zTolerance": 2, "mTolerance": 0.001, "falseX": -121841900, "falseY": -93659000, "xyUnits": 3.6365718124241434E7, "falseZ": 0, "zUnits": 1, "falseM": -100000, "mUnits": 10000 } }, "hasAttachments": false, "htmlPopupType": "esriServerHTMLPopupTypeAsHTMLText", "displayField": "PARCEL_ID", "typeIdField": null, "subtypeFieldName": null, "subtypeField": null, "defaultSubtypeCode": null, "fields": [ { "name": "OBJECTID", "type": "esriFieldTypeOID", "alias": "OBJECTID", "domain": null }, { "name": "PARCEL_ID", "type": "esriFieldTypeString", "alias": "PARCEL_ID", "length": 20, "domain": null }, { "name": "FTR_CODE", "type": "esriFieldTypeString", "alias": "FTR_CODE", "length": 20, "domain": { "type": "codedValue", "name": "Parcel_Polygon_Feature_Codes", "description": "Valid feature codes for parcel polygons", "codedValues": [ { "name": "PARCEL", "code": "PARCEL" }, { "name": "PARCEL-COUNTY", "code": "PARCEL-COUNTY" }, { "name": "PARCEL-DISPUTED", "code": "PARCEL-DISPUTED" }, { "name": "RR-ROW", "code": "RR-ROW" } ], "mergePolicy": "esriMPTDefaultValue", "splitPolicy": "esriSPTDuplicate" } }, { "name": "RW_CODE", "type": "esriFieldTypeString", "alias": "RW_CODE", "length": 1, "domain": { "type": "codedValue", "name": "RW_Code", "description": "", "codedValues": [ { "name": "Y", "code": "Y" }, { "name": "N", "code": "N" } ], "mergePolicy": "esriMPTDefaultValue", "splitPolicy": "esriSPTDuplicate" } }, { "name": "PIN", "type": "esriFieldTypeString", "alias": "PIN", "length": 20, "domain": null }, { "name": "PARENT_PIN", "type": "esriFieldTypeString", "alias": "PARENT_PIN", "length": 20, "domain": null }, { "name": "CALCACRE", "type": "esriFieldTypeDouble", "alias": "CALCACRE", "domain": null }, { "name": "Deed_Acreage", "type": "esriFieldTypeDouble", "alias": "Deed_Acreage", "domain": null }, { "name": "Type_of_Edit", "type": "esriFieldTypeString", "alias": "Type_of_Edit", "length": 20, "domain": { "type": "codedValue", "name": "TypeOfEdit", "description": "ROWAN.parcel_polygons_Type_of_Edit", "codedValues": [ { "name": "AC CHANGE", "code": "AC CHANGE" }, { "name": "Attribute Change", "code": "Attribute Change" }, { "name": "Merge", "code": "Merge" }, { "name": "OTHER", "code": "OTHER" }, { "name": "Remap", "code": "Remap" }, { "name": "ROW Change", "code": "ROW Change" }, { "name": "Split", "code": "Split" }, { "name": "Sub_Move", "code": "Sub_Move" }, { "name": "Split and Combine", "code": "Split and Combine" } ], "mergePolicy": "esriMPTDefaultValue", "splitPolicy": "esriSPTDefaultValue" } }, { "name": "Book_Page", "type": "esriFieldTypeString", "alias": "Book_Page", "length": 50, "domain": null }, { "name": "Notes", "type": "esriFieldTypeString", "alias": "Notes", "length": 255, "domain": null }, { "name": "GlobalID", "type": "esriFieldTypeGlobalID", "alias": "GlobalID", "length": 38, "domain": null }, { "name": "created_user", "type": "esriFieldTypeString", "alias": "created_user", "length": 255, "domain": null }, { "name": "created_date", "type": "esriFieldTypeDate", "alias": "created_date", "length": 8, "domain": null }, { "name": "last_edited_user", "type": "esriFieldTypeString", "alias": "last_edited_user", "length": 255, "domain": null }, { "name": "last_edited_date", "type": "esriFieldTypeDate", "alias": "last_edited_date", "length": 8, "domain": null }, { "name": "Shape", "type": "esriFieldTypeGeometry", "alias": "Shape", "domain": null }, { "name": "Shape.STArea()", "type": "esriFieldTypeDouble", "alias": "Shape.STArea()", "domain": null }, { "name": "Shape.STLength()", "type": "esriFieldTypeDouble", "alias": "Shape.STLength()", "domain": null } ], "geometryField": { "name": "Shape", "type": "esriFieldTypeGeometry", "alias": "Shape" }, "indexes": [ { "name": "R32_pk", "fields": "OBJECTID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "UUID_32", "fields": "GlobalID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "UUID_OID_32", "fields": "GlobalID,OBJECTID", "isAscending": true, "isUnique": true, "description": "" }, { "name": "S18_idx", "fields": "Shape", "isAscending": true, "isUnique": true, "description": "" } ], "subtypes": [], "relationships": [], "canModifyLayer": true, "canScaleSymbols": false, "hasLabels": true, "capabilities": "Map,Query,Data", "maxRecordCount": 1000, "supportsStatistics": true, "supportsExceedsLimitStatistics": true, "supportsAdvancedQueries": true, "supportedQueryFormats": "JSON, geoJSON, PBF", "isDataVersioned": true, "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": "Eastern Standard Time", "respectsDaylightSaving": true }, "preferredTimeReference": null, "datesInUnknownTimezone": false, "hasGeometryProperties": true, "geometryProperties": { "shapeAreaFieldName": "Shape.STArea()", "shapeLengthFieldName": "Shape.STLength()", "units": "esriFeet", "mapUnits": {"uwkid": 9003} }, "hasMetadata": true, "isDataArchived": false, "archivingInfo": { "supportsQueryWithHistoricMoment": false, "startArchivingMoment": -1 }, "supportsCoordinatesQuantization": true, "supportsDynamicLegends": true } ], "tables": [] }