Maptitude GISDK Help |
You can create your own coordinate system definitions and make them available in the Projection and Coordinate System dialog box. If the file userprj (with no extension) is in the Maptitude program folder, a User Defined choice will be added to the end of the Class drop-down list on the Coordinate System tab, and the projections and coordinate systems defined in that file will be shown in the System drop-down list. If you make changes to the userprj file, you must restart Maptitude for the changes to take effect. Here is an example of the contents of a userprj file:
# User Projections and Coordinate Systems
<akred> # Alaska Redistricting
#: ;Alaska;Alaska Redistricting;ft;
proj=aea a=6378137 es=.0066943800229
lon_0=141W lat_0=65N lat_1=55N lat_2=65N
x_0=0 y_0=0
no_defs <>
<mycs> # My Coordinate System
#: ;My Coord Sys; ;us-mi;_xx=.01,_xy=0,_yx=0,_yy=.01,_tx=0,_ty=2000
proj=utm ellps=GRS80 zone=11
no_defs <>
The structure of this file is quite simple. Anything after a pound (#) sign is a comment, with the exception of the special comment explained below. A zone identifier in angled brackets starts a definition, such as <akred>, and empty angled brackets end a definition. Typically the keyword no_defs appears just before the end, to indicate that the standard values for missing options are not to be used.
Inside the definition is the special comment starting with #: that is used for the information in the dialog box, plus some special parameters. It should be the first line after the zone identifier. For example, for the Austria Central Zone, a standard coordinate system:
#:Europe;Austria;Central Zone;m;
means the class is Europe, the system is Austria, the zone is Central Zone, and the coordinate units default to meters. See Units for the list of available units.
Because User Defined is already the class for definitions in userprj, the class is ignored. If there is no zone, you can leave that blank, as in the <mycs> definition. That definition also shows the parameters that you can use to define an extra linear transformation for import and export only, which are applied after the standard projection from longitude/latitude in the following way:
xt = x * _xx + y * _xy + _tx
yt = x * _yx + y * _yy + _ty
The units of the transformation will be the units specified in the special comment. An alternate and preferred way to do a transformation is to change the default units and use the false easting (x_0) and northing (y_0) options.
There are several other parameters you can use to control the use of projections or coordinate systems that should only be used for limited areas:
Parameter |
Description |
_cdist |
Restrict the scope to be within _cdist miles of the center of the projection, as measured from the scope's center |
_hlimit |
Maximum scope height, in miles |
_wlimit |
Maximum scope width, in miles |
_limit |
Maximum for both scope height and scope width, in miles |
Following the special comment are the option strings for the projection or coordinate system:
Option String |
Description |
proj=name |
The projection, from the list at Custom Coordinate System. If the projection is not marked as having an inverse, then it cannot be used for importing. |
ellps=name |
The ellipsoid, for the projections marked as having an elliptical form at Custom Coordinate System. The ellipsoid can also be defined with the a=len (major axis) option string plus the b=len, e=num, es=num, f=num, or rf=num option string. |
zone=num |
The zone, for coordinate systems that have zones, such as UTM and Gauss-Kruger. |
The additional option strings are those listed as valid parameters for the projection at Custom Coordinate System. You should not use the units=abbr option string; instead, set the units in the special comment.
©2025 Caliper Corporation | www.caliper.com |