PathAway Map Conversion Tools 3.0
TABLE OF CONTENTS
Installing
Command Line Batch Conversion Utility
- PWMapConvert.exe
Map Converter - Windows DLL - PWMapLib.DLL
API Map Definition Format
.PWM Map Definition Format
.JPR Map Definition Format
Installing
PWMapConvert.zip
The Map conversion tools are provided in the zip file PWMapConvert.zip.
Unzip this file into a folder on your hard drive. All the tools,
executables, Windows Header, Library, and DLL files are contained
in this zip file. Before starting, please check the Readme.txt in
the zip file.
Command Line Batch Conversion Utility
PWMapConvert.exe
PathAway Batch Converter takes a jpeg or bmp map as the import
file, and converts it to PathAway PRC format.
Command Line:
PWMapConvert MapFileName,[ImageDepth],[PathAwayMapName],[x],[y],[wd],[ht],[GridCount],[GridGenerate],
[LatTL],[LongTL],[LatBR],[LongBR],[Compression],[ScaleMul],[ScaleDiv]
Parameters:
MapFileName: full path to map filename.
Supports jpeg and bmp formats.
[PathAwayMapName]: full path to destination
PathAway File name. If blank will use the same name as the MapFileName.
[ImageDepth]: 4,8, or 16. Each number represents
bit depth.
[x],[y],[wd],[ht]: Crop value for the map
in pixels.
[GridCount]: number of sections to divide
the map into. Values 2, 3, 4, divide the map into 2x2, 3x3, 4x4
respectively. Each file gets name postfix added to it A1, A2, B1,
B2 etc. Letter value is longitude, numberic is latitude. Same as
in a spreadsheet app.
[GridGenerate]: specify grid ID if only
generating a section of the map. ie. If you just want the top left
section, specify A1.
[LatTL],[LongTL],[LatBR],[LongBR]: Top-left
bottom right coordinates. Can be in NSWE format, or decimal. negative
values are West, and South.
[Compression] None = No Compression. Default
= Compressed
[ScaleMul], [ScaleDiv]: Scale fraction.
ScaleMul/ScaleDiv. No scaling up.
Map Converter - Windows DLL
PWMapLib.DLL
The plugin DLL is a C language interface DLL.
Release Notes:
(3.10.02 - Oct 26 2004)
- Changed Functions to avoid conflict with DBConverter.
--PWSetSessionPtr changed to PWMapSetSessionPtr
--PWSetProgressCallback changed to PWMapSetProgressCallback
(3.10b1 - June 10 2004)
- Added Documentation for PWQVWinMobileMapConvert
(3.00b7 - Oct 15 2003)
- Added Documentation for PWQVMapConvert
- Added PWSetProgressCallback
(3.00b8 - Nov 26 2003) *** FUNCTION CHANGE
- Added PWSetSessionPtr
- Added session ptr to ProgressCallback
This version requires the Progress Callback to include the Session
Ptr.
(3.00b9 - Dec 1 2003) *** FUNCTION CHANGE
- Fixed 32 bit BMP conversion color error (no red)
PathAway Map API Calls.
(See PWMapLib.h)
PWMAPLIB_API PWInt32
PWMapConvert(char *fileName,
char *PathAwayMapName, PWInt16 maxImageDepth, PWInt16 compression,
PWInt16 leftMargin, PWInt16 topMargin, PWInt16 rightMargin, PWInt16
bottomMargin, char *pLocLatTL, char *pLocLongTL, char *pLocLatBR,
char *pLocLongBR, PWInt32 GridCount, PWInt32 GridGenX, PWInt32 GridGenY,
PWUInt16 scaleMul, PWUInt16 scaleDiv);
PWMAPLIB_API PWInt32
PWQVMapConvert(char *fileName,
char *PathAwayMapName, PWInt16 maxImageDepth, PWInt16 compression,
char *pMapDefinition);
PWMAPLIB_API PWInt32
PWSetProgressCallback(PWProgressCallbackPtr
pProgressFunc);
PWMapConvert
Convert to PathAway format using a Map Definition.
PWMAPLIB_API PWInt32
PWMapConvert(char *fileName, char *PathAwayMapName, PWInt16
maxImageDepth, PWInt16 compression, PWInt16 leftMargin, PWInt16
topMargin, PWInt16 rightMargin, PWInt16 bottomMargin, char *pLocLatTL,
char *pLocLongTL, char *pLocLatBR, char *pLocLongBR, PWInt32 GridCount,
PWInt32 GridGenX, PWInt32 GridGenY, PWUInt16 scaleMul, PWUInt16
scaleDiv);
This function allows the application to convert a map into PathAway
format. The images may be scaled or sliced into separate files.
Image depth and compression are required parameters.
Parameters:
FileName: full path to map filename.
Supports jpeg and bmp formats. Will look for calibration files of
the same name with different extensions to supplement parameters.
Calibration files always override these settings. Supported calibration
formats are .pwm, .jpr, .pca, and .cal. If using a calibration file
only, enter the data as follows: PWMapConvert("name.bmp",
NULL, 8, 1,0,0,0,0,0,0,0,0,0,0,0,1,1); name, image depth and compression
are required.
PathAwayMapName: full path to destination
PathAway File name. If NULL will use the same name as the MapFileName
ImageDepth: 4,8, or 16. Each number
represents bit depth. ImageDepth is the highest depth to convert
to. Image depth will only be decreased if its greater than the depth
specified here.
compressed: 1=compressed, 0=uncompressed.
Note: Palm OS supports compression in OS version 3.3 or higher.
All Windows Mobile versions support compression.
startX, startY, startWd, startHt:
Crop value for the map in pixels. Specify 0 for all 4 values if
no cropping.
pLocLatTL,pLocLongTL,pLocLatBR,pLocLongBR:
Top-left bottom right coordinates. Can be in NSWE format, or decimal.
Negative values are West, and South. Optional, can be NULL
GridCount: number of sections to divide
the map into. Values 0, 2, 3, 4, divide the map into 2x2, 3x3, 4x4
respectively. Each file gets name postfix added to it A1, A2, B1,
B2 etc. Letter value is longitude, numberic is latitude. Same as
in a spreadsheet app. Enter 0 for no grid division.
GridGenX, GridGenY: specify grid ID
if only generating a section of the map. ie. If you just want the
top left section, specify GridGenX=0, GridGenY=0. Only used
if grid count is greater than 1
ScaleMul, ScaleDiv: Scale fraction.
ScaleMul/ScaleDiv. Scaling up (ScaleMul > ScaleDiv) is not currently
supported. Specify 1,1 for no scaling.
Returns:
0 if successful.
non-zero if unsuccessful
PWQVMapConvert
Convert to PathAway for Palm OS using a Map Definition.
PWMAPLIB_API PWInt32
PWQVMapConvert(char *fileName, char *PalmMapName, PWInt16
maxImageDepth, PWInt16 compression, char *pMapDefinition);
This function allows the application to specify advanced mapping
parameters such as datum, projection, and multi-point calibration
coordinates. The pMapDefinition string is a null terminated string
containing the map calibration parameters. Each parameter is separated
by a line feed.
Parameters:
FileName: full path to map filename.
Supports jpeg and bmp formats.
PalmMapName: full path to destination
Palm File name. If NULL will use the same name as the MapFileName.
ImageDepth: 4,8, or 16. Each number
represents bit depth. ImageDepth is the highest depth to convert
to. Image depth will only be decreased if its greater than the depth
specified here.
compression: 1=compressed, 0=uncompressed.
Palm OS supports compression in OS version 3.3 or higher.
pMapDefinition: NULL terminated Map Definition string.
See API Map Definition Format
below.
Returns:
0 if successful.
non-zero if unsuccessful
PWQVWinMobileMapConvert
Convert to PathAway for Windows Mobile Format using a Map Definition.
PWMAPLIB_API PWInt32
PWQVWinMobileMapConvert(char *fileName, char *WMMapName,
PWInt16 maxImageDepth, PWInt16 compression, char *pMapDefinition);
This function allows the application to specify advanced mapping
parameters such as datum, projection, and multi-point calibration
coordinates. The pMapDefinition string is a null terminated string
containing the map calibration parameters. Each parameter is separated
by a line feed.
Parameters:
FileName: full path to map filename. Supports
jpeg and bmp formats.
PalmMapName: full path to destination File name. If NULL
will use the same name as the Map FileName.
ImageDepth: (UNIMPLEMENTED)
4,8, or 16. Each number represents bit depth. ImageDepth is the
highest depth to convert to. Image depth will only be decreased
if its greater than the depth specified here.
compression: (UNIMPLEMENTED)
1=compressed, 0=uncompressed. Palm OS supports compression in OS
version 3.3 or higher.
pMapDefinition: NULL terminated Map Definition string.
See API Map Definition Format
below.
Returns:
0 if successful.
non-zero if unsuccessful
PWMapSetProgressCallback (formerly PWSetProgressCallback)
This function allows the application to receive progress notification
and to allow the aborting of the processing.
PWMAPLIB_API PWInt32
PWMapSetProgressCallback( PWProgressCallbackPtr pCallBackProc);
Parameters:
PWProgressCallbackPtr: Pointer to PWProgressCallback Progress
Callback function
Returns:
0 if successful.
non-zero if unsuccessful
PWProgressCallback ***
This is the function provided to the PWSetProgressCallback function.
The Progress callback function must be in the form as described
below:
PWMAPLIB_API PWInt32
PWProgressCallback(PWInt32 strID, PWInt32 num, PWInt32 total,
void *pvSession);
typedef PWProgressCallback *PWProgressCallbackPtr;
Parameters:
strID: ID of Progress Message String. Default is 1 which is
General processing. See PWMapLib.h for current string IDs.
num: current progress position
total: total number of items to process.
pvSession: void pointer set by the call to PWMapSetSessionPtr
Returns:
0 to continue processing.
non-zero to abort processing
Notes:
*** This call has changed as of 3.0b8. Existing calls to the Progress
Callback must be updated to match these new parameters..
PWMapSetSessionPtr (formerly PWSetSessionPtr)
Set a session ptr to be returned with each progress callback.
PWInt32
PWMapSetSessionPtr(void *pvSession);
Parameters:
pvSession: VOID pointer. May be NULL
Returns:
0 to continue processing.
non-zero to abort processing
API Map Definition Format
The following describes the format of the pMapDefinition string
used in the PWQVMapConvert call. Each parameter is separated by
a CR/LF. The pMapDefinition string is NULL terminated:
pw_north = 7 = <latitude>
pw_west = 7 = <longitude>
pw_south = 7 = <latitude>
pw_east = 7 = <longitude>
proj_mode = 10 = [none|proj|gcp]
projparams = 10 = [proj=<projection id>] [lon_0=<longitude>]
[lat_0=<latitude>] [lat_1=<latitude>] [lat_2=<latitude>]
[x_0=<number>] [y_0=<number>]
datum1 = 10 = <datum id>
c1_x = 7 = <x mapcoord>
c1_y = 7 = <y mapcoord>
c2_x = 7 = <x mapcoord>
c2_y = 7 = <y mapcoord>
c3_x = 7 = <x mapcoord>
c3_y = 7 = <y mapcoord>
c4_x = 7 = <x mapcoord>
c4_y = 7 = <y mapcoord>
c5_x = 7 = <x mapcoord>
c5_y = 7 = <y mapcoord>
c6_x = 7 = <x mapcoord>
c6_y = 7 = <y mapcoord>
c7_x = 7 = <x mapcoord>
c7_y = 7 = <y mapcoord>
c8_x = 7 = <x mapcoord>
c8_y = 7 = <y mapcoord>
c9_x = 7 = <x mapcoord>
c9_y = 7 = <y mapcoord>
c1_lat = 7 = <latitude>
c1_lon = 7 = <longitude>
c2_lat = 7 = <latitude>
c2_lon = 7 = <longitude>
c3_lat = 7 = <latitude>
c3_lon = 7 = <longitude>
c4_lat = 7 = <latitude>
c4_lon = 7 = <longitude>
c5_lat = 7 = <latitude>
c5_lon = 7 = <longitude>
c6_lat = 7 = <latitude>
c6_lon = 7 = <longitude>
c7_lat = 7 = <latitude>
c7_lon = 7 = <longitude>
c8_lat = 7 = <latitude>
c8_lon = 7 = <longitude>
c9_lat = 7 = <latitude>
c9_lon = 7 = <longitude>
Parameter Definitions
proj_mode: type of calibration none is default. Optionsa
re as follows:
- none: top-left and bottom-right . requires pw_north, pw_west,pw_south,
pw_east.
- proj: Projection type calibration. Requires projparams and c1_*
parameters.
- gcp: Known points (skewed) calibration type. Also known as Ground
Control Point (gcp). Requires at least 3 known points specified
in the c1_* to c9_* parameters.
projparams: required only for proj_mode=proj. defines parameters
of projection. See Advanced Mapping manual for each projections
required parameters.
pw_north, pw_west,pw_south, pw_east: absolute longitude and
latitude points of the map.
datum1: datum that the points are specified in. See Advanced
Mapping manual for details on the ID names for each datum.
c1_lat, c1_lon, c1_x, c1_y to c9_lat, c9_lon, c1_x, c1_y : known
longitude/latitude points on map. Only required for proj and gcp
calibration types.
Parameter Types
<latitude>: latitude in decimal format. In Datum of map.
Positive Latitudes are North. Negatives are South
<longitude>: longitude in decimal format. In Datum of map.
Positive Longitudes are East Negatives are West
<x mapcoord>: x Pixel coordinate of map. 0 position is the
Top of the map.
<y mapcoord>: y Pixel coordinate of map. 0 position is the
Left of the map.
<datum id>: See advanced Mapping manual for list of ids
<projection id>: See advanced Mapping manual for list of ids.
PWM Map Definition Format
Map calibration files can be creating by creating a file name
with the identical name as the image file with a .pwm extension.
This file can be opened directly in PathAway Map Manager, or used
as the input parameter to the PWMapConvert program. You currently
supported tags are as follows:
Parameters for Top-Left Bottom-Right Calibrated maps:
latitudeTL=44.324234
longitudeTL=-80.32566
latitudeBR=43.324234
longitudeBR=-79.32566
imageType=jpg
name=Map Name
Parameters for Projection or Known Points Calibrated maps:
Identical to API Map Definititon. See above.
Note: If you open the .jpr file, or .pwm file it will look
for the image file of the same name with the image type extension.
Make sure there is a <cr> after the last tag.
JPR Map Definition Format
Map calibration files can be creating by creating a file name
with the identical name as the image file with a .jpr extension.
This file can be opened directly in PathAway Map Manager, or used
as the input parameter to the PWMapConvert program. The currently
supported tags are as follows:
//image file type extension
it=jpg
//title of map
nm=Map Name
dm = horizontal datum (for reference point information)
Permitted values: See
Map Projection and Datum List
Example: dm=WGS84
//For a top-left to bottom -right calibrated map:
// Top Left lat,long,x,y
//Note, the X,Ys are currently ignored
rp2=44.99322,-80.32421,0,0
// Bottom Right lat,long,x,y
//Note, the X,Ys are currently ignored. These settings should represent
the bottom right
//corner of the image
rp4=43.2354,-78.32421,400,400
//For a Projected map:
// For up to 9 calibration points. rp1...rp9
rp1=44.99322,-80.32421,0,0
rp2=43.2354,-78.32421,400,400
...
rp9=43.5454,-79.33421,200,200
pr = projection
Supported values: See
Map Projection and Datum List
Example: pr=Lambert Conformal Conic
pp=Central Meridian (Lambert, Polyconic, Cassini and Transverse
Mercator.)
Example: pp=-106.5
p1=Latitude of origin (Lambert, Transverse Mercator and Cassini,
mid- latitude if Mercator)
Example: p1=0
p3= false northing (Transverse Mercator)
Example: p3=0
p4=false easting (Transverse Mercator)
Example: p4=500000
p5=Standard Parallel 1 (Lambert)
Example: p5=34.00
p6=Standard Parallel 2 (Lambert)
Example: p6=40.00
The full jpr spec can be found at at jprdoc.pdf.
|