English

How To: Create a solid-filled markersymbol from a non-solid symbol

Procedure

How can I create a solid color-filled markersymbol from an existing non-filled markersymbol?

Answer:

MARKERSYMBOLS are made up of fonts and patterns. As documented in Map Display and Query (Creating custom IGL fonts and patterns), solid-filled patterns need to have a user-id of 7. The following example demonstrates how to convert an existing font pattern to a solid-filling font pattern. To determine the specific font pattern for an existing markersymbol, use the MARKERINFO command in ARCPLOT.

For the following example, with a font 16 pattern 51 (the highway shield), the FONTARC command converts the pattern to a coverage that can be edited.

FONTARC 16 51 shield

The following shows the editing procedure in ARCEDIT:

EDITCOVER shield
EDITFEATURE arc
SELECT ALL
CALC $id = 7
UNSPLIT

The UNSPLIT command is used to ensure that the coverage has only one node. Solid filled patterns can only be comprised of one arc. It is always a good idea to use UNSPLIT. Even if the pattern consists of only one arc, UNSPLIT
does not do any harm.

SAVE
QUIT

Since the edited pattern cannot be placed into the font it came from, a new font needs to be made with the ARC command FONTCREATE. New fonts must be numbered between 26 and 40.

FONTCREATE 30

Once the font is created, the coverage can be converted to a font pattern. This is done with the ARC command ARCFONT.

ARCFONT shield 30 40

The following shows how to create the solid-filled markersymbol in ARCPLOT:

PAGESIZE 4 4
DISPLAY 9999
MARKERFONT 30
MARKERPATTERN 40
MARKERCOLOR red
MARKERSIZE 1
MARKER 2 2

At this point, a red solid-filled marker should appear on the display canvas. This information can be saved to an actual MARKERSYMBOL position using the ARCPLOT command MARKERPUT. MARKERPUT copies the marker symbol location number 1000 (the current marker symbol) to a specified marker number. In this way, the current markersymbol that was placed can be restored with the MARKERSYMBOL command.

MARKERPUT 998
MARKERSYMBOL 32
POINTS
MARKERSYMBOL 998

MARKERPUT is used to place the current marker symbol in markersymbol location number 998 before the current marker symbol is changed to MARKERSYMBOL 32.
After the POINTS from the coverage have been drawn, the MARKERSYMBOL command is used to restore the original marker symbol as the current marker symbol.

To save the current symbols to a markerset file, use the ARCPLOT command MARKERSAVE after issuing the MARKERPUT command instead of re-issuing the MARKERSYMBOL command.
MARKERPUT 998
MARKERPUT and MARKERSAVE commands.