Index: trunk/src/atmsdriver/model/PostmileCoords.java
===================================================================
--- trunk/src/atmsdriver/model/PostmileCoords.java	(revision 268)
+++ trunk/src/atmsdriver/model/PostmileCoords.java	(revision 269)
@@ -64,9 +64,18 @@
             }  
             String revisedpm = nameparts[0] + " " + nameparts[1] + " " + statepm;
-            Postmile pm = new Postmile(revisedpm,fields[1],fields[2],fields[3]);
+            Postmile pm;
+            // If the file has 6 fields per line, include the perpx,y values
+            if (fields.length == 6)
+            {
+                pm = new Postmile(revisedpm,fields[1],fields[2],fields[3],fields[4],fields[5]);
+            }
+            else // otherwise assume the file has just 4 fields
+            {
+                pm = new Postmile(revisedpm,fields[1],fields[2],fields[3]);
+            }
             postmileList.add(pm);
         }
         }
-        catch (Exception ex)
+        catch (Exception ex)  // probably badly formatted file
         {
             ex.printStackTrace();
@@ -88,4 +97,7 @@
         String longitude; // the longitude coordinate for this postmile
         String street; // cross street name
+        /* These fields are used by the map to adjust position of dot when zoomed */
+        String perpx="0";  // perpendicular vector, x-component (default value)
+        String perpy="0";  // perpendicular vector, y-component (default value)
         public Postmile(String name, String lat, String longitude, String street)
         {
@@ -94,4 +106,14 @@
             this.longitude = longitude.trim();
             this.street = street.trim();
+        }
+        // This constructor is used if the file contains data for perpendicular vectors
+        public Postmile(String name, String lat, String longitude, String street, String perpx, String perpy)
+        {
+            this.name = name.trim();
+            this.latitude = lat.trim();
+            this.longitude = longitude.trim();
+            this.street = street.trim();
+            this.perpx = perpx.trim();
+            this.perpy = perpy.trim();
         }
         public boolean nameEquals(String target)
@@ -112,5 +134,5 @@
         @Override public String toString()
         {
-            return name + ": " + latitude +","+ longitude +","+ street;
+            return name + ": " + latitude +","+ longitude +","+ street+","+ perpx +","+ perpy;
         }
         public String toJson()
@@ -123,8 +145,10 @@
                     "   \"properties\": \n" +         
                     "       {\"street\": \"%s\", " +
-                    "\"color\": \"desiredcolor\"" +
+                    "\"color\": \"desiredcolor\", " +
+                    "\"perpx\": \"%s\", " +
+                    "\"perpy\": \"%s\"" +
                     "}\n},";
 
-            return String.format(pattern, name, longitude, latitude, street);
+            return String.format(pattern, name, longitude, latitude, street, perpx, perpy);
         }
     }
