English

Bug: Curved leader lines are unsatisfactory when converting coverage annotation to geodatabase annotation

Description

After using ArcMap to convert coverage annotation to geodatabase annotation, curved leader lines are very thick and arrowheads are not visible.

Cause

When converting coverage annotation, ArcMap is not correctly converting the leader line thickness.

After conversion, annotation with leader lines is symbolized with a text symbol that has a Simple Line Callout. This line is always 1.0 points thick at the geodatabase annotation's reference scale. ArcMap is unable to correctly calculate a better thickness depending on the reference scale and $SIZE value for the converted annotation.

The converted leader lines will scale, becoming thicker when zooming in and thinner when zooming out, because all ArcGIS text symbol backgrounds will scale with the reference scale. This is correct behavior.

Workaround

There are three ways to work around or correct this problem:

  • Specify an artificially large reference scale for the target geodatabase feature class. For example, specify 1:50 instead of 1:6,000.

    This will not affect the text size if $SIZE does not equal 0 for any of the annotation. If any annotation has $SIZE equals 0, this cannot be done. Specifying an artificially large reference scale also fixes the problem of arrowheads not appearing.
  • After converting, start editing and make the leader lines thinner. For example, use a thickness of 0.1 points instead of 1.0 points. This does not fix the missing arrowheads problem.
  • A. Use a sample AML to convert the coverage annotation leader lines to a line feature class in ArcInfo Workstation.

    /* =======================================================================
    /* Name: arrow2lines.aml
    /* Purpose: creates line coverage from annotation arrows,
    /* if this coverage already exists, it will be deleted.
    /* Tis aml assumes:
    /* - annotation has to have subclass name,
    /* - only one annotation subclass per coverage,
    /* Usage: Arc: &r arrow2lines
    /* Arguments: - name of the coverage with annotation
    /* - name of the annotation subclass
    /* Date: Jul 20 2000
    /* Author: ESRI
    /* =======================================================================

    &args incover sub

    &severity &error &routine bailout
    /*&echo &brief

    /* ERROR CHECKING AND CLEAN UP...
    &if [null %incover%] or [null %sub%] &then
    &return &error Usage: &r arrow2lines
    &if ^ [exists %incover% -cover] &then
    &return &error Coverage %incover% doesn't exist
    &if [exists %incover%line -cover] &then
    kill %incover%line all

    &describe %incover%
    &s numannos = %DSC$ANNOS%
    &if %numannos% = 0 &then
    &return &error Annotation not present in the coverage

    &if [exists lincov.gen -file] &then
    &s delstat = [delete lincov.gen -file]

    /* OPEN A GENERATE FILE
    &s funit = [open lincov.gen openstat -write]

    /* MAIN PROCESSING - FIND OUT WHICH ANNOTATIONS HAVE ARROWS,
    /* READ ARROWS COORDINATES AND WRITE THEM TO ASCII, GENERATE FILE.
    display 0
    ae
    ec %incover%
    ef anno.%sub%
    sel all
    &s j = 0
    cursor open
    &do &while %:edit.AML$NEXT%
    &s arrowpnts = [show anno.%sub% [show select 1] narrow]
    &if %arrowpnts% > 0 &then &do
    &s j = %j% + 1
    &s record = %j%
    &s writestat = [write %funit% %record%]
    &do i = 1 &to %arrowpnts%
    &s arrow%j%pnt%i% = [show anno.%sub% [show select 1] arrow %i%]
    &s record = [value arrow%j%pnt%i%]
    &s writestat = [write %funit% %record%]
    &end
    &s record = END
    &s writestat = [write %funit% %record%]
    &end
    cursor next
    &end
    &s record = END
    &s writestat = [write %funit% %record%]
    &s closestat = [close %funit%]
    cursor close
    quit /* from ARCEDIT
    n

    /* GENERATE LINE COVERAGE FROM ASCII FILE
    generate %incover%line
    input lincov.gen
    line
    quit
    build %incover%line line

    /* SHOWING THE RESULTS
    ae
    &if [extract 1 [show display]] ne 9999 &then
    display 9999
    ec %incover%
    de arc anno.%sub%
    bc %incover%line 2
    be arc
    draw
    &echo &off

    &ty NOW ZOOM IN TO THE PLACE WHERE YOU KNOW THERE ARE ANNO ARROWS
    &ty YOU CAN ZOOM IN COUPLE TIMES, ONCE YOU FIND A GOOD SPOT,
    &ty PRESS ANY KEY TO CONTINUE AN AML....
    &ty
    &pause

    de anno.%sub% off
    draw

    &ty WHAT YOU SEE IN RED COLOR, ARE LINES SIMULATING ANNOTATION ARROWS
    &ty

    &return

    &routine bailout
    &severity &error &ignore
    &if [show program] = ARCEDIT &then
    cursor close
    &s closestat = [close -all]
    &echo &off
    &return


    B. Import the lines as a line feature class in the geodatabase.