MARPLOT BINARY LAYER FILE FORMAT: OBJ (object) RECORD FORMAT offset + 0 - 3 z=Object Length (bytes) (not counting 4 bytes for length) (long) 4 - 7 Owner Code (long) 8 -11 Modifier Code (long) 12 -16 Location Code (state+county for Tiger objects) (5 bytes) 17 -20 Modification Date (num of secs past midnight Jan 1, 1904 = long) 21 -24 Object Version Flags (nth even bit = app #n can read obj; nth odd bit = app #n can write obj) (long) 25.0-6 Object Type (high bit=0, reserved for future use) (byte) 1 Rectangle 2 Ellipse 3 Point/Symbol 4 Polyline 5 Polygon 6 Text 7 PICT 8 Alias 25.7 Object Link (boolean) 26-33 Object ID (8 bytes) object 1 low-long + 180000000 (long) <- low long/lat used to hold ID of original object 1 low-lat + 90000000 (long) <- for alias objects object 1 hi-long + 180000000 (long) object 1 hi-lat + 90000000 (long) Additional Notes on Object ID: /34-37 W Longitude \ |38-41 S Latitude | MBR|42-45 E Longitude | \46-49 N Latitude / 50-53 Digitization Scale (long) 54-57 CFCC (long) 58-61 FIPS Place-code (place code of majority of segments, or 0 if no places; high order bit set if in more than one place) (long) 62-65 State/County (long) 66 Alias Count (byte) /67 x=Name Prefix Length (num bytes allocated for prefix) (byte) |68 - 67+x Name Prefix (variable, might contain 0-terminator and thus | not use all bytes allocated) NAME|68+x y=Name Length (total num of bytes allocated for name) (byte) \69+x - 68+x+y Name (variable, might contain 0-terminator and thus not use all bytes allocated) offset2=69+x+y - <-1 GRAPHICS (see below) GRAPHICS FIELDS POINT OBJECTS: (type=3) offset2+ 0.0-3 Color (4 bits) 0.4-7 Width (4 bits) 1 Symbol Character (byte) RECT/CIRCLE OBJECTS: 0.0-3 Color (4 bits) \ 0.4-7 Line-Width (4 bits) \ (total = byte) + 1.0-3 Line-Pattern (4 bits) \ 1.4-7 Fill-Pattern (4 bits) \ (total = byte) PICT OBJECTS: (type=7) 0 Frame 1-32 Filename (32 bytes) TEXT OBJECTS: (type=6) 0.0-3 Color (4 bits) 0.4-7 Frame (4 bits) (total = byte) 1-2 Font (short) 3 Style (byte) 4 n=length of text (short) 5- 4+n Text (variable, might end with 0-space) RECT (1), ELLIPSE (2), POLYLINE (4), POLYGON (5) 0.0-3 Color (4 bits) 0.4-7 Line Width (4 bits) (total = byte) 1.0-3 Line Pattern (4 bits) 1.4-7 Fill Pattern (4 bits) (total = byte) polyline and polygon only: 2-5 n=Number of Segments (long; high order bit: 1=compressed lat/longs, 0=uncompressed) segment 1 long + 180000000 (long; High order bit: 1 = FROM 0 = TO) segment 1 lat + 90000000 (long) segment 1 flags (see below) (short) segment 1 attribute 0 (long) . . . segment 1 attribute n (n <= 15) (long) < repeat for number of segments; possibility of extra 0-filled segment space at the end > flag: bit indicates presence, in order of --- ------------------------------- 0 TLID 1 CFCC 2 VER (+ polyID * 100 for Tiger Polygons) 3-4 available for application use 5 start address left 6 start address right 7 end address left 8 end address right 9 zip code left 10 zip code right 11-15 reserved for future use Additional Notes on points: /m+6-9.6 point Longitude | 9.7 To(0) or From(1) Point? Points| 10-13 Latitude (n*) | 14-15 Flags (i=# of set bits) | 16- 15+i*4 Attributes \ m+= 16+i*4 next point segments are arranged thus: From point To point To point To point To point ... From point (new disconnected string) To point To point To point ...