How can I create a solid color-filled markersymbol from an existing non-filled markersymbol?
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:
CALC $id = 7
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.
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.
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
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 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 and MARKERSAVE commands.