Index: trunk/src/org/openstreetmap/josm/gui/util/RotationAngle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/RotationAngle.java	(revision 8250)
+++ trunk/src/org/openstreetmap/josm/gui/util/RotationAngle.java	(revision 8251)
@@ -43,4 +43,6 @@
         final Pattern radiansPattern = Pattern.compile("(\\d+\\.?\\d*)\\s*(rad)?");
         final Pattern degreesPattern = Pattern.compile("(\\d+\\.?\\d*)\\s*(deg|°)");
+        final Pattern gradianPattern = Pattern.compile("(\\d+\\.?\\d*)\\s*(grad)");
+        final Pattern turnPattern = Pattern.compile("(\\d+\\.?\\d*)\\s*(turn)");
         final double value;
         Matcher matcher;
@@ -49,4 +51,8 @@
         } else if ((matcher = degreesPattern.matcher(string)).matches()) {
             value = Math.toRadians(Double.parseDouble(matcher.group(1)));
+        } else if ((matcher = gradianPattern.matcher(string)).matches()) {
+            value = Double.parseDouble(matcher.group(1)) / 200 * Math.PI;
+        } else if ((matcher = turnPattern.matcher(string)).matches()) {
+            value = Double.parseDouble(matcher.group(1)) * 2 * Math.PI;
         } else {
             try {
Index: trunk/test/unit/org/openstreetmap/josm/gui/util/RotationAngleTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/util/RotationAngleTest.java	(revision 8250)
+++ trunk/test/unit/org/openstreetmap/josm/gui/util/RotationAngleTest.java	(revision 8251)
@@ -21,4 +21,18 @@
 
     @Test
+    public void testParseGrad() throws Exception {
+        assertThat(RotationAngle.buildStaticRotation("200grad").getRotationAngle(null), is(Math.PI));
+        assertThat(RotationAngle.buildStaticRotation("100grad").getRotationAngle(null), is(Math.PI / 2));
+        assertThat(RotationAngle.buildStaticRotation("400grad").getRotationAngle(null), is(Math.PI * 2));
+    }
+
+    @Test
+    public void testParseTurn() throws Exception {
+        assertThat(RotationAngle.buildStaticRotation("0.5turn").getRotationAngle(null), is(Math.PI));
+        assertThat(RotationAngle.buildStaticRotation("0.25turn").getRotationAngle(null), is(Math.PI / 2));
+        assertThat(RotationAngle.buildStaticRotation("1turn").getRotationAngle(null), is(Math.PI * 2));
+    }
+
+    @Test
     public void testParseCardinal() throws Exception {
         assertThat(RotationAngle.buildStaticRotation("south").getRotationAngle(null), is(Math.PI));
