Customization

Manifold may be customized to present user-specified choices in various dialogs, such as palettes and the projection dialog. Custom options are made available by adding .xml files to the Config folder within the main Manifold installation directory (located at C:\Program Files\Manifold System\Config by default).

 

In Windows 2000, Windows XP and later Windows operating systems, ordinary user accounts do not have permissions to modify files within the Program Files folder. If we are working in such systems we can still use the customization features of Manifold by altering the Config file location in Tools - Options - File Locations to a folder where we have write permissions.

 

Customization options allow customization of Manifold installations in many areas, to name a few of the most common examples:

 

·      Custom point styles taken from True Type fonts installed on the system.

·      Custom scalable styles for points, lines areas and labels.

·      Custom palettes and themes are used to color drawings or surfaces.

·      Custom units of measure

·      Custom ellipsoids

·      Custom datums

·      Custom datum grids for NTv2

·      Custom coordinate system (projection) presets

·      Custom layout templates for use with print layouts.

·      Command filters are XML files that specify which commands in the Manifold menu structure are enabled or disabled. Add-Ins that add commands to Manifold through scripts and configure toolbars.

·      Scripts may invoke and control user interface elements such as dialogs. See the User Interface Scripting topic.

·      Customized Geocoding Data Extensions providing additional geocoding data sources.

·      Customized Manifold Geocoding Servers using the Geocoding Server Interface to connect to web-based or other geocoding data servers.

·      Customized Manifold Image Servers using the Image Server Interface to connect to web-based or other image sources.

·      Manifold may be programmed in a variety of ways using scripting languages, SQL, web programming or custom applications written in popular programming languages: See the Programming Manifold topic.

 

Many customization features use XML to specify additions. See the topics above for detailed on XML syntax and rules. In general, the following rules apply:

 

·      XML (extended markup language) is used to specify both original factory settings and any options.

·      All .xml files located in the Config directory and all subdirectories thereof will be read by Manifold upon startup. Any valid specifications found in such files will be used.

·      Manifold's own "factory" settings are stored within the system itself. The factory settings may be overridden by providing .xml files that use the same names as the factory entities, if the Override system data with custom config files option is turned on (it is off by default) in the Miscellaneous page in Tools - Options.

·      DO NOT CHANGE the factory settings unless you are truly expert in Manifold and are ready to work without technical support from manifold.net.

·      When creating custom .xml specifications, the name of each custom item must be unique. Manifold keeps track of each customizable item by its name.

·      After adding any new XML specifications, restart Manifold so they are loaded and available in the system.

·      It makes sense to organize any custom additions into separate .xml files, one for palettes that are added, another for units of measure and so on. However, Manifold will parse all the .xml files found in the Config directory for valid attributes of any type in each of the files. One could therefore create a single .xml file, perhaps called MyCustomizations.xml, in which all customizations such as additional palettes, units of measure, custom ellipsoids, custom datums and a few custom projection presets are all kept.

·      If you have added any custom specifications in your .map files, you are responsible to make sure that the .xml files providing those custom specifications are installed on every machine on which those custom specifications will be used.

·      If you have purchased a technical support product from Manifold, support for customization requires developer level support.

·      A simple check against elementary mistakes is to double-click open an .xml file to view it in Internet Explorer. If it is reasonably correct, IE will be able to open it and to show the contents in text form.

 

When a custom specification (such as a palette) is used within a particular component, the information for that custom specification will be saved with the component so the component will display properly. However, if the required .xml is not present on the system on which the .map file is used, the specification will not be available for any further usage.

 

Editing .xml Files

 

.xml files may be edited with Notepad. They are simply ASCII text files containing XML tags (called attributes) similar to those found in ordinary HTML pages used on the web. For example, a file called MyAltitudes.xml might contain:

 

<xml>

<palette>

 <name>My Altitude Palette</name>

 <colors>

  <color>#ebeaba</color>

  <color>#e4e5a0</color>

  <color>#faebbe</color>

  <color>#fee2a8</color>

  <color>#ffc882</color>

 </colors>

</palette>

</xml>

 

The above specifies a simple palette of five colors. In addition to Notepad, some users may prefer to use an XML editor such as Microsoft's XML Notepad editor.

 

Predefined Items

 

Manifold includes "intrinsic" definitions for quantities that are used to define others. These root definitions are compiled into the product and do not appear in any .xml files. They are written below as they would appear if they were defined in XML:

 

<unit>

 <name>meter</name>

 <nick>m</nick>

 <nickArea>sq m</nickArea>

 <scale>1</scale>

</unit>

<unit>

 <name>degree</name>

 <nick>deg</nick>

 <nickArea>sq deg</nickArea>

 <scale>1</scale>

 <latLon>True</latLon>

</unit>

<ellipsoid>

 <name>WGS 84</name>

 <majorAxis>6378137</majorAxis>

 <invFlattening>298.257223563</invFlattening>

</ellipsoid>

<datum>

 <name> World Geodetic 1984 (WGS84)</name>

 <ellipsoid>WGS 84</ellipsoid>

 <centerX>0</centerX>

 <centerY>0</centerY>

 <centerZ>0</centerZ>

</datum>

 

Also included are presets for "plain" coordinate systems such as for Latitude / Longitude, Orthographic and others with default parameters.

 

Hexadecimal Numbers

 

Numbers written in hexadecimal form are written in a base 16 number system. Some XML customization attributes in Manifold, such as those used for point styles taken from a True Type font, can use hexadecimal numbers as an alternative to decimal numbers. Some attributes, such as the <color> attribute in palettes require the use of hexadecimal numbers.

 

Hexadecimal numbering uses the digits 1 through F to represent the numbers 1 through 15. One counts from 0 to 255 in hexadecimal using the sequence 0, 1, 2, 3, 4, 5, 6, 7, 8 , 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, …, E9, EA, EB, EC, ED, EE, EF, F1, F2, F3, F4, F5, F6, F7, F8, F9, FA, FB, FC, FD, FE, FF.

 

Hexadecimal numbers are convenient for use with numbers in computers because each digit can represent a full byte. Thus, two-byte quantities such as the integer numbers from 0 to 255 can be represented with two-digit hexadecimal numbers from 00 to FF. Thus when one sees a number such as 04A3FFCE one knows exactly the values of each byte that composes this eight-byte, 64-bit number. Hexadecimal numbers are widely used in the specification of RGB color values.

 

Since a hexadecimal number like "22" can appear to be a decimal numbers, hexadecimal numbers are normally prefixed with a "#" symbol when used in Manifold .xml specifications.

 

Tech Tip

 

Manifold cannot use any customizations if the .xml files do not contain XML that is exactly correct. A useful test before launching Manifold is to open any newly created or modified .xml file in Internet Explorer. Internet Explorer will show a correct .xml file in a simple text format. If Internet Explorer cannot parse the .xml file, Manifold won't be able to either.