# SynclineQry # Line CartoScript to draw the geologic line # style for a syncline. # Script from Using CartoScripts tutorial. # Read a logical database field (Yes/No) to check if syncline is # overturned. Numeric variable is set to 1 if yes, 0 if no overturned = Syncline.Overturned; # dimensions of arrow symbols arrowSize = 30; halfSize = arrowSize * 0.5; headSize = 0.5 * arrowSize; sweepAngle = 45; stemSize = arrowSize - headSize * cosd(sweepAngle); width = 2; # width of lines # Parameters for half circle in overturned syncline symbol angle = 0; shift = halfSize; # angle and distance to center of arc radius_x = halfSize; # radii of arc radius_y = halfSize; startAngle = -180; swpAngle = -180; rotAngle = 0; isAngleAbs = 0; # Set line color, width, and draw fold line. LineStyleSetColor(228,0,0); LineStyleSetLineWidth(width); LineStyleDrawLine(); # Draw arrow symbols in middle of each line LineStyleSetPosition(0.5); # move to middle of line if ( overturned == 1 ) { # draw overturned syncline symbol # Draw arrows with 0 line width LineStyleRoll(-halfSize); LineStyleDropAnchor(1); LineStyleSetLineWidth(0); LineStyleMoveTo(-90, arrowSize); LineStyleDropAnchor(2); LineStyleDrawArrow(90, arrowSize, headSize, sweepAngle, 1); LineStyleMoveTo(0, arrowSize); LineStyleMoveTo(-90, arrowSize); LineStyleDropAnchor(3); LineStyleDrawArrow(90, arrowSize, headSize, sweepAngle, 1); # Draw arrow stems and arc with linewidth = width LineStyleSetLineWidth(width); LineStyleMoveToAnchor(2); LineStyleLineTo(90, stemSize); LineStyleMoveToAnchor(1); LineStyleDrawArc(angle, shift, radius_x, radius_y, startAngle, swpAngle, isAngleAbs); LineStyleMoveToAnchor(3); LineStyleLineTo(90, stemSize); } else { # draw upright syncline symbol # Draw arrows with 0 line width LineStyleDropAnchor(1); LineStyleSetLineWidth(0); LineStyleMoveTo(90, arrowSize); LineStyleDropAnchor(2); LineStyleDrawArrow(-90, arrowSize, headSize, sweepAngle, 1); LineStyleMoveToAnchor(1); LineStyleMoveTo(-90, arrowSize); LineStyleDropAnchor(3); LineStyleDrawArrow(90, arrowSize, headSize, sweepAngle, 1); # Redraw arrow stems LineStyleMoveToAnchor(2); LineStyleSetLineWidth(width); LineStyleLineTo(-90, stemSize); LineStyleMoveToAnchor(3); LineStyleLineTo(90, stemSize); }