]> git.openstreetmap.org Git - rails.git/blobdiff - vendor/assets/iD/iD.js
Update to iD v1.3.1
[rails.git] / vendor / assets / iD / iD.js
index 873868e9578db69d7a6507d616a29088a262be33..9fe1e16e2eb7230dadde5ce08744f859ad28b88f 100644 (file)
 
 })(this);
 d3 = (function(){
-  var d3 = {version: "3.2.7"}; // semver
+  var d3 = {version: "3.3.8"}; // semver
 d3.ascending = function(a, b) {
   return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
 };
@@ -313,12 +313,15 @@ d3.shuffle = function(array) {
   return array;
 };
 d3.permute = function(array, indexes) {
-  var permutes = [],
-      i = -1,
-      n = indexes.length;
-  while (++i < n) permutes[i] = array[indexes[i]];
+  var i = indexes.length, permutes = new Array(i);
+  while (i--) permutes[i] = array[indexes[i]];
   return permutes;
 };
+d3.pairs = function(array) {
+  var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);
+  while (i < n) pairs[i] = [p0 = p1, p1 = array[++i]];
+  return pairs;
+};
 
 d3.zip = function() {
   if (!(n = arguments.length)) return [];
@@ -353,8 +356,28 @@ d3.entries = function(map) {
   return entries;
 };
 d3.merge = function(arrays) {
-  return Array.prototype.concat.apply([], arrays);
+  var n = arrays.length,
+      m,
+      i = -1,
+      j = 0,
+      merged,
+      array;
+
+  while (++i < n) j += arrays[i].length;
+  merged = new Array(j);
+
+  while (--n >= 0) {
+    array = arrays[n];
+    m = array.length;
+    while (--m >= 0) {
+      merged[--j] = array[m];
+    }
+  }
+
+  return merged;
 };
+var abs = Math.abs;
+
 d3.range = function(start, stop, step) {
   if (arguments.length < 3) {
     step = 1;
@@ -365,7 +388,7 @@ d3.range = function(start, stop, step) {
   }
   if ((stop - start) / step === Infinity) throw new Error("infinite range");
   var range = [],
-       k = d3_range_integerScale(Math.abs(step)),
+       k = d3_range_integerScale(abs(step)),
        i = -1,
        j;
   start *= k, stop *= k, step *= k;
@@ -394,7 +417,8 @@ function d3_class(ctor, properties) {
 
 d3.map = function(object) {
   var map = new d3_Map;
-  for (var key in object) map.set(key, object[key]);
+  if (object instanceof d3_Map) object.forEach(function(key, value) { map.set(key, value); });
+  else for (var key in object) map.set(key, object[key]);
   return map;
 };
 
@@ -538,8 +562,8 @@ d3.nest = function() {
 };
 
 d3.set = function(array) {
-  var set = new d3_Set();
-  if (array) for (var i = 0; i < array.length; i++) set.add(array[i]);
+  var set = new d3_Set;
+  if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);
   return set;
 };
 
@@ -573,9 +597,23 @@ d3_class(d3_Set, {
   }
 });
 d3.behavior = {};
+var d3_arraySlice = [].slice,
+    d3_array = function(list) { return d3_arraySlice.call(list); }; // conversion for NodeLists
+
 var d3_document = document,
     d3_documentElement = d3_document.documentElement,
     d3_window = window;
+
+// Redefine d3_array if the browser doesn’t support slice-based conversion.
+try {
+  d3_array(d3_documentElement.childNodes)[0].nodeType;
+} catch(e) {
+  d3_array = function(list) {
+    var i = list.length, array = new Array(i);
+    while (i--) array[i] = list[i];
+    return array;
+  };
+}
 // Copies a variable number of methods from source to target.
 d3.rebind = function(target, source) {
   var i = 1, n = arguments.length, method;
@@ -603,24 +641,6 @@ function d3_vendorSymbol(object, name) {
 }
 
 var d3_vendorPrefixes = ["webkit", "ms", "moz", "Moz", "o", "O"];
-
-var d3_array = d3_arraySlice; // conversion for NodeLists
-
-function d3_arrayCopy(pseudoarray) {
-  var i = -1, n = pseudoarray.length, array = [];
-  while (++i < n) array.push(pseudoarray[i]);
-  return array;
-}
-
-function d3_arraySlice(pseudoarray) {
-  return Array.prototype.slice.call(pseudoarray);
-}
-
-try {
-  d3_array(d3_documentElement.childNodes)[0].nodeType;
-} catch(e) {
-  d3_array = d3_arrayCopy;
-}
 function d3_noop() {}
 
 d3.dispatch = function() {
@@ -1118,15 +1138,15 @@ d3_selectionPrototype.append = function(name) {
 
 function d3_selection_creator(name) {
   return typeof name === "function" ? name
-      : (name = d3.ns.qualify(name)).local ? function() { return d3_document.createElementNS(name.space, name.local); }
-      : function() { return d3_document.createElementNS(this.namespaceURI, name); };
+      : (name = d3.ns.qualify(name)).local ? function() { return this.ownerDocument.createElementNS(name.space, name.local); }
+      : function() { return this.ownerDocument.createElementNS(this.namespaceURI, name); };
 }
 
 d3_selectionPrototype.insert = function(name, before) {
   name = d3_selection_creator(name);
   before = d3_selection_selector(before);
   return this.select(function() {
-    return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments));
+    return this.insertBefore(name.apply(this, arguments), before.apply(this, arguments) || null);
   });
 };
 
@@ -1310,7 +1330,7 @@ d3_selectionPrototype.sort = function(comparator) {
 function d3_selection_sortComparator(comparator) {
   if (!arguments.length) comparator = d3.ascending;
   return function(a, b) {
-    return (!a - !b) || comparator(a.__data__, b.__data__);
+    return a && b ? comparator(a.__data__, b.__data__) : !a - !b;
   };
 }
 
@@ -1415,6 +1435,8 @@ function d3_selection_enterInsertBefore(enter) {
   };
 }
 
+// import "../transition/transition";
+
 d3_selectionPrototype.transition = function() {
   var id = d3_transitionInheritId || ++d3_transitionId,
       subgroups = [],
@@ -1432,6 +1454,16 @@ d3_selectionPrototype.transition = function() {
 
   return d3_transition(subgroups, id);
 };
+// import "../transition/transition";
+
+d3_selectionPrototype.interrupt = function() {
+  return this.each(d3_selection_interrupt);
+};
+
+function d3_selection_interrupt() {
+  var lock = this.__transition__;
+  if (lock) ++lock.active;
+}
 
 // TODO fast singleton implementation?
 d3.select = function(node) {
@@ -1578,6 +1610,7 @@ d3.mouse = function(container) {
 var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
 
 function d3_mousePoint(container, e) {
+  if (e.changedTouches) e = e.changedTouches[0];
   var svg = container.ownerSVGElement || container;
   if (svg.createSVGPoint) {
     var point = svg.createSVGPoint();
@@ -1594,13 +1627,8 @@ function d3_mousePoint(container, e) {
       d3_mouse_bug44083 = !(ctm.f || ctm.e);
       svg.remove();
     }
-    if (d3_mouse_bug44083) {
-      point.x = e.pageX;
-      point.y = e.pageY;
-    } else {
-      point.x = e.clientX;
-      point.y = e.clientY;
-    }
+    if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY;
+    else point.x = e.clientX, point.y = e.clientY;
     point = point.matrixTransform(container.getScreenCTM().inverse());
     return [point.x, point.y];
   }
@@ -1616,47 +1644,180 @@ d3.touches = function(container, touches) {
     return point;
   }) : [];
 };
+var π = Math.PI,
+    τ = 2 * π,
+    halfπ = π / 2,
+    ε = 1e-6,
+    ε2 = ε * ε,
+    d3_radians = π / 180,
+    d3_degrees = 180 / π;
+
+function d3_sgn(x) {
+  return x > 0 ? 1 : x < 0 ? -1 : 0;
+}
+
+function d3_acos(x) {
+  return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
+}
+
+function d3_asin(x) {
+  return x > 1 ? halfπ : x < -1 ? -halfπ : Math.asin(x);
+}
+
+function d3_sinh(x) {
+  return ((x = Math.exp(x)) - 1 / x) / 2;
+}
+
+function d3_cosh(x) {
+  return ((x = Math.exp(x)) + 1 / x) / 2;
+}
+
+function d3_tanh(x) {
+  return ((x = Math.exp(2 * x)) - 1) / (x + 1);
+}
+
+function d3_haversin(x) {
+  return (x = Math.sin(x / 2)) * x;
+}
+
+var ρ = Math.SQRT2,
+    ρ2 = 2,
+    ρ4 = 4;
+
+// p0 = [ux0, uy0, w0]
+// p1 = [ux1, uy1, w1]
+d3.interpolateZoom = function(p0, p1) {
+  var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],
+      ux1 = p1[0], uy1 = p1[1], w1 = p1[2];
+
+  var dx = ux1 - ux0,
+      dy = uy1 - uy0,
+      d2 = dx * dx + dy * dy,
+      d1 = Math.sqrt(d2),
+      b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1),
+      b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1),
+      r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),
+      r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1),
+      dr = r1 - r0,
+      S = (dr || Math.log(w1 / w0)) / ρ;
+
+  function interpolate(t) {
+    var s = t * S;
+    if (dr) {
+      // General case.
+      var coshr0 = d3_cosh(r0),
+          u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0));
+      return [
+        ux0 + u * dx,
+        uy0 + u * dy,
+        w0 * coshr0 / d3_cosh(ρ * s + r0)
+      ];
+    }
+    // Special case for u0 ~= u1.
+    return [
+      ux0 + t * dx,
+      uy0 + t * dy,
+      w0 * Math.exp(ρ * s)
+    ];
+  }
+
+  interpolate.duration = S * 1000;
+
+  return interpolate;
+};
 
 d3.behavior.zoom = function() {
-  var translate = [0, 0],
+  var view = {x: 0, y: 0, k: 1},
       translate0, // translate when we started zooming (to avoid drift)
-      scale = 1,
+      center, // desired position of translate0 after zooming
+      size = [960, 500], // viewport size; required for zoom interpolation
       scaleExtent = d3_behavior_zoomInfinity,
       mousedown = "mousedown.zoom",
       mousemove = "mousemove.zoom",
       mouseup = "mouseup.zoom",
-      event = d3_eventDispatch(zoom, "zoom"),
+      mousewheelTimer,
+      touchstart = "touchstart.zoom",
+      touchtime, // time of last touchstart (to detect double-tap)
+      event = d3_eventDispatch(zoom, "zoomstart", "zoom", "zoomend"),
       x0,
       x1,
       y0,
-      y1,
-      touchtime; // time of last touchstart (to detect double-tap)
+      y1;
 
-  function zoom() {
-    this.on(mousedown, mousedowned)
+  function zoom(g) {
+    g   .on(mousedown, mousedowned)
         .on(d3_behavior_zoomWheel + ".zoom", mousewheeled)
         .on(mousemove, mousewheelreset)
         .on("dblclick.zoom", dblclicked)
-        .on("touchstart.zoom", touchstarted);
+        .on(touchstart, touchstarted);
   }
 
-  zoom.translate = function(x) {
-    if (!arguments.length) return translate;
-    translate = x.map(Number);
+  zoom.event = function(g) {
+    g.each(function() {
+      var event_ = event.of(this, arguments),
+          view1 = view;
+      if (d3_transitionInheritId) {
+          d3.select(this).transition()
+              .each("start.zoom", function() {
+                view = this.__chart__ || {x: 0, y: 0, k: 1}; // pre-transition state
+                zoomstarted(event_);
+              })
+              .tween("zoom:zoom", function() {
+                var dx = size[0],
+                    dy = size[1],
+                    cx = dx / 2,
+                    cy = dy / 2,
+                    i = d3.interpolateZoom(
+                      [(cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k],
+                      [(cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k]
+                    );
+                return function(t) {
+                  var l = i(t), k = dx / l[2];
+                  this.__chart__ = view = {x: cx - l[0] * k, y: cy - l[1] * k, k: k};
+                  zoomed(event_);
+                };
+              })
+              .each("end.zoom", function() {
+                zoomended(event_);
+              });
+      } else {
+        this.__chart__ = view;
+        zoomstarted(event_);
+        zoomed(event_);
+        zoomended(event_);
+      }
+    });
+  }
+
+  zoom.translate = function(_) {
+    if (!arguments.length) return [view.x, view.y];
+    view = {x: +_[0], y: +_[1], k: view.k}; // copy-on-write
     rescale();
     return zoom;
   };
 
-  zoom.scale = function(x) {
-    if (!arguments.length) return scale;
-    scale = +x;
+  zoom.scale = function(_) {
+    if (!arguments.length) return view.k;
+    view = {x: view.x, y: view.y, k: +_}; // copy-on-write
     rescale();
     return zoom;
   };
 
-  zoom.scaleExtent = function(x) {
+  zoom.scaleExtent = function(_) {
     if (!arguments.length) return scaleExtent;
-    scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
+    scaleExtent = _ == null ? d3_behavior_zoomInfinity : [+_[0], +_[1]];
+    return zoom;
+  };
+
+  zoom.center = function(_) {
+    if (!arguments.length) return center;
+    center = _ && [+_[0], +_[1]];
+    return zoom;
+  };
+
+  zoom.size = function(_) {
+    if (!arguments.length) return size;
+    size = _ && [+_[0], +_[1]];
     return zoom;
   };
 
@@ -1664,8 +1825,7 @@ d3.behavior.zoom = function() {
     if (!arguments.length) return x1;
     x1 = z;
     x0 = z.copy();
-    translate = [0, 0];
-    scale = 1;
+    view = {x: 0, y: 0, k: 1}; // copy-on-write
     return zoom;
   };
 
@@ -1673,37 +1833,44 @@ d3.behavior.zoom = function() {
     if (!arguments.length) return y1;
     y1 = z;
     y0 = z.copy();
-    translate = [0, 0];
-    scale = 1;
+    view = {x: 0, y: 0, k: 1}; // copy-on-write
     return zoom;
   };
 
   function location(p) {
-    return [(p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale];
+    return [(p[0] - view.x) / view.k, (p[1] - view.y) / view.k];
   }
 
   function point(l) {
-    return [l[0] * scale + translate[0], l[1] * scale + translate[1]];
+    return [l[0] * view.k + view.x, l[1] * view.k + view.y];
   }
 
   function scaleTo(s) {
-    scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
+    view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
   }
 
   function translateTo(p, l) {
     l = point(l);
-    translate[0] += p[0] - l[0];
-    translate[1] += p[1] - l[1];
+    view.x += p[0] - l[0];
+    view.y += p[1] - l[1];
   }
 
   function rescale() {
-    if (x1) x1.domain(x0.range().map(function(x) { return (x - translate[0]) / scale; }).map(x0.invert));
-    if (y1) y1.domain(y0.range().map(function(y) { return (y - translate[1]) / scale; }).map(y0.invert));
+    if (x1) x1.domain(x0.range().map(function(x) { return (x - view.x) / view.k; }).map(x0.invert));
+    if (y1) y1.domain(y0.range().map(function(y) { return (y - view.y) / view.k; }).map(y0.invert));
   }
 
-  function dispatch(event) {
+  function zoomstarted(event) {
+    event({type: "zoomstart"});
+  }
+
+  function zoomed(event) {
     rescale();
-    event({type: "zoom", scale: scale, translate: translate});
+    event({type: "zoom", scale: view.k, translate: [view.x, view.y]});
+  }
+
+  function zoomended(event) {
+    event({type: "zoomend"});
   }
 
   function mousedowned() {
@@ -1715,62 +1882,92 @@ d3.behavior.zoom = function() {
         l = location(d3.mouse(target)),
         dragRestore = d3_event_dragSuppress();
 
+    d3_selection_interrupt.call(target);
+    zoomstarted(event_);
+
     function moved() {
       dragged = 1;
       translateTo(d3.mouse(target), l);
-      dispatch(event_);
+      zoomed(event_);
     }
 
     function ended() {
       w.on(mousemove, d3_window === target ? mousewheelreset : null).on(mouseup, null);
       dragRestore(dragged && d3.event.target === eventTarget);
+      zoomended(event_);
     }
   }
 
+  // These closures persist for as long as at least one touch is active.
   function touchstarted() {
     var target = this,
         event_ = event.of(target, arguments),
-        touches = d3.touches(target),
-        locations = {},
+        locations0 = {}, // touchstart locations
         distance0 = 0, // distance² between initial touches
-        scale0 = scale, // scale when we started touching
-        now = Date.now(),
-        name = "zoom-" + d3.event.changedTouches[0].identifier,
-        touchmove = "touchmove." + name,
-        touchend = "touchend." + name,
+        scale0, // scale when we started touching
+        eventId = d3.event.changedTouches[0].identifier,
+        touchmove = "touchmove.zoom-" + eventId,
+        touchend = "touchend.zoom-" + eventId,
         w = d3.select(d3_window).on(touchmove, moved).on(touchend, ended),
-        t = d3.select(target).on(mousedown, null), // prevent duplicate events
+        t = d3.select(target).on(mousedown, null).on(touchstart, started), // prevent duplicate events
         dragRestore = d3_event_dragSuppress();
 
-    touches.forEach(function(t) { locations[t.identifier] = location(t); });
+    d3_selection_interrupt.call(target);
+    started();
+    zoomstarted(event_);
 
-    if (touches.length === 1) {
-      if (now - touchtime < 500) { // dbltap
-        var p = touches[0], l = location(touches[0]);
-        scaleTo(scale * 2);
-        translateTo(p, l);
-        d3_eventPreventDefault();
-        dispatch(event_);
+    // Updates locations of any touches in locations0.
+    function relocate() {
+      var touches = d3.touches(target);
+      scale0 = view.k;
+      touches.forEach(function(t) {
+        if (t.identifier in locations0) locations0[t.identifier] = location(t);
+      });
+      return touches;
+    }
+
+    // Temporarily override touchstart while gesture is active.
+    function started() {
+      // Only track touches started on the target element.
+      var changed = d3.event.changedTouches;
+      for (var i = 0, n = changed.length; i < n; ++i) {
+        locations0[changed[i].identifier] = null;
+      }
+
+      var touches = relocate(),
+          now = Date.now();
+
+      if (touches.length === 1) {
+        if (now - touchtime < 500) { // dbltap
+          var p = touches[0], l = locations0[p.identifier];
+          scaleTo(view.k * 2);
+          translateTo(p, l);
+          d3_eventPreventDefault();
+          zoomed(event_);
+        }
+        touchtime = now;
+      } else if (touches.length > 1) {
+        var p = touches[0], q = touches[1],
+            dx = p[0] - q[0], dy = p[1] - q[1];
+        distance0 = dx * dx + dy * dy;
       }
-      touchtime = now;
-    } else if (touches.length > 1) {
-      var p = touches[0], q = touches[1],
-          dx = p[0] - q[0], dy = p[1] - q[1];
-      distance0 = dx * dx + dy * dy;
     }
 
     function moved() {
       var touches = d3.touches(target),
-          p0 = touches[0],
-          l0 = locations[p0.identifier];
-
-      if (p1 = touches[1]) {
-        var p1, l1 = locations[p1.identifier],
-            scale1 = d3.event.scale;
-        if (scale1 == null) {
-          var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1;
-          scale1 = distance0 && Math.sqrt(distance1 / distance0);
+          p0, l0,
+          p1, l1;
+      for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {
+        p1 = touches[i];
+        if (l1 = locations0[p1.identifier]) {
+          if (l0) break;
+          p0 = p1, l0 = l1;
         }
+      }
+
+      if (l1) {
+        var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1,
+            scale1 = distance0 && Math.sqrt(distance1 / distance0);
         p0 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];
         l0 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];
         scaleTo(scale1 * scale0);
@@ -1778,22 +1975,42 @@ d3.behavior.zoom = function() {
 
       touchtime = null;
       translateTo(p0, l0);
-      dispatch(event_);
+      zoomed(event_);
     }
 
     function ended() {
+      // If there are any globally-active touches remaining, remove the ended
+      // touches from locations0.
+      if (d3.event.touches.length) {
+        var changed = d3.event.changedTouches;
+        for (var i = 0, n = changed.length; i < n; ++i) {
+          delete locations0[changed[i].identifier];
+        }
+        // If locations0 is not empty, then relocate and continue listening for
+        // touchmove and touchend.
+        for (var identifier in locations0) {
+          return void relocate(); // locations may have detached due to rotation
+        }
+      }
+      // Otherwise, remove touchmove and touchend listeners.
       w.on(touchmove, null).on(touchend, null);
-      t.on(mousedown, mousedowned);
+      t.on(mousedown, mousedowned).on(touchstart, touchstarted);
       dragRestore();
+      zoomended(event_);
     }
   }
 
   function mousewheeled() {
+    var event_ = event.of(this, arguments);
+    if (mousewheelTimer) clearTimeout(mousewheelTimer);
+    else d3_selection_interrupt.call(this), zoomstarted(event_);
+    mousewheelTimer = setTimeout(function() { mousewheelTimer = null; zoomended(event_); }, 50);
     d3_eventPreventDefault();
-    if (!translate0) translate0 = location(d3.mouse(this));
-    scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
-    translateTo(d3.mouse(this), translate0);
-    dispatch(event.of(this, arguments));
+    var point = center || d3.mouse(this);
+    if (!translate0) translate0 = location(point);
+    scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
+    translateTo(point, translate0);
+    zoomed(event_);
   }
 
   function mousewheelreset() {
@@ -1801,10 +2018,15 @@ d3.behavior.zoom = function() {
   }
 
   function dblclicked() {
-    var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
+    var event_ = event.of(this, arguments),
+        p = d3.mouse(this),
+        l = location(p),
+        k = Math.log(view.k) / Math.LN2;
+    zoomstarted(event_);
     scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
     translateTo(p, l);
-    dispatch(event.of(this, arguments));
+    zoomed(event_);
+    zoomended(event_);
   }
 
   return d3.rebind(zoom, event, "on");
@@ -1837,8 +2059,8 @@ d3.timer = function(callback, delay, then) {
   if (n < 3) then = Date.now();
 
   // Add the callback to the tail of the queue.
-  var time = then + delay, timer = {callback: callback, time: time, next: null};
-  if (d3_timer_queueTail) d3_timer_queueTail.next = timer;
+  var time = then + delay, timer = {c: callback, t: time, f: false, n: null};
+  if (d3_timer_queueTail) d3_timer_queueTail.n = timer;
   else d3_timer_queueHead = timer;
   d3_timer_queueTail = timer;
 
@@ -1870,20 +2092,12 @@ d3.timer.flush = function() {
   d3_timer_sweep();
 };
 
-function d3_timer_replace(callback, delay, then) {
-  var n = arguments.length;
-  if (n < 2) delay = 0;
-  if (n < 3) then = Date.now();
-  d3_timer_active.callback = callback;
-  d3_timer_active.time = then + delay;
-}
-
 function d3_timer_mark() {
   var now = Date.now();
   d3_timer_active = d3_timer_queueHead;
   while (d3_timer_active) {
-    if (now >= d3_timer_active.time) d3_timer_active.flush = d3_timer_active.callback(now - d3_timer_active.time);
-    d3_timer_active = d3_timer_active.next;
+    if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t);
+    d3_timer_active = d3_timer_active.n;
   }
   return now;
 }
@@ -1895,45 +2109,16 @@ function d3_timer_sweep() {
       t1 = d3_timer_queueHead,
       time = Infinity;
   while (t1) {
-    if (t1.flush) {
-      t1 = t0 ? t0.next = t1.next : d3_timer_queueHead = t1.next;
+    if (t1.f) {
+      t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n;
     } else {
-      if (t1.time < time) time = t1.time;
-      t1 = (t0 = t1).next;
+      if (t1.t < time) time = t1.t;
+      t1 = (t0 = t1).n;
     }
   }
   d3_timer_queueTail = t0;
   return time;
 }
-var π = Math.PI,
-    ε = 1e-6,
-    ε2 = ε * ε,
-    d3_radians = π / 180,
-    d3_degrees = 180 / π;
-
-function d3_sgn(x) {
-  return x > 0 ? 1 : x < 0 ? -1 : 0;
-}
-
-function d3_acos(x) {
-  return x > 1 ? 0 : x < -1 ? π : Math.acos(x);
-}
-
-function d3_asin(x) {
-  return x > 1 ? π / 2 : x < -1 ? -π / 2 : Math.asin(x);
-}
-
-function d3_sinh(x) {
-  return (Math.exp(x) - Math.exp(-x)) / 2;
-}
-
-function d3_cosh(x) {
-  return (Math.exp(x) + Math.exp(-x)) / 2;
-}
-
-function d3_haversin(x) {
-  return (x = Math.sin(x / 2)) * x;
-}
 d3.geo = {};
 function d3_identity(d) {
   return d;
@@ -1950,13 +2135,13 @@ function d3_geo_spherical(cartesian) {
 }
 
 function d3_geo_sphericalEqual(a, b) {
-  return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;
+  return abs(a[0] - b[0]) < ε && abs(a[1] - b[1]) < ε;
 }
 
 // General spherical polygon clipping algorithm: takes a polygon, cuts it into
 // visible line segments and rejoins the segments by interpolating along the
 // clip edge.
-function d3_geo_clipPolygon(segments, compare, inside, interpolate, listener) {
+function d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener) {
   var subject = [],
       clip = [];
 
@@ -1975,14 +2160,14 @@ function d3_geo_clipPolygon(segments, compare, inside, interpolate, listener) {
       return;
     }
 
-    var a = {point: p0, points: segment, other: null, visited: false, entry: true, subject: true},
-        b = {point: p0, points: [p0], other: a, visited: false, entry: false, subject: false};
-    a.other = b;
+    var a = new d3_geo_clipPolygonIntersection(p0, segment, null, true),
+        b = new d3_geo_clipPolygonIntersection(p0, null, a, false);
+    a.o = b;
     subject.push(a);
     clip.push(b);
-    a = {point: p1, points: [p1], other: null, visited: false, entry: false, subject: true};
-    b = {point: p1, points: [p1], other: a, visited: false, entry: true, subject: false};
-    a.other = b;
+    a = new d3_geo_clipPolygonIntersection(p1, segment, null, false);
+    b = new d3_geo_clipPolygonIntersection(p1, null, a, true);
+    a.o = b;
     subject.push(a);
     clip.push(b);
   });
@@ -1991,41 +2176,42 @@ function d3_geo_clipPolygon(segments, compare, inside, interpolate, listener) {
   d3_geo_clipPolygonLinkCircular(clip);
   if (!subject.length) return;
 
-  if (inside) for (var i = 1, e = !inside(clip[0].point), n = clip.length; i < n; ++i) {
-    clip[i].entry = (e = !e);
+  for (var i = 0, entry = clipStartInside, n = clip.length; i < n; ++i) {
+    clip[i].e = entry = !entry;
   }
 
   var start = subject[0],
-      current,
       points,
       point;
   while (1) {
     // Find first unvisited intersection.
-    current = start;
-    while (current.visited) if ((current = current.next) === start) return;
-    points = current.points;
+    var current = start,
+        isSubject = true;
+    while (current.v) if ((current = current.n) === start) return;
+    points = current.z;
     listener.lineStart();
     do {
-      current.visited = current.other.visited = true;
-      if (current.entry) {
-        if (current.subject) {
-          for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
+      current.v = current.o.v = true;
+      if (current.e) {
+        if (isSubject) {
+          for (var i = 0, n = points.length; i < n; ++i) listener.point((point = points[i])[0], point[1]);
         } else {
-          interpolate(current.point, current.next.point, 1, listener);
+          interpolate(current.x, current.n.x, 1, listener);
         }
-        current = current.next;
+        current = current.n;
       } else {
-        if (current.subject) {
-          points = current.prev.points;
-          for (var i = points.length; --i >= 0;) listener.point((point = points[i])[0], point[1]);
+        if (isSubject) {
+          points = current.p.z;
+          for (var i = points.length - 1; i >= 0; --i) listener.point((point = points[i])[0], point[1]);
         } else {
-          interpolate(current.point, current.prev.point, -1, listener);
+          interpolate(current.x, current.p.x, -1, listener);
         }
-        current = current.prev;
+        current = current.p;
       }
-      current = current.other;
-      points = current.points;
-    } while (!current.visited);
+      current = current.o;
+      points = current.z;
+      isSubject = !isSubject;
+    } while (!current.v);
     listener.lineEnd();
   }
 }
@@ -2037,17 +2223,27 @@ function d3_geo_clipPolygonLinkCircular(array) {
       a = array[0],
       b;
   while (++i < n) {
-    a.next = b = array[i];
-    b.prev = a;
+    a.n = b = array[i];
+    b.p = a;
     a = b;
   }
-  a.next = b = array[0];
-  b.prev = a;
+  a.n = b = array[0];
+  b.p = a;
 }
 
-function d3_geo_clip(pointVisible, clipLine, interpolate, polygonContains) {
-  return function(listener) {
-    var line = clipLine(listener);
+function d3_geo_clipPolygonIntersection(point, points, other, entry) {
+  this.x = point;
+  this.z = points;
+  this.o = other; // another intersection
+  this.e = entry; // is an entry?
+  this.v = false; // visited
+  this.n = this.p = null; // next & previous
+}
+
+function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
+  return function(rotate, listener) {
+    var line = clipLine(listener),
+        rotatedClipStart = rotate.invert(clipStart[0], clipStart[1]);
 
     var clip = {
       point: point,
@@ -2067,9 +2263,10 @@ function d3_geo_clip(pointVisible, clipLine, interpolate, polygonContains) {
         clip.lineEnd = lineEnd;
 
         segments = d3.merge(segments);
+        var clipStartInside = d3_geo_pointInPolygon(rotatedClipStart, polygon);
         if (segments.length) {
-          d3_geo_clipPolygon(segments, d3_geo_clipSort, null, interpolate, listener);
-        } else if (polygonContains(polygon)) {
+          d3_geo_clipPolygon(segments, d3_geo_clipSort, clipStartInside, interpolate, listener);
+        } else if (clipStartInside) {
           listener.lineStart();
           interpolate(null, null, 1, listener);
           listener.lineEnd();
@@ -2086,8 +2283,14 @@ function d3_geo_clip(pointVisible, clipLine, interpolate, polygonContains) {
       }
     };
 
-    function point(λ, φ) { if (pointVisible(λ, φ)) listener.point(λ, φ); }
-    function pointLine(λ, φ) { line.point(λ, φ); }
+    function point(λ, φ) {
+      var point = rotate(λ, φ);
+      if (pointVisible(λ = point[0], φ = point[1])) listener.point(λ, φ);
+    }
+    function pointLine(λ, φ) {
+      var point = rotate(λ, φ);
+      line.point(point[0], point[1]);
+    }
     function lineStart() { clip.point = pointLine; line.lineStart(); }
     function lineEnd() { clip.point = point; line.lineEnd(); }
 
@@ -2099,8 +2302,9 @@ function d3_geo_clip(pointVisible, clipLine, interpolate, polygonContains) {
         ring;
 
     function pointRing(λ, φ) {
-      ringListener.point(λ, φ);
       ring.push([λ, φ]);
+      var point = rotate(λ, φ);
+      ringListener.point(point[0], point[1]);
     }
 
     function ringStart() {
@@ -2172,8 +2376,8 @@ function d3_geo_clipBufferListener() {
 // Intersection points are sorted along the clip edge. For both antimeridian
 // cutting and circle clipping, the same comparison is used.
 function d3_geo_clipSort(a, b) {
-  return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1])
-       - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]);
+  return ((a = a.x)[0] < 0 ? a[1] - halfπ - ε : halfπ - a[1])
+       - ((b = b.x)[0] < 0 ? b[1] - halfπ - ε : halfπ - b[1]);
 }
 // Adds floating point numbers with twice the normal precision.
 // Reference: J. R. Shewchuk, Adaptive Precision Floating-Point Arithmetic and
@@ -2239,12 +2443,12 @@ var d3_geo_streamGeometryType = {
     listener.sphere();
   },
   Point: function(object, listener) {
-    var coordinate = object.coordinates;
-    listener.point(coordinate[0], coordinate[1]);
+    object = object.coordinates;
+    listener.point(object[0], object[1], object[2]);
   },
   MultiPoint: function(object, listener) {
-    var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
-    while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
+    var coordinates = object.coordinates, i = -1, n = coordinates.length;
+    while (++i < n) object = coordinates[i], listener.point(object[0], object[1], object[2]);
   },
   LineString: function(object, listener) {
     d3_geo_streamLine(object.coordinates, listener, 0);
@@ -2269,7 +2473,7 @@ var d3_geo_streamGeometryType = {
 function d3_geo_streamLine(coordinates, listener, closed) {
   var i = -1, n = coordinates.length - closed, coordinate;
   listener.lineStart();
-  while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
+  while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1], coordinate[2]);
   listener.lineEnd();
 }
 
@@ -2394,8 +2598,6 @@ function d3_geo_pointInPolygon(point, polygon) {
       parallel = point[1],
       meridianNormal = [Math.sin(meridian), -Math.cos(meridian), 0],
       polarAngle = 0,
-      polar = false,
-      southPole = false,
       winding = 0;
   d3_geo_areaRingSum.reset();
 
@@ -2418,12 +2620,11 @@ function d3_geo_pointInPolygon(point, polygon) {
           sinφ = Math.sin(φ),
           cosφ = Math.cos(φ),
           dλ = λ - λ0,
-          antimeridian = Math.abs(dλ) > π,
+          antimeridian = abs(dλ) > π,
           k = sinφ0 * sinφ;
       d3_geo_areaRingSum.add(Math.atan2(k * Math.sin(dλ), cosφ0 * cosφ + k * Math.cos(dλ)));
 
-      if (Math.abs(φ) < ε) southPole = true;
-      polarAngle += antimeridian ? dλ + (dλ >= 0 ? 2 : -2) * π : dλ;
+      polarAngle += antimeridian ? dλ + (dλ >= 0 ? τ : -τ): dλ;
 
       // Are the longitudes either side of the point's meridian, and are the
       // latitudes smaller than the parallel?
@@ -2433,34 +2634,34 @@ function d3_geo_pointInPolygon(point, polygon) {
         var intersection = d3_geo_cartesianCross(meridianNormal, arc);
         d3_geo_cartesianNormalize(intersection);
         var φarc = (antimeridian ^ dλ >= 0 ? -1 : 1) * d3_asin(intersection[2]);
-        if (parallel > φarc) {
+        if (parallel > φarc || parallel === φarc && (arc[0] || arc[1])) {
           winding += antimeridian ^ dλ >= 0 ? 1 : -1;
         }
       }
       if (!j++) break;
       λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point;
     }
-    if (Math.abs(polarAngle) > ε) polar = true;
   }
 
   // First, determine whether the South pole is inside or outside:
   //
   // It is inside if:
-  // * the polygon doesn't wind around it, and its area is negative (counter-clockwise).
-  // * otherwise, if the polygon winds around it in a clockwise direction.
+  // * the polygon winds around it in a clockwise direction.
+  // * the polygon does not (cumulatively) wind around it, but has a negative
+  //   (counter-clockwise) area.
   //
   // Second, count the (signed) number of times a segment crosses a meridian
   // from the point to the South pole.  If it is zero, then the point is the
   // same side as the South pole.
 
-  return (!southPole && !polar && d3_geo_areaRingSum < 0 || polarAngle < -ε) ^ (winding & 1);
+  return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ (winding & 1);
 }
 
 var d3_geo_clipAntimeridian = d3_geo_clip(
     d3_true,
     d3_geo_clipAntimeridianLine,
     d3_geo_clipAntimeridianInterpolate,
-    d3_geo_clipAntimeridianPolygonContains);
+    [-π, -π / 2]);
 
 // Takes a line and cuts into visible segments. Return values:
 //   0: there were intersections or the line was empty.
@@ -2480,9 +2681,9 @@ function d3_geo_clipAntimeridianLine(listener) {
     },
     point: function(λ1, φ1) {
       var sλ1 = λ1 > 0 ? π : -π,
-          dλ = Math.abs(λ1 - λ0);
-      if (Math.abs(dλ - π) < ε) { // line crosses a pole
-        listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2);
+          dλ = abs(λ1 - λ0);
+      if (abs(dλ - π) < ε) { // line crosses a pole
+        listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? halfπ : -halfπ);
         listener.point(sλ0, φ0);
         listener.lineEnd();
         listener.lineStart();
@@ -2491,8 +2692,8 @@ function d3_geo_clipAntimeridianLine(listener) {
         clean = 0;
       } else if (sλ0 !== sλ1 && dλ >= π) { // line crosses antimeridian
         // handle degeneracies
-        if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
-        if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
+        if (abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
+        if (abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
         φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
         listener.point(sλ0, φ0);
         listener.lineEnd();
@@ -2516,7 +2717,7 @@ function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
   var cosφ0,
       cosφ1,
       sinλ0_λ1 = Math.sin(λ0 - λ1);
-  return Math.abs(sinλ0_λ1) > ε
+  return abs(sinλ0_λ1) > ε
       ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1)
                  - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0))
                  / (cosφ0 * cosφ1 * sinλ0_λ1))
@@ -2526,7 +2727,7 @@ function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
 function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
   var φ;
   if (from == null) {
-    φ = direction * π / 2;
+    φ = direction * halfπ;
     listener.point(-π,  φ);
     listener.point( 0,  φ);
     listener.point( π,  φ);
@@ -2536,8 +2737,8 @@ function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
     listener.point(-π, -φ);
     listener.point(-π,  0);
     listener.point(-π,  φ);
-  } else if (Math.abs(from[0] - to[0]) > ε) {
-    var s = (from[0] < to[0] ? 1 : -1) * π;
+  } else if (abs(from[0] - to[0]) > ε) {
+    var s = from[0] < to[0] ? π : -π;
     φ = direction * s / 2;
     listener.point(-s, φ);
     listener.point( 0, φ);
@@ -2547,12 +2748,6 @@ function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
   }
 }
 
-var d3_geo_clipAntimeridianPoint = [-π, 0];
-
-function d3_geo_clipAntimeridianPolygonContains(polygon) {
-  return d3_geo_pointInPolygon(d3_geo_clipAntimeridianPoint, polygon);
-}
-
 function d3_geo_equirectangular(λ, φ) {
   return [λ, φ];
 }
@@ -2577,17 +2772,23 @@ d3.geo.rotation = function(rotate) {
   return forward;
 };
 
+function d3_geo_identityRotation(λ, φ) {
+  return [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ];
+}
+
+d3_geo_identityRotation.invert = d3_geo_equirectangular;
+
 // Note: |δλ| must be < 2π
 function d3_geo_rotation(δλ, δφ, δγ) {
   return δλ ? (δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ))
     : d3_geo_rotationλ(δλ))
     : (δφ || δγ ? d3_geo_rotationφγ(δφ, δγ)
-    : d3_geo_equirectangular);
+    : d3_geo_identityRotation);
 }
 
 function d3_geo_forwardRotationλ(δλ) {
   return function(λ, φ) {
-    return λ += δλ, [λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ];
+    return λ += δλ, [λ > π ? λ - τ : λ < -π ? λ + τ : λ, φ];
   };
 }
 
@@ -2678,16 +2879,16 @@ function d3_geo_circleInterpolate(radius, precision) {
   var cr = Math.cos(radius),
       sr = Math.sin(radius);
   return function(from, to, direction, listener) {
+    var step = direction * precision;
     if (from != null) {
       from = d3_geo_circleAngle(cr, from);
       to = d3_geo_circleAngle(cr, to);
-      if (direction > 0 ? from < to: from > to) from += direction * 2 * π;
+      if (direction > 0 ? from < to: from > to) from += direction * τ;
     } else {
-      from = radius + direction * 2 * π;
-      to = radius;
+      from = radius + direction * τ;
+      to = radius - .5 * step;
     }
-    var point;
-    for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
+    for (var point, t = from; direction > 0 ? t > to : t < to; t -= step) {
       listener.point((point = d3_geo_spherical([
         cr,
         -sr * Math.cos(t),
@@ -2710,11 +2911,10 @@ function d3_geo_circleAngle(cr, point) {
 function d3_geo_clipCircle(radius) {
   var cr = Math.cos(radius),
       smallRadius = cr > 0,
-      point = [radius, 0],
-      notHemisphere = Math.abs(cr) > ε, // TODO optimise for this common case
+      notHemisphere = abs(cr) > ε, // TODO optimise for this common case
       interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians);
 
-  return d3_geo_clip(visible, clipLine, interpolate, polygonContains);
+  return d3_geo_clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-π, radius - π]);
 
   function visible(λ, φ) {
     return Math.cos(λ) * Math.cos(φ) > cr;
@@ -2848,7 +3048,7 @@ function d3_geo_clipCircle(radius) {
         z;
     if (λ1 < λ0) z = λ0, λ0 = λ1, λ1 = z;
     var δλ = λ1 - λ0,
-        polar = Math.abs(δλ - π) < ε,
+        polar = abs(δλ - π) < ε,
         meridian = polar || δλ < ε;
 
     if (!polar && φ1 < φ0) z = φ0, φ0 = φ1, φ1 = z;
@@ -2856,7 +3056,7 @@ function d3_geo_clipCircle(radius) {
     // Check that the first point is between a and b.
     if (meridian
         ? polar
-          ? φ0 + φ1 > 0 ^ q[1] < (Math.abs(q[0] - λ0) < ε ? φ0 : φ1)
+          ? φ0 + φ1 > 0 ^ q[1] < (abs(q[0] - λ0) < ε ? φ0 : φ1)
           : φ0 <= q[1] && q[1] <= φ1
         : δλ > π ^ (λ0 <= q[0] && q[0] <= λ1)) {
       var q1 = d3_geo_cartesianScale(u, (-w + t) / uu);
@@ -2876,18 +3076,101 @@ function d3_geo_clipCircle(radius) {
     else if (φ > r) code |= 8; // above
     return code;
   }
+}
 
-  function polygonContains(polygon) {
-    return d3_geo_pointInPolygon(point, polygon);
-  }
+// Liang–Barsky line clipping.
+function d3_geom_clipLine(x0, y0, x1, y1) {
+  return function(line) {
+    var a = line.a,
+        b = line.b,
+        ax = a.x,
+        ay = a.y,
+        bx = b.x,
+        by = b.y,
+        t0 = 0,
+        t1 = 1,
+        dx = bx - ax,
+        dy = by - ay,
+        r;
+
+    r = x0 - ax;
+    if (!dx && r > 0) return;
+    r /= dx;
+    if (dx < 0) {
+      if (r < t0) return;
+      if (r < t1) t1 = r;
+    } else if (dx > 0) {
+      if (r > t1) return;
+      if (r > t0) t0 = r;
+    }
+
+    r = x1 - ax;
+    if (!dx && r < 0) return;
+    r /= dx;
+    if (dx < 0) {
+      if (r > t1) return;
+      if (r > t0) t0 = r;
+    } else if (dx > 0) {
+      if (r < t0) return;
+      if (r < t1) t1 = r;
+    }
+
+    r = y0 - ay;
+    if (!dy && r > 0) return;
+    r /= dy;
+    if (dy < 0) {
+      if (r < t0) return;
+      if (r < t1) t1 = r;
+    } else if (dy > 0) {
+      if (r > t1) return;
+      if (r > t0) t0 = r;
+    }
+
+    r = y1 - ay;
+    if (!dy && r < 0) return;
+    r /= dy;
+    if (dy < 0) {
+      if (r > t1) return;
+      if (r > t0) t0 = r;
+    } else if (dy > 0) {
+      if (r < t0) return;
+      if (r < t1) t1 = r;
+    }
+
+    if (t0 > 0) line.a = {x: ax + t0 * dx, y: ay + t0 * dy};
+    if (t1 < 1) line.b = {x: ax + t1 * dx, y: ay + t1 * dy};
+    return line;
+  };
 }
 
-var d3_geo_clipViewMAX = 1e9;
+var d3_geo_clipExtentMAX = 1e9;
+
+d3.geo.clipExtent = function() {
+  var x0, y0, x1, y1,
+      stream,
+      clip,
+      clipExtent = {
+        stream: function(output) {
+          if (stream) stream.valid = false;
+          stream = clip(output);
+          stream.valid = true; // allow caching by d3.geo.path
+          return stream;
+        },
+        extent: function(_) {
+          if (!arguments.length) return [[x0, y0], [x1, y1]];
+          clip = d3_geo_clipExtent(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]);
+          if (stream) stream.valid = false, stream = null;
+          return clipExtent;
+        }
+      };
+  return clipExtent.extent([[0, 0], [960, 500]]);
+};
 
-function d3_geo_clipView(x0, y0, x1, y1) {
+function d3_geo_clipExtent(x0, y0, x1, y1) {
   return function(listener) {
     var listener_ = listener,
         bufferListener = d3_geo_clipBufferListener(),
+        clipLine = d3_geom_clipLine(x0, y0, x1, y1),
         segments,
         polygon,
         ring;
@@ -2900,28 +3183,30 @@ function d3_geo_clipView(x0, y0, x1, y1) {
         listener = bufferListener;
         segments = [];
         polygon = [];
+        clean = true;
       },
       polygonEnd: function() {
         listener = listener_;
-        if ((segments = d3.merge(segments)).length) {
+        segments = d3.merge(segments);
+        var clipStartInside = insidePolygon([x0, y1]),
+            inside = clean && clipStartInside,
+            visible = segments.length;
+        if (inside || visible) {
           listener.polygonStart();
-          d3_geo_clipPolygon(segments, compare, inside, interpolate, listener);
+          if (inside) {
+            listener.lineStart();
+            interpolate(null, null, 1, listener);
+            listener.lineEnd();
+          }
+          if (visible) {
+            d3_geo_clipPolygon(segments, compare, clipStartInside, interpolate, listener);
+          }
           listener.polygonEnd();
-        } else if (insidePolygon([x0, y0])) {
-          listener.polygonStart(), listener.lineStart();
-          interpolate(null, null, 1, listener);
-          listener.lineEnd(), listener.polygonEnd();
         }
         segments = polygon = ring = null;
       }
     };
 
-    function inside(point) {
-      var a = corner(point, -1),
-          i = insidePolygon([a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0]);
-      return i;
-    }
-
     function insidePolygon(p) {
       var wn = 0, // the winding number counter
           n = polygon.length,
@@ -2958,17 +3243,18 @@ function d3_geo_clipView(x0, y0, x1, y1) {
       }
     }
 
-    function visible(x, y) {
+    function pointVisible(x, y) {
       return x0 <= x && x <= x1 && y0 <= y && y <= y1;
     }
 
     function point(x, y) {
-      if (visible(x, y)) listener.point(x, y);
+      if (pointVisible(x, y)) listener.point(x, y);
     }
 
     var x__, y__, v__, // first point
         x_, y_, v_, // previous point
-        first;
+        first,
+        clean;
 
     function lineStart() {
       clip.point = linePoint;
@@ -2992,9 +3278,9 @@ function d3_geo_clipView(x0, y0, x1, y1) {
     }
 
     function linePoint(x, y) {
-      x = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, x));
-      y = Math.max(-d3_geo_clipViewMAX, Math.min(d3_geo_clipViewMAX, y));
-      var v = visible(x, y);
+      x = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, x));
+      y = Math.max(-d3_geo_clipExtentMAX, Math.min(d3_geo_clipExtentMAX, y));
+      var v = pointVisible(x, y);
       if (polygon) ring.push([x, y]);
       if (first) {
         x__ = x, y__ = y, v__ = v;
@@ -3006,18 +3292,19 @@ function d3_geo_clipView(x0, y0, x1, y1) {
       } else {
         if (v && v_) listener.point(x, y);
         else {
-          var a = [x_, y_],
-              b = [x, y];
-          if (clipLine(a, b)) {
+          var l = {a: {x: x_, y: y_}, b: {x: x, y: y}};
+          if (clipLine(l)) {
             if (!v_) {
               listener.lineStart();
-              listener.point(a[0], a[1]);
+              listener.point(l.a.x, l.a.y);
             }
-            listener.point(b[0], b[1]);
+            listener.point(l.b.x, l.b.y);
             if (!v) listener.lineEnd();
+            clean = false;
           } else if (v) {
             listener.lineStart();
             listener.point(x, y);
+            clean = false;
           }
         }
       }
@@ -3028,14 +3315,14 @@ function d3_geo_clipView(x0, y0, x1, y1) {
   };
 
   function corner(p, direction) {
-    return Math.abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3
-        : Math.abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1
-        : Math.abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0
-        : direction > 0 ? 3 : 2; // Math.abs(p[1] - y1) < ε
+    return abs(p[0] - x0) < ε ? direction > 0 ? 0 : 3
+        : abs(p[0] - x1) < ε ? direction > 0 ? 2 : 1
+        : abs(p[1] - y0) < ε ? direction > 0 ? 1 : 0
+        : direction > 0 ? 3 : 2; // abs(p[1] - y1) < ε
   }
 
   function compare(a, b) {
-    return comparePoints(a.point, b.point);
+    return comparePoints(a.x, b.x);
   }
 
   function comparePoints(a, b) {
@@ -3047,47 +3334,6 @@ function d3_geo_clipView(x0, y0, x1, y1) {
         : ca === 2 ? a[1] - b[1]
         : b[0] - a[0];
   }
-
-  // Liang–Barsky line clipping.
-  function clipLine(a, b) {
-    var dx = b[0] - a[0],
-        dy = b[1] - a[1],
-        t = [0, 1];
-
-    if (Math.abs(dx) < ε && Math.abs(dy) < ε) return x0 <= a[0] && a[0] <= x1 && y0 <= a[1] && a[1] <= y1;
-
-    if (d3_geo_clipViewT(x0 - a[0],  dx, t) &&
-        d3_geo_clipViewT(a[0] - x1, -dx, t) &&
-        d3_geo_clipViewT(y0 - a[1],  dy, t) &&
-        d3_geo_clipViewT(a[1] - y1, -dy, t)) {
-      if (t[1] < 1) {
-        b[0] = a[0] + t[1] * dx;
-        b[1] = a[1] + t[1] * dy;
-      }
-      if (t[0] > 0) {
-        a[0] += t[0] * dx;
-        a[1] += t[0] * dy;
-      }
-      return true;
-    }
-
-    return false;
-  }
-}
-
-function d3_geo_clipViewT(num, denominator, t) {
-  if (Math.abs(denominator) < ε) return num <= 0;
-
-  var u = num / denominator;
-
-  if (denominator > 0) {
-    if (u > t[1]) return false;
-    if (u > t[0]) t[0] = u;
-  } else {
-    if (u < t[0]) return false;
-    if (u < t[1]) t[1] = u;
-  }
-  return true;
 }
 function d3_geo_compose(a, b) {
 
@@ -3330,7 +3576,7 @@ d3.geo.bounds = (function() {
       var dλ = λ - λ_,
           s = dλ > 0 ? 1 : -1,
           λi = inflection[0] * d3_degrees * s,
-          antimeridian = Math.abs(dλ) > 180;
+          antimeridian = abs(dλ) > 180;
       if (antimeridian ^ (s * λ_ < λi && λi < s * λ)) {
         var φi = inflection[1] * d3_degrees;
         if (φi > φ1) φ1 = φi;
@@ -3375,7 +3621,7 @@ d3.geo.bounds = (function() {
   function ringPoint(λ, φ) {
     if (p0) {
       var dλ = λ - λ_;
-      dλSum += Math.abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
+      dλSum += abs(dλ) > 180 ? dλ + (dλ > 0 ? 360 : -360) : dλ;
     } else λ__ = λ, φ__ = φ;
     d3_geo_area.point(λ, φ);
     linePoint(λ, φ);
@@ -3388,7 +3634,7 @@ d3.geo.bounds = (function() {
   function ringEnd() {
     ringPoint(λ__, φ__);
     d3_geo_area.lineEnd();
-    if (Math.abs(dλSum) > ε) λ0 = -(λ1 = 180);
+    if (abs(dλSum) > ε) λ0 = -(λ1 = 180);
     range[0] = λ0, range[1] = λ1;
     p0 = null;
   }
@@ -3601,7 +3847,7 @@ var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
   },
   polygonEnd: function() {
     d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
-    d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
+    d3_geo_pathAreaSum += abs(d3_geo_pathAreaPolygon / 2);
   }
 };
 
@@ -3806,7 +4052,7 @@ function d3_geo_pathContext(context) {
 
   function point(x, y) {
     context.moveTo(x, y);
-    context.arc(x, y, pointRadius, 0, 2 * π);
+    context.arc(x, y, pointRadius, 0, τ);
   }
 
   function pointLineStart(x, y) {
@@ -3898,7 +4144,7 @@ function d3_geo_resample(project) {
           c = c0 + c1,
           m = Math.sqrt(a * a + b * b + c * c),
           φ2 = Math.asin(c /= m),
-          λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a),
+          λ2 = abs(abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a),
           p = project(λ2, φ2),
           x2 = p[0],
           y2 = p[1],
@@ -3906,7 +4152,7 @@ function d3_geo_resample(project) {
           dy2 = y2 - y0,
           dz = dy * dx2 - dx * dy2;
       if (dz * dz / d2 > δ2 // perpendicular projected distance
-          || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 // midpoint close to an end
+          || abs((dx * dx2 + dy * dy2) / d2 - .5) > .3 // midpoint close to an end
           || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance
         resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
         stream.point(x2, y2);
@@ -3924,6 +4170,29 @@ function d3_geo_resample(project) {
   return resample;
 }
 
+d3.geo.transform = function(methods) {
+  return {
+    stream: function(stream) {
+      var transform = new d3_geo_transform(stream);
+      for (var k in methods) transform[k] = methods[k];
+      return transform;
+    }
+  };
+};
+
+function d3_geo_transform(stream) {
+  this.stream = stream;
+}
+
+d3_geo_transform.prototype = {
+  point: function(x, y) { this.stream.point(x, y); },
+  sphere: function() { this.stream.sphere(); },
+  lineStart: function() { this.stream.lineStart(); },
+  lineEnd: function() { this.stream.lineEnd(); },
+  polygonStart: function() { this.stream.polygonStart(); },
+  polygonEnd: function() { this.stream.polygonEnd(); }
+};
+
 d3.geo.path = function() {
   var pointRadius = 4.5,
       projection,
@@ -3992,17 +4261,11 @@ d3.geo.path = function() {
 };
 
 function d3_geo_pathProjectStream(project) {
-  var resample = d3_geo_resample(function(λ, φ) { return project([λ * d3_degrees, φ * d3_degrees]); });
+  var resample = d3_geo_resample(function(x, y) { return project([x * d3_degrees, y * d3_degrees]); });
   return function(stream) {
-    stream = resample(stream);
-    return {
-      point: function(λ, φ) { stream.point(λ * d3_radians, φ * d3_radians); },
-      sphere: function() { stream.sphere(); },
-      lineStart: function() { stream.lineStart(); },
-      lineEnd: function() { stream.lineEnd(); },
-      polygonStart: function() { stream.polygonStart(); },
-      polygonEnd: function() { stream.polygonEnd(); }
-    };
+    var transform = new d3_geo_transform(stream = resample(stream));
+    transform.point = function(x, y) { stream.point(x * d3_radians, y * d3_radians); };
+    return transform;
   };
 }
 
@@ -4041,7 +4304,7 @@ function d3_geo_projectionMutator(projectAt) {
 
   projection.stream = function(output) {
     if (stream) stream.valid = false;
-    stream = d3_geo_projectionRadiansRotate(rotate, preclip(projectResample(postclip(output))));
+    stream = d3_geo_projectionRadians(preclip(rotate, projectResample(postclip(output))));
     stream.valid = true; // allow caching by d3.geo.path
     return stream;
   };
@@ -4055,7 +4318,7 @@ function d3_geo_projectionMutator(projectAt) {
   projection.clipExtent = function(_) {
     if (!arguments.length) return clipExtent;
     clipExtent = _;
-    postclip = _ == null ? d3_identity : d3_geo_clipView(_[0][0], _[0][1], _[1][0], _[1][1]);
+    postclip = _ ? d3_geo_clipExtent(_[0][0], _[0][1], _[1][0], _[1][1]) : d3_identity;
     return invalidate();
   };
 
@@ -4098,10 +4361,7 @@ function d3_geo_projectionMutator(projectAt) {
   }
 
   function invalidate() {
-    if (stream) {
-      stream.valid = false;
-      stream = null;
-    }
+    if (stream) stream.valid = false, stream = null;
     return projection;
   }
 
@@ -4112,18 +4372,12 @@ function d3_geo_projectionMutator(projectAt) {
   };
 }
 
-function d3_geo_projectionRadiansRotate(rotate, stream) {
-  return {
-    point: function(x, y) {
-      y = rotate(x * d3_radians, y * d3_radians), x = y[0];
-      stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]);
-    },
-    sphere: function() { stream.sphere(); },
-    lineStart: function() { stream.lineStart(); },
-    lineEnd: function() { stream.lineEnd(); },
-    polygonStart: function() { stream.polygonStart(); },
-    polygonEnd: function() { stream.polygonEnd(); }
+function d3_geo_projectionRadians(stream) {
+  var transform = new d3_geo_transform(stream);
+  transform.point = function(λ, φ) {
+    stream.point(λ * d3_radians, φ * d3_radians);
   };
+  return transform;
 }
 
 function d3_geo_mercator(λ, φ) {
@@ -4131,7 +4385,7 @@ function d3_geo_mercator(λ, φ) {
 }
 
 d3_geo_mercator.invert = function(x, y) {
-  return [x, 2 * Math.atan(Math.exp(y)) - π / 2];
+  return [x, 2 * Math.atan(Math.exp(y)) - halfπ];
 };
 
 function d3_geo_mercatorProjection(project) {
@@ -4303,7 +4557,7 @@ d3.ease = function(name) {
       m = i >= 0 ? name.substring(i + 1) : "in";
   t = d3_ease.get(t) || d3_ease_default;
   m = d3_ease_mode.get(m) || d3_identity;
-  return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
+  return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));
 };
 
 function d3_ease_clamp(f) {
@@ -4347,7 +4601,7 @@ function d3_ease_poly(e) {
 }
 
 function d3_ease_sin(t) {
-  return 1 - Math.cos(t * π / 2);
+  return 1 - Math.cos(t * halfπ);
 }
 
 function d3_ease_exp(t) {
@@ -4361,10 +4615,10 @@ function d3_ease_circle(t) {
 function d3_ease_elastic(a, p) {
   var s;
   if (arguments.length < 2) p = 0.45;
-  if (arguments.length) s = p / (2 * π) * Math.asin(1 / a);
+  if (arguments.length) s = p / τ * Math.asin(1 / a);
   else a = 1, s = p / 4;
   return function(t) {
-    return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p);
+    return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * τ / p);
   };
 }
 
@@ -5379,7 +5633,7 @@ function d3_transition_text(b) {
 d3_transitionPrototype.remove = function() {
   return this.each("end.transition", function() {
     var p;
-    if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
+    if (this.__transition__.count < 2 && (p = this.parentNode)) p.removeChild(this);
   });
 };
 
@@ -5393,15 +5647,15 @@ d3_transitionPrototype.ease = function(value) {
 d3_transitionPrototype.delay = function(value) {
   var id = this.id;
   return d3_selection_each(this, typeof value === "function"
-      ? function(node, i, j) { node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0; }
-      : (value |= 0, function(node) { node.__transition__[id].delay = value; }));
+      ? function(node, i, j) { node.__transition__[id].delay = +value.call(node, node.__data__, i, j); }
+      : (value = +value, function(node) { node.__transition__[id].delay = value; }));
 };
 
 d3_transitionPrototype.duration = function(value) {
   var id = this.id;
   return d3_selection_each(this, typeof value === "function"
-      ? function(node, i, j) { node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0); }
-      : (value = Math.max(1, value | 0), function(node) { node.__transition__[id].duration = value; }));
+      ? function(node, i, j) { node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j)); }
+      : (value = Math.max(1, value), function(node) { node.__transition__[id].duration = value; }));
 };
 
 d3_transitionPrototype.each = function(type, listener) {
@@ -5471,10 +5725,12 @@ function d3_transitionNode(node, i, id, inherit) {
           ease = transition.ease,
           delay = transition.delay,
           duration = transition.duration,
+          timer = d3_timer_active,
           tweened = [];
 
-      if (delay <= elapsed) return start(elapsed);
-      d3_timer_replace(start, delay, time);
+      timer.t = delay + time;
+      if (delay <= elapsed) return start(elapsed - delay);
+      timer.c = start;
 
       function start(elapsed) {
         if (lock.active > id) return stop();
@@ -5487,14 +5743,16 @@ function d3_transitionNode(node, i, id, inherit) {
           }
         });
 
-        if (tick(elapsed)) return 1;
-        d3_timer_replace(tick, 0, time);
+        d3.timer(function() { // defer to end of current frame
+          timer.c = tick(elapsed || 1) ? d3_true : tick;
+          return 1;
+        }, 0, time);
       }
 
       function tick(elapsed) {
         if (lock.active !== id) return stop();
 
-        var t = (elapsed - delay) / duration,
+        var t = elapsed / duration,
             e = ease(t),
             n = tweened.length;
 
@@ -5503,9 +5761,8 @@ function d3_transitionNode(node, i, id, inherit) {
         }
 
         if (t >= 1) {
-          stop();
           transition.event && transition.event.end.call(node, d, i);
-          return 1;
+          return stop();
         }
       }
 
@@ -5529,7 +5786,7 @@ function d3_xhrType(response) {
 
 function d3_xhr(url, mimeType, response, callback) {
   var xhr = {},
-      dispatch = d3.dispatch("progress", "load", "error"),
+      dispatch = d3.dispatch("beforesend", "progress", "load", "error"),
       headers = {},
       request = new XMLHttpRequest,
       responseType = null;
@@ -5611,6 +5868,7 @@ function d3_xhr(url, mimeType, response, callback) {
     if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
     if (responseType != null) request.responseType = responseType;
     if (callback != null) xhr.on("error", callback).on("load", function(request) { callback(null, request); });
+    dispatch.beforesend.call(xhr, request);
     request.send(data == null ? null : data);
     return xhr;
   };
@@ -5665,7 +5923,7 @@ d3.combobox = function() {
 
     var fetcher = function(val, cb) {
         cb(data.filter(function(d) {
-            return d.title
+            return d.value
                 .toString()
                 .toLowerCase()
                 .indexOf(val.toLowerCase()) !== -1;
@@ -5690,25 +5948,26 @@ d3.combobox = function() {
                 var parent = this.parentNode,
                     sibling = this.nextSibling;
 
-                var carat = d3.select(parent).selectAll('.combobox-carat')
+                var caret = d3.select(parent).selectAll('.combobox-caret')
                     .filter(function(d) { return d === input.node(); })
                     .data([input.node()]);
 
-                carat.enter().insert('div', function() { return sibling; })
-                    .attr('class', 'combobox-carat');
+                caret.enter().insert('div', function() { return sibling; })
+                    .attr('class', 'combobox-caret');
 
-                carat
+                caret
                     .on('mousedown', function () {
                         // prevent the form element from blurring. it blurs
                         // on mousedown
                         d3.event.stopPropagation();
                         d3.event.preventDefault();
                         input.node().focus();
+                        fetch('', render);
                     });
             });
 
         function focus() {
-            fetch(render);
+            fetch(value(), render);
         }
 
         function blur() {
@@ -5798,7 +6057,7 @@ d3.combobox = function() {
         }
 
         function change() {
-            fetch(function() {
+            fetch(value(), function() {
                 autocomplete();
                 render();
             });
@@ -5823,8 +6082,8 @@ d3.combobox = function() {
             return value;
         }
 
-        function fetch(cb) {
-            fetcher.call(input, value(), function(_) {
+        function fetch(v, cb) {
+            fetcher.call(input, v, function(_) {
                 suggestions = _;
                 cb();
             });
@@ -5849,7 +6108,7 @@ d3.combobox = function() {
         }
 
         function render() {
-            if (suggestions.length && document.activeElement === input.node()) {
+            if (suggestions.length > 1 && document.activeElement === input.node()) {
                 show();
             } else {
                 hide();
@@ -13770,64 +14029,126 @@ if (typeof module !== 'undefined') {
 
 })();
 toGeoJSON = (function() {
-    var removeSpace = (/\s*/g), trimSpace = (/^\s*|\s*$/g), splitSpace = (/\s+/);
+    'use strict';
+
+    var removeSpace = (/\s*/g),
+        trimSpace = (/^\s*|\s*$/g),
+        splitSpace = (/\s+/);
+    // generate a short, numeric hash of a string
     function okhash(x) {
         if (!x || !x.length) return 0;
         for (var i = 0, h = 0; i < x.length; i++) {
             h = ((h << 5) - h) + x.charCodeAt(i) | 0;
         } return h;
     }
+    // all Y children of X
     function get(x, y) { return x.getElementsByTagName(y); }
     function attr(x, y) { return x.getAttribute(y); }
     function attrf(x, y) { return parseFloat(attr(x, y)); }
+    // one Y child of X, if any, otherwise null
     function get1(x, y) { var n = get(x, y); return n.length ? n[0] : null; }
+    // https://developer.mozilla.org/en-US/docs/Web/API/Node.normalize
+    function norm(el) { if (el.normalize) { el.normalize(); } return el; }
+    // cast array x into numbers
     function numarray(x) {
         for (var j = 0, o = []; j < x.length; j++) o[j] = parseFloat(x[j]);
         return o;
     }
-    function nodeVal(x) { return x && x.firstChild && x.firstChild.nodeValue; }
+    function clean(x) {
+        var o = {};
+        for (var i in x) if (x[i]) o[i] = x[i];
+        return o;
+    }
+    // get the content of a text node, if any
+    function nodeVal(x) { if (x) {norm(x);} return x && x.firstChild && x.firstChild.nodeValue; }
+    // get one coordinate from a coordinate array, if any
     function coord1(v) { return numarray(v.replace(removeSpace, '').split(',')); }
+    // get all coordinates from a coordinate array as [[],[]]
     function coord(v) {
-        var coords = v.replace(trimSpace, '').split(splitSpace), o = [];
-        for (var i = 0; i < coords.length; i++) o.push(coord1(coords[i]));
+        var coords = v.replace(trimSpace, '').split(splitSpace),
+            o = [];
+        for (var i = 0; i < coords.length; i++) {
+            o.push(coord1(coords[i]));
+        }
         return o;
     }
-    function fc() { return { type: 'FeatureCollection', features: [] }; }
+    function coordPair(x) { return [attrf(x, 'lon'), attrf(x, 'lat')]; }
+
+    // create a new feature collection parent object
+    function fc() {
+        return {
+            type: 'FeatureCollection',
+            features: []
+        };
+    }
+
+    var styleSupport = false;
+    if (typeof XMLSerializer !== 'undefined') {
+        var serializer = new XMLSerializer();
+        styleSupport = true;
+    }
+    function xml2str(str) { return serializer.serializeToString(str); }
+
     var t = {
         kml: function(doc, o) {
             o = o || {};
-            var gj = fc(), styleIndex = {},
-                geotypes = ['Polygon', 'LineString', 'Point'],
-                placemarks = get(doc, 'Placemark'), styles = get(doc, 'Style');
 
-            if (o.styles) for (var k = 0; k < styles.length; k++) {
-                styleIndex['#' + styles[k].id] = okhash(styles[k].innerHTML).toString(16);
+            var gj = fc(),
+                // styleindex keeps track of hashed styles in order to match features
+                styleIndex = {},
+                // atomic geospatial types supported by KML - MultiGeometry is
+                // handled separately
+                geotypes = ['Polygon', 'LineString', 'Point', 'Track'],
+                // all root placemarks in the file
+                placemarks = get(doc, 'Placemark'),
+                styles = get(doc, 'Style');
+
+            if (styleSupport) for (var k = 0; k < styles.length; k++) {
+                styleIndex['#' + attr(styles[k], 'id')] = okhash(xml2str(styles[k])).toString(16);
             }
             for (var j = 0; j < placemarks.length; j++) {
                 gj.features = gj.features.concat(getPlacemark(placemarks[j]));
             }
+            function gxCoord(v) { return numarray(v.split(' ')); }
+            function gxCoords(root) {
+                var elems = get(root, 'coord', 'gx'), coords = [];
+                for (var i = 0; i < elems.length; i++) coords.push(gxCoord(nodeVal(elems[i])));
+                return coords;
+            }
             function getGeometry(root) {
                 var geomNode, geomNodes, i, j, k, geoms = [];
                 if (get1(root, 'MultiGeometry')) return getGeometry(get1(root, 'MultiGeometry'));
+                if (get1(root, 'MultiTrack')) return getGeometry(get1(root, 'MultiTrack'));
                 for (i = 0; i < geotypes.length; i++) {
                     geomNodes = get(root, geotypes[i]);
                     if (geomNodes) {
                         for (j = 0; j < geomNodes.length; j++) {
                             geomNode = geomNodes[j];
                             if (geotypes[i] == 'Point') {
-                                geoms.push({ type: 'Point',
+                                geoms.push({
+                                    type: 'Point',
                                     coordinates: coord1(nodeVal(get1(geomNode, 'coordinates')))
                                 });
                             } else if (geotypes[i] == 'LineString') {
-                                geoms.push({ type: 'LineString',
+                                geoms.push({
+                                    type: 'LineString',
                                     coordinates: coord(nodeVal(get1(geomNode, 'coordinates')))
                                 });
                             } else if (geotypes[i] == 'Polygon') {
-                                var rings = get(geomNode, 'LinearRing'), coords = [];
+                                var rings = get(geomNode, 'LinearRing'),
+                                    coords = [];
                                 for (k = 0; k < rings.length; k++) {
                                     coords.push(coord(nodeVal(get1(rings[k], 'coordinates'))));
                                 }
-                                geoms.push({ type: 'Polygon', coordinates: coords });
+                                geoms.push({
+                                    type: 'Polygon',
+                                    coordinates: coords
+                                });
+                            } else if (geotypes[i] == 'Track') {
+                                geoms.push({
+                                    type: 'LineString',
+                                    coordinates: gxCoords(geomNode)
+                                });
                             }
                         }
                     }
@@ -13841,7 +14162,7 @@ toGeoJSON = (function() {
                     description = nodeVal(get1(root, 'description')),
                     extendedData = get1(root, 'ExtendedData');
 
-                if (!geoms.length) return false;
+                if (!geoms.length) return [];
                 if (name) properties.name = name;
                 if (styleUrl && styleIndex[styleUrl]) {
                     properties.styleUrl = styleUrl;
@@ -13859,28 +14180,69 @@ toGeoJSON = (function() {
                         properties[simpleDatas[i].getAttribute('name')] = nodeVal(simpleDatas[i]);
                     }
                 }
-                return [{ type: 'Feature', geometry: (geoms.length === 1) ? geoms[0] : {
-                    type: 'GeometryCollection',
-                    geometries: geoms }, properties: properties }];
+                return [{
+                    type: 'Feature',
+                    geometry: (geoms.length === 1) ? geoms[0] : {
+                        type: 'GeometryCollection',
+                        geometries: geoms
+                    },
+                    properties: properties
+                }];
             }
             return gj;
         },
         gpx: function(doc, o) {
-            var i, j, tracks = get(doc, 'trk'), track, pt, gj = fc();
+            var i,
+                tracks = get(doc, 'trk'),
+                routes = get(doc, 'rte'),
+                waypoints = get(doc, 'wpt'),
+                // a feature collection
+                gj = fc();
             for (i = 0; i < tracks.length; i++) {
-                track = tracks[i];
-                var name = nodeVal(get1(track, 'name'));
-                var pts = get(track, 'trkpt'), line = [];
+                gj.features.push(getLinestring(tracks[i], 'trkpt'));
+            }
+            for (i = 0; i < routes.length; i++) {
+                gj.features.push(getLinestring(routes[i], 'rtept'));
+            }
+            for (i = 0; i < waypoints.length; i++) {
+                gj.features.push(getPoint(waypoints[i]));
+            }
+            function getLinestring(node, pointname) {
+                var j, pts = get(node, pointname), line = [];
                 for (j = 0; j < pts.length; j++) {
-                    line.push([attrf(pts[j], 'lon'), attrf(pts[j], 'lat')]);
+                    line.push(coordPair(pts[j]));
                 }
-                gj.features.push({
+                return {
                     type: 'Feature',
-                    properties: {
-                        name: name || ''
-                    },
-                    geometry: { type: 'LineString', coordinates: line }
-                });
+                    properties: getProperties(node),
+                    geometry: {
+                        type: 'LineString',
+                        coordinates: line
+                    }
+                };
+            }
+            function getPoint(node) {
+                var prop = getProperties(node);
+                prop.ele = nodeVal(get1(node, 'ele'));
+                prop.sym = nodeVal(get1(node, 'sym'));
+                return {
+                    type: 'Feature',
+                    properties: prop,
+                    geometry: {
+                        type: 'Point',
+                        coordinates: coordPair(node)
+                    }
+                };
+            }
+            function getProperties(node) {
+                var meta = ['name', 'desc', 'author', 'copyright', 'link',
+                            'time', 'keywords'],
+                    prop = {},
+                    k;
+                for (k = 0; k < meta.length; k++) {
+                    prop[meta[k]] = nodeVal(get1(node, meta[k]));
+                }
+                return clean(prop);
             }
             return gj;
         }
@@ -15016,6 +15378,7 @@ if (typeof exports === 'object') {
 }).call(function() {
   return this || (typeof window !== 'undefined' ? window : global);
 }());
+/* jshint ignore:start */
 (function () {
 'use strict';
 window.iD = function () {
@@ -15033,14 +15396,21 @@ window.iD = function () {
         return {
             getItem: function(k) { return s[k]; },
             setItem: function(k, v) { s[k] = v; },
-            removeItem: function(k) { delete s[k] }
+            removeItem: function(k) { delete s[k]; }
         };
     })();
 
     context.storage = function(k, v) {
-        if (arguments.length === 1) return storage.getItem(k);
-        else if (v === null) storage.removeItem(k);
-        else storage.setItem(k, v);
+        try {
+            if (arguments.length === 1) return storage.getItem(k);
+            else if (v === null) storage.removeItem(k);
+            else storage.setItem(k, v);
+        } catch(e) {
+            // localstorage quota exceeded
+            /* jshint devel:true */
+            if (typeof console !== 'undefined') console.error('localStorage quota exceeded');
+            /* jshint devel:false */
+        }
     };
 
     var history = iD.History(context),
@@ -15091,20 +15461,46 @@ window.iD = function () {
 
     /* History */
     context.graph = history.graph;
-    context.perform = history.perform;
-    context.replace = history.replace;
-    context.pop = history.pop;
-    context.undo = history.undo;
-    context.redo = history.redo;
     context.changes = history.changes;
     context.intersects = history.intersects;
 
+    var inIntro = false;
+
+    context.inIntro = function(_) {
+        if (!arguments.length) return inIntro;
+        inIntro = _;
+        return context;
+    };
+
+    context.save = function() {
+        if (inIntro) return;
+        history.save();
+        if (history.hasChanges()) return t('save.unsaved_changes');
+    };
+
     context.flush = function() {
         connection.flush();
         history.reset();
         return context;
     };
 
+    // Debounce save, since it's a synchronous localStorage write,
+    // and history changes can happen frequently (e.g. when dragging).
+    var debouncedSave = _.debounce(context.save, 350);
+    function withDebouncedSave(fn) {
+        return function() {
+            var result = fn.apply(history, arguments);
+            debouncedSave();
+            return result;
+        };
+    }
+
+    context.perform = withDebouncedSave(history.perform);
+    context.replace = withDebouncedSave(history.replace);
+    context.pop = withDebouncedSave(history.pop);
+    context.undo = withDebouncedSave(history.undo);
+    context.redo = withDebouncedSave(history.redo);
+
     /* Graph */
     context.hasEntity = function(id) {
         return history.graph().hasEntity(id);
@@ -15184,9 +15580,52 @@ window.iD = function () {
     };
 
     /* Projection */
-    context.projection = d3.geo.mercator()
-        .scale(512 / Math.PI)
-        .precision(0);
+    function rawMercator() {
+        var project = d3.geo.mercator.raw,
+            k = 512 / Math.PI, // scale
+            x = 0, y = 0, // translate
+            clipExtent = [[0, 0], [0, 0]];
+
+        function projection(point) {
+            point = project(point[0] * Math.PI / 180, point[1] * Math.PI / 180);
+            return [point[0] * k + x, y - point[1] * k];
+        }
+
+        projection.invert = function(point) {
+            point = project.invert((point[0] - x) / k, (y - point[1]) / k);
+            return point && [point[0] * 180 / Math.PI, point[1] * 180 / Math.PI];
+        };
+
+        projection.scale = function(_) {
+            if (!arguments.length) return k;
+            k = +_;
+            return projection;
+        };
+
+        projection.translate = function(_) {
+            if (!arguments.length) return [x, y];
+            x = +_[0];
+            y = +_[1];
+            return projection;
+        };
+
+        projection.clipExtent = function(_) {
+            if (!arguments.length) return clipExtent;
+            clipExtent = _;
+            return projection;
+        };
+
+        projection.stream = d3.geo.transform({
+            point: function(x, y) {
+                x = projection([x, y]);
+                this.stream.point(x[0], x[1]);
+            }
+        }).stream;
+
+        return projection;
+    }
+
+    context.projection = rawMercator();
 
     /* Background */
     var background = iD.Background(context);
@@ -15203,6 +15642,13 @@ window.iD = function () {
     context.zoomIn = map.zoomIn;
     context.zoomOut = map.zoomOut;
 
+    context.surfaceRect = function() {
+        // Work around a bug in Firefox.
+        //   http://stackoverflow.com/questions/18153989/
+        //   https://bugzilla.mozilla.org/show_bug.cgi?id=530985
+        return context.surface().node().parentNode.getBoundingClientRect();
+    };
+
     /* Presets */
     var presets = iD.presets()
         .load(iD.data.presets);
@@ -15247,13 +15693,13 @@ window.iD = function () {
     return d3.rebind(context, dispatch, 'on');
 };
 
-iD.version = '1.1.5';
+iD.version = '1.3.1';
 
 (function() {
     var detected = {};
 
     var ua = navigator.userAgent,
-        msie = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
+        msie = new RegExp('MSIE ([0-9]{1,}[\\.0-9]{0,})');
 
     if (msie.exec(ua) !== null) {
         var rv = parseFloat(RegExp.$1);
@@ -15400,7 +15846,12 @@ iD.taginfo = function() {
     taginfo.docs = function(parameters, callback) {
         var debounce = parameters.debounce;
         parameters = clean(setSort(parameters));
-        request(endpoint + (parameters.value ? 'tag/wiki_pages?' : 'key/wiki_pages?') +
+
+        var path = 'key/wiki_pages?';
+        if (parameters.value) path = 'tag/wiki_pages?';
+        else if (parameters.rtype) path = 'relation/wiki_pages?';
+
+        request(endpoint + path +
             iD.util.qsString(parameters), debounce, callback);
     };
 
@@ -15492,7 +15943,7 @@ iD.util.entityOrMemberSelector = function(ids, graph) {
         var entity = graph.hasEntity(id);
         if (entity && entity.type === 'relation') {
             entity.members.forEach(function(member) {
-                s += ',.' + member.id
+                s += ',.' + member.id;
             });
         }
     });
@@ -15577,7 +16028,7 @@ iD.util.editDistance = function(a, b) {
     for (var j = 0; j <= a.length; j++) { matrix[0][j] = j; }
     for (i = 1; i <= b.length; i++) {
         for (j = 1; j <= a.length; j++) {
-            if (b.charAt(i-1) == a.charAt(j-1)) {
+            if (b.charAt(i-1) === a.charAt(j-1)) {
                 matrix[i][j] = matrix[i-1][j-1];
             } else {
                 matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, // substitution
@@ -15605,6 +16056,7 @@ iD.util.fastMouse = function(container) {
     };
 };
 
+/* jshint -W103 */
 iD.util.getPrototypeOf = Object.getPrototypeOf || function(obj) { return obj.__proto__; };
 
 iD.util.asyncMap = function(inputs, func, callback) {
@@ -15621,6 +16073,49 @@ iD.util.asyncMap = function(inputs, func, callback) {
         });
     });
 };
+
+// wraps an index to an interval [0..length-1]
+iD.util.wrap = function(index, length) {
+    if (index < 0)
+        index += Math.ceil(-index/length)*length;
+    return index % length;
+};
+// A per-domain session mutex backed by a cookie and dead man's
+// switch. If the session crashes, the mutex will auto-release
+// after 5 seconds.
+
+iD.util.SessionMutex = function(name) {
+    var mutex = {},
+        intervalID;
+
+    function renew() {
+        var expires = new Date();
+        expires.setSeconds(expires.getSeconds() + 5);
+        document.cookie = name + '=1; expires=' + expires.toUTCString();
+    }
+
+    mutex.lock = function() {
+        if (intervalID) return true;
+        var cookie = document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1');
+        if (cookie) return false;
+        renew();
+        intervalID = window.setInterval(renew, 4000);
+        return true;
+    };
+
+    mutex.unlock = function() {
+        if (!intervalID) return;
+        document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT';
+        clearInterval(intervalID);
+        intervalID = null;
+    };
+
+    mutex.locked = function() {
+        return !!intervalID;
+    };
+
+    return mutex;
+};
 iD.geo = {};
 
 iD.geo.roundCoords = function(c) {
@@ -15633,17 +16128,28 @@ iD.geo.interp = function(p1, p2, t) {
 };
 
 // http://jsperf.com/id-dist-optimization
-iD.geo.dist = function(a, b) {
+iD.geo.euclideanDistance = function(a, b) {
     var x = a[0] - b[0], y = a[1] - b[1];
     return Math.sqrt((x * x) + (y * y));
 };
+// Equirectangular approximation of spherical distances on Earth
+iD.geo.sphericalDistance = function(a, b) {
+    var x = Math.cos(a[1]*Math.PI/180) * (a[0] - b[0]),
+        y = a[1] - b[1];
+    return 6.3710E6 * Math.sqrt((x * x) + (y * y)) * Math.PI/180;
+};
+
+iD.geo.edgeEqual = function(a, b) {
+    return (a[0] === b[0] && a[1] === b[1]) ||
+        (a[0] === b[1] && a[1] === b[0]);
+};
 
 // Choose the edge with the minimal distance from `point` to its orthogonal
 // projection onto that edge, if such a projection exists, or the distance to
 // the closest vertex on that edge. Returns an object with the `index` of the
 // chosen edge, the chosen `loc` on that edge, and the `distance` to to it.
 iD.geo.chooseEdge = function(nodes, point, projection) {
-    var dist = iD.geo.dist,
+    var dist = iD.geo.euclideanDistance,
         points = nodes.map(function(n) { return projection(n.loc); }),
         min = Infinity,
         idx, loc;
@@ -15702,7 +16208,7 @@ iD.geo.pointInPolygon = function(point, polygon) {
         var xi = polygon[i][0], yi = polygon[i][1];
         var xj = polygon[j][0], yj = polygon[j][1];
 
-        var intersect = ((yi > y) != (yj > y)) &&
+        var intersect = ((yi > y) !== (yj > y)) &&
             (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
         if (intersect) inside = !inside;
     }
@@ -15761,6 +16267,16 @@ _.extend(iD.geo.Extent.prototype, {
                 (this[0][1] + this[1][1]) / 2];
     },
 
+    polygon: function() {
+        return [
+            [this[0][0], this[0][1]],
+            [this[0][0], this[1][1]],
+            [this[1][0], this[1][1]],
+            [this[1][0], this[0][1]],
+            [this[0][0], this[0][1]]
+        ];
+    },
+
     intersects: function(obj) {
         if (!(obj instanceof iD.geo.Extent)) obj = new iD.geo.Extent(obj);
         return obj[0][0] <= this[1][0] &&
@@ -15924,6 +16440,68 @@ iD.geo.joinWays = function(array, graph) {
 
     return joined;
 };
+iD.geo.turns = function(graph, entityID) {
+    var way = graph.entity(entityID);
+    if (way.type !== 'way' || !way.tags.highway || way.isArea())
+        return [];
+
+    function withRestriction(turn) {
+        graph.parentRelations(turn.from).forEach(function(relation) {
+            if (relation.tags.type !== 'restriction')
+                return;
+
+            var f = relation.memberByRole('from'),
+                t = relation.memberByRole('to'),
+                v = relation.memberByRole('via');
+
+            if (f && f.id === turn.from.id &&
+                t && t.id === turn.to.id &&
+                v && v.id === turn.via.id) {
+                turn.restriction = relation;
+            }
+        });
+
+        return turn;
+    }
+
+    var turns = [];
+
+    [way.first(), way.last()].forEach(function(nodeID) {
+        var node = graph.entity(nodeID);
+        graph.parentWays(node).forEach(function(parent) {
+            if (parent === way || parent.isDegenerate() || !parent.tags.highway)
+                return;
+            if (way.first() === node.id && way.tags.oneway === 'yes')
+                return;
+            if (way.last() === node.id && way.tags.oneway === '-1')
+                return;
+
+            var index = parent.nodes.indexOf(node.id);
+
+            // backward
+            if (parent.first() !== node.id && parent.tags.oneway !== 'yes') {
+                turns.push(withRestriction({
+                    from: way,
+                    to: parent,
+                    via: node,
+                    toward: graph.entity(parent.nodes[index - 1])
+                }));
+            }
+
+            // forward
+            if (parent.last() !== node.id && parent.tags.oneway !== '-1') {
+                turns.push(withRestriction({
+                    from: way,
+                    to: parent,
+                    via: node,
+                    toward: graph.entity(parent.nodes[index + 1])
+                }));
+            }
+       });
+    });
+
+    return turns;
+};
 iD.actions = {};
 iD.actions.AddEntity = function(way) {
     return function(graph) {
@@ -15957,7 +16535,7 @@ iD.actions.AddMember = function(relationId, member, memberIndex) {
         }
 
         return graph.replace(relation.addMember(member, memberIndex));
-    }
+    };
 };
 iD.actions.AddMidpoint = function(midpoint, node) {
     return function(graph) {
@@ -15969,11 +16547,12 @@ iD.actions.AddMidpoint = function(midpoint, node) {
 
         parents.forEach(function(way) {
             for (var i = 0; i < way.nodes.length - 1; i++) {
-                if ((way.nodes[i]     === midpoint.edge[0] &&
-                     way.nodes[i + 1] === midpoint.edge[1]) ||
-                    (way.nodes[i]     === midpoint.edge[1] &&
-                     way.nodes[i + 1] === midpoint.edge[0])) {
+                if (iD.geo.edgeEqual([way.nodes[i], way.nodes[i + 1]], midpoint.edge)) {
                     graph = graph.replace(graph.entity(way.id).addNode(node.id, i + 1));
+
+                    // Add only one midpoint on doubled-back segments,
+                    // turning them into self-intersections.
+                    return;
                 }
             }
         });
@@ -15990,7 +16569,7 @@ iD.actions.AddVertex = function(wayId, nodeId, index) {
 iD.actions.ChangeMember = function(relationId, member, memberIndex) {
     return function(graph) {
         return graph.replace(graph.entity(relationId).updateMember(member, memberIndex));
-    }
+    };
 };
 iD.actions.ChangePreset = function(entityId, oldPreset, newPreset) {
     return function(graph) {
@@ -16010,63 +16589,105 @@ iD.actions.ChangeTags = function(entityId, tags) {
         return graph.replace(entity.update({tags: tags}));
     };
 };
-iD.actions.Circularize = function(wayId, projection, count) {
-    count = count || 12;
-
-    function closestIndex(nodes, loc) {
-        var idx, min = Infinity, dist;
-        for (var i = 0; i < nodes.length; i++) {
-            dist = iD.geo.dist(nodes[i].loc, loc);
-            if (dist < min) {
-                min = dist;
-                idx = i;
-            }
-        }
-        return idx;
-    }
+iD.actions.Circularize = function(wayId, projection, maxAngle) {
+    maxAngle = (maxAngle || 20) * Math.PI / 180;
 
     var action = function(graph) {
         var way = graph.entity(wayId),
             nodes = _.uniq(graph.childNodes(way)),
+            keyNodes = nodes.filter(function(n) { return graph.parentWays(n).length !== 1; }),
             points = nodes.map(function(n) { return projection(n.loc); }),
+            keyPoints = keyNodes.map(function(n) { return projection(n.loc); }),
             centroid = d3.geom.polygon(points).centroid(),
-            radius = d3.median(points, function(p) {
-                return iD.geo.dist(centroid, p);
-            }),
-            ids = [],
-            sign = d3.geom.polygon(points).area() > 0 ? -1 : 1;
-
-        for (var i = 0; i < count; i++) {
-            var node,
+            radius = d3.median(points, function(p) { return iD.geo.euclideanDistance(centroid, p); }),
+            sign = d3.geom.polygon(points).area() > 0 ? 1 : -1,
+            ids;
+
+        // we need atleast two key nodes for the algorithm to work
+        if (!keyNodes.length) {
+            keyNodes = [nodes[0]];
+            keyPoints = [points[0]];
+        }
+
+        if (keyNodes.length === 1) {
+            var index = nodes.indexOf(keyNodes[0]),
+                oppositeIndex = Math.floor((index + nodes.length / 2) % nodes.length);
+
+            keyNodes.push(nodes[oppositeIndex]);
+            keyPoints.push(points[oppositeIndex]);
+        }
+
+        // key points and nodes are those connected to the ways,
+        // they are projected onto the circle, inbetween nodes are moved
+        // to constant internals between key nodes, extra inbetween nodes are
+        // added if necessary.
+        for (var i = 0; i < keyPoints.length; i++) {
+            var nextKeyNodeIndex = (i + 1) % keyNodes.length,
+                startNodeIndex = nodes.indexOf(keyNodes[i]),
+                endNodeIndex = nodes.indexOf(keyNodes[nextKeyNodeIndex]),
+                numberNewPoints = -1,
+                indexRange = endNodeIndex - startNodeIndex,
+                distance, totalAngle, eachAngle, startAngle, endAngle,
+                angle, loc, node, j;
+
+            if (indexRange < 0) {
+                indexRange += nodes.length;
+            }
+
+            // position this key node
+            distance = iD.geo.euclideanDistance(centroid, keyPoints[i]);
+            keyPoints[i] = [
+                centroid[0] + (keyPoints[i][0] - centroid[0]) / distance * radius,
+                centroid[1] + (keyPoints[i][1] - centroid[1]) / distance * radius];
+            graph = graph.replace(keyNodes[i].move(projection.invert(keyPoints[i])));
+
+            // figure out the between delta angle we want to match to
+            startAngle = Math.atan2(keyPoints[i][1] - centroid[1], keyPoints[i][0] - centroid[0]);
+            endAngle = Math.atan2(keyPoints[nextKeyNodeIndex][1] - centroid[1], keyPoints[nextKeyNodeIndex][0] - centroid[0]);
+            totalAngle = endAngle - startAngle;
+
+            // detects looping around -pi/pi
+            if (totalAngle*sign > 0) {
+                totalAngle = -sign * (2 * Math.PI - Math.abs(totalAngle));
+            }
+
+            do {
+                numberNewPoints++;
+                eachAngle = totalAngle / (indexRange + numberNewPoints);
+            } while (Math.abs(eachAngle) > maxAngle);
+
+            // move existing points
+            for (j = 1; j < indexRange; j++) {
+                angle = startAngle + j * eachAngle;
                 loc = projection.invert([
-                    centroid[0] + Math.cos(sign * (i / 12) * Math.PI * 2) * radius,
-                    centroid[1] + Math.sin(sign * (i / 12) * Math.PI * 2) * radius]);
+                    centroid[0] + Math.cos(angle)*radius,
+                    centroid[1] + Math.sin(angle)*radius]);
 
-            if (nodes.length) {
-                var idx = closestIndex(nodes, loc);
-                node = nodes[idx];
-                nodes.splice(idx, 1);
-            } else {
-                node = iD.Node();
+                node = nodes[(j + startNodeIndex) % nodes.length].move(loc);
+                graph = graph.replace(node);
             }
 
-            ids.push(node.id);
-            graph = graph.replace(node.move(loc));
+            // add new inbetween nodes if necessary
+            for (j = 0; j < numberNewPoints; j++) {
+                angle = startAngle + (indexRange + j) * eachAngle;
+                loc = projection.invert([
+                    centroid[0] + Math.cos(angle) * radius,
+                    centroid[1] + Math.sin(angle) * radius]);
+
+                node = iD.Node({loc: loc});
+                graph = graph.replace(node);
+
+                nodes.splice(endNodeIndex + j, 0, node);
+            }
         }
 
+        // update the way to have all the new nodes
+        ids = nodes.map(function(n) { return n.id; });
         ids.push(ids[0]);
+
         way = way.update({nodes: ids});
         graph = graph.replace(way);
 
-        for (i = 0; i < nodes.length; i++) {
-            graph.parentWays(nodes[i]).forEach(function(parent) {
-                graph = graph.replace(parent.replaceNode(nodes[i].id,
-                    ids[closestIndex(graph.childNodes(way), nodes[i].loc)]));
-            });
-
-            graph = iD.actions.DeleteNode(nodes[i].id)(graph);
-        }
-
         return graph;
     };
 
@@ -16098,6 +16719,7 @@ iD.actions.Connect = function(nodeIds) {
         for (var i = 0; i < nodeIds.length - 1; i++) {
             var node = graph.entity(nodeIds[i]);
 
+            /*jshint -W083 */
             graph.parentWays(node).forEach(function(parent) {
                 if (!parent.areAdjacent(node.id, survivor.id)) {
                     graph = graph.replace(parent.replaceNode(node.id, survivor.id));
@@ -16107,6 +16729,7 @@ iD.actions.Connect = function(nodeIds) {
             graph.parentRelations(node).forEach(function(parent) {
                 graph = graph.replace(parent.replaceMember(node, survivor));
             });
+            /*jshint +W083 */
 
             survivor = survivor.mergeTags(node.tags);
             graph = iD.actions.DeleteNode(node.id)(graph);
@@ -16166,7 +16789,12 @@ iD.actions.DeleteNode = function(nodeId) {
 
         graph.parentRelations(node)
             .forEach(function(parent) {
-                graph = graph.replace(parent.removeMembersWithID(nodeId));
+                parent = parent.removeMembersWithID(nodeId);
+                graph = graph.replace(parent);
+
+                if (parent.isDegenerate()) {
+                    graph = iD.actions.DeleteRelation(parent.id)(graph);
+                }
             });
 
         return graph.remove(node);
@@ -16191,7 +16819,12 @@ iD.actions.DeleteRelation = function(relationId) {
 
         graph.parentRelations(relation)
             .forEach(function(parent) {
-                graph = graph.replace(parent.removeMembersWithID(relationId));
+                parent = parent.removeMembersWithID(relationId);
+                graph = graph.replace(parent);
+
+                if (parent.isDegenerate()) {
+                    graph = iD.actions.DeleteRelation(parent.id)(graph);
+                }
             });
 
         _.uniq(_.pluck(relation.members, 'id')).forEach(function(memberId) {
@@ -16226,7 +16859,12 @@ iD.actions.DeleteWay = function(wayId) {
 
         graph.parentRelations(way)
             .forEach(function(parent) {
-                graph = graph.replace(parent.removeMembersWithID(wayId));
+                parent = parent.removeMembersWithID(wayId);
+                graph = graph.replace(parent);
+
+                if (parent.isDegenerate()) {
+                    graph = iD.actions.DeleteRelation(parent.id)(graph);
+                }
             });
 
         _.uniq(way.nodes).forEach(function(nodeId) {
@@ -16297,7 +16935,7 @@ iD.actions.DiscardTags = function(difference) {
         difference.created().forEach(discardTags);
 
         return graph;
-    }
+    };
 };
 // Disconect the ways at the given node.
 //
@@ -16536,7 +17174,7 @@ iD.actions.MergePolygon = function(ids, newRelationId) {
             return _.any(contained[i]);
         }
 
-        function filterContained(d, i) {
+        function filterContained(d) {
             return d.filter(isContained);
         }
 
@@ -16645,20 +17283,24 @@ iD.actions.Noop = function() {
  */
 
 iD.actions.Orthogonalize = function(wayId, projection) {
+    var threshold = 7, // degrees within right or straight to alter
+        lowerThreshold = Math.cos((90 - threshold) * Math.PI / 180),
+        upperThreshold = Math.cos(threshold * Math.PI / 180);
+
     var action = function(graph) {
         var way = graph.entity(wayId),
             nodes = graph.childNodes(way),
+            points = _.uniq(nodes).map(function(n) { return projection(n.loc); }),
             corner = {i: 0, dotp: 1},
-            points, i, j, score, motions;
+            epsilon = 1e-4,
+            i, j, score, motions;
 
         if (nodes.length === 4) {
-            points = _.uniq(nodes).map(function(n) { return projection(n.loc); });
-
             for (i = 0; i < 1000; i++) {
                 motions = points.map(calcMotion);
                 points[corner.i] = addPoints(points[corner.i],motions[corner.i]);
                 score = corner.dotp;
-                if (score < 1.0e-8) {
+                if (score < epsilon) {
                     break;
                 }
             }
@@ -16666,30 +17308,50 @@ iD.actions.Orthogonalize = function(wayId, projection) {
             graph = graph.replace(graph.entity(nodes[corner.i].id)
                 .move(projection.invert(points[corner.i])));
         } else {
-            var best;
-            points = nodes.map(function(n) { return projection(n.loc); });
-            score = squareness();
+            var best,
+                originalPoints = _.clone(points);
+            score = Infinity;
 
             for (i = 0; i < 1000; i++) {
                 motions = points.map(calcMotion);
                 for (j = 0; j < motions.length; j++) {
                     points[j] = addPoints(points[j],motions[j]);
                 }
-                var newScore = squareness();
+                var newScore = squareness(points);
                 if (newScore < score) {
                     best = _.clone(points);
                     score = newScore;
                 }
-                if (score < 1.0e-8) {
+                if (score < epsilon) {
                     break;
                 }
             }
 
             points = best;
 
-            for (i = 0; i < points.length - 1; i++) {
-                graph = graph.replace(graph.entity(nodes[i].id)
-                    .move(projection.invert(points[i])));
+            for (i = 0; i < points.length; i++) {
+                // only move the points that actually moved
+                if (originalPoints[i][0] !== points[i][0] || originalPoints[i][1] !== points[i][1]) {
+                    graph = graph.replace(graph.entity(nodes[i].id)
+                        .move(projection.invert(points[i])));
+                }
+            }
+
+            // remove empty nodes on straight sections
+            for (i = 0; i < points.length; i++) {
+                var node = nodes[i];
+
+                if (graph.parentWays(node).length > 1 ||
+                    graph.parentRelations(node).length ||
+                    node.hasInterestingTags()) {
+
+                    continue;
+                }
+
+                var dotp = normalizedDotProduct(i, points);
+                if (dotp < -1 + epsilon) {
+                    graph = iD.actions.DeleteNode(nodes[i].id)(graph);
+                }
             }
         }
 
@@ -16699,79 +17361,91 @@ iD.actions.Orthogonalize = function(wayId, projection) {
             var a = array[(i - 1 + array.length) % array.length],
                 c = array[(i + 1) % array.length],
                 p = subtractPoints(a, b),
-                q = subtractPoints(c, b);
+                q = subtractPoints(c, b),
+                scale, dotp;
 
-            var scale = iD.geo.dist(p, [0, 0]) + iD.geo.dist(q, [0, 0]);
+            scale = 2 * Math.min(iD.geo.euclideanDistance(p, [0, 0]), iD.geo.euclideanDistance(q, [0, 0]));
             p = normalizePoint(p, 1.0);
             q = normalizePoint(q, 1.0);
 
-            var dotp = p[0] * q[0] + p[1] * q[1];
+            dotp = filterDotProduct(p[0] * q[0] + p[1] * q[1]);
 
             // nasty hack to deal with almost-straight segments (angle is closer to 180 than to 90/270).
             if (array.length > 3) {
                 if (dotp < -0.707106781186547) {
                     dotp += 1.0;
                 }
-            } else if (Math.abs(dotp) < corner.dotp) {
+            } else if (dotp && Math.abs(dotp) < corner.dotp) {
                 corner.i = i;
                 corner.dotp = Math.abs(dotp);
             }
 
             return normalizePoint(addPoints(p, q), 0.1 * dotp * scale);
         }
+    };
 
-        function squareness() {
-            var g = 0.0;
-            for (var i = 1; i < points.length - 1; i++) {
-                var score = scoreOfPoints(points[i - 1], points[i], points[i + 1]);
-                g += score;
-            }
-            var startScore = scoreOfPoints(points[points.length - 1], points[0], points[1]);
-            var endScore = scoreOfPoints(points[points.length - 2], points[points.length - 1], points[0]);
-            g += startScore;
-            g += endScore;
-            return g;
-        }
+    function squareness(points) {
+        return points.reduce(function(sum, val, i, array) {
+            var dotp = normalizedDotProduct(i, array);
 
-        function scoreOfPoints(a, b, c) {
-            var p = subtractPoints(a, b),
-                q = subtractPoints(c, b);
+            dotp = filterDotProduct(dotp);
+            return sum + 2.0 * Math.min(Math.abs(dotp - 1.0), Math.min(Math.abs(dotp), Math.abs(dotp + 1)));
+        }, 0);
+    }
 
-            p = normalizePoint(p, 1.0);
-            q = normalizePoint(q, 1.0);
+    function normalizedDotProduct(i, points) {
+        var a = points[(i - 1 + points.length) % points.length],
+            b = points[i],
+            c = points[(i + 1) % points.length],
+            p = subtractPoints(a, b),
+            q = subtractPoints(c, b);
 
-            var dotp = p[0] * q[0] + p[1] * q[1];
-            // score is constructed so that +1, -1 and 0 are all scored 0, any other angle
-            // is scored higher.
-            return 2.0 * Math.min(Math.abs(dotp - 1.0), Math.min(Math.abs(dotp), Math.abs(dotp + 1)));
-        }
+        p = normalizePoint(p, 1.0);
+        q = normalizePoint(q, 1.0);
 
-        function subtractPoints(a, b) {
-            return [a[0] - b[0], a[1] - b[1]];
-        }
+        return p[0] * q[0] + p[1] * q[1];
+    }
+
+    function subtractPoints(a, b) {
+        return [a[0] - b[0], a[1] - b[1]];
+    }
 
-        function addPoints(a, b) {
-            return [a[0] + b[0], a[1] + b[1]];
+    function addPoints(a, b) {
+        return [a[0] + b[0], a[1] + b[1]];
+    }
+
+    function normalizePoint(point, scale) {
+        var vector = [0, 0];
+        var length = Math.sqrt(point[0] * point[0] + point[1] * point[1]);
+        if (length !== 0) {
+            vector[0] = point[0] / length;
+            vector[1] = point[1] / length;
         }
 
-        function normalizePoint(point, scale) {
-            var vector = [0, 0];
-            var length = Math.sqrt(point[0] * point[0] + point[1] * point[1]);
-            if (length !== 0) {
-                vector[0] = point[0] / length;
-                vector[1] = point[1] / length;
-            }
+        vector[0] *= scale;
+        vector[1] *= scale;
 
-            vector[0] *= scale;
-            vector[1] *= scale;
+        return vector;
+    }
 
-            return vector;
+    function filterDotProduct(dotp) {
+        if (lowerThreshold > Math.abs(dotp) || Math.abs(dotp) > upperThreshold) {
+            return dotp;
         }
-    };
+
+        return 0;
+    }
 
     action.disabled = function(graph) {
-        if (!graph.entity(wayId).isClosed())
-            return 'not_closed';
+        var way = graph.entity(wayId),
+            nodes = graph.childNodes(way),
+            points = _.uniq(nodes).map(function(n) { return projection(n.loc); });
+
+        if (squareness(points)) {
+            return false;
+        }
+
+        return 'not_squarish';
     };
 
     return action;
@@ -16822,9 +17496,9 @@ iD.actions.Reverse = function(wayId) {
     }
 
     function reverseValue(key, value) {
-        if (key === "incline" && numeric.test(value)) {
+        if (key === 'incline' && numeric.test(value)) {
             return value.replace(numeric, function(_, sign) { return sign === '-' ? '' : '-'; });
-        } else if (key === "incline" || key === "direction") {
+        } else if (key === 'incline' || key === 'direction') {
             return {up: 'down', down: 'up'}[value] || value;
         } else {
             return {left: 'right', right: 'left'}[value] || value;
@@ -16895,19 +17569,70 @@ iD.actions.RotateWay = function(wayId, pivot, angle, projection) {
 iD.actions.Split = function(nodeId, newWayIds) {
     var wayIds;
 
+    // if the way is closed, we need to search for a partner node
+    // to split the way at.
+    //
+    // The following looks for a node that is both far away from
+    // the initial node in terms of way segment length and nearby
+    // in terms of beeline-distance. This assures that areas get
+    // split on the most "natural" points (independent of the number
+    // of nodes).
+    // For example: bone-shaped areas get split across their waist
+    // line, circles across the diameter.
+    function splitArea(nodes, idxA, graph) {
+        var lengths = new Array(nodes.length),
+            length,
+            i,
+            best = 0,
+            idxB;
+
+        function wrap(index) {
+            return iD.util.wrap(index, nodes.length);
+        }
+
+        function dist(nA, nB) {
+            return iD.geo.sphericalDistance(graph.entity(nA).loc, graph.entity(nB).loc);
+        }
+
+        // calculate lengths
+        length = 0;
+        for (i = wrap(idxA+1); i !== idxA; i = wrap(i+1)) {
+            length += dist(nodes[i], nodes[wrap(i-1)]);
+            lengths[i] = length;
+        }
+
+        length = 0;
+        for (i = wrap(idxA-1); i !== idxA; i = wrap(i-1)) {
+            length += dist(nodes[i], nodes[wrap(i+1)]);
+            if (length < lengths[i])
+                lengths[i] = length;
+        }
+
+        // determine best opposite node to split
+        for (i = 0; i < nodes.length; i++) {
+            var cost = lengths[i] / dist(nodes[idxA], nodes[i]);
+            if (cost > best) {
+                idxB = i;
+                best = cost;
+            }
+        }
+
+        return idxB;
+    }
+
     function split(graph, wayA, newWayId) {
         var wayB = iD.Way({id: newWayId, tags: wayA.tags}),
             nodesA,
             nodesB,
-            isArea = wayA.isArea();
+            isArea = wayA.isArea(),
+            isOuter = iD.geo.isSimpleMultipolygonOuterMember(wayA, graph);
 
         if (wayA.isClosed()) {
             var nodes = wayA.nodes.slice(0, -1),
                 idxA = _.indexOf(nodes, nodeId),
-                idxB = idxA + Math.floor(nodes.length / 2);
+                idxB = splitArea(nodes, idxA, graph);
 
-            if (idxB >= nodes.length) {
-                idxB %= nodes.length;
+            if (idxB < idxA) {
                 nodesA = nodes.slice(idxA).concat(nodes.slice(0, idxB + 1));
                 nodesB = nodes.slice(idxB, idxA + 1);
             } else {
@@ -16934,24 +17659,23 @@ iD.actions.Split = function(nodeId, newWayIds) {
                     graph = graph.replace(relation);
                 }
             } else {
-                var role = relation.memberById(wayA.id).role,
-                    last = wayB.last(),
-                    i = relation.memberById(wayA.id).index,
-                    j;
-
-                for (j = 0; j < relation.members.length; j++) {
-                    var entity = graph.hasEntity(relation.members[j].id);
-                    if (entity && entity.type === 'way' && entity.contains(last)) {
-                        break;
-                    }
+                if (relation === isOuter) {
+                    graph = graph.replace(relation.mergeTags(wayA.tags));
+                    graph = graph.replace(wayA.update({tags: {}}));
+                    graph = graph.replace(wayB.update({tags: {}}));
                 }
 
-                relation = relation.addMember({id: wayB.id, type: 'way', role: role}, i <= j ? i + 1 : i);
-                graph = graph.replace(relation);
+                var member = {
+                    id: wayB.id,
+                    type: 'way',
+                    role: relation.memberById(wayA.id).role
+                };
+
+                graph = iD.actions.AddMember(relation.id, member)(graph);
             }
         });
 
-        if (isArea) {
+        if (!isOuter && isArea) {
             var multipolygon = iD.Relation({
                 tags: _.extend({}, wayA.tags, {type: 'multipolygon'}),
                 members: [
@@ -16977,12 +17701,16 @@ iD.actions.Split = function(nodeId, newWayIds) {
 
     action.ways = function(graph) {
         var node = graph.entity(nodeId),
-            parents = graph.parentWays(node);
+            parents = graph.parentWays(node),
+            hasLines = _.any(parents, function(parent) { return parent.geometry(graph) === 'line'; });
 
         return parents.filter(function(parent) {
             if (wayIds && wayIds.indexOf(parent.id) === -1)
                 return false;
 
+            if (!wayIds && hasLines && parent.geometry(graph) !== 'line')
+                return false;
+
             if (parent.isClosed()) {
                 return true;
             }
@@ -17011,6 +17739,80 @@ iD.actions.Split = function(nodeId, newWayIds) {
 
     return action;
 };
+/*
+ * Based on https://github.com/openstreetmap/potlatch2/net/systemeD/potlatch2/tools/Straighten.as
+ */
+
+iD.actions.Straighten = function(wayId, projection) {
+    function positionAlongWay(n, s, e) {
+        return ((n[0] - s[0]) * (e[0] - s[0]) + (n[1] - s[1]) * (e[1] - s[1]))/
+                (Math.pow(e[0] - s[0], 2) + Math.pow(e[1] - s[1], 2));
+    }
+
+    var action = function(graph) {
+        var way = graph.entity(wayId),
+            nodes = graph.childNodes(way),
+            points = nodes.map(function(n) { return projection(n.loc); }),
+            startPoint = points[0],
+            endPoint = points[points.length-1],
+            toDelete = [],
+            i;
+
+        for (i = 1; i < points.length-1; i++) {
+            var node = nodes[i],
+                point = points[i];
+
+            if (graph.parentWays(node).length > 1 ||
+                graph.parentRelations(node).length ||
+                node.hasInterestingTags()) {
+
+                var u = positionAlongWay(point, startPoint, endPoint),
+                    p0 = startPoint[0] + u * (endPoint[0] - startPoint[0]),
+                    p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]);
+
+                graph = graph.replace(graph.entity(node.id)
+                    .move(projection.invert([p0, p1])));
+            } else {
+                // safe to delete
+                if (toDelete.indexOf(node) === -1) {
+                    toDelete.push(node);
+                }
+            }
+        }
+
+        for (i = 0; i < toDelete.length; i++) {
+            graph = iD.actions.DeleteNode(toDelete[i].id)(graph);
+        }
+
+        return graph;
+    };
+    
+    action.disabled = function(graph) {
+        // check way isn't too bendy
+        var way = graph.entity(wayId),
+            nodes = graph.childNodes(way),
+            points = nodes.map(function(n) { return projection(n.loc); }),
+            startPoint = points[0],
+            endPoint = points[points.length-1],
+            threshold = 0.2 * Math.sqrt(Math.pow(startPoint[0] - endPoint[0], 2) + Math.pow(startPoint[1] - endPoint[1], 2)),
+            i;
+
+        for (i = 1; i < points.length-1; i++) {
+            var point = points[i],
+                u = positionAlongWay(point, startPoint, endPoint),
+                p0 = startPoint[0] + u * (endPoint[0] - startPoint[0]),
+                p1 = startPoint[1] + u * (endPoint[1] - startPoint[1]),
+                dist = Math.sqrt(Math.pow(p0 - point[0], 2) + Math.pow(p1 - point[1], 2));
+
+            // to bendy if point is off by 20% of total start/end distance in projected space
+            if (dist > threshold) {
+                return 'too_bendy';
+            }
+        }
+    };
+
+    return action;
+};
 iD.behavior = {};
 iD.behavior.AddWay = function(context) {
     var event = d3.dispatch('start', 'startFromWay', 'startFromNode'),
@@ -17070,7 +17872,7 @@ iD.behavior.drag = function() {
       d3.event.preventDefault();
     }
 
-    var event = d3.dispatch("start", "move", "end"),
+    var event = d3.dispatch('start', 'move', 'end'),
         origin = null,
         selector = '',
         filter = null,
@@ -17078,10 +17880,10 @@ iD.behavior.drag = function() {
 
     event.of = function(thiz, argumentz) {
       return function(e1) {
+        var e0 = e1.sourceEvent = d3.event;
+        e1.target = drag;
+        d3.event = e1;
         try {
-          var e0 = e1.sourceEvent = d3.event;
-          e1.target = drag;
-          d3.event = e1;
           event[e1.type].apply(thiz, argumentz);
         } finally {
           d3.event = e0;
@@ -17089,7 +17891,7 @@ iD.behavior.drag = function() {
       };
     };
 
-    var d3_event_userSelectProperty = iD.util.prefixCSSProperty("UserSelect"),
+    var d3_event_userSelectProperty = iD.util.prefixCSSProperty('UserSelect'),
         d3_event_userSelectSuppress = d3_event_userSelectProperty ?
             function () {
                 var selection = d3.selection(),
@@ -17100,9 +17902,9 @@ iD.behavior.drag = function() {
                 };
             } :
             function (type) {
-                var w = d3.select(window).on("selectstart." + type, d3_eventCancel);
+                var w = d3.select(window).on('selectstart.' + type, d3_eventCancel);
                 return function () {
-                    w.on("selectstart." + type, null);
+                    w.on('selectstart.' + type, null);
                 };
             };
 
@@ -17113,12 +17915,12 @@ iD.behavior.drag = function() {
             touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null,
             offset,
             origin_ = point(),
-            moved = 0,
-            selectEnable = d3_event_userSelectSuppress(touchId != null ? "drag-" + touchId : "drag");
+            started = false,
+            selectEnable = d3_event_userSelectSuppress(touchId !== null ? 'drag-' + touchId : 'drag');
 
         var w = d3.select(window)
-            .on(touchId !== null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove)
-            .on(touchId !== null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
+            .on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', dragmove)
+            .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', dragend, true);
 
         if (origin) {
             offset = origin.apply(target, arguments);
@@ -17142,41 +17944,41 @@ iD.behavior.drag = function() {
                 dx = p[0] - origin_[0],
                 dy = p[1] - origin_[1];
 
-            if (!moved) {
+            if (!started) {
+                started = true;
                 event_({
-                    type: "start"
+                    type: 'start'
                 });
             }
 
-            moved |= dx | dy;
             origin_ = p;
             d3_eventCancel();
 
             event_({
-                type: "move",
+                type: 'move',
                 point: [p[0] + offset[0],  p[1] + offset[1]],
                 delta: [dx, dy]
             });
         }
 
         function dragend() {
-            if (moved) {
+            if (started) {
                 event_({
-                    type: "end"
+                    type: 'end'
                 });
 
                 d3_eventCancel();
-                if (d3.event.target === eventTarget) w.on("click.drag", click, true);
+                if (d3.event.target === eventTarget) w.on('click.drag', click, true);
             }
 
-            w.on(touchId !== null ? "touchmove.drag-" + touchId : "mousemove.drag", null)
-                .on(touchId !== null ? "touchend.drag-" + touchId : "mouseup.drag", null);
+            w.on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', null)
+                .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', null);
             selectEnable();
         }
 
         function click() {
             d3_eventCancel();
-            w.on("click.drag", null);
+            w.on('click.drag', null);
         }
     }
 
@@ -17197,13 +17999,13 @@ iD.behavior.drag = function() {
             };
         }
 
-        selection.on("mousedown.drag" + selector, delegate)
-            .on("touchstart.drag" + selector, delegate);
+        selection.on('mousedown.drag' + selector, delegate)
+            .on('touchstart.drag' + selector, delegate);
     }
 
     drag.off = function(selection) {
-        selection.on("mousedown.drag" + selector, null)
-            .on("touchstart.drag" + selector, null);
+        selection.on('mousedown.drag' + selector, null)
+            .on('touchstart.drag' + selector, null);
     };
 
     drag.delegate = function(_) {
@@ -17226,8 +18028,8 @@ iD.behavior.drag = function() {
 
     drag.cancel = function() {
         d3.select(window)
-            .on("mousemove.drag", null)
-            .on("mouseup.drag", null);
+            .on('mousemove.drag', null)
+            .on('mouseup.drag', null);
         return drag;
     };
 
@@ -17244,7 +18046,7 @@ iD.behavior.drag = function() {
         return drag;
     };
 
-    return d3.rebind(drag, event, "on");
+    return d3.rebind(drag, event, 'on');
 };
 iD.behavior.Draw = function(context) {
     var event = d3.dispatch('move', 'click', 'clickWay',
@@ -17272,8 +18074,7 @@ iD.behavior.Draw = function(context) {
             })[0] : d3.mouse(p);
         }
 
-        var eventTarget = d3.event.target,
-            element = d3.select(this),
+        var element = d3.select(this),
             touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null,
             time = +new Date(),
             pos = point();
@@ -17282,8 +18083,8 @@ iD.behavior.Draw = function(context) {
 
         d3.select(window).on('mouseup.draw', function() {
             element.on('mousemove.draw', mousemove);
-            if (iD.geo.dist(pos, point()) < closeTolerance ||
-                (iD.geo.dist(pos, point()) < tolerance &&
+            if (iD.geo.euclideanDistance(pos, point()) < closeTolerance ||
+                (iD.geo.euclideanDistance(pos, point()) < tolerance &&
                 (+new Date() - time) < 500)) {
 
                 // Prevent a quick second click
@@ -17515,12 +18316,13 @@ iD.behavior.DrawWay = function(context, wayId, index, mode, baseGraph) {
 
     // Connect the way to an existing way.
     drawWay.addWay = function(loc, edge) {
+        var previousEdge = startIndex ?
+            [way.nodes[startIndex], way.nodes[startIndex - 1]] :
+            [way.nodes[0], way.nodes[1]];
 
         // Avoid creating duplicate segments
-        if (!isArea) {
-            if (edge[0] === way.nodes[way.nodes.length - 1] ||
-                edge[1] === way.nodes[way.nodes.length - 1]) return;
-        }
+        if (!isArea && iD.geo.edgeEqual(edge, previousEdge))
+            return;
 
         var newNode = iD.Node({ loc: loc });
 
@@ -17607,7 +18409,7 @@ iD.behavior.Hash = function(context) {
 
     var parser = function(map, s) {
         var q = iD.util.stringQs(s);
-        var args = (q.map || '').split("/").map(Number);
+        var args = (q.map || '').split('/').map(Number);
         if (args.length < 3 || args.some(isNaN)) {
             return true; // replace bogus hash
         } else if (s !== formatter(map).slice(1)) {
@@ -17662,7 +18464,7 @@ iD.behavior.Hash = function(context) {
         d3.select(window)
             .on('hashchange.hash', null);
 
-        location.hash = "";
+        location.hash = '';
     };
 
     return hash;
@@ -17676,7 +18478,7 @@ iD.behavior.Hash = function(context) {
    Only one of these elements can have the :hover pseudo-class, but all of them will
    have the .hover class.
  */
-iD.behavior.Hover = function(context) {
+iD.behavior.Hover = function() {
     var dispatch = d3.dispatch('hover'),
         selection,
         altDisables,
@@ -17750,7 +18552,7 @@ iD.behavior.Hover = function(context) {
         function mousedown() {
             down = true;
             d3.select(window)
-                .on('mouseup.hover', mouseup)
+                .on('mouseup.hover', mouseup);
         }
 
         function mouseup() {
@@ -17783,7 +18585,7 @@ iD.behavior.Hover = function(context) {
         d3.select(window)
             .on('keydown.hover', null)
             .on('keyup.hover', null)
-            .on('mouseup.hover', null)
+            .on('mouseup.hover', null);
     };
 
     hover.altDisables = function(_) {
@@ -17931,25 +18733,25 @@ iD.behavior.Tail = function() {
     var text,
         container,
         xmargin = 25,
-        tooltip_size = [0, 0],
-        selection_size = [0, 0],
+        tooltipSize = [0, 0],
+        selectionSize = [0, 0],
         transformProp = iD.util.prefixCSSProperty('Transform');
 
     function tail(selection) {
         if (!text) return;
 
         d3.select(window)
-            .on('resize.tail', function() { selection_size = selection.dimensions(); });
+            .on('resize.tail', function() { selectionSize = selection.dimensions(); });
 
         function show() {
             container.style('display', 'block');
-            tooltip_size = container.dimensions();
+            tooltipSize = container.dimensions();
         }
 
         function mousemove() {
             if (container.style('display') === 'none') show();
-            var xoffset = ((d3.event.clientX + tooltip_size[0] + xmargin) > selection_size[0]) ?
-                -tooltip_size[0] - xmargin : xmargin;
+            var xoffset = ((d3.event.clientX + tooltipSize[0] + xmargin) > selectionSize[0]) ?
+                -tooltipSize[0] - xmargin : xmargin;
             container.classed('left', xoffset > 0);
             container.style(transformProp, 'translate(' +
                 (~~d3.event.clientX + xoffset) + 'px,' +
@@ -17984,8 +18786,8 @@ iD.behavior.Tail = function() {
         container
             .on('mousemove.tail', mousemove);
 
-        tooltip_size = container.dimensions();
-        selection_size = selection.dimensions();
+        tooltipSize = container.dimensions();
+        selectionSize = selection.dimensions();
     }
 
     tail.off = function(selection) {
@@ -18105,7 +18907,7 @@ iD.modes.AddLine = function(context) {
             iD.actions.AddEntity(way),
             iD.actions.AddVertex(way.id, node.id));
 
-        context.enter(iD.modes.DrawLine(context, way.id, 'forward', graph));
+        context.enter(iD.modes.DrawLine(context, way.id, graph));
     }
 
     function startFromWay(loc, edge) {
@@ -18119,29 +18921,17 @@ iD.modes.AddLine = function(context) {
             iD.actions.AddVertex(way.id, node.id),
             iD.actions.AddMidpoint({ loc: loc, edge: edge }, node));
 
-        context.enter(iD.modes.DrawLine(context, way.id, 'forward', graph));
+        context.enter(iD.modes.DrawLine(context, way.id, graph));
     }
 
     function startFromNode(node) {
-        var graph = context.graph(),
-            parent = graph.parentWays(node)[0],
-            isLine = parent && parent.geometry(graph) === 'line';
-
-        if (isLine && parent.first() === node.id) {
-            context.enter(iD.modes.DrawLine(context, parent.id, 'backward', graph));
+        var way = iD.Way();
 
-        } else if (isLine && parent.last() === node.id) {
-            context.enter(iD.modes.DrawLine(context, parent.id, 'forward', graph));
-
-        } else {
-            var way = iD.Way();
-
-            context.perform(
-                iD.actions.AddEntity(way),
-                iD.actions.AddVertex(way.id, node.id));
+        context.perform(
+            iD.actions.AddEntity(way),
+            iD.actions.AddVertex(way.id, node.id));
 
-            context.enter(iD.modes.DrawLine(context, way.id, 'forward', graph));
-        }
+        context.enter(iD.modes.DrawLine(context, way.id, context.graph()));
     }
 
     mode.enter = function() {
@@ -18184,7 +18974,7 @@ iD.modes.AddPoint = function(context) {
                 .newFeature(true));
     }
 
-    function addWay(loc, edge) {
+    function addWay(loc) {
         add(loc);
     }
 
@@ -18223,14 +19013,12 @@ iD.modes.Browse = function(context) {
         iD.modes.DragNode(context).behavior];
 
     mode.enter = function() {
-        context.history().save();
-
         behaviors.forEach(function(behavior) {
             context.install(behavior);
         });
 
         // Get focus on the body.
-        if (document.activeElement) {
+        if (document.activeElement && document.activeElement.blur) {
             document.activeElement.blur();
         }
 
@@ -18300,8 +19088,8 @@ iD.modes.DragNode = function(context) {
         return t('operations.move.annotation.' + entity.geometry(context.graph()));
     }
 
-    function connectAnnotation(datum) {
-        return t('operations.connect.annotation.' + datum.geometry(context.graph()));
+    function connectAnnotation(entity) {
+        return t('operations.connect.annotation.' + entity.geometry(context.graph()));
     }
 
     function origin(entity) {
@@ -18364,13 +19152,13 @@ iD.modes.DragNode = function(context) {
         var d = datum();
         if (d.type === 'node' && d.id !== entity.id) {
             loc = d.loc;
-        } else if (d.type === 'way') {
+        } else if (d.type === 'way' && !d3.select(d3.event.sourceEvent.target).classed('fill')) {
             loc = iD.geo.chooseEdge(context.childNodes(d), context.mouse(), context.projection).loc;
         }
 
         context.replace(
             iD.actions.MoveNode(entity.id, loc),
-            t('operations.move.annotation.' + entity.geometry(context.graph())));
+            moveAnnotation(entity));
     }
 
     function end(entity) {
@@ -18424,7 +19212,7 @@ iD.modes.DragNode = function(context) {
     }
 
     var behavior = iD.behavior.drag()
-        .delegate("g.node, g.point, g.midpoint")
+        .delegate('g.node, g.point, g.midpoint')
         .surface(context.surface().node())
         .origin(origin)
         .on('start', start)
@@ -18510,7 +19298,7 @@ iD.modes.DrawArea = function(context, wayId, baseGraph) {
 
     return mode;
 };
-iD.modes.DrawLine = function(context, wayId, direction, baseGraph) {
+iD.modes.DrawLine = function(context, wayId, baseGraph, affix) {
     var mode = {
         button: 'line',
         id: 'draw-line'
@@ -18520,8 +19308,8 @@ iD.modes.DrawLine = function(context, wayId, direction, baseGraph) {
 
     mode.enter = function() {
         var way = context.entity(wayId),
-            index = (direction === 'forward') ? undefined : 0,
-            headId = (direction === 'forward') ? way.last() : way.first();
+            index = (affix === 'prefix') ? 0 : undefined,
+            headId = (affix === 'prefix') ? way.first() : way.last();
 
         behavior = iD.behavior.DrawWay(context, wayId, index, mode, baseGraph)
             .tail(t('modes.draw_line.tail'));
@@ -18556,81 +19344,82 @@ iD.modes.Move = function(context, entityIDs) {
     };
 
     var keybinding = d3.keybinding('move'),
-        edit = iD.behavior.Edit(context);
-
-    mode.enter = function() {
-        context.install(edit);
+        edit = iD.behavior.Edit(context),
+        annotation = entityIDs.length === 1 ?
+            t('operations.move.annotation.' + context.geometry(entityIDs[0])) :
+            t('operations.move.annotation.multiple'),
+        origin,
+        nudgeInterval;
 
-        var origin,
-            nudgeInterval,
-            annotation = entityIDs.length === 1 ?
-                t('operations.move.annotation.' + context.geometry(entityIDs[0])) :
-                t('operations.move.annotation.multiple');
+    function edge(point, size) {
+        var pad = [30, 100, 30, 100];
+        if (point[0] > size[0] - pad[0]) return [-10, 0];
+        else if (point[0] < pad[2]) return [10, 0];
+        else if (point[1] > size[1] - pad[1]) return [0, -10];
+        else if (point[1] < pad[3]) return [0, 10];
+        return null;
+    }
 
-        context.perform(
-            iD.actions.Noop(),
-            annotation);
+    function startNudge(nudge) {
+        if (nudgeInterval) window.clearInterval(nudgeInterval);
+        nudgeInterval = window.setInterval(function() {
+            context.pan(nudge);
+            context.replace(
+                iD.actions.Move(entityIDs, [-nudge[0], -nudge[1]], context.projection),
+                annotation);
+            var c = context.projection(origin);
+            origin = context.projection.invert([c[0] - nudge[0], c[1] - nudge[1]]);
+        }, 50);
+    }
 
-        function edge(point, size) {
-            var pad = [30, 100, 30, 100];
-            if (point[0] > size[0] - pad[0]) return [-10, 0];
-            else if (point[0] < pad[2]) return [10, 0];
-            else if (point[1] > size[1] - pad[1]) return [0, -10];
-            else if (point[1] < pad[3]) return [0, 10];
-            return null;
-        }
+    function stopNudge() {
+        if (nudgeInterval) window.clearInterval(nudgeInterval);
+        nudgeInterval = null;
+    }
 
-        function startNudge(nudge) {
-            if (nudgeInterval) window.clearInterval(nudgeInterval);
-            nudgeInterval = window.setInterval(function() {
-                context.pan(nudge);
-                context.replace(
-                    iD.actions.Move(entityIDs, [-nudge[0], -nudge[1]], context.projection),
-                    annotation);
-                var c = context.projection(origin);
-                origin = context.projection.invert([c[0] - nudge[0], c[1] - nudge[1]]);
-            }, 50);
-        }
+    function move() {
+        var p = context.mouse();
 
-        function stopNudge() {
-            if (nudgeInterval) window.clearInterval(nudgeInterval);
-            nudgeInterval = null;
-        }
+        var delta = origin ?
+            [p[0] - context.projection(origin)[0],
+                p[1] - context.projection(origin)[1]] :
+            [0, 0];
 
-        function move() {
-            var p = context.mouse();
+        var nudge = edge(p, context.map().dimensions());
+        if (nudge) startNudge(nudge);
+        else stopNudge();
 
-            var delta = origin ?
-                [p[0] - context.projection(origin)[0],
-                p[1] - context.projection(origin)[1]] :
-                [0, 0];
+        origin = context.map().mouseCoordinates();
 
-            var nudge = edge(p, context.map().dimensions());
-            if (nudge) startNudge(nudge);
-            else stopNudge();
+        context.replace(
+            iD.actions.Move(entityIDs, delta, context.projection),
+            annotation);
+    }
 
-            origin = context.map().mouseCoordinates();
+    function finish() {
+        d3.event.stopPropagation();
+        context.enter(iD.modes.Select(context, entityIDs)
+            .suppressMenu(true));
+        stopNudge();
+    }
 
-            context.replace(
-                iD.actions.Move(entityIDs, delta, context.projection),
-                annotation);
-        }
+    function cancel() {
+        context.pop();
+        context.enter(iD.modes.Select(context, entityIDs)
+            .suppressMenu(true));
+        stopNudge();
+    }
 
-        function finish() {
-            d3.event.stopPropagation();
-            context.enter(iD.modes.Select(context, entityIDs));
-            stopNudge();
-        }
+    function undone() {
+        context.enter(iD.modes.Browse(context));
+    }
 
-        function cancel() {
-            context.pop();
-            context.enter(iD.modes.Select(context, entityIDs));
-            stopNudge();
-        }
+    mode.enter = function() {
+        context.install(edit);
 
-        function undone() {
-            context.enter(iD.modes.Browse(context));
-        }
+        context.perform(
+            iD.actions.Noop(),
+            annotation);
 
         context.surface()
             .on('mousemove.move', move)
@@ -18648,6 +19437,8 @@ iD.modes.Move = function(context, entityIDs) {
     };
 
     mode.exit = function() {
+        stopNudge();
+
         context.uninstall(edit);
 
         context.surface()
@@ -18701,12 +19492,14 @@ iD.modes.RotateWay = function(context, wayId) {
 
         function finish() {
             d3.event.stopPropagation();
-            context.enter(iD.modes.Select(context, [wayId]));
+            context.enter(iD.modes.Select(context, [wayId])
+                .suppressMenu(true));
         }
 
         function cancel() {
             context.pop();
-            context.enter(iD.modes.Select(context, [wayId]));
+            context.enter(iD.modes.Select(context, [wayId])
+                .suppressMenu(true));
         }
 
         function undone() {
@@ -18746,18 +19539,12 @@ iD.modes.RotateWay = function(context, wayId) {
 iD.modes.Save = function(context) {
     var ui = iD.ui.Commit(context)
         .on('cancel', cancel)
-        .on('fix', fix)
         .on('save', save);
 
     function cancel() {
         context.enter(iD.modes.Browse(context));
     }
 
-    function fix(d) {
-        context.map().zoomTo(d.entity);
-        context.enter(iD.modes.Select(context, [d.entity.id]));
-    }
-
     function save(e) {
         var loading = iD.ui.Loading(context)
             .message(t('save.uploading'))
@@ -18816,7 +19603,7 @@ iD.modes.Save = function(context) {
             context.install(behavior);
         });
 
-        context.connection().authenticate(function(err) {
+        context.connection().authenticate(function() {
             context.ui().sidebar.show(ui);
         });
     };
@@ -18903,8 +19690,6 @@ iD.modes.Select = function(context, selectedIDs) {
     };
 
     mode.enter = function() {
-        context.history().save();
-
         behaviors.forEach(function(behavior) {
             context.install(behavior);
         });
@@ -19006,6 +19791,11 @@ iD.modes.Select = function(context, selectedIDs) {
             context.surface()
                 .on('dblclick.select', dblclick);
         }, 200);
+
+        if (selectedIDs.length > 1) {
+            var entities = iD.ui.SelectionList(context, selectedIDs);
+            context.ui().sidebar.show(entities);
+        }
     };
 
     mode.exit = function() {
@@ -19029,10 +19819,11 @@ iD.modes.Select = function(context, selectedIDs) {
         context.surface()
             .call(radialMenu.close)
             .on('dblclick.select', null)
-            .selectAll(".selected")
+            .selectAll('.selected')
             .classed('selected', false);
 
         context.map().on('drawn.select', null);
+        context.ui().sidebar.hide();
     };
 
     return mode;
@@ -19064,12 +19855,61 @@ iD.operations.Circularize = function(selectedIDs, context) {
             t('operations.circularize.description.' + geometry);
     };
 
-    operation.id = "circularize";
+    operation.id = 'circularize';
     operation.keys = [t('operations.circularize.key')];
     operation.title = t('operations.circularize.title');
 
     return operation;
 };
+iD.operations.Continue = function(selectedIDs, context) {
+    var graph = context.graph(),
+        entities = selectedIDs.map(function(id) { return graph.entity(id); }),
+        geometries = _.extend({line: [], vertex: []},
+            _.groupBy(entities, function(entity) { return entity.geometry(graph); })),
+        vertex = geometries.vertex[0];
+
+    function candidateWays() {
+        return graph.parentWays(vertex).filter(function(parent) {
+            return parent.geometry(graph) === 'line' &&
+                parent.affix(vertex.id) &&
+                (geometries.line.length === 0 || geometries.line[0] === parent);
+        });
+    }
+
+    var operation = function() {
+        var candidate = candidateWays()[0];
+        context.enter(iD.modes.DrawLine(
+            context,
+            candidate.id,
+            context.graph(),
+            candidate.affix(vertex.id)));
+    };
+
+    operation.available = function() {
+        return geometries.vertex.length === 1 && geometries.line.length <= 1;
+    };
+
+    operation.disabled = function() {
+        var candidates = candidateWays();
+        if (candidates.length === 0)
+            return 'not_eligible';
+        if (candidates.length > 1)
+            return 'multiple';
+    };
+
+    operation.tooltip = function() {
+        var disable = operation.disabled();
+        return disable ?
+            t('operations.continue.' + disable) :
+            t('operations.continue.description');
+    };
+
+    operation.id = 'continue';
+    operation.keys = [t('operations.continue.key')];
+    operation.title = t('operations.continue.title');
+
+    return operation;
+};
 iD.operations.Delete = function(selectedIDs, context) {
     var action = iD.actions.DeleteMultiple(selectedIDs);
 
@@ -19099,8 +19939,8 @@ iD.operations.Delete = function(selectedIDs, context) {
                 } else if (i === nodes.length - 1) {
                     i--;
                 } else {
-                    var a = iD.geo.dist(entity.loc, context.entity(nodes[i - 1]).loc),
-                        b = iD.geo.dist(entity.loc, context.entity(nodes[i + 1]).loc);
+                    var a = iD.geo.sphericalDistance(entity.loc, context.entity(nodes[i - 1]).loc),
+                        b = iD.geo.sphericalDistance(entity.loc, context.entity(nodes[i + 1]).loc);
                     i = a < b ? i - 1 : i + 1;
                 }
 
@@ -19134,7 +19974,7 @@ iD.operations.Delete = function(selectedIDs, context) {
             t('operations.delete.description');
     };
 
-    operation.id = "delete";
+    operation.id = 'delete';
     operation.keys = [iD.ui.cmd('⌘⌫'), iD.ui.cmd('⌘⌦')];
     operation.title = t('operations.delete.title');
 
@@ -19171,7 +20011,7 @@ iD.operations.Disconnect = function(selectedIDs, context) {
             t('operations.disconnect.description');
     };
 
-    operation.id = "disconnect";
+    operation.id = 'disconnect';
     operation.keys = [t('operations.disconnect.key')];
     operation.title = t('operations.disconnect.title');
 
@@ -19223,7 +20063,7 @@ iD.operations.Merge = function(selectedIDs, context) {
         return t('operations.merge.description');
     };
 
-    operation.id = "merge";
+    operation.id = 'merge';
     operation.keys = [t('operations.merge.key')];
     operation.title = t('operations.merge.title');
 
@@ -19251,7 +20091,7 @@ iD.operations.Move = function(selectedIDs, context) {
             t('operations.move.description');
     };
 
-    operation.id = "move";
+    operation.id = 'move';
     operation.keys = [t('operations.move.key')];
     operation.title = t('operations.move.title');
 
@@ -19259,17 +20099,20 @@ iD.operations.Move = function(selectedIDs, context) {
 };
 iD.operations.Orthogonalize = function(selectedIDs, context) {
     var entityId = selectedIDs[0],
+        geometry = context.geometry(entityId),
         action = iD.actions.Orthogonalize(entityId, context.projection);
 
-    var operation = function() {
-        var annotation = t('operations.orthogonalize.annotation.' + context.geometry(entityId));
+    function operation() {
+        var annotation = t('operations.orthogonalize.annotation.' + geometry);
         context.perform(action, annotation);
-    };
+    }
 
     operation.available = function() {
+        var entity = context.entity(entityId);
         return selectedIDs.length === 1 &&
-            context.entity(entityId).type === 'way' &&
-            _.uniq(context.entity(entityId).nodes).length > 2;
+            entity.type === 'way' &&
+            entity.isClosed() &&
+            _.uniq(entity.nodes).length > 2;
     };
 
     operation.disabled = function() {
@@ -19280,13 +20123,12 @@ iD.operations.Orthogonalize = function(selectedIDs, context) {
         var disable = operation.disabled();
         return disable ?
             t('operations.orthogonalize.' + disable) :
-            t('operations.orthogonalize.description');
+            t('operations.orthogonalize.description.' + geometry);
     };
 
-    operation.id = "orthogonalize";
+    operation.id = 'orthogonalize';
     operation.keys = [t('operations.orthogonalize.key')];
     operation.title = t('operations.orthogonalize.title');
-    operation.description = t('operations.orthogonalize.description');
 
     return operation;
 };
@@ -19312,7 +20154,7 @@ iD.operations.Reverse = function(selectedIDs, context) {
         return t('operations.reverse.description');
     };
 
-    operation.id = "reverse";
+    operation.id = 'reverse';
     operation.keys = [t('operations.reverse.key')];
     operation.title = t('operations.reverse.title');
 
@@ -19339,7 +20181,7 @@ iD.operations.Rotate = function(selectedIDs, context) {
         return t('operations.rotate.description');
     };
 
-    operation.id = "rotate";
+    operation.id = 'rotate';
     operation.keys = [t('operations.rotate.key')];
     operation.title = t('operations.rotate.title');
 
@@ -19393,12 +20235,46 @@ iD.operations.Split = function(selectedIDs, context) {
         }
     };
 
-    operation.id = "split";
+    operation.id = 'split';
     operation.keys = [t('operations.split.key')];
     operation.title = t('operations.split.title');
 
     return operation;
 };
+iD.operations.Straighten = function(selectedIDs, context) {
+    var entityId = selectedIDs[0],
+        action = iD.actions.Straighten(entityId, context.projection);
+
+    function operation() {
+        var annotation = t('operations.straighten.annotation');
+        context.perform(action, annotation);
+    }
+
+    operation.available = function() {
+        var entity = context.entity(entityId);
+        return selectedIDs.length === 1 &&
+            entity.type === 'way' &&
+            !entity.isClosed() &&
+            _.uniq(entity.nodes).length > 2;
+    };
+
+    operation.disabled = function() {
+        return action.disabled(context.graph());
+    };
+
+    operation.tooltip = function() {
+        var disable = operation.disabled();
+        return disable ?
+            t('operations.straighten.' + disable) :
+            t('operations.straighten.description');
+    };
+
+    operation.id = 'straighten';
+    operation.keys = [t('operations.straighten.key')];
+    operation.title = t('operations.straighten.title');
+
+    return operation;
+};
 iD.Connection = function() {
 
     var event = d3.dispatch('authenticating', 'authenticated', 'auth', 'loading', 'load', 'loaded'),
@@ -19435,7 +20311,7 @@ iD.Connection = function() {
     };
 
     connection.userURL = function(username) {
-        return url + "/user/" + username;
+        return url + '/user/' + username;
     };
 
     connection.loadFromURL = function(url, callback) {
@@ -19716,7 +20592,7 @@ iD.Connection = function() {
                     extent: iD.geo.Extent(
                         projection.invert([x, y + ts]),
                         projection.invert([x + ts, y]))
-                }
+                };
             });
 
         function bboxUrl(tile) {
@@ -19884,7 +20760,6 @@ iD.Difference = function(base, head) {
     };
 
     difference.addParents = function(entities) {
-
         for (var i in entities) {
             addParents(head.parentWays(entities[i]), entities);
             addParents(head.parentRelations(entities[i]), entities);
@@ -19892,6 +20767,55 @@ iD.Difference = function(base, head) {
         return entities;
     };
 
+    difference.summary = function() {
+        var relevant = {};
+
+        function addEntity(entity, graph, changeType) {
+            relevant[entity.id] = {
+                entity: entity,
+                graph: graph,
+                changeType: changeType
+            };
+        }
+
+        function addParents(entity) {
+            var parents = head.parentWays(entity);
+            for (var j = parents.length - 1; j >= 0; j--) {
+                var parent = parents[j];
+                if (!(parent.id in relevant)) addEntity(parent, head, 'modified');
+            }
+        }
+
+        _.each(changes, function(change) {
+            if (change.head && change.head.geometry(head) !== 'vertex') {
+                addEntity(change.head, head, change.base ? 'modified' : 'created');
+
+            } else if (change.base && change.base.geometry(base) !== 'vertex') {
+                addEntity(change.base, base, 'deleted');
+
+            } else if (change.base && change.head) { // modified vertex
+                var moved    = !_.isEqual(change.base.loc,  change.head.loc),
+                    retagged = !_.isEqual(change.base.tags, change.head.tags);
+
+                if (moved) {
+                    addParents(change.head);
+                }
+
+                if (retagged || (moved && change.head.hasInterestingTags())) {
+                    addEntity(change.head, head, 'modified');
+                }
+
+            } else if (change.head && change.head.hasInterestingTags()) { // created vertex
+                addEntity(change.head, head, 'created');
+
+            } else if (change.base && change.base.hasInterestingTags()) { // deleted vertex
+                addEntity(change.base, base, 'deleted');
+            }
+        });
+
+        return d3.values(relevant);
+    };
+
     difference.complete = function(extent) {
         var result = {}, id, change;
 
@@ -19972,11 +20896,6 @@ iD.Entity.key = function(entity) {
     return entity.id + 'v' + (entity.v || 0);
 };
 
-iD.Entity.areaPath = d3.geo.path()
-    .projection(d3.geo.mercator()
-        .scale(12016420.517592335)
-        .precision(0));
-
 iD.Entity.prototype = {
     tags: {},
 
@@ -20043,21 +20962,18 @@ iD.Entity.prototype = {
             resolver.parentRelations(this).length > 0;
     },
 
-    // Returns the (possibly negative) area of the entity in square pixels at an
-    // arbitrary unspecified zoom level -- so basically, only useful for relative
-    // comparisons.
     area: function(resolver) {
         return resolver.transient(this, 'area', function() {
-            return iD.Entity.areaPath.area(this.asGeoJSON(resolver, true));
+            return d3.geo.area(this.asGeoJSON(resolver, true));
         });
     },
 
     hasInterestingTags: function() {
         return _.keys(this.tags).some(function(key) {
-            return key != 'attribution' &&
-                key != 'created_by' &&
-                key != 'source' &&
-                key != 'odbl' &&
+            return key !== 'attribution' &&
+                key !== 'created_by' &&
+                key !== 'source' &&
+                key !== 'odbl' &&
                 key.indexOf('tiger:') !== 0;
         });
     },
@@ -20069,8 +20985,8 @@ iD.Entity.prototype = {
         iD.data.deprecated.forEach(function(d) {
             var match = _.pairs(d.old)[0];
             tags.forEach(function(t) {
-                if (t[0] == match[0] &&
-                    (t[1] == match[1] || match[1] == '*')) {
+                if (t[0] === match[0] &&
+                    (t[1] === match[1] || match[1] === '*')) {
                     deprecated[t[0]] = t[1];
                 }
             });
@@ -20261,7 +21177,6 @@ iD.Graph.prototype = {
                 ways.push(entity.id);
                 parentWays[added[i]] = ways;
             }
-        } else if (type === 'node') {
 
         } else if (type === 'relation') {
 
@@ -20359,7 +21274,7 @@ iD.History = function(context) {
     var stack, index, tree,
         imageryUsed = ['Bing'],
         dispatch = d3.dispatch('change', 'undone', 'redone'),
-        lock = false;
+        lock = iD.util.SessionMutex('lock');
 
     function perform(actions) {
         actions = Array.prototype.slice.call(actions);
@@ -20515,10 +21430,6 @@ iD.History = function(context) {
             return this.difference().length() > 0;
         },
 
-        numChanges: function() {
-            return this.difference().length();
-        },
-
         imageryUsed: function(sources) {
             if (sources) {
                 imageryUsed = sources;
@@ -20594,14 +21505,18 @@ iD.History = function(context) {
                 stack = h.stack.map(function(d) {
                     var entities = {}, entity;
 
-                    d.modified && d.modified.forEach(function(key) {
-                        entity = allEntities[key];
-                        entities[entity.id] = entity;
-                    });
+                    if (d.modified) {
+                        d.modified.forEach(function(key) {
+                            entity = allEntities[key];
+                            entities[entity.id] = entity;
+                        });
+                    }
 
-                    d.deleted && d.deleted.forEach(function(id) {
-                        entities[id] = undefined;
-                    });
+                    if (d.deleted) {
+                        d.deleted.forEach(function(id) {
+                            entities[id] = undefined;
+                        });
+                    }
 
                     return {
                         graph: iD.Graph(stack[0].graph).load(entities),
@@ -20630,39 +21545,37 @@ iD.History = function(context) {
         },
 
         save: function() {
-            if (!lock) return history;
-            context.storage(getKey('lock'), null);
-            context.storage(getKey('saved_history'), this.toJSON() || null);
+            if (lock.locked()) context.storage(getKey('saved_history'), history.toJSON() || null);
             return history;
         },
 
         clearSaved: function() {
-            if (!lock) return;
-            context.storage(getKey('saved_history'), null);
+            if (lock.locked()) context.storage(getKey('saved_history'), null);
+            return history;
         },
 
         lock: function() {
-            if (context.storage(getKey('lock'))) return false;
-            context.storage(getKey('lock'), true);
-            lock = true;
-            return lock;
+            return lock.lock();
+        },
+
+        unlock: function() {
+            lock.unlock();
         },
 
         // is iD not open in another window and it detects that
         // there's a history stored in localStorage that's recoverable?
         restorableChanges: function() {
-            return lock && !!context.storage(getKey('saved_history'));
+            return lock.locked() && !!context.storage(getKey('saved_history'));
         },
 
         // load history from a version stored in localStorage
         restore: function() {
-            if (!lock) return;
+            if (!lock.locked()) return;
 
             var json = context.storage(getKey('saved_history'));
-            if (json) this.fromJSON(json);
+            if (json) history.fromJSON(json);
 
             context.storage(getKey('saved_history', null));
-
         },
 
         _getKey: getKey
@@ -20684,7 +21597,7 @@ iD.Node = iD.Entity.node = function iD_Node() {
 iD.Node.prototype = Object.create(iD.Entity.prototype);
 
 _.extend(iD.Node.prototype, {
-    type: "node",
+    type: 'node',
 
     extent: function() {
         return new iD.geo.Extent(this.loc);
@@ -20730,12 +21643,8 @@ _.extend(iD.Node.prototype, {
 
     asGeoJSON: function() {
         return {
-            type: 'Feature',
-            properties: this.tags,
-            geometry: {
-                type: 'Point',
-                coordinates: this.loc
-            }
+            type: 'Point',
+            coordinates: this.loc
         };
     }
 });
@@ -20750,7 +21659,7 @@ iD.Relation = iD.Entity.relation = function iD_Relation() {
 iD.Relation.prototype = Object.create(iD.Entity.prototype);
 
 _.extend(iD.Relation.prototype, {
-    type: "relation",
+    type: 'relation',
     members: [],
 
     extent: function(resolver) {
@@ -20772,12 +21681,16 @@ _.extend(iD.Relation.prototype, {
         });
     },
 
+    isDegenerate: function() {
+        return this.members.length === 0;
+    },
+
     // Return an array of members, each extended with an 'index' property whose value
     // is the member index.
     indexedMembers: function() {
         var result = new Array(this.members.length);
         for (var i = 0; i < this.members.length; i++) {
-            result[i] = _.extend({}, this.members[i], {index: i})
+            result[i] = _.extend({}, this.members[i], {index: i});
         }
         return result;
     },
@@ -20875,24 +21788,22 @@ _.extend(iD.Relation.prototype, {
     },
 
     asGeoJSON: function(resolver) {
-        if (this.isMultipolygon()) {
-            return {
-                type: 'Feature',
-                properties: this.tags,
-                geometry: {
+        return resolver.transient(this, 'GeoJSON', function () {
+            if (this.isMultipolygon()) {
+                return {
                     type: 'MultiPolygon',
                     coordinates: this.multipolygon(resolver)
-                }
-            };
-        } else {
-            return {
-                type: 'FeatureCollection',
-                properties: this.tags,
-                features: this.members.map(function(member) {
-                    return _.extend({role: member.role}, resolver.entity(member.id).asGeoJSON(resolver));
-                })
-            };
-        }
+                };
+            } else {
+                return {
+                    type: 'FeatureCollection',
+                    properties: this.tags,
+                    features: this.members.map(function (member) {
+                        return _.extend({role: member.role}, resolver.entity(member.id).asGeoJSON(resolver));
+                    })
+                };
+            }
+        });
     },
 
     isMultipolygon: function() {
@@ -20932,7 +21843,11 @@ _.extend(iD.Relation.prototype, {
         outers = outers.map(function(outer) { return _.pluck(outer.nodes, 'loc'); });
         inners = inners.map(function(inner) { return _.pluck(inner.nodes, 'loc'); });
 
-        var result = outers.map(function(o) { return [o]; });
+        var result = outers.map(function(o) {
+            // Heuristic for detecting counterclockwise winding order. Assumes
+            // that OpenStreetMap polygons are not hemisphere-spanning.
+            return [d3.geo.area({type: 'Polygon', coordinates: [o]}) > 2 * Math.PI ? o.reverse() : o];
+        });
 
         function findOuter(inner) {
             var o, outer;
@@ -20951,6 +21866,12 @@ _.extend(iD.Relation.prototype, {
         }
 
         for (var i = 0; i < inners.length; i++) {
+            var inner = inners[i];
+
+            if (d3.geo.area({type: 'Polygon', coordinates: [inner]}) < 2 * Math.PI) {
+                inner = inner.reverse();
+            }
+
             var o = findOuter(inners[i]);
             if (o !== undefined)
                 result[o].push(inners[i]);
@@ -21085,7 +22006,7 @@ iD.Way = iD.Entity.way = function iD_Way() {
 iD.Way.prototype = Object.create(iD.Entity.prototype);
 
 _.extend(iD.Way.prototype, {
-    type: "way",
+    type: 'way',
     nodes: [],
 
     extent: function(resolver) {
@@ -21108,6 +22029,11 @@ _.extend(iD.Way.prototype, {
         return this.nodes.indexOf(node) >= 0;
     },
 
+    affix: function(node) {
+        if (this.nodes[0] === node) return 'prefix';
+        if (this.nodes[this.nodes.length - 1] === node) return 'suffix';
+    },
+
     isOneWay: function() {
         return this.tags.oneway === 'yes' ||
             this.tags.oneway === '1' ||
@@ -21182,13 +22108,13 @@ _.extend(iD.Way.prototype, {
 
         for (var i = 0; i < this.nodes.length; i++) {
             var node = this.nodes[i];
-            if (node != id && nodes[nodes.length - 1] != node) {
+            if (node !== id && nodes[nodes.length - 1] !== node) {
                 nodes.push(node);
             }
         }
 
         // Preserve circularity
-        if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] != nodes[0]) {
+        if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] !== nodes[0]) {
             nodes.push(nodes[0]);
         }
 
@@ -21213,31 +22139,33 @@ _.extend(iD.Way.prototype, {
     },
 
     asGeoJSON: function(resolver, polygon) {
-        var nodes = resolver.childNodes(this);
+        return resolver.transient(this, 'GeoJSON', function() {
+            var nodes = resolver.childNodes(this);
 
-        if (this.isArea() && polygon && nodes.length >= 4) {
-            if (!this.isClosed()) {
-                nodes = nodes.concat([nodes[0]]);
-            }
+            if (this.isArea() && polygon && nodes.length >= 4) {
+                if (!this.isClosed()) {
+                    nodes = nodes.concat([nodes[0]]);
+                }
 
-            return {
-                type: 'Feature',
-                properties: this.tags,
-                geometry: {
+                var json = {
                     type: 'Polygon',
                     coordinates: [_.pluck(nodes, 'loc')]
+                };
+
+                // Heuristic for detecting counterclockwise winding order. Assumes
+                // that OpenStreetMap polygons are not hemisphere-spanning.
+                if (d3.geo.area(json) > 2 * Math.PI) {
+                    json.coordinates[0] = json.coordinates[0].reverse();
                 }
-            };
-        } else {
-            return {
-                type: 'Feature',
-                properties: this.tags,
-                geometry: {
+
+                return json;
+            } else {
+                return {
                     type: 'LineString',
                     coordinates: _.pluck(nodes, 'loc')
-                }
-            };
-        }
+                };
+            }
+        });
     }
 });
 
@@ -21245,23 +22173,26 @@ _.extend(iD.Way.prototype, {
 // of the following keys, and the value is _not_ one of the associated
 // values for the respective key.
 iD.Way.areaKeys = {
+    aeroway: { taxiway: true},
+    amenity: {},
     area: {},
+    'area:highway': {},
     building: {},
-    leisure: {},
-    tourism: {},
-    ruins: {},
+    'building:part': {},
     historic: {},
     landuse: {},
+    leisure: {},
+    man_made: { cutline: true, embankment: true, pipeline: true},
     military: {},
     natural: { coastline: true },
-    amenity: {},
-    shop: {},
-    man_made: {},
-    public_transport: {},
+    office: {},
     place: {},
-    aeroway: {},
-    waterway: {},
-    power: {}
+    power: {},
+    public_transport: {},
+    ruins: {},
+    shop: {},
+    tourism: {},
+    waterway: {}
 };
 iD.Background = function(context) {
     var dispatch = d3.dispatch('change'),
@@ -21272,31 +22203,33 @@ iD.Background = function(context) {
         overlayLayers = [];
 
     var backgroundSources = iD.data.imagery.map(function(source) {
-        if (source.sourcetag === 'Bing') {
+        if (source.type === 'bing') {
             return iD.BackgroundSource.Bing(source, dispatch);
         } else {
             return iD.BackgroundSource(source);
         }
     });
 
-    function findSource(sourcetag) {
+    backgroundSources.unshift(iD.BackgroundSource.None());
+
+    function findSource(id) {
         return _.find(backgroundSources, function(d) {
-            return d.sourcetag && d.sourcetag === sourcetag;
+            return d.id && d.id === id;
         });
     }
 
     function updateImagery() {
         var b = background.baseLayerSource(),
-            o = overlayLayers.map(function (d) { return d.source().sourcetag; }).join(','),
+            o = overlayLayers.map(function (d) { return d.source().id; }).join(','),
             q = iD.util.stringQs(location.hash.substring(1));
 
-        var tag = b.sourcetag;
-        if (!tag && b.name === 'Custom') {
-            tag = 'custom:' + b.template;
+        var id = b.id;
+        if (!id && b.name === 'Custom') {
+            id = 'custom:' + b.template;
         }
 
-        if (tag) {
-            q.background = tag;
+        if (id) {
+            q.background = id;
         } else {
             delete q.background;
         }
@@ -21313,13 +22246,13 @@ iD.Background = function(context) {
         if (b.name === 'Custom') {
             imageryUsed.push('Custom (' + b.template + ')');
         } else {
-            imageryUsed.push(b.sourcetag || b.name);
+            imageryUsed.push(b.id || b.name);
         }
 
         overlayLayers.forEach(function (d) {
             var source = d.source();
             if (!source.isLocatorOverlay()) {
-                imageryUsed.push(source.sourcetag || source.name);
+                imageryUsed.push(source.id || source.name);
             }
         });
 
@@ -21348,7 +22281,7 @@ iD.Background = function(context) {
         gpx.call(gpxLayer);
 
         var overlays = selection.selectAll('.overlay-layer')
-            .data(overlayLayers, function(d) { return d.source().name });
+            .data(overlayLayers, function(d) { return d.source().name; });
 
         overlays.enter().insert('div', '.layer-data')
             .attr('class', 'layer-layer overlay-layer');
@@ -21387,7 +22320,7 @@ iD.Background = function(context) {
     };
 
     background.bing = function() {
-        background.baseLayerSource(findSource("Bing"));
+        background.baseLayerSource(findSource('Bing'));
     };
 
     background.hasGpxLayer = function() {
@@ -21398,6 +22331,23 @@ iD.Background = function(context) {
         return background.hasGpxLayer() && gpxLayer.enable();
     };
 
+    function toDom(x) {
+        return (new DOMParser()).parseFromString(x, 'text/xml');
+    }
+
+    background.gpxLayerFiles = function(fileList) {
+        var f = fileList[0],
+            reader = new FileReader();
+
+        reader.onload = function(e) {
+            gpxLayer.geojson(toGeoJSON.gpx(toDom(e.target.result)));
+            dispatch.change();
+            context.map().pan([0, 0]);
+        };
+
+        reader.readAsText(f);
+    };
+
     background.zoomToGpxLayer = function() {
         if (background.hasGpxLayer()) {
             context.map()
@@ -21416,6 +22366,10 @@ iD.Background = function(context) {
             overlayLayers.some(function(l) { return l.source() === d; });
     };
 
+    background.overlayLayerSources = function() {
+        return overlayLayers.map(function (l) { return l.source(); });
+    };
+
     background.toggleOverlayLayer = function(d) {
         var layer;
 
@@ -21461,7 +22415,7 @@ iD.Background = function(context) {
             name: 'Custom'
         }));
     } else {
-        background.baseLayerSource(findSource(chosen) || findSource("Bing"));
+        background.baseLayerSource(findSource(chosen) || findSource('Bing'));
     }
 
     var locator = _.find(backgroundSources, function(d) {
@@ -21499,35 +22453,22 @@ iD.BackgroundSource = function(data) {
     };
 
     source.url = function(coord) {
-        var u = '';
-        for (var zoom = coord[2]; zoom > 0; zoom--) {
-            var b = 0;
-            var mask = 1 << (zoom - 1);
-            if ((coord[0] & mask) !== 0) b++;
-            if ((coord[1] & mask) !== 0) b += 2;
-            u += b.toString();
-        }
-
         return data.template
-            .replace('{t}', data.subdomains ?
-                data.subdomains[(coord[0] + coord[1]) % data.subdomains.length] : '')
-            .replace('{u}', u)
             .replace('{x}', coord[0])
             .replace('{y}', coord[1])
             // TMS-flipped y coordinate
-            .replace('{ty}', Math.pow(2, coord[2]) - coord[1] - 1)
-            .replace('{z}', coord[2])
-            // JOSM style
-            .replace('{zoom}', coord[2])
-            .replace(/\{(switch\:[^\}]*)\}/, function(s, r) {
-                var subdomains = r.split(':')[1].split(',');
-                return subdomains[coord[2] % subdomains.length];
+            .replace(/\{[t-]y\}/, Math.pow(2, coord[2]) - coord[1] - 1)
+            .replace(/\{z(oom)?\}/, coord[2])
+            .replace(/\{switch:([^}]+)\}/, function(s, r) {
+                var subdomains = r.split(',');
+                return subdomains[(coord[0] + coord[1]) % subdomains.length];
             });
     };
 
     source.intersects = function(extent) {
-        return !data.extents || data.extents.some(function(ex) {
-            return iD.geo.Extent(ex).intersects(extent);
+        extent = extent.polygon();
+        return !data.polygon || data.polygon.some(function(polygon) {
+            return iD.geo.polygonIntersectsPolygon(polygon, extent);
         });
     };
 
@@ -21570,6 +22511,25 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
         dispatch.change();
     });
 
+    var template = 'http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z',
+        subdomains = [0, 1, 2, 3];
+
+    bing.url = function(coord) {
+        var u = '';
+
+        for (var zoom = coord[2]; zoom > 0; zoom--) {
+            var b = 0;
+            var mask = 1 << (zoom - 1);
+            if ((coord[0] & mask) !== 0) b++;
+            if ((coord[1] & mask) !== 0) b += 2;
+            u += b.toString();
+        }
+
+        return template
+            .replace('{t}', subdomains[(coord[0] + coord[1]) % 4])
+            .replace('{u}', u);
+    };
+
     bing.copyrightNotices = function(zoom, extent) {
         zoom = Math.min(zoom, 21);
         return providers.filter(function(provider) {
@@ -21583,9 +22543,16 @@ iD.BackgroundSource.Bing = function(data, dispatch) {
         }).join(', ');
     };
 
+    bing.logo = 'bing_maps.png';
+    bing.terms_url = 'http://opengeodata.org/microsoft-imagery-details';
+
     return bing;
 };
-iD.GpxLayer = function(context, dispatch) {
+
+iD.BackgroundSource.None = function() {
+    return iD.BackgroundSource({ name: t('background.none'), id: 'None', template: '' });
+};
+iD.GpxLayer = function(context) {
     var projection,
         gj = {},
         enable = true,
@@ -21609,12 +22576,35 @@ iD.GpxLayer = function(context, dispatch) {
             .append('path')
             .attr('class', 'gpx');
 
+        var path = d3.geo.path()
+            .projection(projection);
+
         paths
-            .attr('d', d3.geo.path().projection(projection));
-    }
+            .attr('d', path);
 
-    function toDom(x) {
-        return (new DOMParser()).parseFromString(x, 'text/xml');
+        if (typeof gj.features !== 'undefined') {
+            svg
+                .selectAll('text')
+                .remove();
+
+            svg
+                .selectAll('path')
+                .data(gj.features)
+                .enter()
+                .append('text')
+                .attr('class', 'gpx')
+                .text(function(d) {
+                    return d.properties.name;
+                })
+                .attr('x', function(d) {
+                    var centroid = path.centroid(d);
+                    return centroid[0] + 5;
+                })
+                .attr('y', function(d) {
+                    var centroid = path.centroid(d);
+                    return centroid[1];
+                });
+        }
     }
 
     render.projection = function(_) {
@@ -21655,16 +22645,7 @@ iD.GpxLayer = function(context, dispatch) {
             d3.event.stopPropagation();
             d3.event.preventDefault();
             if (!iD.detect().filedrop) return;
-            var f = d3.event.dataTransfer.files[0],
-                reader = new FileReader();
-
-            reader.onload = function(e) {
-                render.geojson(toGeoJSON.gpx(toDom(e.target.result)));
-                dispatch.change();
-                context.map().pan([0, 0]);
-            };
-
-            reader.readAsText(f);
+            context.background().gpxLayerFiles(d3.event.dataTransfer.files);
         })
         .on('dragenter.localgpx', over)
         .on('dragexit.localgpx', over)
@@ -21690,11 +22671,12 @@ iD.Map = function(context) {
         points = iD.svg.Points(roundedProjection, context),
         vertices = iD.svg.Vertices(roundedProjection, context),
         lines = iD.svg.Lines(projection),
-        areas = iD.svg.Areas(roundedProjection),
+        areas = iD.svg.Areas(projection),
         midpoints = iD.svg.Midpoints(roundedProjection, context),
-        labels = iD.svg.Labels(roundedProjection, context),
+        labels = iD.svg.Labels(projection, context),
         supersurface, surface,
-        mouse;
+        mouse,
+        mousemove;
 
     function map(selection) {
         context.history()
@@ -21716,7 +22698,7 @@ iD.Map = function(context) {
 
         map.surface = surface = dataLayer.append('svg')
             .on('mousedown.zoom', function() {
-                if (d3.event.button == 2) {
+                if (d3.event.button === 2) {
                     d3.event.stopPropagation();
                 }
             }, true)
@@ -21726,6 +22708,10 @@ iD.Map = function(context) {
             .attr('id', 'surface')
             .call(iD.svg.Surface(context));
 
+        surface.on('mousemove.map', function() {
+            mousemove = d3.event;
+        });
+
         surface.on('mouseover.vertices', function() {
             if (map.editable() && !transformed) {
                 var hover = d3.event.target.__data__;
@@ -21810,7 +22796,7 @@ iD.Map = function(context) {
             .call(midpoints, graph, all, filter, map.extent())
             .call(labels, graph, all, filter, dimensions, !difference && !extent);
 
-        if (points.points(context.intersects(map.extent())).length > 100) {
+        if (points.points(context.intersects(map.extent()), 100).length >= 100) {
             surface.select('.layer-hit').selectAll('g.point').remove();
         } else {
             surface.call(points, points.points(all), filter);
@@ -21923,8 +22909,8 @@ iD.Map = function(context) {
     }
 
     map.mouse = function() {
-        var e = d3.event, s;
-        while (s = e.sourceEvent) e = s;
+        var e = mousemove || d3.event, s;
+        while ((s = e.sourceEvent)) e = s;
         return mouse(e);
     };
 
@@ -21938,10 +22924,10 @@ iD.Map = function(context) {
         return map;
     };
 
-    function setZoom(z, force) {
-        if (z === map.zoom() && !force)
+    function setZoom(_, force) {
+        if (_ === map.zoom() && !force)
             return false;
-        var scale = 256 * Math.pow(2, z),
+        var scale = 256 * Math.pow(2, _),
             center = pxCenter(),
             l = pointLocation(center);
         scale = Math.max(1024, Math.min(256 * Math.pow(2, 24), scale));
@@ -21956,15 +22942,16 @@ iD.Map = function(context) {
         return true;
     }
 
-    function setCenter(loc) {
-        var t = projection.translate(),
-            c = pxCenter(),
-            ll = projection(loc);
-        if (ll[0] === c[0] && ll[1] === c[1])
+    function setCenter(_) {
+        var c = map.center();
+        if (_[0] === c[0] && _[1] === c[1])
             return false;
+        var t = projection.translate(),
+            pxC = pxCenter(),
+            ll = projection(_);
         projection.translate([
-            t[0] - ll[0] + c[0],
-            t[1] - ll[1] + c[1]]);
+            t[0] - ll[0] + pxC[0],
+            t[1] - ll[1] + pxC[1]]);
         zoom.translate(projection.translate());
         return true;
     }
@@ -22048,7 +23035,7 @@ iD.Map = function(context) {
         d3.timer(function() {
             if (stop) return true;
             map.center(iD.geo.interp(from, loc, (t += 1) / 10));
-            return t == 10;
+            return t === 10;
         }, 20);
         return map;
     };
@@ -22160,6 +23147,7 @@ iD.TileLayer = function() {
         if (source.validZoom(z)) {
             tile().forEach(function(d) {
                 addSource(d);
+                if (d[3] === '') return;
                 requests.push(d);
                 if (cache[d[3]] === false && lookUp(d)) {
                     requests.push(addSource(lookUp(d)));
@@ -22268,29 +23256,27 @@ iD.svg = {
         };
     },
 
+    Round: function () {
+        return d3.geo.transform({
+            point: function(x, y) { return this.stream.point(Math.floor(x), Math.floor(y)); }
+        });
+    },
+
     Path: function(projection, graph, polygon) {
         var cache = {},
-            path = d3.geo.path().projection(projection);
-
-        function result(entity) {
-            if (entity.id in cache) return cache[entity.id];
-
-            var buffer = '';
-
-            path.context({
-                beginPath: function() {},
-                moveTo: function(x, y) { buffer += 'M' + Math.floor(x) + ',' + Math.floor(y); },
-                lineTo: function(x, y) { buffer += 'L' + Math.floor(x) + ',' + Math.floor(y); },
-                arc: function() {},
-                closePath: function() { buffer += 'Z'; }
-            });
-
-            path(entity.asGeoJSON(graph, polygon));
-
-            return cache[entity.id] = buffer;
-        }
+            round = iD.svg.Round().stream,
+            clip = d3.geo.clipExtent().extent(projection.clipExtent()).stream,
+            project = projection.stream,
+            path = d3.geo.path()
+                .projection({stream: function(output) { return polygon ? project(round(output)) : project(clip(round(output))); }});
 
-        return result;
+        return function(entity) {
+            if (entity.id in cache) {
+                return cache[entity.id];
+            } else {
+                return cache[entity.id] = path(entity.asGeoJSON(graph, polygon)); // jshint ignore:line
+            }
+        };
     },
 
     OneWaySegments: function(projection, graph, dt) {
@@ -22318,7 +23304,7 @@ iD.svg = {
                     b = [x, y];
 
                     if (a) {
-                        var span = iD.geo.dist(a, b) - offset;
+                        var span = iD.geo.euclideanDistance(a, b) - offset;
 
                         if (span >= 0) {
                             var angle = Math.atan2(b[1] - a[1], b[0] - a[0]),
@@ -22365,7 +23351,8 @@ iD.svg = {
     }
 };
 iD.svg.Areas = function(projection) {
-    // Patterns only work in Firefox when set directly on element
+    // Patterns only work in Firefox when set directly on element.
+    // (This is not a bug: https://bugzilla.mozilla.org/show_bug.cgi?id=750632)
     var patterns = {
         wetland: 'wetland',
         beach: 'beach',
@@ -22400,7 +23387,8 @@ iD.svg.Areas = function(projection) {
             var entity = entities[i];
             if (entity.geometry(graph) !== 'area') continue;
 
-            if (multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph)) {
+            multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph);
+            if (multipolygon) {
                 areas[multipolygon.id] = {
                     entity: multipolygon.mergeTags(entity.tags),
                     area: Math.abs(entity.area(graph))
@@ -22432,8 +23420,25 @@ iD.svg.Areas = function(projection) {
             .filter(filter)
             .data(function(layer) { return data[layer]; }, iD.Entity.key);
 
+        // Remove exiting areas first, so they aren't included in the `fills`
+        // array used for sorting below (https://github.com/systemed/iD/issues/1903).
+        paths.exit()
+            .remove();
+
+        var fills = surface.selectAll('.layer-fill path.area')[0];
+
+        var bisect = d3.bisector(function(node) {
+            return -node.__data__.area(graph);
+        }).left;
+
+        function sortedByArea(entity) {
+            if (this.__data__ === 'fill') {
+                return fills[bisect(fills, -entity.area(graph))];
+            }
+        }
+
         paths.enter()
-            .append('path')
+            .insert('path', sortedByArea)
             .each(function(entity) {
                 var layer = this.parentNode.__data__;
 
@@ -22446,14 +23451,11 @@ iD.svg.Areas = function(projection) {
             .call(iD.svg.TagClasses());
 
         paths
-            .order()
             .attr('d', path);
-
-        paths.exit()
-            .remove();
     };
 };
 iD.svg.Labels = function(projection, context) {
+    var path = d3.geo.path().projection(projection);
 
     // Replace with dict and iterate over entities tags instead?
     var label_stack = [
@@ -22488,11 +23490,11 @@ iD.svg.Labels = function(projection, context) {
 
     var font_sizes = label_stack.map(function(d) {
         var style = iD.util.getStyle('text.' + d[0] + '.tag-' + d[1]),
-            m = style && style.cssText.match("font-size: ([0-9]{1,2})px;");
+            m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
         if (m) return parseInt(m[1], 10);
 
         style = iD.util.getStyle('text.' + d[0]);
-        m = style && style.cssText.match("font-size: ([0-9]{1,2})px;");
+        m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
         if (m) return parseInt(m[1], 10);
 
         return default_size;
@@ -22535,24 +23537,28 @@ iD.svg.Labels = function(projection, context) {
             return c[text];
 
         } else {
-            return size / 3 * 2 * text.length;
+            var str = encodeURIComponent(text).match(/%[CDEFcdef]/g);
+            if (str === null) {
+                return size / 3 * 2 * text.length;
+            } else {
+                return size / 3 * (2 * text.length + str.length);
+            }
         }
     }
 
     function drawLineLabels(group, entities, filter, classes, labels) {
-
         var texts = group.selectAll('text.' + classes)
             .filter(filter)
             .data(entities, iD.Entity.key);
 
-        var tp = texts.enter()
+        texts.enter()
             .append('text')
             .attr('class', function(d, i) { return classes + ' ' + labels[i].classes + ' ' + d.id; })
             .append('textPath')
             .attr('class', 'textpath');
 
 
-        var tps = texts.selectAll('.textpath')
+        texts.selectAll('.textpath')
             .filter(filter)
             .data(entities, iD.Entity.key)
             .attr({
@@ -22562,11 +23568,9 @@ iD.svg.Labels = function(projection, context) {
             .text(iD.util.displayName);
 
         texts.exit().remove();
-
     }
 
     function drawLinePaths(group, entities, filter, classes, labels) {
-
         var halos = group.selectAll('path')
             .filter(filter)
             .data(entities, iD.Entity.key);
@@ -22718,18 +23722,23 @@ iD.svg.Labels = function(projection, context) {
         // Split entities into groups specified by label_stack
         for (i = 0; i < entities.length; i++) {
             entity = entities[i];
-            var geometry = entity.geometry(graph),
-                preset = geometry === 'area' && context.presets().match(entity, graph),
+            var geometry = entity.geometry(graph);
+
+            if (geometry === 'vertex')
+                continue;
+            if (hidePoints && geometry === 'point')
+                continue;
+
+            var preset = geometry === 'area' && context.presets().match(entity, graph),
                 icon = preset && !blacklisted(preset) && preset.icon;
 
-            if ((iD.util.displayName(entity) || icon) && !(hidePoints && geometry === 'point')) {
+            if (!icon && !iD.util.displayName(entity))
+                continue;
 
-                for (k = 0; k < label_stack.length; k ++) {
-                    if (entity.geometry(graph) === label_stack[k][0] &&
-                        entity.tags[label_stack[k][1]]) {
-                        labelable[k].push(entity);
-                        break;
-                    }
+            for (k = 0; k < label_stack.length; k ++) {
+                if (geometry === label_stack[k][0] && entity.tags[label_stack[k][1]]) {
+                    labelable[k].push(entity);
+                    break;
                 }
             }
         }
@@ -22813,8 +23822,7 @@ iD.svg.Labels = function(projection, context) {
         }
 
         function getAreaLabel(entity, width, height) {
-            var path = d3.geo.path().projection(projection),
-                centroid = path.centroid(entity.asGeoJSON(graph, true)),
+            var centroid = path.centroid(entity.asGeoJSON(graph, true)),
                 extent = entity.extent(graph),
                 entitywidth = projection(extent[1])[0] - projection(extent[0])[0],
                 rect;
@@ -23015,7 +24023,7 @@ iD.svg.Midpoints = function(projection, context) {
                 // If neither of the nodes changed, no need to redraw midpoint
                 if (!midpoints[id] && (filter(a) || filter(b))) {
                     var loc = iD.geo.interp(a.loc, b.loc, 0.5);
-                    if (extent.intersects(loc) && iD.geo.dist(projection(a.loc), projection(b.loc)) > 40) {
+                    if (extent.intersects(loc) && iD.geo.euclideanDistance(projection(a.loc), projection(b.loc)) > 40) {
                         midpoints[id] = {
                             type: 'midpoint',
                             id: id,
@@ -23105,7 +24113,7 @@ iD.svg.Points = function(projection, context) {
             .remove();
     }
 
-    drawPoints.points = function(entities) {
+    drawPoints.points = function(entities, limit) {
         var graph = context.graph(),
             points = [];
 
@@ -23113,6 +24121,7 @@ iD.svg.Points = function(projection, context) {
             var entity = entities[i];
             if (entity.geometry(graph) === 'point') {
                 points.push(entity);
+                if (limit && points.length >= limit) break;
             }
         }
 
@@ -23121,6 +24130,81 @@ iD.svg.Points = function(projection, context) {
 
     return drawPoints;
 };
+iD.svg.Restrictions = function(context) {
+    var projection = context.projection;
+
+    function drawRestrictions(surface) {
+        var turns = drawRestrictions.turns(context.graph(), context.selectedIDs());
+
+        var groups = surface.select('.layer-hit').selectAll('g.restriction')
+            .data(turns, iD.Entity.key);
+
+        var enter = groups.enter().append('g')
+            .attr('class', 'restriction');
+
+        enter.append('circle')
+            .attr('class', 'restriction')
+            .attr('r', 4);
+
+        groups
+            .attr('transform', function(restriction) {
+                var via = context.entity(restriction.memberByRole('via').id);
+                return iD.svg.PointTransform(projection)(via);
+            });
+
+        groups.exit()
+            .remove();
+
+        return this;
+    }
+
+    drawRestrictions.turns = function (graph, selectedIDs) {
+        if (selectedIDs.length !== 1)
+            return [];
+
+        var from = graph.entity(selectedIDs[0]);
+        if (from.type !== 'way')
+            return [];
+
+        return graph.parentRelations(from).filter(function(relation) {
+            var f = relation.memberById(from.id),
+                t = relation.memberByRole('to'),
+                v = relation.memberByRole('via');
+
+            return relation.tags.type === 'restriction' && f.role === 'from' &&
+                t && t.type === 'way' && graph.hasEntity(t.id) &&
+                v && v.type === 'node' && graph.hasEntity(v.id) &&
+                !graph.entity(t.id).isDegenerate() &&
+                !graph.entity(f.id).isDegenerate() &&
+                graph.entity(t.id).affix(v.id) &&
+                graph.entity(f.id).affix(v.id);
+        });
+    };
+
+    drawRestrictions.datum = function(graph, from, restriction, projection) {
+        var to = graph.entity(restriction.memberByRole('to').id),
+            a = graph.entity(restriction.memberByRole('via').id),
+            b;
+
+        if (to.first() === a.id) {
+            b = graph.entity(to.nodes[1]);
+        } else {
+            b = graph.entity(to.nodes[to.nodes.length - 2]);
+        }
+
+        a = projection(a.loc);
+        b = projection(b.loc);
+
+        return {
+            from: from,
+            to: to,
+            restriction: restriction,
+            angle: Math.atan2(b[1] - a[1], b[0] - a[0])
+        };
+    };
+
+    return drawRestrictions;
+};
 iD.svg.Surface = function(context) {
     function autosize(image) {
         var img = document.createElement('img');
@@ -23144,7 +24228,7 @@ iD.svg.Surface = function(context) {
                 .data(data)
                 .enter().append('use')
                 .attr('id', function(d) { return d.key; })
-                .attr('transform', function(d) { return "translate(-" + d.value[0] + ",-" + d.value[1] + ")"; })
+                .attr('transform', function(d) { return 'translate(-' + d.value[0] + ',-' + d.value[1] + ')'; })
                 .attr('xlink:href', '#' + id);
         };
     }
@@ -23240,11 +24324,15 @@ iD.svg.Surface = function(context) {
     };
 };
 iD.svg.TagClasses = function() {
-    var keys = d3.set([
-        'highway', 'railway', 'waterway', 'power', 'motorway', 'amenity',
-        'natural', 'landuse', 'building', 'oneway', 'bridge', 'boundary',
-        'tunnel', 'leisure', 'construction', 'place', 'aeroway'
-    ]), tagClassRe = /^tag-/,
+    var primary = [
+            'highway', 'railway', 'waterway', 'aeroway', 'motorway',
+            'boundary', 'power', 'amenity', 'natural', 'landuse',
+            'building', 'leisure', 'place'
+        ],
+        secondary = [
+            'oneway', 'bridge', 'tunnel', 'construction'
+        ],
+        tagClassRe = /^tag-/,
         tags = function(entity) { return entity.tags; };
 
     var tagClasses = function(selection) {
@@ -23257,10 +24345,21 @@ iD.svg.TagClasses = function() {
                 return name.length && !tagClassRe.test(name);
             }).join(' ');
 
-            var t = tags(entity);
-            for (var k in t) {
-                if (!keys.has(k) || t[k] === 'no') continue;
-                classes += ' tag-' + k + ' tag-' + k + '-' + t[k];
+            var t = tags(entity), i, k, v;
+
+            for (i = 0; i < primary.length; i++) {
+                k = primary[i];
+                v = t[k];
+                if (!v || v === 'no') continue;
+                classes += ' tag-' + k + ' tag-' + k + '-' + v;
+                break;
+            }
+
+            for (i = 0; i < secondary.length; i++) {
+                k = secondary[i];
+                v = t[k];
+                if (!v || v === 'no') continue;
+                classes += ' tag-' + k + ' tag-' + k + '-' + v;
             }
 
             classes = classes.trim();
@@ -23341,9 +24440,10 @@ iD.svg.Vertices = function(projection, context) {
         var icons = {};
         function icon(entity) {
             if (entity.id in icons) return icons[entity.id];
-            return icons[entity.id] = (zoom !== 0 &&
+            icons[entity.id] = zoom !== 0 &&
                 entity.hasInterestingTags() &&
-                context.presets().match(entity, graph).icon);
+                context.presets().match(entity, graph).icon;
+            return icons[entity.id];
         }
 
         function circle(klass) {
@@ -23356,7 +24456,7 @@ iD.svg.Vertices = function(projection, context) {
                 this.setAttribute('cx', c);
                 this.setAttribute('cy', -c);
                 this.setAttribute('r', r);
-            }
+            };
         }
 
         var enter = groups.enter().append('g')
@@ -23401,7 +24501,7 @@ iD.svg.Vertices = function(projection, context) {
             if (entity.id in selected ||
                 entity.hasInterestingTags() ||
                 entity.isIntersection(graph)) {
-                vertices.push(entity)
+                vertices.push(entity);
             }
         }
 
@@ -23430,8 +24530,7 @@ iD.svg.Vertices = function(projection, context) {
 };
 iD.ui = function(context) {
     function render(container) {
-        var history = context.history(),
-            map = context.map();
+        var map = context.map();
 
         if (iD.detect().opera) container.classed('opera', true);
 
@@ -23459,7 +24558,7 @@ iD.ui = function(context) {
             .attr('id', 'map')
             .call(map);
 
-        var spacer = bar.append('div')
+        bar.append('div')
             .attr('class', 'spacer col4');
 
         var limiter = bar.append('div')
@@ -23481,9 +24580,7 @@ iD.ui = function(context) {
             .attr('class', 'spinner')
             .call(iD.ui.Spinner(context));
 
-        content.append('div')
-            .attr('class', 'attribution')
-            .attr('tabindex', -1)
+        content
             .call(iD.ui.Attribution(context));
 
         content.append('div')
@@ -23553,8 +24650,11 @@ iD.ui = function(context) {
             .call(iD.ui.Contributors(context));
 
         window.onbeforeunload = function() {
-            history.save();
-            if (history.hasChanges()) return t('save.unsaved_changes');
+            return context.save();
+        };
+
+        window.onunload = function() {
+            context.history().unlock();
         };
 
         d3.select(window).on('resize.editor', function() {
@@ -23670,20 +24770,28 @@ iD.ui.Account = function(context) {
 iD.ui.Attribution = function(context) {
     var selection;
 
-    function update() {
-        if (!context.background().baseLayerSource()) {
-            selection.html('');
-            return;
-        }
+    function attribution(data, klass) {
+        var div = selection.selectAll('.' + klass)
+            .data([0]);
+
+        div.enter()
+            .append('div')
+            .attr('class', klass);
 
-        var attribution = selection.selectAll('.provided-by')
-            .data([context.background().baseLayerSource()], function(d) { return d.name; });
+        var background = div.selectAll('.attribution')
+            .data(data, function(d) { return d.name; });
 
-        attribution.enter()
+        background.enter()
             .append('span')
-            .attr('class', 'provided-by')
+            .attr('class', 'attribution')
             .each(function(d) {
-                var source = d.sourcetag || d.name;
+                if (d.terms_html) {
+                    d3.select(this)
+                        .html(d.terms_html);
+                    return;
+                }
+
+                var source = d.terms_text || d.id || d.name;
 
                 if (d.logo) {
                     source = '<img class="source-image" src="' + context.imagePath(d.logo) + '">';
@@ -23701,10 +24809,10 @@ iD.ui.Attribution = function(context) {
                 }
             });
 
-        attribution.exit()
+        background.exit()
             .remove();
 
-        var copyright = attribution.selectAll('.copyright-notice')
+        var copyright = background.selectAll('.copyright-notice')
             .data(function(d) {
                 var notice = d.copyrightNotices(context.map().zoom(), context.map().extent());
                 return notice ? [notice] : [];
@@ -23720,6 +24828,13 @@ iD.ui.Attribution = function(context) {
             .remove();
     }
 
+    function update() {
+        attribution([context.background().baseLayerSource()], 'base-layer-attribution');
+        attribution(context.background().overlayLayerSources().filter(function (s) {
+            return s.validZoom(context.map().zoom());
+        }), 'overlay-layer-attribution');
+    }
+
     return function(select) {
         selection = select;
 
@@ -23734,13 +24849,13 @@ iD.ui.Attribution = function(context) {
 };
 iD.ui.Background = function(context) {
     var key = 'b',
-        opacities = [1, 0.5, 0],
+        opacities = [1, 0.75, 0.5, 0.25],
         directions = [
             ['left', [1, 0]],
             ['top', [0, -1]],
             ['right', [-1, 0]],
             ['bottom', [0, 1]]],
-        opacityDefault = (context.storage('background-opacity') != undefined) ?
+        opacityDefault = (context.storage('background-opacity') !== null) ?
             (+context.storage('background-opacity')) : 0.5;
 
     function background(selection) {
@@ -23762,7 +24877,7 @@ iD.ui.Background = function(context) {
                 return context.background().showsLayer(d);
             }
 
-            content.selectAll('label.layer, label.custom_layer')
+            content.selectAll('.layer, .custom_layer')
                 .classed('active', active)
                 .selectAll('input')
                 .property('checked', active);
@@ -23777,7 +24892,9 @@ iD.ui.Background = function(context) {
         function clickCustom() {
             d3.event.preventDefault();
             var template = window.prompt(t('background.custom_prompt'));
-            if (!template) {
+            if (!template || template.indexOf('google.com') !== -1 ||
+               template.indexOf('googleapis.com') !== -1 ||
+               template.indexOf('google.ru') !== -1) {
                 selectLayer();
                 return;
             }
@@ -23804,33 +24921,33 @@ iD.ui.Background = function(context) {
                 .sources(context.map().extent())
                 .filter(filter);
 
-            var layerLinks = layerList.selectAll('label.layer')
+            var layerLinks = layerList.selectAll('li.layer')
                 .data(sources, function(d) { return d.name; });
 
-            var layerInner = layerLinks.enter()
-                .insert('label', '.custom_layer')
+            var enter = layerLinks.enter()
+                .insert('li', '.custom_layer')
                 .attr('class', 'layer');
 
             // only set tooltips for layers with tooltips
-            layerInner
-                .filter(function(d) { return d.description; })
+            enter.filter(function(d) { return d.description; })
                 .call(bootstrap.tooltip()
                     .title(function(d) { return d.description; })
                     .placement('left'));
 
-            layerInner.append('input')
+            var label = enter.append('label');
+
+            label.append('input')
                 .attr('type', type)
                 .attr('name', 'layers')
-                .attr('value', function(d) { return d.name; })
                 .on('change', change);
 
-            layerInner.append('span')
+            label.append('span')
                 .text(function(d) { return d.name; });
 
             layerLinks.exit()
                 .remove();
 
-            layerList.style('display', layerList.selectAll('label.layer').data().length > 0 ? 'block' : 'none');
+            layerList.style('display', layerList.selectAll('li.layer').data().length > 0 ? 'block' : 'none');
         }
 
         function update() {
@@ -23882,9 +24999,7 @@ iD.ui.Background = function(context) {
         function toggle() {
             if (d3.event) d3.event.preventDefault();
             tooltip.hide(button);
-            var visible = !button.classed('active');
-            setVisible(visible);
-            if (visible) content.selectAll('.toggle-list label:first-child').node().focus();
+            setVisible(!button.classed('active'));
         }
 
         function setVisible(show) {
@@ -23941,66 +25056,82 @@ iD.ui.Background = function(context) {
                 return t('background.percent_brightness', { opacity: (d * 100) });
             })
             .on('click.set-opacity', setOpacity)
-            .html("<div class='select-box'></div>")
+            .html('<div class="select-box"></div>')
             .call(bootstrap.tooltip()
                 .placement('top'))
             .append('div')
             .attr('class', 'opacity')
             .style('opacity', String);
 
-        var backgroundList = content
-            .append('div')
-            .attr('class', 'toggle-list layer-list');
+        var backgroundList = content.append('ul')
+            .attr('class', 'layer-list');
 
-        var custom = backgroundList
-            .append('label')
+        var custom = backgroundList.append('li')
             .attr('class', 'custom_layer')
             .datum({name: 'Custom'});
 
-        custom.append('input')
+        var label = custom.append('label');
+
+        label.append('input')
             .attr('type', 'radio')
             .attr('name', 'layers')
             .on('change', clickCustom);
 
-        custom.append('span')
+        label.append('span')
             .text(t('background.custom'));
 
-        var overlayList = content
-            .append('div')
-            .attr('class', 'toggle-list layer-list');
+        var overlayList = content.append('ul')
+            .attr('class', 'layer-list');
 
-        var gpxLayerItem = content
-            .append('div')
+        var gpxLayerItem = content.append('ul')
             .style('display', iD.detect().filedrop ? 'block' : 'none')
-            .attr('class', 'toggle-list layer-list')
-            .append('label')
+            .attr('class', 'layer-list')
+            .append('li')
             .classed('layer-toggle-gpx', true);
 
-        gpxLayerItem.call(bootstrap.tooltip()
-            .title(t('gpx.drag_drop'))
-            .placement('left'));
-
-        gpxLayerItem.append('input')
-            .attr('type', 'checkbox')
-            .property('disabled', true)
-            .on('change', clickGpx);
-
-        gpxLayerItem.append('span')
-            .text(t('gpx.local_layer'));
-
-        gpxLayerItem
-            .append('button')
-            .attr('class', 'minor layer-extent')
+        gpxLayerItem.append('button')
+            .attr('class', 'layer-extent')
+            .call(bootstrap.tooltip()
+                .title(t('gpx.zoom'))
+                .placement('left'))
             .on('click', function() {
                 d3.event.preventDefault();
                 d3.event.stopPropagation();
                 context.background().zoomToGpxLayer();
             })
             .append('span')
-                .attr('class', 'icon geocode' );
+            .attr('class', 'icon geolocate');
 
-        var adjustments = content
-            .append('div')
+        gpxLayerItem.append('button')
+            .attr('class', 'layer-browse')
+            .call(bootstrap.tooltip()
+                .title(t('gpx.browse'))
+                .placement('left'))
+            .on('click', function() {
+                d3.select(document.createElement('input'))
+                    .attr('type', 'file')
+                    .on('change', function() {
+                        context.background().gpxLayerFiles(d3.event.target.files);
+                    })
+                    .node().click();
+            })
+            .append('span')
+            .attr('class', 'icon geocode');
+
+        label = gpxLayerItem.append('label')
+            .call(bootstrap.tooltip()
+                .title(t('gpx.drag_drop'))
+                .placement('left'));
+
+        label.append('input')
+            .attr('type', 'checkbox')
+            .property('disabled', true)
+            .on('change', clickGpx);
+
+        label.append('span')
+            .text(t('gpx.local_layer'));
+
+        var adjustments = content.append('div')
             .attr('class', 'adjustments');
 
         adjustments.append('a')
@@ -24015,8 +25146,7 @@ iD.ui.Background = function(context) {
                 d3.event.preventDefault();
             });
 
-        var nudgeContainer = adjustments
-            .append('div')
+        var nudgeContainer = adjustments.append('div')
             .attr('class', 'nudge-container cf')
             .style('display', 'none');
 
@@ -24086,33 +25216,22 @@ iD.ui.cmd = function(code) {
     return keys.join('+');
 };
 iD.ui.Commit = function(context) {
-    var event = d3.dispatch('cancel', 'save', 'fix'),
-        presets = context.presets();
-
-    function zipSame(d) {
-        var c = [], n = -1;
-        for (var i = 0; i < d.length; i++) {
-            var desc = {
-                name: d[i].tags.name || presets.match(d[i], context.graph()).name(),
-                geometry: d[i].geometry(context.graph()),
-                count: 1,
-                tagText: iD.util.tagText(d[i])
-            };
-            if (c[n] &&
-                c[n].name == desc.name &&
-                c[n].tagText == desc.tagText) {
-                c[n].count++;
-            } else {
-                c[++n] = desc;
-            }
-        }
-        return c;
-    }
+    var event = d3.dispatch('cancel', 'save');
 
     function commit(selection) {
-        var changes = context.history().changes();
-
-        function changesLength(d) { return changes[d].length; }
+        var changes = context.history().changes(),
+            summary = context.history().difference().summary();
+
+        function zoomToEntity(change) {
+            var entity = change.entity;
+            if (change.changeType !== 'deleted' &&
+                context.graph().entity(entity.id).geometry(context.graph()) !== 'vertex') {
+                context.map().zoomTo(entity);
+                context.surface().selectAll(
+                    iD.util.entityOrMemberSelector([entity.id], context.graph()))
+                    .classed('hover', true);
+            }
+        }
 
         var header = selection.append('div')
             .attr('class', 'header fillL');
@@ -24139,7 +25258,10 @@ iD.ui.Commit = function(context) {
 
         var commentField = commentSection.append('textarea')
             .attr('placeholder', t('commit.description_placeholder'))
-            .property('value', context.storage('comment') || '');
+            .property('value', context.storage('comment') || '')
+            .on('blur.save', function () {
+                context.storage('comment', this.value);
+            });
 
         commentField.node().select();
 
@@ -24174,12 +25296,10 @@ iD.ui.Commit = function(context) {
 
         // Confirm Button
         var saveButton = saveSection.append('button')
-            .attr('class', 'action col3 button')
+            .attr('class', 'action col4 button')
             .on('click.save', function() {
-                var comment = commentField.node().value;
-                localStorage.comment = comment;
                 event.save({
-                    comment: comment
+                    comment: commentField.node().value
                 });
             });
 
@@ -24187,11 +25307,13 @@ iD.ui.Commit = function(context) {
             .attr('class', 'label')
             .text(t('commit.save'));
 
+        // Warnings
         var warnings = body.selectAll('div.warning-section')
-            .data(iD.validate(changes, context.graph()))
+            .data([iD.validate(changes, context.graph())])
             .enter()
             .append('div')
-            .attr('class', 'modal-section warning-section fillL2');
+            .attr('class', 'modal-section warning-section fillL2')
+            .style('display', function(d) { return _.isEmpty(d) ? 'none' : null; });
 
         warnings.append('h3')
             .text(t('commit.warnings'));
@@ -24201,52 +25323,90 @@ iD.ui.Commit = function(context) {
             .selectAll('li')
             .data(function(d) { return d; })
             .enter()
-            .append('li');
+            .append('li')
+            .on('mouseover', mouseover)
+            .on('mouseout', mouseout)
+            .on('click', warningClick);
 
-        // only show the fix icon when an entity is given
-        warningLi.filter(function(d) { return d.entity; })
-            .append('button')
-            .attr('class', 'minor')
-            .on('click', event.fix)
-            .append('span')
-            .attr('class', 'icon warning');
+        warningLi.append('span')
+            .attr('class', 'alert icon icon-pre-text');
 
         warningLi.append('strong').text(function(d) {
             return d.message;
         });
 
-        var section = body.selectAll('div.commit-section')
-            .data(['modified', 'deleted', 'created'].filter(changesLength))
+        var changeSection = body.selectAll('div.commit-section')
+            .data([0])
             .enter()
             .append('div')
             .attr('class', 'commit-section modal-section fillL2');
 
-        section.append('h3')
-            .text(function(d) { return t('commit.' + d); })
-            .append('small')
-            .attr('class', 'count')
-            .text(changesLength);
+        changeSection.append('h3')
+            .text(summary.length + ' Changes');
 
-        var li = section.append('ul')
+        var li = changeSection.append('ul')
             .attr('class', 'changeset-list')
             .selectAll('li')
-            .data(function(d) { return zipSame(changes[d]); })
+            .data(summary)
             .enter()
-            .append('li');
+            .append('li')
+            .on('mouseover', mouseover)
+            .on('mouseout', mouseout)
+            .on('click', zoomToEntity);
+
+        li.append('span')
+            .attr('class', function(d) {
+                return d.entity.geometry(d.graph) + ' ' + d.changeType + ' icon icon-pre-text';
+            });
+
+        li.append('span')
+            .attr('class', 'change-type')
+            .text(function(d) {
+                return d.changeType + ' ';
+            });
 
         li.append('strong')
+            .attr('class', 'entity-type')
             .text(function(d) {
-                return d.geometry + ' ';
+                return context.presets().match(d.entity, d.graph).name();
             });
 
         li.append('span')
-            .text(function(d) { return d.name; })
-            .attr('title', function(d) { return d.tagText; });
+            .attr('class', 'entity-name')
+            .text(function(d) {
+                var name = iD.util.displayName(d.entity) || '',
+                    string = '';
+                if (name !== '') string += ':';
+                return string += ' ' + name;
+            });
 
-        li.filter(function(d) { return d.count > 1; })
-            .append('span')
-            .attr('class', 'count')
-            .text(function(d) { return d.count; });
+        li.style('opacity', 0)
+            .transition()
+            .style('opacity', 1);
+
+        li.style('opacity', 0)
+            .transition()
+            .style('opacity', 1);
+
+        function mouseover(d) {
+            if (d.entity) {
+                context.surface().selectAll(
+                    iD.util.entityOrMemberSelector([d.entity.id], context.graph())
+                ).classed('hover', true);
+            }
+        }
+
+        function mouseout() {
+            context.surface().selectAll('.hover')
+                .classed('hover', false);
+        }
+
+        function warningClick(d) {
+            if (d.entity) {
+                context.map().zoomTo(d.entity);
+                context.enter(iD.modes.Select(context, [d.entity.id]));
+            }
+        }
     }
 
     return d3.rebind(commit, event, 'on');
@@ -24259,16 +25419,16 @@ iD.ui.confirm = function(selection) {
 
     var section = modal.select('.content');
 
-    var modalHeader = section.append('div')
+    section.append('div')
         .attr('class', 'modal-section header');
 
-    var description = section.append('div')
+    section.append('div')
         .attr('class', 'modal-section message-text');
 
     var buttonwrap = section.append('div')
         .attr('class', 'modal-section buttons cf');
 
-    var okbutton = buttonwrap.append('button')
+    buttonwrap.append('button')
         .attr('class', 'col2 action')
         .on('click.confirm', function() {
             modal.remove();
@@ -24568,7 +25728,7 @@ iD.ui.EntityEditor = function(context) {
         if (!arguments.length) return preset;
         if (_ !== preset) {
             preset = _;
-            reference = iD.ui.TagReference(preset.reference())
+            reference = iD.ui.TagReference(preset.reference(context.geometry(id)))
                 .showing(false);
         }
         return entityEditor;
@@ -24662,15 +25822,18 @@ iD.ui.FeatureList = function(context) {
             }
 
             (geocodeResults || []).forEach(function(d) {
-                result.push({
-                    id: iD.Entity.id.fromOSM(d.osm_type, d.osm_id),
-                    geometry: d.osm_type === 'relation' ? 'relation' : d.osm_type === 'way' ? 'line' : 'point',
-                    type: (d.type.charAt(0).toUpperCase() + d.type.slice(1)).replace('_', ' '),
-                    name: d.display_name,
-                    extent: new iD.geo.Extent(
-                        [parseFloat(d.boundingbox[3]), parseFloat(d.boundingbox[0])],
-                        [parseFloat(d.boundingbox[2]), parseFloat(d.boundingbox[1])])
-                })
+                // https://github.com/systemed/iD/issues/1890
+                if (d.osm_type && d.osm_id) {
+                    result.push({
+                        id: iD.Entity.id.fromOSM(d.osm_type, d.osm_id),
+                        geometry: d.osm_type === 'relation' ? 'relation' : d.osm_type === 'way' ? 'line' : 'point',
+                        type: (d.type.charAt(0).toUpperCase() + d.type.slice(1)).replace('_', ' '),
+                        name: d.display_name,
+                        extent: new iD.geo.Extent(
+                            [parseFloat(d.boundingbox[3]), parseFloat(d.boundingbox[0])],
+                            [parseFloat(d.boundingbox[2]), parseFloat(d.boundingbox[1])])
+                    });
+                }
             });
 
             return result;
@@ -24827,117 +25990,40 @@ iD.ui.Geolocate = function(map) {
     };
 };
 iD.ui.Help = function(context) {
-
     var key = 'h';
 
-    function help(selection) {
-
-        var shown = false, pane;
-
-        function setup() {
-            pane = context.container()
-                .select('.help-wrap')
-                .html('');
-
-            var toc = pane.append('ul')
-                .attr('class', 'toc');
-
-            function clickHelp(d, i) {
-                pane.property('scrollTop', 0);
-                doctitle.text(d.title);
-                body.html(d.html);
-                body.selectAll('a')
-                    .attr('target', '_blank');
-                menuItems.classed('selected', function(m) {
-                    return m.title === d.title;
-                });
-
-                nav.html('');
-
-                if (i > 0) {
-                    var prevLink = nav.append('a')
-                            .attr('class', 'previous')
-                            .on('click', function() {
-                                clickHelp(docs[i - 1], i - 1);
-                            });
-                    prevLink.append('span').attr('class', 'icon back blue');
-                    prevLink.append('span').text(docs[i - 1].title);
-                }
-                if (i < docs.length - 1) {
-                    var nextLink = nav.append('a')
-                        .attr('class', 'next')
-                        .on('click', function() {
-                            clickHelp(docs[i + 1], i + 1);
-                        });
-                    nextLink.append('span').text(docs[i + 1].title);
-                    nextLink.append('span').attr('class', 'icon forward blue');
-                }
-            }
-
-            var docKeys = [
-                'help.help',
-                'help.editing_saving',
-                'help.roads',
-                'help.gps',
-                'help.imagery',
-                'help.addresses',
-                'help.inspector',
-                'help.buildings',
-                'help.relations'];
-
-            function one(f) { return function(x) { return f(x); }; }
-            var docs = docKeys.map(one(t)).map(function(text) {
-                return {
-                    title: text.split('\n')[0].replace('#', '').trim(),
-                    html: marked(text.split('\n').slice(1).join('\n'))
-                };
-            });
-
-            var menuItems = toc.selectAll('li')
-                .data(docs)
-                .enter()
-                .append('li')
-                .append('a')
-                .text(function(d) { return d.title; })
-                .on('click', clickHelp);
-
-            toc.append('li')
-                .attr('class','walkthrough')
-                .append('a')
-                .text(t('splash.walkthrough'))
-                .on('click', function() {
-                    d3.select(document.body).call(iD.ui.intro(context));
-                    setVisible(false);
-                });
+    var docKeys = [
+        'help.help',
+        'help.editing_saving',
+        'help.roads',
+        'help.gps',
+        'help.imagery',
+        'help.addresses',
+        'help.inspector',
+        'help.buildings',
+        'help.relations'];
+
+    var docs = docKeys.map(function(key) {
+        var text = t(key);
+        return {
+            title: text.split('\n')[0].replace('#', '').trim(),
+            html: marked(text.split('\n').slice(1).join('\n'))
+        };
+    });
 
-            var content = pane.append('div')
-                    .attr('class', 'left-content'),
-                doctitle = content.append('h2')
-                    .text(t('help.title')),
-                body = content.append('div')
-                    .attr('class', 'body'),
-                nav = content.append('div')
-                    .attr('class', 'nav');
+    function help(selection) {
+        var shown = false;
 
-            clickHelp(docs[0], 0);
+        function hide() {
+            setVisible(false);
         }
 
-        function hide() { setVisible(false); }
         function toggle() {
             if (d3.event) d3.event.preventDefault();
             tooltip.hide(button);
             setVisible(!button.classed('active'));
         }
 
-        function blockClick() {
-            pane.on('mousedown.help-inside', function() {
-                return d3.event.stopPropagation();
-            });
-            selection.on('mousedown.help-inside', function() {
-                return d3.event.stopPropagation();
-            });
-        }
-
         function setVisible(show) {
             if (show !== shown) {
                 button.classed('active', show);
@@ -24947,8 +26033,7 @@ iD.ui.Help = function(context) {
                         .style('right', '-500px')
                         .transition()
                         .duration(200)
-                        .style('right', '0px')
-                        .each('end', blockClick);
+                        .style('right', '0px');
                 } else {
                     pane.style('right', '0px')
                         .transition()
@@ -24957,11 +26042,47 @@ iD.ui.Help = function(context) {
                         .each('end', function() {
                             d3.select(this).style('display', 'none');
                         });
-                    pane.on('mousedown.help-inside', null);
                 }
             }
         }
 
+        function clickHelp(d, i) {
+            pane.property('scrollTop', 0);
+            doctitle.text(d.title);
+            body.html(d.html);
+            body.selectAll('a')
+                .attr('target', '_blank');
+            menuItems.classed('selected', function(m) {
+                return m.title === d.title;
+            });
+
+            nav.html('');
+
+            if (i > 0) {
+                var prevLink = nav.append('a')
+                    .attr('class', 'previous')
+                    .on('click', function() {
+                        clickHelp(docs[i - 1], i - 1);
+                    });
+                prevLink.append('span').attr('class', 'icon back blue');
+                prevLink.append('span').text(docs[i - 1].title);
+            }
+            if (i < docs.length - 1) {
+                var nextLink = nav.append('a')
+                    .attr('class', 'next')
+                    .on('click', function() {
+                        clickHelp(docs[i + 1], i + 1);
+                    });
+                nextLink.append('span').text(docs[i + 1].title);
+                nextLink.append('span').attr('class', 'icon forward blue');
+            }
+        }
+
+        function clickWalkthrough() {
+            d3.select(document.body).call(iD.ui.intro(context));
+            setVisible(false);
+        }
+
         var tooltip = bootstrap.tooltip()
             .placement('left')
             .html(true)
@@ -24975,14 +26096,56 @@ iD.ui.Help = function(context) {
         button.append('span')
             .attr('class', 'icon help light');
 
+        var pane = context.container()
+            .select('.help-wrap');
+
+        var toc = pane.append('ul')
+            .attr('class', 'toc');
+
+        var menuItems = toc.selectAll('li')
+            .data(docs)
+            .enter()
+            .append('li')
+            .append('a')
+            .text(function(d) { return d.title; })
+            .on('click', clickHelp);
+
+        toc.append('li')
+            .attr('class','walkthrough')
+            .append('a')
+            .text(t('splash.walkthrough'))
+            .on('click', clickWalkthrough);
+
+        var content = pane.append('div')
+            .attr('class', 'left-content');
+
+        var doctitle = content.append('h2')
+            .text(t('help.title'));
+
+        var body = content.append('div')
+            .attr('class', 'body');
+
+        var nav = content.append('div')
+            .attr('class', 'nav');
+
+        clickHelp(docs[0], 0);
+
+        var keybinding = d3.keybinding('help')
+            .on(key, toggle);
+
+        d3.select(document)
+            .call(keybinding);
+
         context.surface().on('mousedown.help-outside', hide);
         context.container().on('mousedown.b.help-outside', hide);
 
-        setup();
+        pane.on('mousedown.help-inside', function() {
+            return d3.event.stopPropagation();
+        });
 
-        var keybinding = d3.keybinding('help');
-        keybinding.on(key, toggle);
-        d3.select(document).call(keybinding);
+        selection.on('mousedown.help-inside', function() {
+            return d3.event.stopPropagation();
+        });
     }
 
     return help;
@@ -25096,21 +26259,25 @@ iD.ui.intro = function(context) {
             background = context.background().baseLayerSource(),
             opacity = d3.select('.background-layer').style('opacity'),
             loadedTiles = context.connection().loadedTiles(),
-            baseEntities = context.history().graph().base().entities;
+            baseEntities = context.history().graph().base().entities,
+            introGraph;
 
         // Load semi-real data used in intro
         context.connection().toggle(false).flush();
-        context.history().save().reset();
-        context.history().merge(iD.Graph().load(JSON.parse(iD.introGraph)).entities);
+        context.history().reset();
+        
+        introGraph = JSON.parse(iD.introGraph);
+        for (var key in introGraph) {
+            introGraph[key] = iD.Entity(introGraph[key]);
+        }
+        context.history().merge(iD.Graph().load(introGraph).entities);
         context.background().bing();
 
         // Block saving
         var savebutton = d3.select('#bar button.save'),
             save = savebutton.on('click');
         savebutton.on('click', null);
-
-        var beforeunload = window.onbeforeunload;
-        window.onbeforeunload = null;
+        context.inIntro(true);
 
         d3.select('.background-layer').style('opacity', 1);
 
@@ -25143,7 +26310,7 @@ iD.ui.intro = function(context) {
             context.background().baseLayerSource(background);
             if (history) context.history().fromJSON(history);
             window.location.replace(hash);
-            window.onbeforeunload = beforeunload;
+            context.inIntro(false);
             d3.select('#bar button.save').on('click', save);
         });
 
@@ -25183,7 +26350,7 @@ iD.ui.intro = function(context) {
 };
 
 iD.ui.intro.pointBox = function(point, context) {
-    var rect = context.surface().node().getBoundingClientRect();
+    var rect = context.surfaceRect();
     point = context.projection(point);
     return {
         left: point[0] + rect.left - 30,
@@ -25195,7 +26362,7 @@ iD.ui.intro.pointBox = function(point, context) {
 
 iD.ui.intro.pad = function(box, padding, context) {
     if (box instanceof Array) {
-        var rect = context.surface().node().getBoundingClientRect();
+        var rect = context.surfaceRect();
         box = context.projection(box);
         box = {
             left: box[0] + rect.left,
@@ -25353,7 +26520,7 @@ iD.ui.modal = function(selection, blocking) {
         .attr('class', 'modal fillL col6');
 
         shaded.on('click.remove-modal', function() {
-            if (d3.event.target == this && !blocking) shaded.close();
+            if (d3.event.target === this && !blocking) shaded.close();
         });
 
     modal.append('button')
@@ -25426,12 +26593,12 @@ iD.ui.Modes = function(context) {
         context.on('enter.editor', function(entered) {
             buttons.classed('active', function(mode) { return entered.button === mode.button; });
             context.container()
-                .classed("mode-" + entered.id, true);
+                .classed('mode-' + entered.id, true);
         });
 
         context.on('exit.editor', function(exited) {
             context.container()
-                .classed("mode-" + exited.id, false);
+                .classed('mode-' + exited.id, false);
         });
 
         var keybinding = d3.keybinding('mode-buttons');
@@ -25518,6 +26685,20 @@ iD.ui.preset = function(context) {
             return t;
         };
 
+        field.present = function() {
+            return _.any(field.keys, function(key) {
+                return tags[key];
+            });
+        };
+
+        field.remove = function() {
+            var t = {};
+            field.keys.forEach(function(key) {
+                t[key] = undefined;
+            });
+            return t;
+        };
+
         return field;
     }
 
@@ -25570,21 +26751,35 @@ iD.ui.preset = function(context) {
             .attr('for', function(field) { return 'preset-input-' + field.id; })
             .text(function(field) { return field.label(); });
 
-        $label.append('button')
-            .attr('class', 'modified-icon minor')
+        var wrap = $label.append('div')
+            .attr('class', 'form-label-button-wrap');
+
+        wrap.append('button')
+            .attr('class', 'remove-icon')
+            .append('span').attr('class', 'icon delete');
+
+        wrap.append('button')
+            .attr('class', 'modified-icon')
             .attr('tabindex', -1)
             .append('div')
             .attr('class', 'icon undo');
 
         // Update
 
+        $fields.select('.form-label-button-wrap .remove-icon')
+            .on('click', remove);
+
         $fields.select('.modified-icon')
             .on('click', revert);
 
         $fields
+            .order()
             .classed('modified', function(field) {
                 return field.modified();
             })
+            .classed('present', function(field) {
+                return field.present();
+            })
             .each(function(field) {
                 var reference = iD.ui.TagReference({key: field.key});
 
@@ -25595,7 +26790,7 @@ iD.ui.preset = function(context) {
                 d3.select(this)
                     .call(field.input)
                     .call(reference.body)
-                    .select('.form-label')
+                    .select('.form-label-button-wrap')
                     .call(reference.button);
 
                 field.input.tags(tags);
@@ -25638,6 +26833,12 @@ iD.ui.preset = function(context) {
             d3.event.preventDefault();
             event.change(field.revert());
         }
+
+        function remove(field) {
+            d3.event.stopPropagation();
+            d3.event.preventDefault();
+            event.change(field.remove());
+        }
     }
 
     presets.preset = function(_) {
@@ -25834,7 +27035,7 @@ iD.ui.PresetList = function(context) {
 
     function drawList(list, presets) {
         var collection = presets.collection.map(function(preset) {
-            return preset.members ? CategoryItem(preset) : PresetItem(preset)
+            return preset.members ? CategoryItem(preset) : PresetItem(preset);
         });
 
         var items = list.selectAll('.preset-list-item')
@@ -25944,7 +27145,7 @@ iD.ui.PresetList = function(context) {
         };
 
         item.preset = preset;
-        item.reference = iD.ui.TagReference(preset.reference());
+        item.reference = iD.ui.TagReference(preset.reference(context.geometry(id)));
 
         return item;
     }
@@ -25991,7 +27192,7 @@ iD.ui.RadialMenu = function(context, operations) {
 
         menu = selection.append('g')
             .attr('class', 'radial-menu')
-            .attr('transform', "translate(" + center + ")")
+            .attr('transform', 'translate(' + center + ')')
             .attr('opacity', 0);
 
         menu.transition()
@@ -26006,7 +27207,7 @@ iD.ui.RadialMenu = function(context, operations) {
             .attr('class', 'radial-menu-background')
             .attr('d', 'M' + r * Math.sin(a0) + ',' +
                              r * Math.cos(a0) +
-                      ' A' + r + ',' + r + ' 0 0,0 ' +
+                      ' A' + r + ',' + r + ' 0 ' + (operations.length > 5 ? '1' : '0') + ',0 ' +
                              (r * Math.sin(a1) + 1e-3) + ',' +
                              (r * Math.cos(a1) + 1e-3)) // Force positive-length path (#1305)
             .attr('stroke-width', 50)
@@ -26025,6 +27226,7 @@ iD.ui.RadialMenu = function(context, operations) {
             .attr('r', 15)
             .classed('disabled', function(d) { return d.disabled(); })
             .on('click', click)
+            .on('mousedown', mousedown)
             .on('mouseover', mouseover)
             .on('mouseout', mouseout);
 
@@ -26037,19 +27239,39 @@ iD.ui.RadialMenu = function(context, operations) {
             .append('div')
             .attr('class', 'tooltip-inner radial-menu-tooltip');
 
+        function mousedown() {
+            d3.event.stopPropagation(); // https://github.com/systemed/iD/issues/1869
+        }
+
         function mouseover(d, i) {
-            // Avoid getBoundingClientRect on SVG element; browser implementations
-            // differ: http://stackoverflow.com/questions/18153989/
-            var rect = context.surface().node().parentNode.getBoundingClientRect(),
+            var rect = context.surfaceRect(),
                 angle = a0 + i * a,
-                dx = rect.left - (angle < 0 ? 200 : 0),
-                dy = rect.top;
+                top = rect.top + (r + 25) * Math.cos(angle) + center[1] + 'px',
+                left = rect.left + (r + 25) * Math.sin(angle) + center[0] + 'px',
+                bottom = rect.height - (r + 25) * Math.cos(angle) - center[1] + 'px',
+                right = rect.width - (r + 25) * Math.sin(angle) - center[0] + 'px';
 
             tooltip
-                .style('left', (r + 25) * Math.sin(angle) + dx + center[0] + 'px')
-                .style('top', (r + 25) * Math.cos(angle) + dy + center[1]+ 'px')
+                .style('top', null)
+                .style('left', null)
+                .style('bottom', null)
+                .style('right', null)
                 .style('display', 'block')
                 .html(iD.ui.tooltipHtml(d.tooltip(), d.keys[0]));
+
+            if (i === 0) {
+                tooltip
+                    .style('right', right)
+                    .style('top', top);
+            } else if (i >= 4) {
+                tooltip
+                    .style('left', left)
+                    .style('bottom', bottom);
+            } else {
+                tooltip
+                    .style('left', left)
+                    .style('top', top);
+            }
         }
 
         function mouseout() {
@@ -26081,6 +27303,7 @@ iD.ui.RawMemberEditor = function(context) {
     var id;
 
     function selectMember(d) {
+        d3.event.preventDefault();
         context.enter(iD.modes.Select(context, [d.id]));
     }
 
@@ -26137,7 +27360,8 @@ iD.ui.RawMemberEditor = function(context) {
                 });
 
             var $enter = $items.enter().append('li')
-                .attr('class', 'member-row form-field');
+                .attr('class', 'member-row form-field')
+                .classed('member-incomplete', function(d) { return !d.member; });
 
             $enter.each(function(d) {
                 if (d.member) {
@@ -26157,7 +27381,7 @@ iD.ui.RawMemberEditor = function(context) {
 
                 } else {
                     d3.select(this).append('label')
-                        .attr('class', 'form-label member-incomplete')
+                        .attr('class', 'form-label')
                         .text(t('inspector.incomplete'));
                 }
             });
@@ -26194,6 +27418,7 @@ iD.ui.RawMembershipEditor = function(context) {
     var id, showBlank;
 
     function selectRelation(d) {
+        d3.event.preventDefault();
         context.enter(iD.modes.Select(context, [d.relation.id]));
     }
 
@@ -26238,7 +27463,7 @@ iD.ui.RawMembershipEditor = function(context) {
             graph = context.graph();
 
         context.intersects(context.extent()).forEach(function(entity) {
-            if (entity.type !== 'relation')
+            if (entity.type !== 'relation' || entity.id === id)
                 return;
 
             var presetName = context.presets().match(entity, graph).name(),
@@ -26266,7 +27491,7 @@ iD.ui.RawMembershipEditor = function(context) {
                 if (member.id === entity.id) {
                     memberships.push({relation: relation, member: member, index: index});
                 }
-            })
+            });
         });
 
         selection.call(iD.ui.Disclosure()
@@ -26626,12 +27851,12 @@ iD.ui.Restore = function(context) {
         introModal.append('div')
             .attr('class', 'modal-section')
             .append('h3')
-                .text(t('restore.heading'));
+            .text(t('restore.heading'));
 
         introModal.append('div')
             .attr('class','modal-section')
             .append('p')
-                .text(t('restore.description'));
+            .text(t('restore.description'));
 
         var buttonWrap = introModal.append('div')
             .attr('class', 'modal-actions cf');
@@ -26654,8 +27879,6 @@ iD.ui.Restore = function(context) {
 
         restore.node().focus();
     };
-        modal.select('button.close').attr('class','hide');
-
 };
 iD.ui.Save = function(context) {
     var history = context.history(),
@@ -26701,13 +27924,13 @@ iD.ui.Save = function(context) {
         var numChanges = 0;
 
         context.history().on('change.save', function() {
-            var _ = history.numChanges();
+            var _ = history.difference().summary().length;
             if (_ === numChanges)
                 return;
             numChanges = _;
 
             tooltip.title(iD.ui.tooltipHtml(t(numChanges > 0 ?
-                    'save.help' : 'save.no_changes'), key))
+                    'save.help' : 'save.no_changes'), key));
 
             button
                 .classed('disabled', numChanges === 0)
@@ -26723,6 +27946,75 @@ iD.ui.Save = function(context) {
         });
     };
 };
+iD.ui.SelectionList = function(context, selectedIDs) {
+
+    function selectionList(selection) {
+        selection.classed('selection-list-pane', true);
+
+        var header = selection.append('div')
+            .attr('class', 'header fillL cf');
+
+        header.append('h3')
+            .text(t('inspector.multiselect'));
+
+        var listWrap = selection.append('div')
+            .attr('class', 'inspector-body');
+
+        var list = listWrap.append('div')
+            .attr('class', 'feature-list cf');
+
+        context.history().on('change.selection-list', drawList);
+        drawList();
+
+        function drawList() {
+            var entities = selectedIDs
+                .map(function(id) { return context.hasEntity(id); })
+                .filter(function(entity) { return entity; });
+
+            var items = list.selectAll('.feature-list-item')
+                .data(entities, iD.Entity.key);
+
+            var enter = items.enter().append('button')
+                .attr('class', 'feature-list-item')
+                .on('click', function(entity) {
+                    context.enter(iD.modes.Select(context, [entity.id]));
+                });
+
+            // Enter
+
+            var label = enter.append('div')
+                .attr('class', 'label');
+
+            label.append('span')
+                .attr('class', 'icon icon-pre-text');
+
+            label.append('span')
+                .attr('class', 'entity-type');
+
+            label.append('span')
+                .attr('class', 'entity-name');
+
+            // Update
+
+            items.selectAll('.icon')
+                .attr('class', function(entity) { return context.geometry(entity.id) + ' icon icon-pre-text'; });
+
+            items.selectAll('.entity-type')
+                .text(function(entity) { return context.presets().match(entity, context.graph()).name(); });
+
+            items.selectAll('.entity-name')
+                .text(function(entity) { return iD.util.displayName(entity); });
+
+            // Exit
+
+            items.exit()
+                .remove();
+        }
+    }
+
+    return selectionList;
+
+};
 iD.ui.Sidebar = function(context) {
     var inspector = iD.ui.Inspector(context),
         current;
@@ -26957,13 +28249,13 @@ iD.ui.Success = function(context) {
             .attr('class', 'fr')
             .append('span')
             .attr('class', 'icon close')
-            .on('click', function() { event.cancel(success) });
+            .on('click', function() { event.cancel(success); });
 
         header.append('h3')
             .text(t('success.just_edited'));
 
         var body = selection.append('div')
-            .attr('class', 'body save-success');
+            .attr('class', 'body save-success fillL');
 
         body.append('p')
             .html(t('success.help_html'));
@@ -27054,7 +28346,7 @@ iD.ui.TagReference = function(tag) {
                 body
                     .append('img')
                     .attr('class', 'wiki-image')
-                    .attr('src', docs.image.thumb_url_prefix + "100" + docs.image.thumb_url_suffix)
+                    .attr('src', docs.image.thumb_url_prefix + '100' + docs.image.thumb_url_suffix)
                     .on('load', function() { show(); })
                     .on('error', function() { d3.select(this).remove(); show(); });
             } else {
@@ -27107,7 +28399,7 @@ iD.ui.TagReference = function(tag) {
 
         var enter = button.enter().append('button')
             .attr('tabindex', -1)
-            .attr('class', 'tag-reference-button minor');
+            .attr('class', 'tag-reference-button');
 
         enter.append('span')
             .attr('class', 'icon inspect');
@@ -27298,7 +28590,7 @@ iD.ui.Zoom = function(context) {
             .call(keybinding);
     };
 };
-iD.ui.preset.access = function(field, context) {
+iD.ui.preset.access = function(field) {
     var event = d3.dispatch('change'),
         entity,
         items;
@@ -27328,7 +28620,6 @@ iD.ui.preset.access = function(field, context) {
             .attr('class', 'col6 preset-input-access-wrap')
             .append('input')
             .attr('type', 'text')
-            .attr('placeholder', field.placeholder())
             .attr('class', 'preset-input-access')
             .attr('id', function(d) { return 'preset-input-access-' + d; })
             .each(function(d) {
@@ -27353,7 +28644,7 @@ iD.ui.preset.access = function(field, context) {
     access.options = function(type) {
         var options = ['no', 'permissive', 'private', 'designated', 'destination'];
 
-        if (type != 'access') {
+        if (type !== 'access') {
             options.unshift('yes');
         }
 
@@ -27373,7 +28664,10 @@ iD.ui.preset.access = function(field, context) {
 
     access.tags = function(tags) {
         items.selectAll('.preset-input-access')
-            .value(function(d) { return tags[d] || ''; });
+            .value(function(d) { return tags[d] || ''; })
+            .attr('placeholder', function(d) {
+                return d !== 'access' && tags.access ? tags.access : field.placeholder();
+            });
     };
 
     access.focus = function() {
@@ -27393,7 +28687,6 @@ iD.ui.preset.address = function(field, context) {
         entity;
 
     function getStreets() {
-
         var extent = entity.extent(context.graph()),
             l = extent.center(),
             box = iD.geo.Extent(l).padByMeters(200);
@@ -27419,6 +28712,62 @@ iD.ui.preset.address = function(field, context) {
         }
     }
 
+    function getCities() {
+        var extent = entity.extent(context.graph()),
+            l = extent.center(),
+            box = iD.geo.Extent(l).padByMeters(200);
+
+        return context.intersects(box)
+            .filter(isAddressable)
+            .map(function(d) {
+                return {
+                    title: d.tags['addr:city'] || d.tags.name,
+                    value: d.tags['addr:city'] || d.tags.name,
+                    dist: iD.geo.sphericalDistance(d.extent(context.graph()).center(), l)
+                };
+            }).sort(function(a, b) {
+                return a.dist - b.dist;
+            });
+
+        function isAddressable(d) {
+            if (d.tags.name &&
+                (d.tags.admin_level === '8' || d.tags.border_type === 'city'))
+                return true;
+
+            if (d.tags.place && d.tags.name && (
+                    d.tags.place === 'city' ||
+                    d.tags.place === 'town' ||
+                    d.tags.place === 'village'))
+                return true;
+
+            if (d.tags['addr:city']) return true;
+
+            return false;
+        }
+    }
+
+    function getPostCodes() {
+        var extent = entity.extent(context.graph()),
+            l = extent.center(),
+            box = iD.geo.Extent(l).padByMeters(200);
+
+        return context.intersects(box)
+            .filter(isAddressable)
+            .map(function(d) {
+                return {
+                    title: d.tags['addr:postcode'],
+                    value: d.tags['addr:postcode'],
+                    dist: iD.geo.sphericalDistance(d.extent(context.graph()).center(), l)
+                };
+            }).sort(function(a, b) {
+                return a.dist - b.dist;
+            });
+
+        function isAddressable(d) {
+            return d.tags['addr:postcode'];
+        }
+    }
+
     function address(selection) {
         var wrap = selection.selectAll('.preset-input-wrap')
             .data([0]);
@@ -27471,6 +28820,18 @@ iD.ui.preset.address = function(field, context) {
                 .fetcher(function(value, callback) {
                     callback(getStreets());
                 }));
+
+        city
+            .call(d3.combobox()
+                .fetcher(function(value, callback) {
+                    callback(getCities());
+                }));
+
+        postcode
+            .call(d3.combobox()
+                .fetcher(function(value, callback) {
+                    callback(getPostCodes());
+                }));
     }
 
     function change() {
@@ -27544,7 +28905,7 @@ iD.ui.preset.check = function(field) {
         value = tags[field.key];
         box.property('indeterminate', !value);
         box.property('checked', value === 'yes');
-        text.text(value || t('inspector.unknown'));
+        text.text(value ? t('inspector.check.' + value, {default: value}) : t('inspector.unknown'));
         label.classed('set', !!value);
     };
 
@@ -27554,7 +28915,8 @@ iD.ui.preset.check = function(field) {
 
     return d3.rebind(check, event, 'on');
 };
-iD.ui.preset.combo = function(field) {
+iD.ui.preset.combo =
+iD.ui.preset.typeCombo = function(field) {
     var event = d3.dispatch('change'),
         input;
 
@@ -27599,13 +28961,18 @@ iD.ui.preset.combo = function(field) {
     }
 
     function change() {
+        var value = input.value().replace(' ', '_');
+        if (field.type === 'typeCombo' && !value) value = 'yes';
+
         var t = {};
-        t[field.key] = input.value().replace(' ', '_') || undefined;
+        t[field.key] = value || undefined;
         event.change(t);
     }
 
     combo.tags = function(tags) {
-        input.value(tags[field.key] || '');
+        var value = tags[field.key] || '';
+        if (field.type === 'typeCombo' && value === 'yes') value = '';
+        input.value(value);
     };
 
     combo.focus = function() {
@@ -27666,7 +29033,7 @@ iD.ui.preset.url = function(field) {
             .on('blur', change)
             .on('change', change);
 
-        if (field.type == 'number') {
+        if (field.type === 'number') {
             input.attr('type', 'text');
 
             var spinControl = selection.selectAll('.spin-control')
@@ -27709,7 +29076,7 @@ iD.ui.preset.url = function(field) {
 
     return d3.rebind(i, event, 'on');
 };
-iD.ui.preset.localized = function(field, context) {
+iD.ui.preset.localized = function(field) {
 
     var event = d3.dispatch('change'),
         wikipedia = iD.wikipedia(),
@@ -27766,35 +29133,38 @@ iD.ui.preset.localized = function(field, context) {
     function key(lang) { return field.key + ':' + lang; }
 
     function changeLang(d) {
-        var value = d3.select(this).value(),
+        var lang = d3.select(this).value(),
             t = {},
             language = _.find(iD.data.wikipedia, function(d) {
-                return d[0].toLowerCase() === value.toLowerCase() ||
-                    d[1].toLowerCase() === value.toLowerCase();
+                return d[0].toLowerCase() === lang.toLowerCase() ||
+                    d[1].toLowerCase() === lang.toLowerCase();
             });
 
-        if (language) value = language[2];
+        if (language) lang = language[2];
 
-        if (d.lang) {
-            t[key(d.lang)] = '';
+        if (d.lang && d.lang !== lang) {
+            t[key(d.lang)] = undefined;
         }
 
-        if (d.value) {
-            t[key(value)] = d.value;
-        } else if (wikiTitles && wikiTitles[d.lang]) {
-            t[key(value)] = wikiTitles[d.lang];
+        var value = d3.select(this.parentNode)
+            .selectAll('.localized-value')
+            .value();
+
+        if (lang && value) {
+            t[key(lang)] = value;
+        } else if (lang && wikiTitles && wikiTitles[d.lang]) {
+            t[key(lang)] = wikiTitles[d.lang];
         }
 
+        d.lang = lang;
         event.change(t);
-
-        d.lang = value;
     }
 
     function changeValue(d) {
+        if (!d.lang) return;
         var t = {};
-        t[key(d.lang)] = d3.select(this).value() || '';
+        t[key(d.lang)] = d3.select(this).value() || undefined;
         event.change(t);
-
     }
 
     function fetcher(value, cb) {
@@ -27816,16 +29186,33 @@ iD.ui.preset.localized = function(field, context) {
         var innerWrap = wraps.enter()
             .insert('div', ':first-child');
 
-            innerWrap.attr('class', 'entry')
-            .each(function(d) {
+        innerWrap.attr('class', 'entry')
+            .each(function() {
                 var wrap = d3.select(this);
                 var langcombo = d3.combobox().fetcher(fetcher);
 
-                wrap.append('label')
+                var label = wrap.append('label')
                     .attr('class','form-label')
                     .text(t('translate.localized_translation_label'))
                     .attr('for','localized-lang');
 
+                label.append('button')
+                    .attr('class', 'minor remove')
+                    .on('click', function(d){
+                        d3.event.preventDefault();
+                        var t = {};
+                        t[key(d.lang)] = undefined;
+                        event.change(t);
+                        d3.select(this.parentNode.parentNode)
+                            .style('top','0')
+                            .style('max-height','240px')
+                            .transition()
+                            .style('opacity', '0')
+                            .style('max-height','0px')
+                            .remove();
+                    })
+                    .append('span').attr('class', 'icon delete');
+
                 wrap.append('input')
                     .attr('class', 'localized-lang')
                     .attr('type', 'text')
@@ -27840,43 +29227,22 @@ iD.ui.preset.localized = function(field, context) {
                     .attr('type', 'text')
                     .attr('placeholder', t('translate.localized_translation_name'))
                     .attr('class', 'localized-value');
-
-                wrap.append('button')
-                    .attr('class', 'minor button-input-action remove')
-                    .on('click', function(d) {
-                        d3.event.preventDefault();
-                        var t = {};
-                        t[key(d.lang)] = undefined;
-                        event.change(t);
-                        d3.select(this.parentNode)
-                            .style('top','0')
-                            .style('max-height','240px')
-                            .transition()
-                            .style('opacity', '0')
-                            .style('max-height','0px')
-                            .remove();
-                    })
-                    .append('span').attr('class', 'icon delete');
-
             });
 
-        innerWrap.transition()
-            .style('margin-top','0px')
+        innerWrap
+            .style('margin-top', '0px')
             .style('max-height', '0px')
-            .style('padding', '0px')
             .style('opacity', '0')
-            .style('border-width', '0px')
             .transition()
             .duration(200)
-            .style('margin-top','10px')
-            .style('border-width', '1px')
-            .style('padding', '10px')
+            .style('margin-top', '10px')
             .style('max-height', '240px')
             .style('opacity', '1')
-            .each('end', function(d) {
-                d3.select(this).style('max-height', '');
-                d3.select(this).style('overflow', 'visible');
-            });;
+            .each('end', function() {
+                d3.select(this)
+                    .style('max-height', '')
+                    .style('overflow', 'visible');
+            });
 
         wraps.exit()
             .transition()
@@ -27886,16 +29252,16 @@ iD.ui.preset.localized = function(field, context) {
             .style('top','-10px')
             .remove();
 
-        selection.selectAll('.entry').select('.localized-lang').value(function(d) {
-            var lang = _.find(iD.data.wikipedia, function(lang) {
-                return lang[2] === d.lang;
+        var entry = selection.selectAll('.entry');
+
+        entry.select('.localized-lang')
+            .value(function(d) {
+                var lang = _.find(iD.data.wikipedia, function(lang) { return lang[2] === d.lang; });
+                return lang ? lang[1] : d.lang;
             });
-            return lang ? lang[1] : d.lang;
-        });
 
-        selection.selectAll('.entry').select('.localized-value').value(function(d) {
-            return d.value;
-        });
+        entry.select('.localized-value')
+            .value(function(d) { return d.value; });
     }
 
     i.tags = function(tags) {
@@ -27925,7 +29291,7 @@ iD.ui.preset.localized = function(field, context) {
     };
 
     i.focus = function() {
-        title.node().focus();
+        input.node().focus();
     };
 
     return d3.rebind(i, event, 'on');
@@ -28044,7 +29410,7 @@ iD.ui.preset.maxspeed = function(field, context) {
 iD.ui.preset.radio = function(field) {
 
     var event = d3.dispatch('change'),
-        labels, radios;
+        labels, radios, placeholder;
 
     function radio(selection) {
         selection.classed('preset-radio', true);
@@ -28055,6 +29421,11 @@ iD.ui.preset.radio = function(field) {
         var buttonWrap = wrap.enter().append('div')
             .attr('class', 'preset-input-wrap toggle-list');
 
+        buttonWrap.append('span')
+            .attr('class', 'placeholder');
+
+        placeholder = selection.selectAll('.placeholder');
+
         labels = wrap.selectAll('label')
             .data(field.options || field.keys);
 
@@ -28071,29 +29442,6 @@ iD.ui.preset.radio = function(field) {
 
         radios = labels.selectAll('input')
             .on('change', change);
-
-        buttonWrap.append('span')
-            .attr('class', 'placeholder')
-            .text(field.placeholder());
-
-        var remove = wrap.selectAll('label.remove')
-            .data([0]);
-
-        var removeButton = remove.enter().append('label')
-            .attr('class', 'remove');
-
-        removeButton.append('span')
-            .attr('class', 'icon remove');
-
-        removeButton.append('span')
-            .text(t('inspector.remove'));
-
-        remove
-            .on('click', function() {
-                d3.event.preventDefault();
-                radios.property('checked', false);
-                change();
-            });
     }
 
     function change() {
@@ -28121,6 +29469,12 @@ iD.ui.preset.radio = function(field) {
 
         labels.classed('active', checked);
         radios.property('checked', checked);
+        var selection = radios.filter(function() { return this.checked; });
+        if (selection.empty()) {
+            placeholder.text(t('inspector.none'));
+        } else {
+            placeholder.text(selection.attr('value'));
+        }
     };
 
     radio.focus = function() {
@@ -28168,7 +29522,6 @@ iD.ui.preset.wikipedia = function(field, context) {
 
     var event = d3.dispatch('change'),
         wikipedia = iD.wikipedia(),
-        language = iD.data.wikipedia[0],
         link, entity, lang, title;
 
     function i(selection) {
@@ -28192,7 +29545,7 @@ iD.ui.preset.wikipedia = function(field, context) {
                 if (!value) value = context.entity(entity.id).tags.name || '';
                 var searchfn = value.length > 7 ? wikipedia.search : wikipedia.suggestions;
 
-                searchfn(language && language[2], value, function(query, data) {
+                searchfn(language()[2], value, function(query, data) {
                     cb(data.map(function(d) {
                         return { value: d };
                     }));
@@ -28204,7 +29557,8 @@ iD.ui.preset.wikipedia = function(field, context) {
 
         lang.enter().append('input')
             .attr('type', 'text')
-            .attr('class', 'wiki-lang');
+            .attr('class', 'wiki-lang')
+            .value('English');
 
         lang
             .on('blur', changeLang)
@@ -28234,63 +29588,53 @@ iD.ui.preset.wikipedia = function(field, context) {
             .attr('class', 'icon out-link');
     }
 
-    function changeLang() {
+    function language() {
         var value = lang.value().toLowerCase();
-        language = _.find(iD.data.wikipedia, function(d) {
+        return _.find(iD.data.wikipedia, function(d) {
             return d[0].toLowerCase() === value ||
                 d[1].toLowerCase() === value ||
                 d[2].toLowerCase() === value;
         }) || iD.data.wikipedia[0];
+    }
 
-        if (value !== language[0]) {
-            lang.value(language[1]);
-        }
-
+    function changeLang() {
+        lang.value(language()[1]);
         change();
     }
 
     function change() {
-        var t = {};
+        var value = title.value(),
+            m = value.match(/http:\/\/([a-z]+)\.wikipedia\.org\/wiki\/(.+)/),
+            l = m && _.find(iD.data.wikipedia, function(d) { return m[1] === d[2]; });
 
-        var value = title.value();
-
-        var m = value.match('http://([a-z]+)\\.wikipedia.org/wiki/(.*)'),
-            newlanguage = m && m[1] && m[2] && _.find(iD.data.wikipedia, function(d) {
-                return m[1] === d[2];
-            });
-
-        if (newlanguage) {
+        if (l) {
             // Normalize title http://www.mediawiki.org/wiki/API:Query#Title_normalization
             value = m[2].replace(/_/g, ' ');
             value = value.slice(0, 1).toUpperCase() + value.slice(1);
-            language = newlanguage;
-            lang.value(language[0]);
+            lang.value(l[1]);
+            title.value(value);
         }
 
-        t[field.key] = value ? language[2] + ':' + value : undefined;
+        var t = {};
+        t[field.key] = value ? language()[2] + ':' + value : undefined;
         event.change(t);
-        link.attr('href', 'http://' + language[2] + '.wikipedia.org/wiki/' + (value || ''));
     }
 
     i.tags = function(tags) {
-        var m = tags[field.key] ? tags[field.key].match(/([^:]+):(.+)/) : null;
-
-        var language = m && m[1] && m[2] && _.find(iD.data.wikipedia, function(d) {
-            return m[1] === d[2];
-        });
+        var value = tags[field.key] || '',
+            m = value.match(/([^:]+):(.+)/),
+            l = m && _.find(iD.data.wikipedia, function(d) { return m[1] === d[2]; });
 
         // value in correct format
-        if (language) {
-            lang.value(language[1]);
+        if (l) {
+            lang.value(l[1]);
             title.value(m[2]);
             link.attr('href', 'http://' + m[1] + '.wikipedia.org/wiki/' + m[2]);
 
         // unrecognized value format
         } else {
-            lang.value('English');
-            title.value(tags[field.key] || '');
-            language = iD.data.wikipedia[0];
-            link.attr('href', 'http://en.wikipedia.org/wiki/Special:Search?search=' + tags[field.key]);
+            title.value(value);
+            link.attr('href', 'http://en.wikipedia.org/wiki/Special:Search?search=' + value);
         }
     };
 
@@ -28398,10 +29742,6 @@ iD.ui.intro.line = function(context, reveal) {
         title: 'intro.lines.title'
     };
 
-    function one(target, e, f) {
-        d3.selection.prototype.one.call(target, e, f);
-    }
-
     function timeout(f, t) {
         timeouts.push(window.setTimeout(f, t));
     }
@@ -28410,11 +29750,11 @@ iD.ui.intro.line = function(context, reveal) {
 
         var centroid = [-85.62830, 41.95699];
         var midpoint = [-85.62975395449628, 41.95787501510204];
-        var start = [-85.6297754121684, 41.9583158176903];
+        var start = [-85.6297754121684, 41.95805253325314];
         var intersection = [-85.62974496187628, 41.95742515554585];
 
         context.map().centerZoom(start, 18);
-        reveal('button.add-line', t('intro.lines.add'), {tooltipClass: 'intro-areas-add'});
+        reveal('button.add-line', t('intro.lines.add'), {tooltipClass: 'intro-lines-add'});
 
         context.on('enter.intro', addLine);
 
@@ -28452,7 +29792,7 @@ iD.ui.intro.line = function(context, reveal) {
         // ended line before creating intersection
         function retry(mode) {
             if (mode.id !== 'select') return;
-            var pointBox = iD.ui.intro.pad(intersection, 30);
+            var pointBox = iD.ui.intro.pad(intersection, 30, context);
             reveal(pointBox, t('intro.lines.restart'));
             timeout(function() {
                 context.replace(iD.actions.DeleteMultiple(mode.selectedIDs()));
@@ -28486,6 +29826,10 @@ iD.ui.intro.line = function(context, reveal) {
             context.on('enter.intro', null);
             d3.select('#curtain').style('pointer-events', 'all');
 
+            presetCategory();
+        }
+
+        function presetCategory() {
             timeout(function() {
                 d3.select('#curtain').style('pointer-events', 'none');
                 var road = d3.select('.preset-category-road .preset-list-button');
@@ -28498,9 +29842,20 @@ iD.ui.intro.line = function(context, reveal) {
             timeout(function() {
                 var grid = d3.select('.subgrid');
                 reveal(grid.node(), t('intro.lines.residential'));
+                grid.selectAll(':not(.preset-highway-residential) .preset-list-button')
+                    .one('click.intro', retryPreset);
                 grid.selectAll('.preset-highway-residential .preset-list-button')
                     .one('click.intro', roadDetails);
-            }, 200);
+            }, 500);
+        }
+
+        // selected wrong road type
+        function retryPreset() {
+            timeout(function() {
+                var preset = d3.select('.entity-editor-pane .preset-list-button');
+                reveal(preset.node(), t('intro.lines.wrong_preset'));
+                preset.one('click.intro', presetCategory);
+            }, 500);
         }
 
         function roadDetails() {
@@ -28546,7 +29901,7 @@ iD.ui.intro.navigation = function(context, reveal) {
 
     step.enter = function() {
 
-        var rect = context.surface().node().getBoundingClientRect(),
+        var rect = context.surfaceRect(),
             map = {
                 left: rect.left + 10,
                 top: rect.top + 70,
@@ -29091,14 +30446,17 @@ iD.presets.Preset = function(id, preset, fields) {
         return Object.keys(preset.tags).length === 0;
     };
 
-    preset.reference = function() {
-        var reference = {key: Object.keys(preset.tags)[0]};
+    preset.reference = function(geometry) {
+        var key = Object.keys(preset.tags)[0],
+            value = preset.tags[key];
 
-        if (preset.tags[reference.key] !== '*') {
-            reference.value = preset.tags[reference.key];
+        if (geometry === 'relation' && key === 'type') {
+            return { rtype: value };
+        } else if (value === '*') {
+            return { key: key };
+        } else {
+            return { key: key, value: value };
         }
-
-        return reference;
     };
 
     var removeTags = preset.removeTags || preset.tags;
@@ -29115,7 +30473,7 @@ iD.presets.Preset = function(id, preset, fields) {
         return tags;
     };
 
-    var applyTags = preset.applyTags || preset.tags;
+    var applyTags = preset.addTags || preset.tags;
     preset.applyTags = function(tags, geometry) {
         tags = _.clone(tags);
 
@@ -29140,7 +30498,7 @@ iD.presets.Preset = function(id, preset, fields) {
     return preset;
 };
 iD.validate = function(changes, graph) {
-    var warnings = [], change;
+    var warnings = [];
 
     // https://github.com/openstreetmap/josm/blob/mirror/src/org/
     // openstreetmap/josm/data/validation/tests/UnclosedWays.java#L80
@@ -29163,20 +30521,16 @@ iD.validate = function(changes, graph) {
     }
 
     for (var i = 0; i < changes.created.length; i++) {
-        change = changes.created[i];
+        var change = changes.created[i],
+            geometry = change.geometry(graph);
 
-        if (change.geometry(graph) === 'point' && _.isEmpty(change.tags)) {
+        if ((geometry === 'point' || geometry === 'line' || geometry === 'area') && !change.isUsed(graph)) {
             warnings.push({
-                message: t('validations.untagged_point'),
+                message: t('validations.untagged_' + geometry),
                 entity: change
             });
         }
 
-        if (change.geometry(graph) === 'line' && _.isEmpty(change.tags) &&
-                graph.parentRelations(change).length === 0) {
-            warnings.push({ message: t('validations.untagged_line'), entity: change });
-        }
-
         var deprecatedTags = change.deprecatedTags();
         if (!_.isEmpty(deprecatedTags)) {
             warnings.push({
@@ -29185,11 +30539,7 @@ iD.validate = function(changes, graph) {
                 }), entity: change });
         }
 
-        if (change.geometry(graph) === 'area' && _.isEmpty(change.tags)) {
-            warnings.push({ message: t('validations.untagged_area'), entity: change });
-        }
-
-        if (change.geometry(graph) === 'line' && tagSuggestsArea(change)) {
+        if (geometry === 'line' && tagSuggestsArea(change)) {
             warnings.push({
                 message: t('validations.tag_suggests_area', {tag: tagSuggestsArea(change)}),
                 entity: change
@@ -29197,8 +30547,9 @@ iD.validate = function(changes, graph) {
         }
     }
 
-    return warnings.length ? [warnings] : [];
+    return warnings;
 };
+/* jshint ignore:start */
 })();
 window.locale = { _current: 'en' };
 
@@ -29348,6 +30699,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
     ],
     "discarded": [
         "created_by",
+        "odbl",
+        "odbl:note",
         "tiger:upload_uuid",
         "tiger:tlid",
         "tiger:source",
@@ -29355,8 +30708,30 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         "geobase:datasetName",
         "geobase:uuid",
         "sub_sea:type",
-        "odbl",
-        "odbl:note",
+        "KSJ2:ADS",
+        "KSJ2:ARE",
+        "KSJ2:AdminArea",
+        "KSJ2:COP_label",
+        "KSJ2:DFD",
+        "KSJ2:INT",
+        "KSJ2:INT_label",
+        "KSJ2:LOC",
+        "KSJ2:LPN",
+        "KSJ2:OPC",
+        "KSJ2:PubFacAdmin",
+        "KSJ2:RAC",
+        "KSJ2:RAC_label",
+        "KSJ2:RIC",
+        "KSJ2:RIN",
+        "KSJ2:WSC",
+        "KSJ2:coordinate",
+        "KSJ2:curve_id",
+        "KSJ2:curve_type",
+        "KSJ2:filename",
+        "KSJ2:lake_id",
+        "KSJ2:lat",
+        "KSJ2:long",
+        "KSJ2:river_id",
         "yh:LINE_NAME",
         "yh:LINE_NUM",
         "yh:STRUCTURE",
@@ -29367,637 +30742,23530 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
     ],
     "imagery": [
         {
-            "name": "Bing aerial imagery",
-            "template": "http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z",
-            "description": "Satellite imagery.",
-            "scaleExtent": [
-                0,
-                20
-            ],
-            "subdomains": [
-                "0",
-                "1",
-                "2",
-                "3"
-            ],
-            "default": true,
-            "sourcetag": "Bing",
-            "logo": "bing_maps.png",
-            "logo_url": "http://www.bing.com/maps",
-            "terms_url": "http://opengeodata.org/microsoft-imagery-details"
+            "name": "7th Series (OS7)",
+            "type": "tms",
+            "template": "http://ooc.openstreetmap.org/os7/{zoom}/{x}/{y}.jpg",
+            "polygon": [
+                [
+                    [
+                        -9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        49.8
+                    ]
+                ]
+            ]
         },
         {
-            "name": "Locator Overlay",
-            "template": "http://{t}.tiles.mapbox.com/v3/openstreetmap.map-btyhiati/{z}/{x}/{y}.png",
-            "description": "Shows major features to help orient you.",
-            "overlay": true,
-            "default": true,
-            "scaleExtent": [
-                0,
-                16
-            ],
-            "subdomains": [
-                "a",
-                "b",
-                "c"
+            "name": "AGRI black-and-white 2.5m",
+            "type": "tms",
+            "template": "http://agri.openstreetmap.org/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        112.28778,
+                        -28.784589
+                    ],
+                    [
+                        112.71488,
+                        -31.13894
+                    ],
+                    [
+                        114.11263,
+                        -34.178287
+                    ],
+                    [
+                        113.60788,
+                        -37.39012
+                    ],
+                    [
+                        117.17992,
+                        -37.451794
+                    ],
+                    [
+                        119.31538,
+                        -37.42096
+                    ],
+                    [
+                        121.72262,
+                        -36.708394
+                    ],
+                    [
+                        123.81925,
+                        -35.76893
+                    ],
+                    [
+                        125.9547,
+                        -34.3066
+                    ],
+                    [
+                        127.97368,
+                        -33.727398
+                    ],
+                    [
+                        130.07031,
+                        -33.24166
+                    ],
+                    [
+                        130.10913,
+                        -33.888704
+                    ],
+                    [
+                        131.00214,
+                        -34.049705
+                    ],
+                    [
+                        131.0798,
+                        -34.72257
+                    ],
+                    [
+                        132.28342,
+                        -35.39
+                    ],
+                    [
+                        134.18591,
+                        -35.61126
+                    ],
+                    [
+                        133.8753,
+                        -37.1119
+                    ],
+                    [
+                        134.8459,
+                        -37.6365
+                    ],
+                    [
+                        139.7769,
+                        -37.82075
+                    ],
+                    [
+                        139.93223,
+                        -39.4283
+                    ],
+                    [
+                        141.6017,
+                        -39.8767
+                    ],
+                    [
+                        142.3783,
+                        -39.368294
+                    ],
+                    [
+                        142.3783,
+                        -40.64702
+                    ],
+                    [
+                        142.49478,
+                        -42.074874
+                    ],
+                    [
+                        144.009,
+                        -44.060127
+                    ],
+                    [
+                        147.23161,
+                        -44.03222
+                    ],
+                    [
+                        149.05645,
+                        -42.534313
+                    ],
+                    [
+                        149.52237,
+                        -40.99959
+                    ],
+                    [
+                        149.9494,
+                        -40.852921
+                    ],
+                    [
+                        150.8036,
+                        -38.09627
+                    ],
+                    [
+                        151.81313,
+                        -38.12682
+                    ],
+                    [
+                        156.20052,
+                        -22.667706
+                    ],
+                    [
+                        156.20052,
+                        -20.10109
+                    ],
+                    [
+                        156.62761,
+                        -17.417627
+                    ],
+                    [
+                        155.26869,
+                        -17.19521
+                    ],
+                    [
+                        154.14272,
+                        -19.51662
+                    ],
+                    [
+                        153.5215,
+                        -18.34139
+                    ],
+                    [
+                        153.05558,
+                        -16.5636
+                    ],
+                    [
+                        152.78379,
+                        -15.256768
+                    ],
+                    [
+                        152.27905,
+                        -13.4135
+                    ],
+                    [
+                        151.3472,
+                        -12.391767
+                    ],
+                    [
+                        149.48354,
+                        -12.05024
+                    ],
+                    [
+                        146.9598,
+                        -9.992408
+                    ],
+                    [
+                        135.9719,
+                        -9.992408
+                    ],
+                    [
+                        130.3032,
+                        -10.33636
+                    ],
+                    [
+                        128.09016,
+                        -12.164136
+                    ],
+                    [
+                        125.91588,
+                        -12.315912
+                    ],
+                    [
+                        124.3239,
+                        -11.860326
+                    ],
+                    [
+                        122.03323,
+                        -11.974295
+                    ],
+                    [
+                        118.26706,
+                        -16.9353
+                    ],
+                    [
+                        115.93747,
+                        -19.11357
+                    ],
+                    [
+                        114.0738,
+                        -21.11863
+                    ],
+                    [
+                        113.49141,
+                        -22.596033
+                    ],
+                    [
+                        112.28778,
+                        -28.784589
+                    ]
+                ]
             ],
-            "terms_url": "http://mapbox.com/tos/"
+            "terms_text": "AGRI"
         },
         {
-            "name": "MapBox Satellite",
-            "template": "http://{t}.tiles.mapbox.com/v3/openstreetmap.map-4wvf9l0l/{z}/{x}/{y}.png",
+            "name": "Bing aerial imagery",
+            "type": "bing",
             "description": "Satellite and aerial imagery.",
+            "template": "http://www.bing.com/maps/",
             "scaleExtent": [
                 0,
-                16
-            ],
-            "subdomains": [
-                "a",
-                "b",
-                "c"
-            ],
-            "terms_url": "http://mapbox.com/tos/"
-        },
-        {
-            "name": "OpenStreetMap",
-            "template": "http://{t}.tile.openstreetmap.org/{z}/{x}/{y}.png",
-            "description": "The default OpenStreetMap layer.",
-            "scaleExtent": [
-                0,
-                18
+                22
             ],
-            "subdomains": [
-                "a",
-                "b",
-                "c"
-            ]
+            "id": "Bing",
+            "default": true
         },
         {
-            "name": "TIGER 2012 Roads Overlay",
-            "template": "http://{t}.tile.openstreetmap.us/tiger2012_roads_expanded/{z}/{x}/{y}.png",
-            "sourcetag": "TIGER 2012",
-            "overlay": true,
+            "name": "British Columbia Mosaic",
+            "type": "tms",
+            "template": "http://{switch:a,b,c,d}.imagery.paulnorman.ca/tiles/bc_mosaic/{zoom}/{x}/{y}.png",
             "scaleExtent": [
-                16,
-                19
-            ],
-            "subdomains": [
-                "a",
-                "b",
-                "c"
+                9,
+                20
             ],
-            "extents": [
+            "polygon": [
                 [
                     [
-                        -124.81,
-                        24.055
+                        -123.3176032,
+                        49.3272567
+                    ],
+                    [
+                        -123.4405258,
+                        49.3268222
+                    ],
+                    [
+                        -123.440717,
+                        49.3384429
+                    ],
+                    [
+                        -123.4398375,
+                        49.3430357
+                    ],
+                    [
+                        -123.4401258,
+                        49.3435398
+                    ],
+                    [
+                        -123.4401106,
+                        49.3439946
+                    ],
+                    [
+                        -123.4406265,
+                        49.3444493
+                    ],
+                    [
+                        -123.4404747,
+                        49.3455762
+                    ],
+                    [
+                        -123.4397768,
+                        49.3460606
+                    ],
+                    [
+                        -123.4389726,
+                        49.3461298
+                    ],
+                    [
+                        -123.4372904,
+                        49.3567236
+                    ],
+                    [
+                        -123.4374774,
+                        49.3710843
+                    ],
+                    [
+                        -123.4335292,
+                        49.3709446
+                    ],
+                    [
+                        -123.4330357,
+                        49.373725
+                    ],
+                    [
+                        -123.4332717,
+                        49.3751221
+                    ],
+                    [
+                        -123.4322847,
+                        49.3761001
+                    ],
+                    [
+                        -123.4317482,
+                        49.3791736
+                    ],
+                    [
+                        -123.4314264,
+                        49.3795927
+                    ],
+                    [
+                        -123.4307826,
+                        49.3823866
+                    ],
+                    [
+                        -123.4313405,
+                        49.3827358
+                    ],
+                    [
+                        -123.4312118,
+                        49.3838533
+                    ],
+                    [
+                        -123.4300415,
+                        49.3845883
+                    ],
+                    [
+                        -123.4189858,
+                        49.3847087
+                    ],
+                    [
+                        -123.4192235,
+                        49.4135198
+                    ],
+                    [
+                        -123.3972532,
+                        49.4135691
+                    ],
+                    [
+                        -123.3972758,
+                        49.4243473
+                    ],
+                    [
+                        -123.4006929,
+                        49.4243314
+                    ],
+                    [
+                        -123.4007741,
+                        49.5703491
+                    ],
+                    [
+                        -123.4000812,
+                        49.570345
+                    ],
+                    [
+                        -123.4010761,
+                        49.5933838
+                    ],
+                    [
+                        -123.3760399,
+                        49.5932848
+                    ],
+                    [
+                        -123.3769811,
+                        49.6756063
+                    ],
+                    [
+                        -123.3507288,
+                        49.6756396
+                    ],
+                    [
+                        -123.3507969,
+                        49.7086751
+                    ],
+                    [
+                        -123.332887,
+                        49.708722
+                    ],
+                    [
+                        -123.3327888,
+                        49.7256288
+                    ],
+                    [
+                        -123.3007111,
+                        49.7255625
+                    ],
+                    [
+                        -123.3009164,
+                        49.7375384
+                    ],
+                    [
+                        -123.2885986,
+                        49.737638
+                    ],
+                    [
+                        -123.2887823,
+                        49.8249207
+                    ],
+                    [
+                        -123.2997955,
+                        49.8249207
+                    ],
+                    [
+                        -123.3011721,
+                        49.8497814
+                    ],
+                    [
+                        -123.3218218,
+                        49.850669
+                    ],
+                    [
+                        -123.3273284,
+                        49.8577696
+                    ],
+                    [
+                        -123.3276726,
+                        49.9758852
+                    ],
+                    [
+                        -123.3008279,
+                        49.9752212
+                    ],
+                    [
+                        -123.3007204,
+                        50.0997002
+                    ],
+                    [
+                        -123.2501716,
+                        50.100735
+                    ],
+                    [
+                        -123.25091,
+                        50.2754901
+                    ],
+                    [
+                        -123.0224338,
+                        50.2755598
+                    ],
+                    [
+                        -123.0224879,
+                        50.3254853
+                    ],
+                    [
+                        -123.0009318,
+                        50.3254689
+                    ],
+                    [
+                        -123.0007778,
+                        50.3423899
+                    ],
+                    [
+                        -122.9775023,
+                        50.3423408
+                    ],
+                    [
+                        -122.9774766,
+                        50.3504306
+                    ],
+                    [
+                        -122.9508137,
+                        50.3504961
+                    ],
+                    [
+                        -122.950795,
+                        50.3711984
+                    ],
+                    [
+                        -122.9325221,
+                        50.3711521
+                    ],
+                    [
+                        -122.9321048,
+                        50.399793
+                    ],
+                    [
+                        -122.8874234,
+                        50.3999748
+                    ],
+                    [
+                        -122.8873385,
+                        50.4256108
+                    ],
+                    [
+                        -122.6620152,
+                        50.4256959
+                    ],
+                    [
+                        -122.6623083,
+                        50.3994506
+                    ],
+                    [
+                        -122.5990316,
+                        50.3992413
+                    ],
+                    [
+                        -122.5988274,
+                        50.3755206
+                    ],
+                    [
+                        -122.5724832,
+                        50.3753706
+                    ],
+                    [
+                        -122.5735621,
+                        50.2493891
+                    ],
+                    [
+                        -122.5990415,
+                        50.2494643
+                    ],
+                    [
+                        -122.5991504,
+                        50.2265663
+                    ],
+                    [
+                        -122.6185016,
+                        50.2266359
+                    ],
+                    [
+                        -122.6185741,
+                        50.2244081
+                    ],
+                    [
+                        -122.6490609,
+                        50.2245126
+                    ],
+                    [
+                        -122.6492181,
+                        50.1993528
+                    ],
+                    [
+                        -122.7308575,
+                        50.1993758
+                    ],
+                    [
+                        -122.7311583,
+                        50.1244287
+                    ],
+                    [
+                        -122.7490352,
+                        50.1245109
+                    ],
+                    [
+                        -122.7490541,
+                        50.0903032
+                    ],
+                    [
+                        -122.7687806,
+                        50.0903435
+                    ],
+                    [
+                        -122.7689801,
+                        49.9494546
+                    ],
+                    [
+                        -122.999047,
+                        49.9494706
+                    ],
+                    [
+                        -122.9991199,
+                        49.8754553
+                    ],
+                    [
+                        -122.9775894,
+                        49.8754553
+                    ],
+                    [
+                        -122.9778145,
+                        49.6995098
+                    ],
+                    [
+                        -122.9992362,
+                        49.6994781
+                    ],
+                    [
+                        -122.9992524,
+                        49.6516526
+                    ],
+                    [
+                        -123.0221525,
+                        49.6516526
+                    ],
+                    [
+                        -123.0221162,
+                        49.5995096
+                    ],
+                    [
+                        -123.0491898,
+                        49.5994625
+                    ],
+                    [
+                        -123.0491898,
+                        49.5940523
+                    ],
+                    [
+                        -123.0664647,
+                        49.5940405
+                    ],
+                    [
+                        -123.0663594,
+                        49.5451868
+                    ],
+                    [
+                        -123.0699906,
+                        49.5451202
+                    ],
+                    [
+                        -123.0699008,
+                        49.5413153
+                    ],
+                    [
+                        -123.0706835,
+                        49.5392837
+                    ],
+                    [
+                        -123.0708888,
+                        49.5379931
+                    ],
+                    [
+                        -123.0711454,
+                        49.5368773
+                    ],
+                    [
+                        -123.0711069,
+                        49.5358115
+                    ],
+                    [
+                        -123.0713764,
+                        49.532822
+                    ],
+                    [
+                        -123.0716458,
+                        49.5321141
+                    ],
+                    [
+                        -123.07171,
+                        49.5313896
+                    ],
+                    [
+                        -123.0720308,
+                        49.5304153
+                    ],
+                    [
+                        -123.0739554,
+                        49.5303486
+                    ],
+                    [
+                        -123.0748023,
+                        49.5294992
+                    ],
+                    [
+                        -123.0748151,
+                        49.5288079
+                    ],
+                    [
+                        -123.0743403,
+                        49.5280584
+                    ],
+                    [
+                        -123.073532,
+                        49.5274588
+                    ],
+                    [
+                        -123.0733652,
+                        49.5270423
+                    ],
+                    [
+                        -123.0732882,
+                        49.5255932
+                    ],
+                    [
+                        -123.0737116,
+                        49.5249602
+                    ],
+                    [
+                        -123.0736218,
+                        49.5244938
+                    ],
+                    [
+                        -123.0992583,
+                        49.5244854
+                    ],
+                    [
+                        -123.0991649,
+                        49.4754502
+                    ],
+                    [
+                        -123.071052,
+                        49.4755252
+                    ],
+                    [
+                        -123.071088,
+                        49.4663034
+                    ],
+                    [
+                        -123.0739204,
+                        49.4663054
+                    ],
+                    [
+                        -123.07422,
+                        49.4505028
+                    ],
+                    [
+                        -123.0746319,
+                        49.4500858
+                    ],
+                    [
+                        -123.074651,
+                        49.449329
+                    ],
+                    [
+                        -123.0745999,
+                        49.449018
+                    ],
+                    [
+                        -123.0744619,
+                        49.4486927
+                    ],
+                    [
+                        -123.0743336,
+                        49.4479899
+                    ],
+                    [
+                        -123.0742427,
+                        49.4477688
+                    ],
+                    [
+                        -123.0743061,
+                        49.4447473
+                    ],
+                    [
+                        -123.0747103,
+                        49.4447556
+                    ],
+                    [
+                        -123.0746384,
+                        49.4377306
+                    ],
+                    [
+                        -122.9996506,
+                        49.4377363
+                    ],
+                    [
+                        -122.9996506,
+                        49.4369214
+                    ],
+                    [
+                        -122.8606163,
+                        49.4415314
+                    ],
+                    [
+                        -122.8102616,
+                        49.4423972
+                    ],
+                    [
+                        -122.8098984,
+                        49.3766739
+                    ],
+                    [
+                        -122.4036093,
+                        49.3766617
+                    ],
+                    [
+                        -122.4036341,
+                        49.3771944
+                    ],
+                    [
+                        -122.264739,
+                        49.3773028
+                    ],
+                    [
+                        -122.263542,
+                        49.2360088
+                    ],
+                    [
+                        -122.2155742,
+                        49.236139
+                    ],
+                    [
+                        -122.0580956,
+                        49.235878
+                    ],
+                    [
+                        -121.9538274,
+                        49.2966525
+                    ],
+                    [
+                        -121.9400911,
+                        49.3045389
+                    ],
+                    [
+                        -121.9235761,
+                        49.3142257
+                    ],
+                    [
+                        -121.8990871,
+                        49.3225436
+                    ],
+                    [
+                        -121.8883447,
+                        49.3259752
+                    ],
+                    [
+                        -121.8552982,
+                        49.3363575
+                    ],
+                    [
+                        -121.832697,
+                        49.3441519
+                    ],
+                    [
+                        -121.7671336,
+                        49.3654361
+                    ],
+                    [
+                        -121.6736683,
+                        49.3654589
+                    ],
+                    [
+                        -121.6404153,
+                        49.3743775
+                    ],
+                    [
+                        -121.5961976,
+                        49.3860493
+                    ],
+                    [
+                        -121.5861178,
+                        49.3879193
+                    ],
+                    [
+                        -121.5213684,
+                        49.3994649
+                    ],
+                    [
+                        -121.5117375,
+                        49.4038378
+                    ],
+                    [
+                        -121.4679302,
+                        49.4229024
+                    ],
+                    [
+                        -121.4416803,
+                        49.4345607
+                    ],
+                    [
+                        -121.422429,
+                        49.4345788
+                    ],
+                    [
+                        -121.3462885,
+                        49.3932312
+                    ],
+                    [
+                        -121.3480144,
+                        49.3412388
+                    ],
+                    [
+                        -121.5135035,
+                        49.320577
+                    ],
+                    [
+                        -121.6031683,
+                        49.2771727
+                    ],
+                    [
+                        -121.6584065,
+                        49.1856125
+                    ],
+                    [
+                        -121.679953,
+                        49.1654109
+                    ],
+                    [
+                        -121.7815793,
+                        49.0702559
+                    ],
+                    [
+                        -121.8076228,
+                        49.0622471
+                    ],
+                    [
+                        -121.9393997,
+                        49.0636219
+                    ],
+                    [
+                        -121.9725524,
+                        49.0424179
+                    ],
+                    [
+                        -121.9921394,
+                        49.0332869
+                    ],
+                    [
+                        -122.0035289,
+                        49.0273413
+                    ],
+                    [
+                        -122.0178564,
+                        49.0241067
+                    ],
+                    [
+                        -122.1108634,
+                        48.9992786
+                    ],
+                    [
+                        -122.1493067,
+                        48.9995305
+                    ],
+                    [
+                        -122.1492705,
+                        48.9991498
+                    ],
+                    [
+                        -122.1991447,
+                        48.9996019
+                    ],
+                    [
+                        -122.199181,
+                        48.9991974
+                    ],
+                    [
+                        -122.234365,
+                        48.9994829
+                    ],
+                    [
+                        -122.234365,
+                        49.000173
+                    ],
+                    [
+                        -122.3994722,
+                        49.0012385
+                    ],
+                    [
+                        -122.4521338,
+                        49.0016326
+                    ],
+                    [
+                        -122.4521338,
+                        49.000883
+                    ],
+                    [
+                        -122.4584089,
+                        49.0009306
+                    ],
+                    [
+                        -122.4584814,
+                        48.9993124
+                    ],
+                    [
+                        -122.4992458,
+                        48.9995022
+                    ],
+                    [
+                        -122.4992458,
+                        48.9992906
+                    ],
+                    [
+                        -122.5492618,
+                        48.9995107
+                    ],
+                    [
+                        -122.5492564,
+                        48.9993206
+                    ],
+                    [
+                        -122.6580785,
+                        48.9994212
+                    ],
+                    [
+                        -122.6581061,
+                        48.9954007
+                    ],
+                    [
+                        -122.7067604,
+                        48.9955344
+                    ],
+                    [
+                        -122.7519761,
+                        48.9956392
+                    ],
+                    [
+                        -122.7922063,
+                        48.9957204
+                    ],
+                    [
+                        -122.7921907,
+                        48.9994331
+                    ],
+                    [
+                        -123.0350417,
+                        48.9995724
+                    ],
+                    [
+                        -123.0350437,
+                        49.0000958
+                    ],
+                    [
+                        -123.0397091,
+                        49.0000536
+                    ],
+                    [
+                        -123.0397444,
+                        49.0001812
+                    ],
+                    [
+                        -123.0485506,
+                        49.0001348
+                    ],
+                    [
+                        -123.0485329,
+                        49.0004712
+                    ],
+                    [
+                        -123.0557122,
+                        49.000448
+                    ],
+                    [
+                        -123.0556324,
+                        49.0002284
+                    ],
+                    [
+                        -123.0641365,
+                        49.0001293
+                    ],
+                    [
+                        -123.064158,
+                        48.9999421
+                    ],
+                    [
+                        -123.074899,
+                        48.9996928
+                    ],
+                    [
+                        -123.0750717,
+                        49.0006218
+                    ],
+                    [
+                        -123.0899573,
+                        49.0003726
+                    ],
+                    [
+                        -123.109229,
+                        48.9999421
+                    ],
+                    [
+                        -123.1271193,
+                        49.0003046
+                    ],
+                    [
+                        -123.1359953,
+                        48.9998741
+                    ],
+                    [
+                        -123.1362716,
+                        49.0005765
+                    ],
+                    [
+                        -123.153851,
+                        48.9998061
+                    ],
+                    [
+                        -123.1540533,
+                        49.0006806
+                    ],
+                    [
+                        -123.1710015,
+                        49.0001274
+                    ],
+                    [
+                        -123.2000916,
+                        48.9996849
+                    ],
+                    [
+                        -123.2003446,
+                        49.0497785
+                    ],
+                    [
+                        -123.2108845,
+                        49.0497232
+                    ],
+                    [
+                        -123.2112218,
+                        49.051989
+                    ],
+                    [
+                        -123.2070479,
+                        49.0520857
+                    ],
+                    [
+                        -123.2078911,
+                        49.0607884
+                    ],
+                    [
+                        -123.2191688,
+                        49.0600978
+                    ],
+                    [
+                        -123.218958,
+                        49.0612719
+                    ],
+                    [
+                        -123.2251766,
+                        49.0612719
+                    ],
+                    [
+                        -123.2253874,
+                        49.0622388
+                    ],
+                    [
+                        -123.2297088,
+                        49.0620316
+                    ],
+                    [
+                        -123.2298142,
+                        49.068592
+                    ],
+                    [
+                        -123.2331869,
+                        49.0687301
+                    ],
+                    [
+                        -123.2335031,
+                        49.0705945
+                    ],
+                    [
+                        -123.249313,
+                        49.0702493
+                    ],
+                    [
+                        -123.2497346,
+                        49.0802606
+                    ],
+                    [
+                        -123.2751358,
+                        49.0803986
+                    ],
+                    [
+                        -123.2751358,
+                        49.0870947
+                    ],
+                    [
+                        -123.299483,
+                        49.0873018
+                    ],
+                    [
+                        -123.29944,
+                        49.080253
+                    ],
+                    [
+                        -123.3254508,
+                        49.0803944
+                    ],
+                    [
+                        -123.3254353,
+                        49.1154662
+                    ],
+                    [
+                        -123.2750966,
+                        49.1503341
+                    ],
+                    [
+                        -123.275181,
+                        49.1873267
+                    ],
+                    [
+                        -123.2788067,
+                        49.1871063
+                    ],
+                    [
+                        -123.278891,
+                        49.1910741
+                    ],
+                    [
+                        -123.3004767,
+                        49.1910741
+                    ],
+                    [
+                        -123.3004186,
+                        49.2622933
+                    ],
+                    [
+                        -123.3126185,
+                        49.2622416
+                    ],
+                    [
+                        -123.3125958,
+                        49.2714948
+                    ],
+                    [
+                        -123.3154251,
+                        49.2714727
+                    ],
+                    [
+                        -123.3156628,
+                        49.2818906
+                    ],
+                    [
+                        -123.3174735,
+                        49.2818832
+                    ],
+                    [
+                        -123.3174961,
+                        49.2918488
+                    ],
+                    [
+                        -123.3190353,
+                        49.2918488
+                    ],
+                    [
+                        -123.3190692,
+                        49.298602
+                    ],
+                    [
+                        -123.3202349,
+                        49.2985651
+                    ],
+                    [
+                        -123.3202786,
+                        49.3019749
+                    ],
+                    [
+                        -123.3222679,
+                        49.3019605
+                    ],
+                    [
+                        -123.3223943,
+                        49.3118263
+                    ],
+                    [
+                        -123.3254002,
+                        49.3118086
+                    ],
+                    [
+                        -123.3253898,
+                        49.3201721
+                    ],
+                    [
+                        -123.3192695,
+                        49.3201957
+                    ],
+                    [
+                        -123.3192242,
+                        49.3246748
+                    ],
+                    [
+                        -123.3179437,
+                        49.3246596
+                    ],
+                    [
+                        -123.3179861,
+                        49.3254065
+                    ]
+                ]
+            ],
+            "terms_url": "http://imagery.paulnorman.ca/tiles/about.html",
+            "terms_text": "Copyright Province of British Columbia, City of Surrey"
+        },
+        {
+            "name": "Cambodia, Laos, Thailand, Vietnam bilingual",
+            "type": "tms",
+            "template": "http://{switch:a,b,c,d}.tile.osm-tools.org/osm_then/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                19
+            ],
+            "polygon": [
+                [
+                    [
+                        97.3,
+                        5.6
+                    ],
+                    [
+                        97.3,
+                        23.4
+                    ],
+                    [
+                        109.6,
+                        23.4
+                    ],
+                    [
+                        109.6,
+                        5.6
+                    ],
+                    [
+                        97.3,
+                        5.6
+                    ]
+                ]
+            ],
+            "terms_url": "http://www.osm-tools.org/",
+            "terms_text": "© osm-tools.org & OpenStreetMap contributors, CC-BY-SA"
+        },
+        {
+            "name": "Freemap.sk Car",
+            "type": "tms",
+            "template": "http://t{switch:1,2,3,4}.freemap.sk/A/{zoom}/{x}/{y}.jpeg",
+            "scaleExtent": [
+                8,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved."
+        },
+        {
+            "name": "Freemap.sk Cyclo",
+            "type": "tms",
+            "template": "http://t{switch:1,2,3,4}.freemap.sk/C/{zoom}/{x}/{y}.jpeg",
+            "scaleExtent": [
+                8,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved."
+        },
+        {
+            "name": "Freemap.sk Hiking",
+            "type": "tms",
+            "template": "http://t{switch:1,2,3,4}.freemap.sk/T/{zoom}/{x}/{y}.jpeg",
+            "scaleExtent": [
+                8,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved."
+        },
+        {
+            "name": "Freemap.sk Ski",
+            "type": "tms",
+            "template": "http://t{switch:1,2,3,4}.freemap.sk/K/{zoom}/{x}/{y}.jpeg",
+            "scaleExtent": [
+                8,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved."
+        },
+        {
+            "name": "Fugro (Denmark)",
+            "type": "tms",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.dk/fugro2005/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                19
+            ],
+            "polygon": [
+                [
+                    [
+                        8.3743941,
+                        54.9551655
+                    ],
+                    [
+                        8.3683809,
+                        55.4042149
+                    ],
+                    [
+                        8.2103997,
+                        55.4039795
+                    ],
+                    [
+                        8.2087314,
+                        55.4937345
+                    ],
+                    [
+                        8.0502655,
+                        55.4924731
+                    ],
+                    [
+                        8.0185123,
+                        56.7501399
+                    ],
+                    [
+                        8.1819161,
+                        56.7509948
+                    ],
+                    [
+                        8.1763274,
+                        57.0208898
+                    ],
+                    [
+                        8.3413329,
+                        57.0219872
+                    ],
+                    [
+                        8.3392467,
+                        57.1119574
+                    ],
+                    [
+                        8.5054433,
+                        57.1123212
+                    ],
+                    [
+                        8.5033923,
+                        57.2020499
+                    ],
+                    [
+                        9.3316304,
+                        57.2027636
+                    ],
+                    [
+                        9.3319079,
+                        57.2924835
+                    ],
+                    [
+                        9.4978864,
+                        57.2919578
+                    ],
+                    [
+                        9.4988593,
+                        57.3820608
+                    ],
+                    [
+                        9.6649749,
+                        57.3811615
+                    ],
+                    [
+                        9.6687295,
+                        57.5605591
+                    ],
+                    [
+                        9.8351961,
+                        57.5596265
+                    ],
+                    [
+                        9.8374896,
+                        57.6493322
+                    ],
+                    [
+                        10.1725726,
+                        57.6462818
+                    ],
+                    [
+                        10.1754245,
+                        57.7367768
+                    ],
+                    [
+                        10.5118282,
+                        57.7330269
+                    ],
+                    [
+                        10.5152095,
+                        57.8228945
+                    ],
+                    [
+                        10.6834853,
+                        57.8207722
+                    ],
+                    [
+                        10.6751613,
+                        57.6412021
+                    ],
+                    [
+                        10.5077045,
+                        57.6433097
+                    ],
+                    [
+                        10.5039992,
+                        57.5535088
+                    ],
+                    [
+                        10.671038,
+                        57.5514113
+                    ],
+                    [
+                        10.6507805,
+                        57.1024538
+                    ],
+                    [
+                        10.4857673,
+                        57.1045138
+                    ],
+                    [
+                        10.4786236,
+                        56.9249051
+                    ],
+                    [
+                        10.3143981,
+                        56.9267573
+                    ],
+                    [
+                        10.3112341,
+                        56.8369269
+                    ],
+                    [
+                        10.4750295,
+                        56.83509
+                    ],
+                    [
+                        10.4649016,
+                        56.5656681
+                    ],
+                    [
+                        10.9524239,
+                        56.5589761
+                    ],
+                    [
+                        10.9479249,
+                        56.4692243
+                    ],
+                    [
+                        11.1099335,
+                        56.4664675
+                    ],
+                    [
+                        11.1052639,
+                        56.376833
+                    ],
+                    [
+                        10.9429901,
+                        56.3795284
+                    ],
+                    [
+                        10.9341235,
+                        56.1994768
+                    ],
+                    [
+                        10.7719685,
+                        56.2020244
+                    ],
+                    [
+                        10.7694751,
+                        56.1120103
+                    ],
+                    [
+                        10.6079695,
+                        56.1150259
+                    ],
+                    [
+                        10.4466742,
+                        56.116717
+                    ],
+                    [
+                        10.2865948,
+                        56.118675
+                    ],
+                    [
+                        10.2831527,
+                        56.0281851
+                    ],
+                    [
+                        10.4439274,
+                        56.0270388
+                    ],
+                    [
+                        10.4417713,
+                        55.7579243
+                    ],
+                    [
+                        10.4334961,
+                        55.6693533
+                    ],
+                    [
+                        10.743814,
+                        55.6646861
+                    ],
+                    [
+                        10.743814,
+                        55.5712253
+                    ],
+                    [
+                        10.8969041,
+                        55.5712253
+                    ],
+                    [
+                        10.9051793,
+                        55.3953852
+                    ],
+                    [
+                        11.0613726,
+                        55.3812841
+                    ],
+                    [
+                        11.0593038,
+                        55.1124061
+                    ],
+                    [
+                        11.0458567,
+                        55.0318621
+                    ],
+                    [
+                        11.2030844,
+                        55.0247474
+                    ],
+                    [
+                        11.2030844,
+                        55.117139
+                    ],
+                    [
+                        11.0593038,
+                        55.1124061
+                    ],
+                    [
+                        11.0613726,
+                        55.3812841
+                    ],
+                    [
+                        11.0789572,
+                        55.5712253
+                    ],
+                    [
+                        10.8969041,
+                        55.5712253
+                    ],
+                    [
+                        10.9258671,
+                        55.6670198
+                    ],
+                    [
+                        10.743814,
+                        55.6646861
+                    ],
+                    [
+                        10.7562267,
+                        55.7579243
+                    ],
+                    [
+                        10.4417713,
+                        55.7579243
+                    ],
+                    [
+                        10.4439274,
+                        56.0270388
+                    ],
+                    [
+                        10.4466742,
+                        56.116717
+                    ],
+                    [
+                        10.6079695,
+                        56.1150259
+                    ],
+                    [
+                        10.6052053,
+                        56.0247462
+                    ],
+                    [
+                        10.9258671,
+                        56.0201215
+                    ],
+                    [
+                        10.9197132,
+                        55.9309388
+                    ],
+                    [
+                        11.0802782,
+                        55.92792
+                    ],
+                    [
+                        11.0858066,
+                        56.0178284
+                    ],
+                    [
+                        11.7265047,
+                        56.005058
+                    ],
+                    [
+                        11.7319981,
+                        56.0952142
+                    ],
+                    [
+                        12.0540333,
+                        56.0871256
+                    ],
+                    [
+                        12.0608477,
+                        56.1762576
+                    ],
+                    [
+                        12.7023469,
+                        56.1594405
+                    ],
+                    [
+                        12.6611131,
+                        55.7114318
+                    ],
+                    [
+                        12.9792318,
+                        55.7014026
+                    ],
+                    [
+                        12.9612912,
+                        55.5217294
+                    ],
+                    [
+                        12.3268659,
+                        55.5412096
+                    ],
+                    [
+                        12.3206071,
+                        55.4513655
+                    ],
+                    [
+                        12.4778226,
+                        55.447067
+                    ],
+                    [
+                        12.4702432,
+                        55.3570479
+                    ],
+                    [
+                        12.6269738,
+                        55.3523837
+                    ],
+                    [
+                        12.6200898,
+                        55.2632576
+                    ],
+                    [
+                        12.4627339,
+                        55.26722
+                    ],
+                    [
+                        12.4552949,
+                        55.1778223
+                    ],
+                    [
+                        12.2987046,
+                        55.1822303
+                    ],
+                    [
+                        12.2897344,
+                        55.0923641
+                    ],
+                    [
+                        12.6048608,
+                        55.0832904
+                    ],
+                    [
+                        12.5872011,
+                        54.9036285
+                    ],
+                    [
+                        12.2766618,
+                        54.9119031
+                    ],
+                    [
+                        12.2610181,
+                        54.7331602
+                    ],
+                    [
+                        12.1070691,
+                        54.7378161
+                    ],
+                    [
+                        12.0858621,
+                        54.4681655
+                    ],
+                    [
+                        11.7794953,
+                        54.4753579
+                    ],
+                    [
+                        11.7837381,
+                        54.5654783
+                    ],
+                    [
+                        11.1658525,
+                        54.5782155
+                    ],
+                    [
+                        11.1706443,
+                        54.6686508
+                    ],
+                    [
+                        10.8617173,
+                        54.6733956
+                    ],
+                    [
+                        10.8651245,
+                        54.7634667
+                    ],
+                    [
+                        10.7713646,
+                        54.7643888
+                    ],
+                    [
+                        10.7707276,
+                        54.7372807
+                    ],
+                    [
+                        10.7551428,
+                        54.7375776
+                    ],
+                    [
+                        10.7544039,
+                        54.7195666
+                    ],
+                    [
+                        10.7389074,
+                        54.7197588
+                    ],
+                    [
+                        10.7384368,
+                        54.7108482
+                    ],
+                    [
+                        10.7074486,
+                        54.7113045
+                    ],
+                    [
+                        10.7041094,
+                        54.6756741
+                    ],
+                    [
+                        10.5510973,
+                        54.6781698
+                    ],
+                    [
+                        10.5547184,
+                        54.7670245
+                    ],
+                    [
+                        10.2423994,
+                        54.7705935
+                    ],
+                    [
+                        10.2459845,
+                        54.8604673
+                    ],
+                    [
+                        10.0902268,
+                        54.8622134
+                    ],
+                    [
+                        10.0873731,
+                        54.7723851
+                    ],
+                    [
+                        9.1555798,
+                        54.7769557
+                    ],
+                    [
+                        9.1562752,
+                        54.8675369
+                    ],
+                    [
+                        8.5321973,
+                        54.8663765
+                    ],
+                    [
+                        8.531432,
+                        54.95516
+                    ]
+                ],
+                [
+                    [
+                        11.4577738,
+                        56.819554
+                    ],
+                    [
+                        11.7849181,
+                        56.8127385
+                    ],
+                    [
+                        11.7716715,
+                        56.6332796
+                    ],
+                    [
+                        11.4459621,
+                        56.6401087
+                    ]
+                ],
+                [
+                    [
+                        11.3274736,
+                        57.3612962
+                    ],
+                    [
+                        11.3161808,
+                        57.1818004
+                    ],
+                    [
+                        11.1508692,
+                        57.1847276
+                    ],
+                    [
+                        11.1456628,
+                        57.094962
+                    ],
+                    [
+                        10.8157703,
+                        57.1001693
+                    ],
+                    [
+                        10.8290599,
+                        57.3695272
+                    ]
+                ],
+                [
+                    [
+                        11.5843266,
+                        56.2777928
+                    ],
+                    [
+                        11.5782882,
+                        56.1880397
+                    ],
+                    [
+                        11.7392309,
+                        56.1845765
+                    ],
+                    [
+                        11.7456428,
+                        56.2743186
+                    ]
+                ],
+                [
+                    [
+                        14.6825922,
+                        55.3639405
+                    ],
+                    [
+                        14.8395247,
+                        55.3565231
+                    ],
+                    [
+                        14.8263755,
+                        55.2671261
+                    ],
+                    [
+                        15.1393406,
+                        55.2517359
+                    ],
+                    [
+                        15.1532015,
+                        55.3410836
+                    ],
+                    [
+                        15.309925,
+                        55.3330556
+                    ],
+                    [
+                        15.295719,
+                        55.2437356
+                    ],
+                    [
+                        15.1393406,
+                        55.2517359
+                    ],
+                    [
+                        15.1255631,
+                        55.1623802
+                    ],
+                    [
+                        15.2815819,
+                        55.1544167
+                    ],
+                    [
+                        15.2535578,
+                        54.9757646
+                    ],
+                    [
+                        14.6317464,
+                        55.0062496
+                    ]
+                ]
+            ],
+            "terms_url": "http://wiki.openstreetmap.org/wiki/Fugro",
+            "terms_text": "Fugro Aerial Mapping"
+        },
+        {
+            "name": "Imagerie Drone (Haiti)",
+            "type": "tms",
+            "template": "http://wms.openstreetmap.fr/tms/1.0.0/iomhaiti/{zoom}/{x}/{y}",
+            "polygon": [
+                [
+                    [
+                        -72.1547401,
+                        19.6878969
+                    ],
+                    [
+                        -72.162234,
+                        19.689011
+                    ],
+                    [
+                        -72.164995,
+                        19.6932445
+                    ],
+                    [
+                        -72.1657838,
+                        19.6979977
+                    ],
+                    [
+                        -72.161603,
+                        19.7035677
+                    ],
+                    [
+                        -72.1487449,
+                        19.7028993
+                    ],
+                    [
+                        -72.1477194,
+                        19.7026765
+                    ],
+                    [
+                        -72.1485082,
+                        19.7001514
+                    ],
+                    [
+                        -72.1436963,
+                        19.7011169
+                    ],
+                    [
+                        -72.1410143,
+                        19.7000029
+                    ],
+                    [
+                        -72.139476,
+                        19.6973664
+                    ],
+                    [
+                        -72.1382533,
+                        19.6927617
+                    ],
+                    [
+                        -72.1386872,
+                        19.6923161
+                    ],
+                    [
+                        -72.1380561,
+                        19.6896423
+                    ],
+                    [
+                        -72.1385294,
+                        19.6894938
+                    ],
+                    [
+                        -72.1388055,
+                        19.6901251
+                    ],
+                    [
+                        -72.1388844,
+                        19.6876741
+                    ],
+                    [
+                        -72.1378195,
+                        19.6872656
+                    ],
+                    [
+                        -72.13778,
+                        19.6850003
+                    ],
+                    [
+                        -72.1369517,
+                        19.6855945
+                    ],
+                    [
+                        -72.136794,
+                        19.6840719
+                    ],
+                    [
+                        -72.135729,
+                        19.6835148
+                    ],
+                    [
+                        -72.1355713,
+                        19.6740817
+                    ],
+                    [
+                        -72.1366362,
+                        19.6708133
+                    ],
+                    [
+                        -72.1487843,
+                        19.6710733
+                    ],
+                    [
+                        -72.1534779,
+                        19.6763843
+                    ],
+                    [
+                        -72.1530835,
+                        19.6769414
+                    ],
+                    [
+                        -72.1533251,
+                        19.6769768
+                    ],
+                    [
+                        -72.1532807,
+                        19.6796525
+                    ],
+                    [
+                        -72.1523834,
+                        19.6797175
+                    ],
+                    [
+                        -72.1522749,
+                        19.6803488
+                    ],
+                    [
+                        -72.1519101,
+                        19.6803395
+                    ],
+                    [
+                        -72.1518608,
+                        19.6805067
+                    ],
+                    [
+                        -72.1528173,
+                        19.6806552
+                    ],
+                    [
+                        -72.1522299,
+                        19.6833011
+                    ],
+                    [
+                        -72.1507801,
+                        19.6831499
+                    ],
+                    [
+                        -72.1504457,
+                        19.6847862
+                    ],
+                    [
+                        -72.1508591,
+                        19.6843492
+                    ],
+                    [
+                        -72.1530087,
+                        19.6849898
+                    ],
+                    [
+                        -72.1546258,
+                        19.6854354
+                    ],
+                    [
+                        -72.1543103,
+                        19.6870694
+                    ],
+                    [
+                        -72.1547244,
+                        19.6868466
+                    ],
+                    [
+                        -72.1548501,
+                        19.6877564
+                    ],
+                    [
+                        -72.1545814,
+                        19.6877982
+                    ]
+                ],
+                [
+                    [
+                        -72.1310601,
+                        19.6718929
+                    ],
+                    [
+                        -72.1259842,
+                        19.6772765
+                    ],
+                    [
+                        -72.1255379,
+                        19.6776179
+                    ],
+                    [
+                        -72.1216891,
+                        19.6776442
+                    ],
+                    [
+                        -72.1149677,
+                        19.672602
+                    ],
+                    [
+                        -72.1152745,
+                        19.6687152
+                    ],
+                    [
+                        -72.1198205,
+                        19.6627535
+                    ],
+                    [
+                        -72.1227768,
+                        19.6625696
+                    ],
+                    [
+                        -72.1248965,
+                        19.662701
+                    ],
+                    [
+                        -72.1285779,
+                        19.6645394
+                    ],
+                    [
+                        -72.1308091,
+                        19.6661677
+                    ],
+                    [
+                        -72.1316737,
+                        19.668794
+                    ],
+                    [
+                        -72.1315621,
+                        19.671
+                    ]
+                ],
+                [
+                    [
+                        -71.845795,
+                        19.6709758
+                    ],
+                    [
+                        -71.8429354,
+                        19.6759525
+                    ],
+                    [
+                        -71.8410027,
+                        19.6759525
+                    ],
+                    [
+                        -71.8380249,
+                        19.6755254
+                    ],
+                    [
+                        -71.8378671,
+                        19.6745041
+                    ],
+                    [
+                        -71.8390504,
+                        19.6743927
+                    ],
+                    [
+                        -71.8390109,
+                        19.6741141
+                    ],
+                    [
+                        -71.8398392,
+                        19.673947
+                    ],
+                    [
+                        -71.8389123,
+                        19.6736127
+                    ],
+                    [
+                        -71.8380249,
+                        19.67209
+                    ],
+                    [
+                        -71.8380052,
+                        19.6726285
+                    ],
+                    [
+                        -71.8376699,
+                        19.6727214
+                    ],
+                    [
+                        -71.8376305,
+                        19.672545
+                    ],
+                    [
+                        -71.8354414,
+                        19.6732135
+                    ],
+                    [
+                        -71.835333,
+                        19.6729999
+                    ],
+                    [
+                        -71.8331242,
+                        19.6734642
+                    ],
+                    [
+                        -71.8326706,
+                        19.6716815
+                    ],
+                    [
+                        -71.8321579,
+                        19.67209
+                    ],
+                    [
+                        -71.8307183,
+                        19.6694902
+                    ],
+                    [
+                        -71.8306009,
+                        19.6697594
+                    ],
+                    [
+                        -71.8302174,
+                        19.6698907
+                    ],
+                    [
+                        -71.8291833,
+                        19.6672095
+                    ],
+                    [
+                        -71.8290749,
+                        19.6672095
+                    ],
+                    [
+                        -71.8289122,
+                        19.6667916
+                    ],
+                    [
+                        -71.8289516,
+                        19.6666199
+                    ],
+                    [
+                        -71.8288333,
+                        19.6663506
+                    ],
+                    [
+                        -71.8285572,
+                        19.6664759
+                    ],
+                    [
+                        -71.8288678,
+                        19.6672466
+                    ],
+                    [
+                        -71.8287593,
+                        19.6674138
+                    ],
+                    [
+                        -71.8277979,
+                        19.6678177
+                    ],
+                    [
+                        -71.8277112,
+                        19.6678586
+                    ],
+                    [
+                        -71.8278263,
+                        19.6679637
+                    ],
+                    [
+                        -71.8271831,
+                        19.6681212
+                    ],
+                    [
+                        -71.8271761,
+                        19.6680917
+                    ],
+                    [
+                        -71.8264405,
+                        19.6683921
+                    ],
+                    [
+                        -71.8264074,
+                        19.6683231
+                    ],
+                    [
+                        -71.8261954,
+                        19.6684253
+                    ],
+                    [
+                        -71.8261806,
+                        19.6683556
+                    ],
+                    [
+                        -71.8258946,
+                        19.6684206
+                    ],
+                    [
+                        -71.8258897,
+                        19.6686574
+                    ],
+                    [
+                        -71.8251551,
+                        19.6687549
+                    ],
+                    [
+                        -71.8254509,
+                        19.6691588
+                    ],
+                    [
+                        -71.8229332,
+                        19.6695739
+                    ],
+                    [
+                        -71.822713,
+                        19.6696658
+                    ],
+                    [
+                        -71.8227688,
+                        19.6697577
+                    ],
+                    [
+                        -71.8201751,
+                        19.6709855
+                    ],
+                    [
+                        -71.8198474,
+                        19.6704537
+                    ],
+                    [
+                        -71.8197985,
+                        19.6706014
+                    ],
+                    [
+                        -71.8194674,
+                        19.6707557
+                    ],
+                    [
+                        -71.8182472,
+                        19.6713433
+                    ],
+                    [
+                        -71.8181426,
+                        19.6711431
+                    ],
+                    [
+                        -71.8175813,
+                        19.6714254
+                    ],
+                    [
+                        -71.816959,
+                        19.6707672
+                    ],
+                    [
+                        -71.8176388,
+                        19.6718965
+                    ],
+                    [
+                        -71.8171403,
+                        19.6720376
+                    ],
+                    [
+                        -71.8158225,
+                        19.6718045
+                    ],
+                    [
+                        -71.8138354,
+                        19.6711874
+                    ],
+                    [
+                        -71.8123259,
+                        19.6706982
+                    ],
+                    [
+                        -71.8121759,
+                        19.6704258
+                    ],
+                    [
+                        -71.8124304,
+                        19.6701467
+                    ],
+                    [
+                        -71.8119184,
+                        19.6700141
+                    ],
+                    [
+                        -71.8118765,
+                        19.6705828
+                    ],
+                    [
+                        -71.811169,
+                        19.6703483
+                    ],
+                    [
+                        -71.8095938,
+                        19.6698516
+                    ],
+                    [
+                        -71.8077992,
+                        19.6692829
+                    ],
+                    [
+                        -71.8056028,
+                        19.668612
+                    ],
+                    [
+                        -71.8051443,
+                        19.6668942
+                    ],
+                    [
+                        -71.8051196,
+                        19.6652322
+                    ],
+                    [
+                        -71.8052315,
+                        19.661979
+                    ],
+                    [
+                        -71.8065603,
+                        19.6523921
+                    ],
+                    [
+                        -71.8073412,
+                        19.6482946
+                    ],
+                    [
+                        -71.8099686,
+                        19.6468292
+                    ],
+                    [
+                        -71.8147517,
+                        19.6454502
+                    ],
+                    [
+                        -71.8147726,
+                        19.6455619
+                    ],
+                    [
+                        -71.8150027,
+                        19.6455093
+                    ],
+                    [
+                        -71.8149469,
+                        19.6453846
+                    ],
+                    [
+                        -71.8159928,
+                        19.6450234
+                    ],
+                    [
+                        -71.8158882,
+                        19.6448855
+                    ],
+                    [
+                        -71.8165854,
+                        19.6446097
+                    ],
+                    [
+                        -71.8190119,
+                        19.643802
+                    ],
+                    [
+                        -71.8211524,
+                        19.643454
+                    ],
+                    [
+                        -71.8221564,
+                        19.6433292
+                    ],
+                    [
+                        -71.8269046,
+                        19.643211
+                    ],
+                    [
+                        -71.8280481,
+                        19.6432241
+                    ],
+                    [
+                        -71.8304466,
+                        19.6440778
+                    ],
+                    [
+                        -71.8306419,
+                        19.6448592
+                    ],
+                    [
+                        -71.8295263,
+                        19.6450365
+                    ],
+                    [
+                        -71.8296064,
+                        19.6456111
+                    ],
+                    [
+                        -71.8299411,
+                        19.6455651
+                    ],
+                    [
+                        -71.8303699,
+                        19.6451744
+                    ],
+                    [
+                        -71.830471,
+                        19.6453452
+                    ],
+                    [
+                        -71.8308092,
+                        19.6451974
+                    ],
+                    [
+                        -71.8310184,
+                        19.6451088
+                    ],
+                    [
+                        -71.8312519,
+                        19.6458541
+                    ],
+                    [
+                        -71.8311125,
+                        19.6458245
+                    ],
+                    [
+                        -71.831367,
+                        19.6465862
+                    ],
+                    [
+                        -71.8328939,
+                        19.646189
+                    ],
+                    [
+                        -71.8344566,
+                        19.6457062
+                    ],
+                    [
+                        -71.8344664,
+                        19.6463052
+                    ],
+                    [
+                        -71.834215,
+                        19.6461938
+                    ],
+                    [
+                        -71.8342002,
+                        19.6465513
+                    ],
+                    [
+                        -71.8346702,
+                        19.6463
+                    ],
+                    [
+                        -71.8349118,
+                        19.6463905
+                    ],
+                    [
+                        -71.8347984,
+                        19.6462187
+                    ],
+                    [
+                        -71.8354393,
+                        19.6458496
+                    ],
+                    [
+                        -71.8355034,
+                        19.6458032
+                    ],
+                    [
+                        -71.8364747,
+                        19.6461328
+                    ],
+                    [
+                        -71.8376382,
+                        19.6472658
+                    ],
+                    [
+                        -71.8379143,
+                        19.647888
+                    ],
+                    [
+                        -71.8390483,
+                        19.6508039
+                    ],
+                    [
+                        -71.8456942,
+                        19.6696203
+                    ]
+                ],
+                [
+                    [
+                        -72.098878,
+                        18.54843
+                    ],
+                    [
+                        -72.096993,
+                        18.5501994
+                    ],
+                    [
+                        -72.0972888,
+                        18.5503209
+                    ],
+                    [
+                        -72.0968451,
+                        18.5503489
+                    ],
+                    [
+                        -72.0955632,
+                        18.551854
+                    ],
+                    [
+                        -72.0956428,
+                        18.5526742
+                    ],
+                    [
+                        -72.0959914,
+                        18.5533748
+                    ],
+                    [
+                        -72.0962145,
+                        18.553203
+                    ],
+                    [
+                        -72.0962842,
+                        18.5535665
+                    ],
+                    [
+                        -72.0964446,
+                        18.5535533
+                    ],
+                    [
+                        -72.0965352,
+                        18.5539764
+                    ],
+                    [
+                        -72.0965056,
+                        18.554173
+                    ],
+                    [
+                        -72.0966085,
+                        18.5541747
+                    ],
+                    [
+                        -72.0965178,
+                        18.5542127
+                    ],
+                    [
+                        -72.0968769,
+                        18.5546588
+                    ],
+                    [
+                        -72.0979018,
+                        18.5552141
+                    ],
+                    [
+                        -72.1006211,
+                        18.5555875
+                    ],
+                    [
+                        -72.1014926,
+                        18.5556206
+                    ],
+                    [
+                        -72.1024339,
+                        18.5555016
+                    ],
+                    [
+                        -72.103417,
+                        18.5543515
+                    ],
+                    [
+                        -72.1034798,
+                        18.5516215
+                    ],
+                    [
+                        -72.1030789,
+                        18.5516149
+                    ],
+                    [
+                        -72.1033752,
+                        18.5515224
+                    ],
+                    [
+                        -72.1035042,
+                        18.5515224
+                    ],
+                    [
+                        -72.1035239,
+                        18.5502417
+                    ],
+                    [
+                        -72.1028701,
+                        18.5503062
+                    ],
+                    [
+                        -72.1029015,
+                        18.55025
+                    ],
+                    [
+                        -72.1028457,
+                        18.5501773
+                    ],
+                    [
+                        -72.1035081,
+                        18.5500252
+                    ],
+                    [
+                        -72.103491,
+                        18.5497396
+                    ],
+                    [
+                        -72.1035181,
+                        18.5497361
+                    ],
+                    [
+                        -72.1035398,
+                        18.5489039
+                    ],
+                    [
+                        -72.1034317,
+                        18.5487056
+                    ],
+                    [
+                        -72.102717,
+                        18.5481437
+                    ],
+                    [
+                        -72.1025601,
+                        18.5481536
+                    ],
+                    [
+                        -72.10229,
+                        18.5482751
+                    ],
+                    [
+                        -72.1022891,
+                        18.5482569
+                    ],
+                    [
+                        -72.1025201,
+                        18.5481396
+                    ],
+                    [
+                        -72.1023388,
+                        18.5481321
+                    ],
+                    [
+                        -72.0999082,
+                        18.5480901
+                    ],
+                    [
+                        -72.09907,
+                        18.5483799
+                    ]
+                ],
+                [
+                    [
+                        -72.2542503,
+                        18.568262
+                    ],
+                    [
+                        -72.2560252,
+                        18.5717765
+                    ],
+                    [
+                        -72.2557886,
+                        18.5748049
+                    ],
+                    [
+                        -72.2535009,
+                        18.5755526
+                    ],
+                    [
+                        -72.2522782,
+                        18.5755526
+                    ],
+                    [
+                        -72.2499906,
+                        18.5740945
+                    ],
+                    [
+                        -72.2473874,
+                        18.5698323
+                    ],
+                    [
+                        -72.2460069,
+                        18.566729
+                    ],
+                    [
+                        -72.2458492,
+                        18.5629527
+                    ],
+                    [
+                        -72.2479396,
+                        18.5625414
+                    ],
+                    [
+                        -72.2501483,
+                        18.5628031
+                    ],
+                    [
+                        -72.2519232,
+                        18.5650839
+                    ]
+                ],
+                [
+                    [
+                        -72.303145,
+                        18.5332749
+                    ],
+                    [
+                        -72.3031275,
+                        18.5331799
+                    ],
+                    [
+                        -72.3048311,
+                        18.5311081
+                    ],
+                    [
+                        -72.3097397,
+                        18.5311081
+                    ],
+                    [
+                        -72.3164332,
+                        18.5324302
+                    ],
+                    [
+                        -72.3234056,
+                        18.5366083
+                    ],
+                    [
+                        -72.3261388,
+                        18.5387765
+                    ],
+                    [
+                        -72.3261946,
+                        18.5426371
+                    ],
+                    [
+                        -72.3170468,
+                        18.5540596
+                    ],
+                    [
+                        -72.3130864,
+                        18.5540596
+                    ],
+                    [
+                        -72.2987511,
+                        18.5453342
+                    ],
+                    [
+                        -72.2988627,
+                        18.5407333
+                    ],
+                    [
+                        -72.2962969,
+                        18.5404689
+                    ],
+                    [
+                        -72.2954602,
+                        18.5395169
+                    ],
+                    [
+                        -72.2961853,
+                        18.5338582
+                    ],
+                    [
+                        -72.2971893,
+                        18.5332235
+                    ],
+                    [
+                        -72.3007034,
+                        18.5332764
+                    ],
+                    [
+                        -72.3022652,
+                        18.5342284
+                    ],
+                    [
+                        -72.3028486,
+                        18.5335189
+                    ],
+                    [
+                        -72.303104,
+                        18.5333361
+                    ],
+                    [
+                        -72.303181,
+                        18.5334007
+                    ],
+                    [
+                        -72.3035793,
+                        18.5335614
+                    ],
+                    [
+                        -72.3030793,
+                        18.5346463
+                    ],
+                    [
+                        -72.303715,
+                        18.5339873
+                    ],
+                    [
+                        -72.3045286,
+                        18.5344052
+                    ],
+                    [
+                        -72.3044015,
+                        18.5345097
+                    ],
+                    [
+                        -72.3062747,
+                        18.5352571
+                    ],
+                    [
+                        -72.3063107,
+                        18.5352741
+                    ],
+                    [
+                        -72.3061219,
+                        18.5357628
+                    ],
+                    [
+                        -72.3061219,
+                        18.5358196
+                    ],
+                    [
+                        -72.30637,
+                        18.5358928
+                    ],
+                    [
+                        -72.3062726,
+                        18.5354869
+                    ],
+                    [
+                        -72.3066688,
+                        18.5350891
+                    ],
+                    [
+                        -72.3061963,
+                        18.5349706
+                    ],
+                    [
+                        -72.3058869,
+                        18.5349385
+                    ],
+                    [
+                        -72.3055373,
+                        18.5346833
+                    ],
+                    [
+                        -72.3054864,
+                        18.534613
+                    ],
+                    [
+                        -72.3055585,
+                        18.5345065
+                    ],
+                    [
+                        -72.3046749,
+                        18.5342293
+                    ],
+                    [
+                        -72.3047617,
+                        18.5338817
+                    ],
+                    [
+                        -72.3043252,
+                        18.5337511
+                    ],
+                    [
+                        -72.3042595,
+                        18.5336346
+                    ]
+                ],
+                [
+                    [
+                        -72.2981405,
+                        18.477502
+                    ],
+                    [
+                        -72.2935652,
+                        18.4948587
+                    ],
+                    [
+                        -72.2922242,
+                        18.4964297
+                    ],
+                    [
+                        -72.2931708,
+                        18.4972526
+                    ],
+                    [
+                        -72.2892266,
+                        18.5057058
+                    ],
+                    [
+                        -72.2878067,
+                        18.5080996
+                    ],
+                    [
+                        -72.2850458,
+                        18.5119893
+                    ],
+                    [
+                        -72.2840203,
+                        18.5113161
+                    ],
+                    [
+                        -72.2808649,
+                        18.515879
+                    ],
+                    [
+                        -72.2773151,
+                        18.5175994
+                    ],
+                    [
+                        -72.2723454,
+                        18.5175246
+                    ],
+                    [
+                        -72.2662714,
+                        18.5144578
+                    ],
+                    [
+                        -72.2665869,
+                        18.5066783
+                    ],
+                    [
+                        -72.2692643,
+                        18.5046154
+                    ],
+                    [
+                        -72.2661965,
+                        18.5029756
+                    ],
+                    [
+                        -72.2688181,
+                        18.4965222
+                    ],
+                    [
+                        -72.2691528,
+                        18.4959403
+                    ],
+                    [
+                        -72.2702684,
+                        18.4961519
+                    ],
+                    [
+                        -72.2702684,
+                        18.4955964
+                    ],
+                    [
+                        -72.2690691,
+                        18.49557
+                    ],
+                    [
+                        -72.2692922,
+                        18.4937714
+                    ],
+                    [
+                        -72.2736988,
+                        18.4859951
+                    ],
+                    [
+                        -72.2746749,
+                        18.4850429
+                    ],
+                    [
+                        -72.2751769,
+                        18.483403
+                    ],
+                    [
+                        -72.2765435,
+                        18.4813398
+                    ],
+                    [
+                        -72.2773523,
+                        18.4814985
+                    ],
+                    [
+                        -72.2783006,
+                        18.4809694
+                    ],
+                    [
+                        -72.2778544,
+                        18.4807049
+                    ],
+                    [
+                        -72.2771013,
+                        18.480123
+                    ],
+                    [
+                        -72.2789978,
+                        18.4775836
+                    ],
+                    [
+                        -72.279723,
+                        18.4772927
+                    ],
+                    [
+                        -72.2806433,
+                        18.4776365
+                    ],
+                    [
+                        -72.2813685,
+                        18.4771604
+                    ],
+                    [
+                        -72.2808386,
+                        18.4769752
+                    ],
+                    [
+                        -72.2812848,
+                        18.4758378
+                    ],
+                    [
+                        -72.2823167,
+                        18.4751765
+                    ],
+                    [
+                        -72.2851615,
+                        18.4750971
+                    ],
+                    [
+                        -72.2849941,
+                        18.4763668
+                    ],
+                    [
+                        -72.2854404,
+                        18.4769752
+                    ],
+                    [
+                        -72.286277,
+                        18.4756262
+                    ],
+                    [
+                        -72.2869325,
+                        18.4754675
+                    ],
+                    [
+                        -72.2865978,
+                        18.4751897
+                    ],
+                    [
+                        -72.2865978,
+                        18.4750046
+                    ],
+                    [
+                        -72.2909765,
+                        18.4747268
+                    ],
+                    [
+                        -72.2946579,
+                        18.4749384
+                    ],
+                    [
+                        -72.2973911,
+                        18.476843
+                    ]
+                ],
+                [
+                    [
+                        -72.3466657,
+                        18.5222375
+                    ],
+                    [
+                        -72.346833,
+                        18.5244325
+                    ],
+                    [
+                        -72.3475303,
+                        18.5277645
+                    ],
+                    [
+                        -72.3455501,
+                        18.5291131
+                    ],
+                    [
+                        -72.3403069,
+                        18.5292189
+                    ],
+                    [
+                        -72.3383267,
+                        18.5280289
+                    ],
+                    [
+                        -72.3369043,
+                        18.530118
+                    ],
+                    [
+                        -72.3338086,
+                        18.5296684
+                    ],
+                    [
+                        -72.3289279,
+                        18.5270769
+                    ],
+                    [
+                        -72.328649,
+                        18.5253316
+                    ],
+                    [
+                        -72.3292068,
+                        18.5232689
+                    ],
+                    [
+                        -72.330406,
+                        18.5220524
+                    ],
+                    [
+                        -72.3321631,
+                        18.5221847
+                    ],
+                    [
+                        -72.3322467,
+                        18.5191963
+                    ],
+                    [
+                        -72.3369183,
+                        18.5183633
+                    ],
+                    [
+                        -72.3382012,
+                        18.5184691
+                    ],
+                    [
+                        -72.3381454,
+                        18.5181782
+                    ],
+                    [
+                        -72.3411993,
+                        18.5177947
+                    ],
+                    [
+                        -72.3454943,
+                        18.5171997
+                    ],
+                    [
+                        -72.3492595,
+                        18.517279
+                    ],
+                    [
+                        -72.3504308,
+                        18.5188922
+                    ],
+                    [
+                        -72.3503472,
+                        18.5206112
+                    ],
+                    [
+                        -72.3496778,
+                        18.5220392
+                    ]
+                ],
+                [
+                    [
+                        -72.3303078,
+                        18.5486462
+                    ],
+                    [
+                        -72.3429687,
+                        18.5508149
+                    ],
+                    [
+                        -72.3433236,
+                        18.5530585
+                    ],
+                    [
+                        -72.3413121,
+                        18.5614341
+                    ],
+                    [
+                        -72.3390639,
+                        18.5613593
+                    ],
+                    [
+                        -72.3384723,
+                        18.5638271
+                    ],
+                    [
+                        -72.3375257,
+                        18.5654348
+                    ],
+                    [
+                        -72.3348436,
+                        18.5650609
+                    ],
+                    [
+                        -72.3311755,
+                        18.5638271
+                    ],
+                    [
+                        -72.3312149,
+                        18.5616211
+                    ],
+                    [
+                        -72.3232082,
+                        18.5606863
+                    ],
+                    [
+                        -72.3212361,
+                        18.559602
+                    ],
+                    [
+                        -72.3208023,
+                        18.5587046
+                    ],
+                    [
+                        -72.3208811,
+                        18.557882
+                    ],
+                    [
+                        -72.3259493,
+                        18.5580274
+                    ],
+                    [
+                        -72.3266186,
+                        18.5581993
+                    ],
+                    [
+                        -72.3259214,
+                        18.5577498
+                    ],
+                    [
+                        -72.3250986,
+                        18.5573797
+                    ],
+                    [
+                        -72.3233767,
+                        18.552263
+                    ],
+                    [
+                        -72.3245994,
+                        18.5478507
+                    ],
+                    [
+                        -72.3288986,
+                        18.5483742
+                    ],
+                    [
+                        -72.329979,
+                        18.5489548
+                    ]
+                ],
+                [
+                    [
+                        -72.3231383,
+                        18.5269828
+                    ],
+                    [
+                        -72.3223434,
+                        18.528067
+                    ],
+                    [
+                        -72.3209629,
+                        18.5279745
+                    ],
+                    [
+                        -72.3207816,
+                        18.5271282
+                    ],
+                    [
+                        -72.3208513,
+                        18.5253697
+                    ],
+                    [
+                        -72.3214649,
+                        18.5249598
+                    ],
+                    [
+                        -72.3225666,
+                        18.5248937
+                    ],
+                    [
+                        -72.3228454,
+                        18.52533
+                    ],
+                    [
+                        -72.3232359,
+                        18.5264804
+                    ]
+                ],
+                [
+                    [
+                        -72.2160832,
+                        18.6457752
+                    ],
+                    [
+                        -72.2159649,
+                        18.6553795
+                    ],
+                    [
+                        -72.2030279,
+                        18.6558279
+                    ],
+                    [
+                        -72.1947057,
+                        18.6553421
+                    ],
+                    [
+                        -72.1922208,
+                        18.6545573
+                    ],
+                    [
+                        -72.1920631,
+                        18.6521283
+                    ],
+                    [
+                        -72.193483,
+                        18.6477559
+                    ],
+                    [
+                        -72.201253,
+                        18.6385249
+                    ],
+                    [
+                        -72.2069327,
+                        18.6388239
+                    ],
+                    [
+                        -72.2120996,
+                        18.6424117
+                    ],
+                    [
+                        -72.2118068,
+                        18.6430591
+                    ],
+                    [
+                        -72.2121693,
+                        18.6426892
+                    ],
+                    [
+                        -72.2127968,
+                        18.6427552
+                    ],
+                    [
+                        -72.2134662,
+                        18.6431252
+                    ],
+                    [
+                        -72.2135638,
+                        18.6437462
+                    ],
+                    [
+                        -72.2154176,
+                        18.6443947
+                    ],
+                    [
+                        -72.2158909,
+                        18.6450301
+                    ]
+                ],
+                [
+                    [
+                        -72.2867654,
+                        18.6482017
+                    ],
+                    [
+                        -72.2900977,
+                        18.6527446
+                    ],
+                    [
+                        -72.28981,
+                        18.6536532
+                    ],
+                    [
+                        -72.2900738,
+                        18.6542664
+                    ],
+                    [
+                        -72.290721,
+                        18.6537667
+                    ],
+                    [
+                        -72.2910327,
+                        18.6544709
+                    ],
+                    [
+                        -72.2912485,
+                        18.654221
+                    ],
+                    [
+                        -72.29168,
+                        18.6558905
+                    ],
+                    [
+                        -72.2912245,
+                        18.656606
+                    ],
+                    [
+                        -72.2922673,
+                        18.65597
+                    ],
+                    [
+                        -72.2926869,
+                        18.6567536
+                    ],
+                    [
+                        -72.2930705,
+                        18.6567309
+                    ],
+                    [
+                        -72.2941253,
+                        18.6581846
+                    ],
+                    [
+                        -72.2960192,
+                        18.6608421
+                    ],
+                    [
+                        -72.2959713,
+                        18.6619096
+                    ],
+                    [
+                        -72.2932862,
+                        18.664567
+                    ],
+                    [
+                        -72.2906731,
+                        18.6659979
+                    ],
+                    [
+                        -72.2895943,
+                        18.6661342
+                    ],
+                    [
+                        -72.2895943,
+                        18.6665657
+                    ],
+                    [
+                        -72.2877004,
+                        18.6664749
+                    ],
+                    [
+                        -72.2875805,
+                        18.6676559
+                    ],
+                    [
+                        -72.2831214,
+                        18.6697227
+                    ],
+                    [
+                        -72.2796453,
+                        18.6696546
+                    ],
+                    [
+                        -72.2784311,
+                        18.6690787
+                    ],
+                    [
+                        -72.2783972,
+                        18.6687736
+                    ],
+                    [
+                        -72.277736,
+                        18.6691671
+                    ],
+                    [
+                        -72.2774394,
+                        18.669143
+                    ],
+                    [
+                        -72.2770071,
+                        18.6683159
+                    ],
+                    [
+                        -72.2765575,
+                        18.6681125
+                    ],
+                    [
+                        -72.2765385,
+                        18.6680583
+                    ],
+                    [
+                        -72.2752319,
+                        18.6685239
+                    ],
+                    [
+                        -72.2749292,
+                        18.6674649
+                    ],
+                    [
+                        -72.2746416,
+                        18.6674309
+                    ],
+                    [
+                        -72.2734668,
+                        18.6682145
+                    ],
+                    [
+                        -72.2732271,
+                        18.6682712
+                    ],
+                    [
+                        -72.2726757,
+                        18.6671583
+                    ],
+                    [
+                        -72.2719147,
+                        18.6674288
+                    ],
+                    [
+                        -72.2718808,
+                        18.6673405
+                    ],
+                    [
+                        -72.2688149,
+                        18.6681868
+                    ],
+                    [
+                        -72.2688269,
+                        18.6671761
+                    ],
+                    [
+                        -72.2690786,
+                        18.6668241
+                    ],
+                    [
+                        -72.2688149,
+                        18.66679
+                    ],
+                    [
+                        -72.2681077,
+                        18.6670739
+                    ],
+                    [
+                        -72.2676282,
+                        18.6673805
+                    ],
+                    [
+                        -72.2675563,
+                        18.6666878
+                    ],
+                    [
+                        -72.266861,
+                        18.666949
+                    ],
+                    [
+                        -72.2655904,
+                        18.6673578
+                    ],
+                    [
+                        -72.2654466,
+                        18.6670058
+                    ],
+                    [
+                        -72.2647514,
+                        18.6674146
+                    ],
+                    [
+                        -72.2629893,
+                        18.6681868
+                    ],
+                    [
+                        -72.2628455,
+                        18.6681754
+                    ],
+                    [
+                        -72.2626537,
+                        18.6676076
+                    ],
+                    [
+                        -72.2623001,
+                        18.6677098
+                    ],
+                    [
+                        -72.2624799,
+                        18.6679199
+                    ],
+                    [
+                        -72.2624799,
+                        18.6682322
+                    ],
+                    [
+                        -72.262306,
+                        18.6682606
+                    ],
+                    [
+                        -72.2620963,
+                        18.6679654
+                    ],
+                    [
+                        -72.2622761,
+                        18.6689193
+                    ],
+                    [
+                        -72.2601484,
+                        18.6688966
+                    ],
+                    [
+                        -72.2542749,
+                        18.6687944
+                    ],
+                    [
+                        -72.2505388,
+                        18.6683476
+                    ],
+                    [
+                        -72.2504371,
+                        18.669536
+                    ],
+                    [
+                        -72.2477926,
+                        18.6698893
+                    ],
+                    [
+                        -72.2415204,
+                        18.669793
+                    ],
+                    [
+                        -72.2414187,
+                        18.6741933
+                    ],
+                    [
+                        -72.2389167,
+                        18.6739759
+                    ],
+                    [
+                        -72.2387249,
+                        18.6734649
+                    ],
+                    [
+                        -72.2383653,
+                        18.6733059
+                    ],
+                    [
+                        -72.2387009,
+                        18.6739532
+                    ],
+                    [
+                        -72.2375502,
+                        18.6738964
+                    ],
+                    [
+                        -72.2374183,
+                        18.6735103
+                    ],
+                    [
+                        -72.237742,
+                        18.67334
+                    ],
+                    [
+                        -72.2375142,
+                        18.6732605
+                    ],
+                    [
+                        -72.236843,
+                        18.6734876
+                    ],
+                    [
+                        -72.2364354,
+                        18.6724088
+                    ],
+                    [
+                        -72.2355124,
+                        18.6726019
+                    ],
+                    [
+                        -72.2354045,
+                        18.6724202
+                    ],
+                    [
+                        -72.2353027,
+                        18.6729028
+                    ],
+                    [
+                        -72.2345475,
+                        18.6726871
+                    ],
+                    [
+                        -72.2343077,
+                        18.6724599
+                    ],
+                    [
+                        -72.2342358,
+                        18.6734706
+                    ],
+                    [
+                        -72.2334087,
+                        18.6734592
+                    ],
+                    [
+                        -72.2332889,
+                        18.6733003
+                    ],
+                    [
+                        -72.2327375,
+                        18.6732889
+                    ],
+                    [
+                        -72.2327135,
+                        18.6735047
+                    ],
+                    [
+                        -72.227703,
+                        18.6725281
+                    ],
+                    [
+                        -72.2265283,
+                        18.6716537
+                    ],
+                    [
+                        -72.226804,
+                        18.6715742
+                    ],
+                    [
+                        -72.2274993,
+                        18.6715855
+                    ],
+                    [
+                        -72.2274873,
+                        18.6714493
+                    ],
+                    [
+                        -72.2272899,
+                        18.6714623
+                    ],
+                    [
+                        -72.2272814,
+                        18.6712977
+                    ],
+                    [
+                        -72.2272094,
+                        18.671358
+                    ],
+                    [
+                        -72.2261785,
+                        18.6713693
+                    ],
+                    [
+                        -72.2256032,
+                        18.670881
+                    ],
+                    [
+                        -72.2255073,
+                        18.6694502
+                    ],
+                    [
+                        -72.2261066,
+                        18.6696886
+                    ],
+                    [
+                        -72.2261785,
+                        18.6695949
+                    ],
+                    [
+                        -72.2259837,
+                        18.6695495
+                    ],
+                    [
+                        -72.225777,
+                        18.6691379
+                    ],
+                    [
+                        -72.2253335,
+                        18.6694643
+                    ],
+                    [
+                        -72.2249739,
+                        18.66947
+                    ],
+                    [
+                        -72.2245783,
+                        18.6678802
+                    ],
+                    [
+                        -72.2235525,
+                        18.6677046
+                    ],
+                    [
+                        -72.2235907,
+                        18.6675921
+                    ],
+                    [
+                        -72.2224634,
+                        18.6676283
+                    ],
+                    [
+                        -72.2223659,
+                        18.667022
+                    ],
+                    [
+                        -72.2223277,
+                        18.6670943
+                    ],
+                    [
+                        -72.2219209,
+                        18.667026
+                    ],
+                    [
+                        -72.2208105,
+                        18.6669015
+                    ],
+                    [
+                        -72.220809,
+                        18.6665325
+                    ],
+                    [
+                        -72.2208705,
+                        18.6663593
+                    ],
+                    [
+                        -72.2206023,
+                        18.6668107
+                    ],
+                    [
+                        -72.2203895,
+                        18.6666361
+                    ],
+                    [
+                        -72.2184341,
+                        18.6650535
+                    ],
+                    [
+                        -72.21829,
+                        18.6640979
+                    ],
+                    [
+                        -72.2183493,
+                        18.6608376
+                    ],
+                    [
+                        -72.2187223,
+                        18.6606541
+                    ],
+                    [
+                        -72.2186894,
+                        18.660603
+                    ],
+                    [
+                        -72.2187253,
+                        18.6604525
+                    ],
+                    [
+                        -72.2189771,
+                        18.6603247
+                    ],
+                    [
+                        -72.2187823,
+                        18.6601998
+                    ],
+                    [
+                        -72.2186984,
+                        18.6602367
+                    ],
+                    [
+                        -72.2185815,
+                        18.6600352
+                    ],
+                    [
+                        -72.2186085,
+                        18.6600039
+                    ],
+                    [
+                        -72.2187823,
+                        18.6601345
+                    ],
+                    [
+                        -72.218995,
+                        18.6600181
+                    ],
+                    [
+                        -72.2189111,
+                        18.6599131
+                    ],
+                    [
+                        -72.2189681,
+                        18.6597938
+                    ],
+                    [
+                        -72.2183807,
+                        18.6595837
+                    ],
+                    [
+                        -72.2184728,
+                        18.6539662
+                    ],
+                    [
+                        -72.2201001,
+                        18.6511554
+                    ],
+                    [
+                        -72.225796,
+                        18.6469472
+                    ],
+                    [
+                        -72.2283048,
+                        18.6457265
+                    ],
+                    [
+                        -72.2379335,
+                        18.645855
+                    ],
+                    [
+                        -72.237764,
+                        18.6446985
+                    ],
+                    [
+                        -72.2400355,
+                        18.6432529
+                    ],
+                    [
+                        -72.2455958,
+                        18.6433493
+                    ],
+                    [
+                        -72.2482742,
+                        18.6450358
+                    ],
+                    [
+                        -72.2487488,
+                        18.6436705
+                    ],
+                    [
+                        -72.2511067,
+                        18.6429775
+                    ],
+                    [
+                        -72.2512385,
+                        18.6433409
+                    ],
+                    [
+                        -72.2512625,
+                        18.6431592
+                    ],
+                    [
+                        -72.2514843,
+                        18.6431365
+                    ],
+                    [
+                        -72.2513284,
+                        18.6429718
+                    ],
+                    [
+                        -72.2533602,
+                        18.6423471
+                    ],
+                    [
+                        -72.253516,
+                        18.6426765
+                    ],
+                    [
+                        -72.2539535,
+                        18.6425402
+                    ],
+                    [
+                        -72.2541453,
+                        18.642932
+                    ],
+                    [
+                        -72.2543851,
+                        18.6428696
+                    ],
+                    [
+                        -72.2543791,
+                        18.6427503
+                    ],
+                    [
+                        -72.2564168,
+                        18.6423244
+                    ],
+                    [
+                        -72.2566925,
+                        18.6431365
+                    ],
+                    [
+                        -72.2568783,
+                        18.6428582
+                    ],
+                    [
+                        -72.2568184,
+                        18.6425288
+                    ],
+                    [
+                        -72.258843,
+                        18.6420991
+                    ],
+                    [
+                        -72.258885,
+                        18.6422467
+                    ],
+                    [
+                        -72.2592626,
+                        18.6422297
+                    ],
+                    [
+                        -72.2596461,
+                        18.6424057
+                    ],
+                    [
+                        -72.2592206,
+                        18.6406907
+                    ],
+                    [
+                        -72.2599545,
+                        18.6404815
+                    ],
+                    [
+                        -72.2601156,
+                        18.6406341
+                    ],
+                    [
+                        -72.2601156,
+                        18.6399393
+                    ],
+                    [
+                        -72.2615268,
+                        18.6394669
+                    ],
+                    [
+                        -72.2626056,
+                        18.6391034
+                    ],
+                    [
+                        -72.2654465,
+                        18.6387286
+                    ],
+                    [
+                        -72.2719433,
+                        18.6386832
+                    ],
+                    [
+                        -72.272201,
+                        18.6388649
+                    ],
+                    [
+                        -72.2730341,
+                        18.6394158
+                    ],
+                    [
+                        -72.273166,
+                        18.6412558
+                    ],
+                    [
+                        -72.2738732,
+                        18.6410286
+                    ],
+                    [
+                        -72.2742208,
+                        18.6416079
+                    ],
+                    [
+                        -72.2752187,
+                        18.6416987
+                    ],
+                    [
+                        -72.2754524,
+                        18.6415738
+                    ],
+                    [
+                        -72.2755513,
+                        18.6416874
+                    ],
+                    [
+                        -72.2755394,
+                        18.6417527
+                    ],
+                    [
+                        -72.2764713,
+                        18.6418634
+                    ],
+                    [
+                        -72.276753,
+                        18.6418975
+                    ],
+                    [
+                        -72.2762953,
+                        18.6426002
+                    ],
+                    [
+                        -72.2774226,
+                        18.6429978
+                    ],
+                    [
+                        -72.277982,
+                        18.6427247
+                    ],
+                    [
+                        -72.2785796,
+                        18.6431303
+                    ],
+                    [
+                        -72.2785669,
+                        18.6432307
+                    ],
+                    [
+                        -72.2789017,
+                        18.6433471
+                    ],
+                    [
+                        -72.279851,
+                        18.6439655
+                    ],
+                    [
+                        -72.2858703,
+                        18.6469651
+                    ]
+                ],
+                [
+                    [
+                        -72.5557247,
+                        18.5305893
+                    ],
+                    [
+                        -72.5555866,
+                        18.5367036
+                    ],
+                    [
+                        -72.554995,
+                        18.537975
+                    ],
+                    [
+                        -72.5488026,
+                        18.537919
+                    ],
+                    [
+                        -72.5486646,
+                        18.5372832
+                    ],
+                    [
+                        -72.548842,
+                        18.5306267
+                    ],
+                    [
+                        -72.5493745,
+                        18.5301031
+                    ],
+                    [
+                        -72.555133,
+                        18.5301218
+                    ]
+                ],
+                [
+                    [
+                        -72.6235278,
+                        18.5079877
+                    ],
+                    [
+                        -72.6234441,
+                        18.5095217
+                    ],
+                    [
+                        -72.6226074,
+                        18.5104341
+                    ],
+                    [
+                        -72.6204878,
+                        18.511849
+                    ],
+                    [
+                        -72.6183403,
+                        18.5107514
+                    ],
+                    [
+                        -72.6162207,
+                        18.5083183
+                    ],
+                    [
+                        -72.6162625,
+                        18.506467
+                    ],
+                    [
+                        -72.618661,
+                        18.5044438
+                    ],
+                    [
+                        -72.6204041,
+                        18.5044967
+                    ],
+                    [
+                        -72.6228305,
+                        18.506996
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "Ireland Bartholomew Quarter-Inch 1940",
+            "type": "tms",
+            "template": "http://geo.nls.uk/maps/ireland/bartholomew/{zoom}/{x}/{-y}.png",
+            "scaleExtent": [
+                5,
+                13
+            ],
+            "polygon": [
+                [
+                    [
+                        -8.8312773,
+                        55.3963337
+                    ],
+                    [
+                        -7.3221271,
+                        55.398605
+                    ],
+                    [
+                        -7.2891331,
+                        55.4333162
+                    ],
+                    [
+                        -7.2368042,
+                        55.4530757
+                    ],
+                    [
+                        -7.18881,
+                        55.4497995
+                    ],
+                    [
+                        -7.1528144,
+                        55.3968384
+                    ],
+                    [
+                        -6.90561,
+                        55.394903
+                    ],
+                    [
+                        -6.9047153,
+                        55.3842114
+                    ],
+                    [
+                        -5.8485282,
+                        55.3922956
+                    ],
+                    [
+                        -5.8378629,
+                        55.248676
+                    ],
+                    [
+                        -5.3614762,
+                        55.2507024
+                    ],
+                    [
+                        -5.3899172,
+                        53.8466464
+                    ],
+                    [
+                        -5.8734141,
+                        53.8487436
+                    ],
+                    [
+                        -5.8983,
+                        52.8256258
+                    ],
+                    [
+                        -6.0191742,
+                        52.8256258
+                    ],
+                    [
+                        -6.0262844,
+                        51.7712367
+                    ],
+                    [
+                        -8.1131422,
+                        51.7712367
+                    ],
+                    [
+                        -8.1273627,
+                        51.3268839
+                    ],
+                    [
+                        -10.6052842,
+                        51.3091083
+                    ],
+                    [
+                        -10.6271879,
+                        52.0328254
+                    ],
+                    [
+                        -10.6469845,
+                        52.0322454
+                    ],
+                    [
+                        -10.6469845,
+                        52.0440365
+                    ],
+                    [
+                        -10.6271879,
+                        52.0448095
+                    ],
+                    [
+                        -10.6290733,
+                        52.0745627
+                    ],
+                    [
+                        -10.6699234,
+                        52.0743695
+                    ],
+                    [
+                        -10.6702376,
+                        52.0876941
+                    ],
+                    [
+                        -10.6312729,
+                        52.0898179
+                    ],
+                    [
+                        -10.6393128,
+                        52.4147202
+                    ],
+                    [
+                        -10.3137689,
+                        52.4185533
+                    ],
+                    [
+                        -10.3166401,
+                        53.3341342
+                    ],
+                    [
+                        -10.3699669,
+                        53.3330727
+                    ],
+                    [
+                        -10.385965,
+                        54.3534472
+                    ],
+                    [
+                        -8.8163777,
+                        54.3586265
+                    ],
+                    [
+                        -8.8173427,
+                        54.6595721
+                    ],
+                    [
+                        -8.8413398,
+                        54.6616284
+                    ],
+                    [
+                        -8.8422286,
+                        54.6929749
+                    ],
+                    [
+                        -8.8315632,
+                        54.7145436
+                    ],
+                    [
+                        -8.8151208,
+                        54.7145436
+                    ]
+                ]
+            ],
+            "terms_url": "http://geo.nls.uk/maps/",
+            "terms_text": "National Library of Scotland Historic Maps"
+        },
+        {
+            "name": "Ireland British War Office One-Inch 1941-43 GSGS 4136",
+            "type": "tms",
+            "template": "http://geo.nls.uk/maps/ireland/gsgs4136/{zoom}/{x}/{-y}.png",
+            "scaleExtent": [
+                5,
+                15
+            ],
+            "polygon": [
+                [
+                    [
+                        -10.0847426,
+                        51.4147902
+                    ],
+                    [
+                        -10.0906535,
+                        51.5064103
+                    ],
+                    [
+                        -10.4564222,
+                        51.5003961
+                    ],
+                    [
+                        -10.5005905,
+                        52.3043019
+                    ],
+                    [
+                        -10.0837522,
+                        52.312741
+                    ],
+                    [
+                        -10.0840973,
+                        52.3404698
+                    ],
+                    [
+                        -10.055802,
+                        52.3408915
+                    ],
+                    [
+                        -10.0768509,
+                        52.7628238
+                    ],
+                    [
+                        -9.7780248,
+                        52.7684611
+                    ],
+                    [
+                        -9.7818205,
+                        52.8577261
+                    ],
+                    [
+                        -9.6337877,
+                        52.8596012
+                    ],
+                    [
+                        -9.6449626,
+                        53.1294502
+                    ],
+                    [
+                        -10.0919663,
+                        53.1227152
+                    ],
+                    [
+                        -10.1051422,
+                        53.3912913
+                    ],
+                    [
+                        -10.4052593,
+                        53.3866349
+                    ],
+                    [
+                        -10.4530828,
+                        54.193502
+                    ],
+                    [
+                        -10.2998523,
+                        54.1974988
+                    ],
+                    [
+                        -10.3149801,
+                        54.4669592
+                    ],
+                    [
+                        -8.9276095,
+                        54.4853897
+                    ],
+                    [
+                        -8.9339534,
+                        54.7546562
+                    ],
+                    [
+                        -8.7773069,
+                        54.755501
+                    ],
+                    [
+                        -8.7826749,
+                        55.0252208
+                    ],
+                    [
+                        -8.9402974,
+                        55.0238221
+                    ],
+                    [
+                        -8.9451773,
+                        55.2934155
+                    ],
+                    [
+                        -7.528039,
+                        55.2970274
+                    ],
+                    [
+                        -7.525599,
+                        55.3874955
+                    ],
+                    [
+                        -7.0541955,
+                        55.3841691
+                    ],
+                    [
+                        -7.0556595,
+                        55.2939712
+                    ],
+                    [
+                        -6.3241545,
+                        55.2859128
+                    ],
+                    [
+                        -6.3217146,
+                        55.3253556
+                    ],
+                    [
+                        -6.1035807,
+                        55.3223016
+                    ],
+                    [
+                        -6.1045566,
+                        55.2828557
+                    ],
+                    [
+                        -5.7985836,
+                        55.2772968
+                    ],
+                    [
+                        -5.8117595,
+                        55.0087135
+                    ],
+                    [
+                        -5.656577,
+                        55.0056351
+                    ],
+                    [
+                        -5.6721928,
+                        54.7355021
+                    ],
+                    [
+                        -5.3618278,
+                        54.729585
+                    ],
+                    [
+                        -5.3964755,
+                        54.1917889
+                    ],
+                    [
+                        -5.855679,
+                        54.2017807
+                    ],
+                    [
+                        -5.9220464,
+                        52.8524504
+                    ],
+                    [
+                        -6.070885,
+                        52.8551025
+                    ],
+                    [
+                        -6.1030927,
+                        52.1373337
+                    ],
+                    [
+                        -6.8331336,
+                        52.1463183
+                    ],
+                    [
+                        -6.8355736,
+                        52.0578908
+                    ],
+                    [
+                        -7.5641506,
+                        52.0617913
+                    ],
+                    [
+                        -7.5661026,
+                        51.7921593
+                    ],
+                    [
+                        -8.147305,
+                        51.792763
+                    ],
+                    [
+                        -8.146329,
+                        51.7033331
+                    ],
+                    [
+                        -8.2912636,
+                        51.7027283
+                    ],
+                    [
+                        -8.2897996,
+                        51.5227274
+                    ],
+                    [
+                        -9.1174397,
+                        51.516958
+                    ],
+                    [
+                        -9.1179277,
+                        51.4625685
+                    ],
+                    [
+                        -9.3692452,
+                        51.4616564
+                    ],
+                    [
+                        -9.3672933,
+                        51.4254613
+                    ]
+                ]
+            ],
+            "terms_url": "http://geo.nls.uk/maps/",
+            "terms_text": "National Library of Scotland Historic Maps"
+        },
+        {
+            "name": "Ireland EEA CORINE 2006",
+            "type": "tms",
+            "template": "http://a.tile.openstreetmap.ie/tiles/corine/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                5,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        -5.842956,
+                        53.8627976
+                    ],
+                    [
+                        -5.8341575,
+                        53.7633541
+                    ],
+                    [
+                        -5.6267647,
+                        53.5383692
+                    ],
+                    [
+                        -5.9648778,
+                        52.1631197
+                    ],
+                    [
+                        -6.0453211,
+                        52.0527275
+                    ],
+                    [
+                        -6.1823261,
+                        51.9699475
+                    ],
+                    [
+                        -6.3960035,
+                        51.9234618
+                    ],
+                    [
+                        -6.5945978,
+                        51.883911
+                    ],
+                    [
+                        -7.2481994,
+                        51.9056295
+                    ],
+                    [
+                        -7.341212,
+                        51.8148076
+                    ],
+                    [
+                        -8.1971787,
+                        51.5037019
+                    ],
+                    [
+                        -8.3191005,
+                        51.4167737
+                    ],
+                    [
+                        -9.4478202,
+                        51.1991221
+                    ],
+                    [
+                        -9.9015706,
+                        51.2266802
+                    ],
+                    [
+                        -10.472215,
+                        51.4050139
+                    ],
+                    [
+                        -10.8857437,
+                        51.6770619
+                    ],
+                    [
+                        -11.035318,
+                        52.0620016
+                    ],
+                    [
+                        -10.9950963,
+                        52.1831616
+                    ],
+                    [
+                        -10.8178697,
+                        52.3139827
+                    ],
+                    [
+                        -9.8839736,
+                        52.9032208
+                    ],
+                    [
+                        -10.1165049,
+                        52.9676141
+                    ],
+                    [
+                        -10.5514014,
+                        53.3317027
+                    ],
+                    [
+                        -10.6896633,
+                        53.5854022
+                    ],
+                    [
+                        -10.6444139,
+                        54.0100436
+                    ],
+                    [
+                        -10.5501445,
+                        54.257482
+                    ],
+                    [
+                        -10.2824192,
+                        54.4742405
+                    ],
+                    [
+                        -9.8073011,
+                        54.5705346
+                    ],
+                    [
+                        -9.196435,
+                        54.5486695
+                    ],
+                    [
+                        -9.2253443,
+                        54.7000264
+                    ],
+                    [
+                        -8.8985435,
+                        55.1363582
+                    ],
+                    [
+                        -8.0476045,
+                        55.4711977
+                    ],
+                    [
+                        -7.4367384,
+                        55.6191092
+                    ],
+                    [
+                        -7.2205471,
+                        55.6205288
+                    ],
+                    [
+                        -6.8258723,
+                        55.5608644
+                    ],
+                    [
+                        -6.0679458,
+                        55.3727567
+                    ],
+                    [
+                        -5.5639184,
+                        55.0759594
+                    ],
+                    [
+                        -5.0649187,
+                        54.4640142
+                    ],
+                    [
+                        -5.2572284,
+                        54.1582424
+                    ]
+                ]
+            ],
+            "terms_url": "http://www.eea.europa.eu/data-and-maps/data/clc-2006-vector-data-version-1",
+            "terms_text": "EEA Corine 2006"
+        },
+        {
+            "name": "Ireland EEA GMES Urban Atlas",
+            "type": "tms",
+            "template": "http://a.tile.openstreetmap.ie/tiles/urbanatlas/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                5,
+                17
+            ],
+            "polygon": [
+                [
+                    [
+                        -9.2759602,
+                        52.7993666
+                    ],
+                    [
+                        -9.215509,
+                        52.8276933
+                    ],
+                    [
+                        -9.1086618,
+                        52.9128016
+                    ],
+                    [
+                        -9.0196831,
+                        52.8837107
+                    ],
+                    [
+                        -8.8760649,
+                        52.8978445
+                    ],
+                    [
+                        -8.8001797,
+                        52.8833558
+                    ],
+                    [
+                        -8.7665597,
+                        52.9065354
+                    ],
+                    [
+                        -8.5938079,
+                        52.9238592
+                    ],
+                    [
+                        -8.5241972,
+                        52.8869724
+                    ],
+                    [
+                        -8.4956786,
+                        52.9105906
+                    ],
+                    [
+                        -8.3506448,
+                        52.9238592
+                    ],
+                    [
+                        -8.2718204,
+                        52.9492401
+                    ],
+                    [
+                        -8.2249679,
+                        52.8991338
+                    ],
+                    [
+                        -8.1564001,
+                        52.9149986
+                    ],
+                    [
+                        -8.0881237,
+                        52.7630417
+                    ],
+                    [
+                        -8.1360092,
+                        52.7239783
+                    ],
+                    [
+                        -8.1570652,
+                        52.6766443
+                    ],
+                    [
+                        -8.2059695,
+                        52.6185385
+                    ],
+                    [
+                        -8.2025734,
+                        52.5954396
+                    ],
+                    [
+                        -8.2231242,
+                        52.5599691
+                    ],
+                    [
+                        -8.2236294,
+                        52.5095371
+                    ],
+                    [
+                        -8.2976651,
+                        52.5025088
+                    ],
+                    [
+                        -8.3295888,
+                        52.4721087
+                    ],
+                    [
+                        -8.3589695,
+                        52.4986072
+                    ],
+                    [
+                        -8.3737385,
+                        52.4764529
+                    ],
+                    [
+                        -8.432326,
+                        52.4342609
+                    ],
+                    [
+                        -8.4754569,
+                        52.4216289
+                    ],
+                    [
+                        -8.5017727,
+                        52.3870011
+                    ],
+                    [
+                        -8.5476205,
+                        52.3681351
+                    ],
+                    [
+                        -8.6444103,
+                        52.3376422
+                    ],
+                    [
+                        -8.6841451,
+                        52.3660614
+                    ],
+                    [
+                        -8.8154099,
+                        52.3721014
+                    ],
+                    [
+                        -8.8614233,
+                        52.3521652
+                    ],
+                    [
+                        -8.9074451,
+                        52.3824674
+                    ],
+                    [
+                        -8.9388551,
+                        52.3789166
+                    ],
+                    [
+                        -8.9782502,
+                        52.4093811
+                    ],
+                    [
+                        -9.0298715,
+                        52.4104169
+                    ],
+                    [
+                        -9.1059449,
+                        52.420981
+                    ],
+                    [
+                        -9.1084962,
+                        52.4415071
+                    ],
+                    [
+                        -9.140702,
+                        52.4650891
+                    ],
+                    [
+                        -9.1315765,
+                        52.5136207
+                    ],
+                    [
+                        -9.1739699,
+                        52.5620573
+                    ],
+                    [
+                        -9.1426235,
+                        52.589645
+                    ],
+                    [
+                        -9.1542382,
+                        52.610216
+                    ],
+                    [
+                        -9.1426231,
+                        52.6387401
+                    ],
+                    [
+                        -9.1776844,
+                        52.6447573
+                    ],
+                    [
+                        -9.2012184,
+                        52.6526248
+                    ],
+                    [
+                        -9.2036198,
+                        52.6686468
+                    ],
+                    [
+                        -9.2238348,
+                        52.6706578
+                    ],
+                    [
+                        -9.2161072,
+                        52.6919412
+                    ],
+                    [
+                        -9.1882395,
+                        52.7057242
+                    ],
+                    [
+                        -9.2750099,
+                        52.7350292
+                    ],
+                    [
+                        -9.2601152,
+                        52.7616711
+                    ]
+                ],
+                [
+                    [
+                        -7.307313219981238,
+                        53.81625879275365
+                    ],
+                    [
+                        -7.245858447032101,
+                        53.78300449111207
+                    ],
+                    [
+                        -7.15144468970801,
+                        53.81179938127503
+                    ],
+                    [
+                        -7.086900011973722,
+                        53.784424420834
+                    ],
+                    [
+                        -7.0347149533800435,
+                        53.77996162275688
+                    ],
+                    [
+                        -6.975320116954343,
+                        53.788481098127924
+                    ],
+                    [
+                        -6.928628222423156,
+                        53.81443454540607
+                    ],
+                    [
+                        -6.992829577403537,
+                        53.86609081229548
+                    ],
+                    [
+                        -6.975320116954343,
+                        53.87945028968944
+                    ],
+                    [
+                        -6.949914233165313,
+                        53.87094929783329
+                    ],
+                    [
+                        -6.9375546140247035,
+                        53.87540241385127
+                    ],
+                    [
+                        -6.936867968516893,
+                        53.896649390754646
+                    ],
+                    [
+                        -6.897042529063821,
+                        53.889770599553906
+                    ],
+                    [
+                        -6.867516772227924,
+                        53.880259817835736
+                    ],
+                    [
+                        -6.851037280040446,
+                        53.88450958346468
+                    ],
+                    [
+                        -6.842454211192801,
+                        53.89786317755242
+                    ],
+                    [
+                        -6.812928454356904,
+                        53.90069520963246
+                    ],
+                    [
+                        -6.79850889869286,
+                        53.89280549994937
+                    ],
+                    [
+                        -6.789925829845217,
+                        53.89462633440526
+                    ],
+                    [
+                        -6.791985766368652,
+                        53.904538374710896
+                    ],
+                    [
+                        -6.778939501720231,
+                        53.918087767078354
+                    ],
+                    [
+                        -6.77001311011868,
+                        53.91505470292794
+                    ],
+                    [
+                        -6.75868345923979,
+                        53.921727153244476
+                    ],
+                    [
+                        -6.744263903575747,
+                        53.916065748791254
+                    ],
+                    [
+                        -6.727441088634364,
+                        53.92334455637637
+                    ],
+                    [
+                        -6.713021532970319,
+                        53.90777445003927
+                    ],
+                    [
+                        -6.684182421642232,
+                        53.90292024303218
+                    ],
+                    [
+                        -6.623757616954815,
+                        53.88187882710815
+                    ],
+                    [
+                        -6.590455309825955,
+                        53.857789593974296
+                    ],
+                    [
+                        -6.591141955333765,
+                        53.835509894663346
+                    ],
+                    [
+                        -6.574319140392382,
+                        53.82254170362619
+                    ],
+                    [
+                        -6.571572558361136,
+                        53.804703885117576
+                    ],
+                    [
+                        -6.5533764524041285,
+                        53.79983770791046
+                    ],
+                    [
+                        -6.541360156017425,
+                        53.78300449111207
+                    ],
+                    [
+                        -6.511491076427622,
+                        53.76900546961285
+                    ],
+                    [
+                        -6.472695605236269,
+                        53.77326653566421
+                    ],
+                    [
+                        -6.443513171154276,
+                        53.76393220797015
+                    ],
+                    [
+                        -6.44728972144724,
+                        53.75114486961979
+                    ],
+                    [
+                        -6.4775021237909485,
+                        53.728199094666586
+                    ],
+                    [
+                        -6.459649340587848,
+                        53.71682309412751
+                    ],
+                    [
+                        -6.435616747814443,
+                        53.72230833571077
+                    ],
+                    [
+                        -6.4198239011347775,
+                        53.72921465935537
+                    ],
+                    [
+                        -6.4009411496699595,
+                        53.72169889975152
+                    ],
+                    [
+                        -6.375878588634836,
+                        53.718042098526006
+                    ],
+                    [
+                        -6.359055773693453,
+                        53.708695495259434
+                    ],
+                    [
+                        -6.340173022228636,
+                        53.708085862042424
+                    ],
+                    [
+                        -6.329873339611461,
+                        53.71296268045594
+                    ],
+                    [
+                        -6.325753466564592,
+                        53.72210519137233
+                    ],
+                    [
+                        -6.2938244504513525,
+                        53.72576163932632
+                    ],
+                    [
+                        -6.265328661877173,
+                        53.7363229253304
+                    ],
+                    [
+                        -6.240952746349864,
+                        53.734292114843086
+                    ],
+                    [
+                        -6.180871264416349,
+                        53.632015710147016
+                    ],
+                    [
+                        -6.092793818322125,
+                        53.588038288422446
+                    ],
+                    [
+                        -5.985734079608837,
+                        53.49383447350347
+                    ],
+                    [
+                        -6.0887447432153685,
+                        53.27174268379562
+                    ],
+                    [
+                        -6.033272979232964,
+                        53.1191110041494
+                    ],
+                    [
+                        -5.984663357119282,
+                        52.9651254915577
+                    ],
+                    [
+                        -6.122679104189409,
+                        52.73207538466633
+                    ],
+                    [
+                        -6.185163845400262,
+                        52.73706461957944
+                    ],
+                    [
+                        -6.1899703639549415,
+                        52.76075568810044
+                    ],
+                    [
+                        -6.319059719423517,
+                        52.782357357522855
+                    ],
+                    [
+                        -6.393904079774976,
+                        52.7790347214105
+                    ],
+                    [
+                        -6.465315212587381,
+                        52.6946379192593
+                    ],
+                    [
+                        -6.534666408876349,
+                        52.673409093161446
+                    ],
+                    [
+                        -6.612257351259057,
+                        52.69255711803012
+                    ],
+                    [
+                        -6.6692489284074155,
+                        52.74745702505679
+                    ],
+                    [
+                        -6.671308864930852,
+                        52.76948072949997
+                    ],
+                    [
+                        -6.720747341493285,
+                        52.7748810695361
+                    ],
+                    [
+                        -6.71456753192298,
+                        52.80311808637125
+                    ],
+                    [
+                        -6.658949245790243,
+                        52.84709806982182
+                    ],
+                    [
+                        -6.582044948915348,
+                        52.81349473557279
+                    ],
+                    [
+                        -6.547712673524768,
+                        52.83133677935633
+                    ],
+                    [
+                        -6.531233181337292,
+                        52.87404491274922
+                    ],
+                    [
+                        -6.617750515321548,
+                        52.87528820923615
+                    ],
+                    [
+                        -6.728987087587023,
+                        52.90635903963372
+                    ],
+                    [
+                        -6.780485500672891,
+                        52.859122574848655
+                    ],
+                    [
+                        -6.870436062196207,
+                        52.85165948109425
+                    ],
+                    [
+                        -6.938413967469552,
+                        52.86658438536895
+                    ],
+                    [
+                        -6.965879787782016,
+                        52.89766145203082
+                    ],
+                    [
+                        -6.987852444031986,
+                        52.969260966642985
+                    ],
+                    [
+                        -7.039350857117853,
+                        52.9560260536776
+                    ],
+                    [
+                        -7.109388698914634,
+                        53.007288776633686
+                    ],
+                    [
+                        -7.068876613953752,
+                        53.058078015357786
+                    ],
+                    [
+                        -7.088789333680287,
+                        53.11869890949892
+                    ],
+                    [
+                        -7.119688381531809,
+                        53.15000684568904
+                    ],
+                    [
+                        -7.105955471375577,
+                        53.16112391039828
+                    ],
+                    [
+                        -7.127928127625547,
+                        53.17223809655703
+                    ],
+                    [
+                        -7.180113186219227,
+                        53.182526443342745
+                    ],
+                    [
+                        -7.160887112000503,
+                        53.19898266621498
+                    ],
+                    [
+                        -7.057890285828767,
+                        53.19898266621498
+                    ],
+                    [
+                        -7.048963894227218,
+                        53.217077217179636
+                    ],
+                    [
+                        -7.0915359157115345,
+                        53.235575105358386
+                    ],
+                    [
+                        -7.0434707301647235,
+                        53.25735126035676
+                    ],
+                    [
+                        -7.05102383075065,
+                        53.29717703664696
+                    ],
+                    [
+                        -6.996778835633536,
+                        53.31112780504489
+                    ],
+                    [
+                        -7.044157375672535,
+                        53.33368557548294
+                    ],
+                    [
+                        -7.105955471375576,
+                        53.371801590024276
+                    ],
+                    [
+                        -7.22050647653913,
+                        53.432465115081854
+                    ],
+                    [
+                        -7.149441429887032,
+                        53.45731709817442
+                    ],
+                    [
+                        -7.099891489102085,
+                        53.463915962572514
+                    ],
+                    [
+                        -7.0744645458045445,
+                        53.48370640260363
+                    ],
+                    [
+                        -7.079028356140001,
+                        53.504650927752664
+                    ],
+                    [
+                        -7.047733656696876,
+                        53.515119311359335
+                    ],
+                    [
+                        -7.029478415355053,
+                        53.54147267392419
+                    ],
+                    [
+                        -7.054253385747527,
+                        53.56471202500164
+                    ],
+                    [
+                        -7.009267255298033,
+                        53.58561652973758
+                    ],
+                    [
+                        -6.992641946218873,
+                        53.602642188744426
+                    ],
+                    [
+                        -6.989056095241016,
+                        53.62739453790707
+                    ],
+                    [
+                        -6.9717788132567895,
+                        53.63686620586593
+                    ],
+                    [
+                        -6.9633031654909425,
+                        53.650973114934644
+                    ],
+                    [
+                        -6.9871001765258205,
+                        53.66623418009986
+                    ],
+                    [
+                        -6.999813648174589,
+                        53.67086935885432
+                    ],
+                    [
+                        -7.008289295940436,
+                        53.65908728051006
+                    ],
+                    [
+                        -7.044473792171549,
+                        53.65367801032349
+                    ],
+                    [
+                        -7.066640870943764,
+                        53.63918547390694
+                    ],
+                    [
+                        -7.101847407817279,
+                        53.65870092708686
+                    ],
+                    [
+                        -7.120754622064167,
+                        53.672993645380515
+                    ],
+                    [
+                        -7.137379931143327,
+                        53.66893809633893
+                    ],
+                    [
+                        -7.160850955725672,
+                        53.683034277255075
+                    ],
+                    [
+                        -7.174216400279507,
+                        53.686316272406906
+                    ],
+                    [
+                        -7.196057492599188,
+                        53.69017711570491
+                    ],
+                    [
+                        -7.210726882963154,
+                        53.69480966037566
+                    ],
+                    [
+                        -7.247237365646801,
+                        53.71661437518035
+                    ],
+                    [
+                        -7.239413690786019,
+                        53.73223735177976
+                    ],
+                    [
+                        -7.260276823748104,
+                        53.74361339729716
+                    ],
+                    [
+                        -7.2814659431627184,
+                        53.75922634307083
+                    ],
+                    [
+                        -7.289615604476034,
+                        53.77271433845693
+                    ],
+                    [
+                        -7.3238441819919515,
+                        53.78465723043301
+                    ],
+                    [
+                        -7.337209626545788,
+                        53.78658318504567
+                    ],
+                    [
+                        -7.351227044004687,
+                        53.80141007448381
+                    ],
+                    [
+                        -7.307313219981238,
+                        53.81625879275365
+                    ]
+                ],
+                [
+                    [
+                        -5.685433013282673,
+                        54.77854496390836
+                    ],
+                    [
+                        -5.696867084279401,
+                        54.73050346921268
+                    ],
+                    [
+                        -5.8223689524230124,
+                        54.70033215177621
+                    ],
+                    [
+                        -5.878760568989772,
+                        54.649492182564074
+                    ],
+                    [
+                        -5.743404719024681,
+                        54.68128223623249
+                    ],
+                    [
+                        -5.581196917402638,
+                        54.68781619319656
+                    ],
+                    [
+                        -5.571488953592992,
+                        54.67074450064368
+                    ],
+                    [
+                        -5.582915011231644,
+                        54.66440901595977
+                    ],
+                    [
+                        -5.58291501123164,
+                        54.65085746679818
+                    ],
+                    [
+                        -5.6086481910584185,
+                        54.63997082553691
+                    ],
+                    [
+                        -5.6354970593650116,
+                        54.61551371292451
+                    ],
+                    [
+                        -5.728732824433139,
+                        54.6184944610979
+                    ],
+                    [
+                        -5.822612969913913,
+                        54.49193018941315
+                    ],
+                    [
+                        -5.896754545381575,
+                        54.44975600798866
+                    ],
+                    [
+                        -5.936834914186871,
+                        54.38213187386197
+                    ],
+                    [
+                        -6.0187561190025445,
+                        54.36974944197913
+                    ],
+                    [
+                        -6.059257912638059,
+                        54.38280030737259
+                    ],
+                    [
+                        -6.101784280694663,
+                        54.41510088826871
+                    ],
+                    [
+                        -6.1740201072375225,
+                        54.43476829635816
+                    ],
+                    [
+                        -6.216261364689026,
+                        54.42827259213158
+                    ],
+                    [
+                        -6.264329002478664,
+                        54.487825014814625
+                    ],
+                    [
+                        -6.249277519938476,
+                        54.49741303545491
+                    ],
+                    [
+                        -6.288340515296785,
+                        54.53143435197413
+                    ],
+                    [
+                        -6.283750270272458,
+                        54.54447449434036
+                    ],
+                    [
+                        -6.321445027854273,
+                        54.58928767713928
+                    ],
+                    [
+                        -6.264329002478664,
+                        54.604982769755765
+                    ],
+                    [
+                        -6.240052417736423,
+                        54.59541999854735
+                    ],
+                    [
+                        -6.098762694536575,
+                        54.631690374598676
+                    ],
+                    [
+                        -6.051950538018501,
+                        54.61314575326238
+                    ],
+                    [
+                        -6.031509408441251,
+                        54.620921248201434
+                    ],
+                    [
+                        -6.002995140908084,
+                        54.65571636730639
+                    ],
+                    [
+                        -6.0647754758974335,
+                        54.6634355452454
+                    ],
+                    [
+                        -6.059920158948984,
+                        54.704134188139534
+                    ],
+                    [
+                        -6.047781866577864,
+                        54.71395188569398
+                    ],
+                    [
+                        -6.120611620804591,
+                        54.801644524994515
+                    ],
+                    [
+                        -6.002141887262449,
+                        54.80836072138932
+                    ],
+                    [
+                        -5.984662746248036,
+                        54.78652900156178
+                    ],
+                    [
+                        -5.685433013282673,
+                        54.77854496390836
+                    ]
+                ],
+                [
+                    [
+                        -9.128658300749114,
+                        53.24759266864586
+                    ],
+                    [
+                        -9.024510568479629,
+                        53.26744820137083
+                    ],
+                    [
+                        -9.016360907166316,
+                        53.26364619217274
+                    ],
+                    [
+                        -9.001854510028616,
+                        53.26588844362053
+                    ],
+                    [
+                        -8.9951717877517,
+                        53.259258838409615
+                    ],
+                    [
+                        -8.973493688658284,
+                        53.262378780650025
+                    ],
+                    [
+                        -8.95230456924367,
+                        53.271444820907114
+                    ],
+                    [
+                        -8.956705386352859,
+                        53.281580911863244
+                    ],
+                    [
+                        -8.961106203462048,
+                        53.28119110665652
+                    ],
+                    [
+                        -8.960780217009516,
+                        53.28908396911955
+                    ],
+                    [
+                        -8.954260487958864,
+                        53.28927883616923
+                    ],
+                    [
+                        -8.95230456924367,
+                        53.30155366854246
+                    ],
+                    [
+                        -8.963714095082308,
+                        53.303793931840495
+                    ],
+                    [
+                        -8.9811543702928,
+                        53.294734752711804
+                    ],
+                    [
+                        -8.985718180628256,
+                        53.30174847871221
+                    ],
+                    [
+                        -9.019946758144176,
+                        53.30768976199425
+                    ],
+                    [
+                        -9.00837423907927,
+                        53.31596722087059
+                    ],
+                    [
+                        -9.01880580556031,
+                        53.31625933715475
+                    ],
+                    [
+                        -9.045862681120513,
+                        53.31275380979257
+                    ],
+                    [
+                        -9.06444390891487,
+                        53.32122500810515
+                    ],
+                    [
+                        -9.080906224767762,
+                        53.307397587062724
+                    ],
+                    [
+                        -9.08106921799403,
+                        53.303404329274585
+                    ],
+                    [
+                        -9.09019683866494,
+                        53.30574189135002
+                    ],
+                    [
+                        -9.095901601584261,
+                        53.298826232852214
+                    ],
+                    [
+                        -9.10128037805105,
+                        53.3008718259498
+                    ],
+                    [
+                        -9.115623781962478,
+                        53.28450433758295
+                    ],
+                    [
+                        -9.121491538108067,
+                        53.2832375443259
+                    ],
+                    [
+                        -9.13273807072044,
+                        53.28557621023763
+                    ],
+                    [
+                        -9.144636576237877,
+                        53.27865728614638
+                    ],
+                    [
+                        -9.13876882009229,
+                        53.26345120822951
+                    ],
+                    [
+                        -9.128658300749114,
+                        53.24759266864586
+                    ]
+                ],
+                [
+                    [
+                        -8.595266214281438,
+                        51.69264788483154
+                    ],
+                    [
+                        -8.55819409885298,
+                        51.69306638852667
+                    ],
+                    [
+                        -8.566697711835303,
+                        51.682644706464686
+                    ],
+                    [
+                        -8.579130708100188,
+                        51.67349700898941
+                    ],
+                    [
+                        -8.544554623426079,
+                        51.66520531197343
+                    ],
+                    [
+                        -8.494765061495364,
+                        51.667778759675976
+                    ],
+                    [
+                        -8.30113898732036,
+                        51.7235009029955
+                    ],
+                    [
+                        -8.268406960495541,
+                        51.784858633837544
+                    ],
+                    [
+                        -8.154536388302146,
+                        51.7814362126791
+                    ],
+                    [
+                        -8.115350159004825,
+                        51.809093351533164
+                    ],
+                    [
+                        -8.068326683848039,
+                        51.870050153657075
+                    ],
+                    [
+                        -8.10059769621054,
+                        51.89964422561186
+                    ],
+                    [
+                        -8.08123508879304,
+                        51.918414974037226
+                    ],
+                    [
+                        -8.09183842142643,
+                        51.95337589170907
+                    ],
+                    [
+                        -8.124570448251253,
+                        51.95479649105758
+                    ],
+                    [
+                        -8.132407694110718,
+                        51.970988142592034
+                    ],
+                    [
+                        -8.099675667285895,
+                        51.978371865876596
+                    ],
+                    [
+                        -8.144394070131078,
+                        52.02151390085561
+                    ],
+                    [
+                        -8.159607547387685,
+                        52.064330945363764
+                    ],
+                    [
+                        -8.140705954432507,
+                        52.07254939152303
+                    ],
+                    [
+                        -8.165600735397863,
+                        52.09294727054506
+                    ],
+                    [
+                        -8.18726841512697,
+                        52.0835993998731
+                    ],
+                    [
+                        -8.2093971093184,
+                        52.10512489114057
+                    ],
+                    [
+                        -8.207092037006792,
+                        52.12494181389489
+                    ],
+                    [
+                        -8.227837687811258,
+                        52.143052434929714
+                    ],
+                    [
+                        -8.222766528725723,
+                        52.16454923557058
+                    ],
+                    [
+                        -8.30298304516965,
+                        52.1829264222872
+                    ],
+                    [
+                        -8.427456949996438,
+                        52.17783811526099
+                    ],
+                    [
+                        -8.46710419375608,
+                        52.169921813849676
+                    ],
+                    [
+                        -8.509978538751975,
+                        52.18405707812542
+                    ],
+                    [
+                        -8.530263175094117,
+                        52.16511480067495
+                    ],
+                    [
+                        -8.574981577939297,
+                        52.18066502436804
+                    ],
+                    [
+                        -8.587889982884295,
+                        52.16963906274442
+                    ],
+                    [
+                        -8.642289689438227,
+                        52.18829678149147
+                    ],
+                    [
+                        -8.719279104645906,
+                        52.15804472022032
+                    ],
+                    [
+                        -8.698533453841442,
+                        52.13541291452849
+                    ],
+                    [
+                        -8.740946784375014,
+                        52.10823956240069
+                    ],
+                    [
+                        -8.77460084012448,
+                        52.05951253229793
+                    ],
+                    [
+                        -8.803183736788409,
+                        52.03768144571248
+                    ],
+                    [
+                        -8.86818677597573,
+                        52.03286015807593
+                    ],
+                    [
+                        -8.870491848287335,
+                        52.01839317543363
+                    ],
+                    [
+                        -8.844214023935015,
+                        51.991148511559096
+                    ],
+                    [
+                        -8.79811257770287,
+                        51.964455373040394
+                    ],
+                    [
+                        -8.782899100446263,
+                        51.931777239822054
+                    ],
+                    [
+                        -8.835915763613228,
+                        51.9292188160068
+                    ],
+                    [
+                        -8.838681850387156,
+                        51.90277322850554
+                    ],
+                    [
+                        -8.802261707863764,
+                        51.89367006943167
+                    ],
+                    [
+                        -8.792580404155013,
+                        51.85695425263326
+                    ],
+                    [
+                        -8.765841565340368,
+                        51.82476769939557
+                    ],
+                    [
+                        -8.758926348405547,
+                        51.80054140901511
+                    ],
+                    [
+                        -8.79811257770287,
+                        51.78628456602828
+                    ],
+                    [
+                        -8.832227647914657,
+                        51.79626482935233
+                    ],
+                    [
+                        -8.836837792537873,
+                        51.77687258059678
+                    ],
+                    [
+                        -8.885705325543944,
+                        51.746055989869106
+                    ],
+                    [
+                        -8.859888515653944,
+                        51.72435763090916
+                    ],
+                    [
+                        -8.807332866949299,
+                        51.71093369500414
+                    ],
+                    [
+                        -8.678248817499297,
+                        51.693505197270746
+                    ],
+                    [
+                        -8.60540853245251,
+                        51.67835695335278
+                    ],
+                    [
+                        -8.595266214281438,
+                        51.69264788483154
+                    ]
+                ],
+                [
+                    [
+                        -7.138279151048154,
+                        55.06131559970097
+                    ],
+                    [
+                        -7.117994514706011,
+                        54.99631329558348
+                    ],
+                    [
+                        -7.070049010624583,
+                        54.98784996056705
+                    ],
+                    [
+                        -7.076503213097081,
+                        54.93332450204895
+                    ],
+                    [
+                        -7.025791622241725,
+                        54.91159959910791
+                    ],
+                    [
+                        -7.007351043748867,
+                        54.87872502112528
+                    ],
+                    [
+                        -7.024869593317081,
+                        54.8511320998998
+                    ],
+                    [
+                        -6.990754523105296,
+                        54.81661438893913
+                    ],
+                    [
+                        -7.051608432131725,
+                        54.80598761598125
+                    ],
+                    [
+                        -7.115228427932084,
+                        54.80651902101645
+                    ],
+                    [
+                        -7.170550163410654,
+                        54.84847793920564
+                    ],
+                    [
+                        -7.199133060074584,
+                        54.84316909395457
+                    ],
+                    [
+                        -7.222183783190655,
+                        54.85803210052931
+                    ],
+                    [
+                        -7.2111194360949415,
+                        54.862808332627324
+                    ],
+                    [
+                        -7.212041465019584,
+                        54.882438010878076
+                    ],
+                    [
+                        -7.279349576518514,
+                        54.880846771447125
+                    ],
+                    [
+                        -7.273817402970655,
+                        54.91530955931841
+                    ],
+                    [
+                        -7.3033223285592275,
+                        54.915839525718205
+                    ],
+                    [
+                        -7.363254208661015,
+                        54.90894941815292
+                    ],
+                    [
+                        -7.385382902852443,
+                        54.91636948513913
+                    ],
+                    [
+                        -7.391837105324943,
+                        54.93438395336098
+                    ],
+                    [
+                        -7.429640291235302,
+                        54.95291983389722
+                    ],
+                    [
+                        -7.420420001988872,
+                        54.99208185118366
+                    ],
+                    [
+                        -7.410277683817801,
+                        55.03437621938347
+                    ],
+                    [
+                        -7.3577220351131585,
+                        55.057619110599035
+                    ],
+                    [
+                        -7.265519142648871,
+                        55.07557028899173
+                    ],
+                    [
+                        -7.138279151048154,
+                        55.06131559970097
+                    ]
+                ],
+                [
+                    [
+                        -7.190498776293322,
+                        52.26144368927652
+                    ],
+                    [
+                        -7.156844720543858,
+                        52.28443443581867
+                    ],
+                    [
+                        -7.132871968503143,
+                        52.27343421670601
+                    ],
+                    [
+                        -7.113278853854483,
+                        52.26779201951648
+                    ],
+                    [
+                        -7.098295883829036,
+                        52.27230583471742
+                    ],
+                    [
+                        -7.089767116276089,
+                        52.25509445009032
+                    ],
+                    [
+                        -7.07109603055207,
+                        52.259186286149074
+                    ],
+                    [
+                        -7.033984366335195,
+                        52.257352061495865
+                    ],
+                    [
+                        -7.027530163862696,
+                        52.250720000975015
+                    ],
+                    [
+                        -7.034675888028678,
+                        52.247756419376
+                    ],
+                    [
+                        -7.031218279561267,
+                        52.24013487190721
+                    ],
+                    [
+                        -7.034214873566356,
+                        52.23222966213934
+                    ],
+                    [
+                        -7.050580886978767,
+                        52.2296884028405
+                    ],
+                    [
+                        -7.062567262999124,
+                        52.21980434486687
+                    ],
+                    [
+                        -7.076858711331088,
+                        52.216132562953725
+                    ],
+                    [
+                        -7.084926464421715,
+                        52.22065163604718
+                    ],
+                    [
+                        -7.084465449959392,
+                        52.22785295843095
+                    ],
+                    [
+                        -7.101292477834124,
+                        52.221498911062525
+                    ],
+                    [
+                        -7.105211100763858,
+                        52.21726237433474
+                    ],
+                    [
+                        -7.111665303236357,
+                        52.21796849185403
+                    ],
+                    [
+                        -7.107977187537785,
+                        52.21104805609072
+                    ],
+                    [
+                        -7.117773744862115,
+                        52.20928246619701
+                    ],
+                    [
+                        -7.129760120882472,
+                        52.21690931136535
+                    ],
+                    [
+                        -7.14497359813908,
+                        52.21782726924826
+                    ],
+                    [
+                        -7.150505771686938,
+                        52.22375823207553
+                    ],
+                    [
+                        -7.158112510315241,
+                        52.22262858593765
+                    ],
+                    [
+                        -7.158804032008724,
+                        52.22700580464912
+                    ],
+                    [
+                        -7.158573524777563,
+                        52.23180612902503
+                    ],
+                    [
+                        -7.167563306792832,
+                        52.23985256723076
+                    ],
+                    [
+                        -7.16733279956167,
+                        52.244580933687786
+                    ],
+                    [
+                        -7.172519212262786,
+                        52.24676851484933
+                    ],
+                    [
+                        -7.177590371348324,
+                        52.25114335361416
+                    ],
+                    [
+                        -7.190498776293322,
+                        52.26144368927652
+                    ]
+                ]
+            ],
+            "terms_url": "http://www.eea.europa.eu/data-and-maps/data/urban-atlas",
+            "terms_text": "EEA GMES Urban Atlas"
+        },
+        {
+            "name": "Kanton Aargau 25cm (AGIS 2011)",
+            "type": "tms",
+            "template": "http://tiles.poole.ch/AGIS/OF2011/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                14,
+                19
+            ],
+            "polygon": [
+                [
+                    [
+                        7.7,
+                        47.12
+                    ],
+                    [
+                        7.7,
+                        47.63
+                    ],
+                    [
+                        8.5,
+                        47.63
+                    ],
+                    [
+                        8.5,
+                        47.12
+                    ],
+                    [
+                        7.7,
+                        47.12
+                    ]
+                ]
+            ],
+            "terms_text": "AGIS OF2011"
+        },
+        {
+            "name": "Katastrálna mapa Slovenska (KaPor, 2010-04)",
+            "type": "tms",
+            "template": "http://www.freemap.sk/tms/kapor2/{zoom}/{x}/{y}.jpg",
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_url": "http://wiki.freemap.sk/KatasterPortal",
+            "terms_text": "Permisssion by UGKK"
+        },
+        {
+            "name": "Katastrálna mapa Slovenska (KaPor, 2011-05)",
+            "type": "tms",
+            "template": "http://www.freemap.sk/tms/kapor2_201105/{zoom}/{x}/{y}.jpg",
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_url": "http://wiki.freemap.sk/KatasterPortal",
+            "terms_text": "Permisssion by UGKK"
+        },
+        {
+            "name": "Lithuania - ORT10LT",
+            "type": "tms",
+            "template": "http://mapproxy.openmap.lt/ort10lt/g/{z}/{x}/{y}.jpeg",
+            "scaleExtent": [
+                4,
+                18
+            ],
+            "polygon": [
+                [
+                    [
+                        21,
+                        53.88
+                    ],
+                    [
+                        21,
+                        56.45
+                    ],
+                    [
+                        26.85,
+                        56.45
+                    ],
+                    [
+                        26.85,
+                        53.88
+                    ],
+                    [
+                        21,
+                        53.88
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "Locator Overlay",
+            "type": "tms",
+            "description": "Shows major features to help orient you.",
+            "template": "http://{switch:a,b,c}.tiles.mapbox.com/v3/openstreetmap.map-btyhiati/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                16
+            ],
+            "terms_url": "http://www.mapbox.com/about/maps/",
+            "terms_text": "Terms & Feedback",
+            "default": true,
+            "overlay": true
+        },
+        {
+            "name": "MapBox Satellite",
+            "type": "tms",
+            "description": "Satellite and aerial imagery.",
+            "template": "http://{switch:a,b,c}.tiles.mapbox.com/v3/openstreetmap.map-4wvf9l0l/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                16
+            ],
+            "terms_url": "http://www.mapbox.com/about/maps/",
+            "terms_text": "Terms & Feedback",
+            "default": true
+        },
+        {
+            "name": "MapQuest Open Aerial",
+            "type": "tms",
+            "template": "http://oatile{switch:1,2,3,4}.mqcdn.com/tiles/1.0.0/sat/{zoom}/{x}/{y}.png",
+            "default": true
+        },
+        {
+            "name": "NLS - Bartholomew Half Inch, 1897-1907",
+            "type": "tms",
+            "template": "http://geo.nls.uk/mapdata2/bartholomew/great_britain/{zoom}/{x}/{-y}.png",
+            "scaleExtent": [
+                0,
+                15
+            ],
+            "polygon": [
+                [
+                    [
+                        -9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        49.8
+                    ]
+                ]
+            ],
+            "terms_url": "http://geo.nls.uk/maps/",
+            "terms_text": "National Library of Scotland Historic Maps"
+        },
+        {
+            "name": "NLS - OS 1-inch 7th Series 1955-61",
+            "type": "tms",
+            "template": "http://geo.nls.uk/mapdata2/os/seventh/{zoom}/{x}/{-y}.png",
+            "scaleExtent": [
+                5,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        -6.4585407,
+                        49.9044128
+                    ],
+                    [
+                        -6.3872009,
+                        49.9841116
+                    ],
+                    [
+                        -6.2296827,
+                        49.9896159
+                    ],
+                    [
+                        -6.2171269,
+                        49.8680087
+                    ],
+                    [
+                        -6.4551164,
+                        49.8591793
+                    ]
+                ],
+                [
+                    [
+                        -1.4495137,
+                        60.8634056
+                    ],
+                    [
+                        -0.7167114,
+                        60.8545122
+                    ],
+                    [
+                        -0.7349744,
+                        60.4359756
+                    ],
+                    [
+                        -0.6938826,
+                        60.4168218
+                    ],
+                    [
+                        -0.7258429,
+                        60.3942735
+                    ],
+                    [
+                        -0.7395401,
+                        60.0484714
+                    ],
+                    [
+                        -0.9267357,
+                        60.0461918
+                    ],
+                    [
+                        -0.9381501,
+                        59.8266157
+                    ],
+                    [
+                        -1.4586452,
+                        59.831205
+                    ],
+                    [
+                        -1.4455187,
+                        60.0535999
+                    ],
+                    [
+                        -1.463211,
+                        60.0535999
+                    ],
+                    [
+                        -1.4643524,
+                        60.0630002
+                    ],
+                    [
+                        -1.5716475,
+                        60.0638546
+                    ],
+                    [
+                        -1.5693646,
+                        60.1790005
+                    ],
+                    [
+                        -1.643558,
+                        60.1807033
+                    ],
+                    [
+                        -1.643558,
+                        60.1892162
+                    ],
+                    [
+                        -1.8216221,
+                        60.1894999
+                    ],
+                    [
+                        -1.8204807,
+                        60.3615507
+                    ],
+                    [
+                        -1.8415973,
+                        60.3697345
+                    ],
+                    [
+                        -1.8216221,
+                        60.3832755
+                    ],
+                    [
+                        -1.8179852,
+                        60.5934321
+                    ],
+                    [
+                        -1.453168,
+                        60.5934321
+                    ]
+                ],
+                [
+                    [
+                        -4.9089213,
+                        54.4242078
+                    ],
+                    [
+                        -4.282598,
+                        54.4429861
+                    ],
+                    [
+                        -4.2535417,
+                        54.029769
+                    ],
+                    [
+                        -4.8766366,
+                        54.0221831
+                    ]
+                ],
+                [
+                    [
+                        -5.8667408,
+                        59.1444603
+                    ],
+                    [
+                        -5.7759966,
+                        59.1470945
+                    ],
+                    [
+                        -5.7720016,
+                        59.1014052
+                    ],
+                    [
+                        -5.8621751,
+                        59.0990605
+                    ]
+                ],
+                [
+                    [
+                        -1.7065887,
+                        59.5703599
+                    ],
+                    [
+                        -1.5579165,
+                        59.5693481
+                    ],
+                    [
+                        -1.5564897,
+                        59.4965695
+                    ],
+                    [
+                        -1.7054472,
+                        59.4975834
+                    ]
+                ],
+                [
+                    [
+                        -7.6865827,
+                        58.2940975
+                    ],
+                    [
+                        -7.5330594,
+                        58.3006957
+                    ],
+                    [
+                        -7.5256401,
+                        58.2646905
+                    ],
+                    [
+                        -7.6797341,
+                        58.2577853
+                    ]
+                ],
+                [
+                    [
+                        -4.5338281,
+                        59.0359871
+                    ],
+                    [
+                        -4.481322,
+                        59.0371616
+                    ],
+                    [
+                        -4.4796099,
+                        59.0186583
+                    ],
+                    [
+                        -4.5332574,
+                        59.0180707
+                    ]
+                ],
+                [
+                    [
+                        -8.6710698,
+                        57.8769896
+                    ],
+                    [
+                        -8.4673234,
+                        57.8897332
+                    ],
+                    [
+                        -8.4467775,
+                        57.7907
+                    ],
+                    [
+                        -8.6510947,
+                        57.7779213
+                    ]
+                ],
+                [
+                    [
+                        -5.2395519,
+                        50.3530581
+                    ],
+                    [
+                        -5.7920073,
+                        50.3384899
+                    ],
+                    [
+                        -5.760047,
+                        49.9317027
+                    ],
+                    [
+                        -4.6551363,
+                        49.9581461
+                    ],
+                    [
+                        -4.677965,
+                        50.2860073
+                    ],
+                    [
+                        -4.244219,
+                        50.2801723
+                    ],
+                    [
+                        -4.2487848,
+                        50.2042525
+                    ],
+                    [
+                        -3.3812929,
+                        50.2042525
+                    ],
+                    [
+                        -3.4223846,
+                        50.5188201
+                    ],
+                    [
+                        -3.1164796,
+                        50.5246258
+                    ],
+                    [
+                        -3.1210453,
+                        50.6579592
+                    ],
+                    [
+                        -2.6736357,
+                        50.6619495
+                    ],
+                    [
+                        -2.5953453,
+                        50.6394325
+                    ],
+                    [
+                        -2.5905026,
+                        50.5728419
+                    ],
+                    [
+                        -2.4791203,
+                        50.5733545
+                    ],
+                    [
+                        -2.4758919,
+                        50.5066704
+                    ],
+                    [
+                        -2.3967943,
+                        50.5056438
+                    ],
+                    [
+                        -2.401637,
+                        50.5723293
+                    ],
+                    [
+                        -1.0400296,
+                        50.5718167
+                    ],
+                    [
+                        -1.0335726,
+                        50.7059289
+                    ],
+                    [
+                        -0.549302,
+                        50.7038843
+                    ],
+                    [
+                        -0.5460736,
+                        50.7886618
+                    ],
+                    [
+                        -0.0924734,
+                        50.7856002
+                    ],
+                    [
+                        -0.0876307,
+                        50.7181949
+                    ],
+                    [
+                        0.4789659,
+                        50.7120623
+                    ],
+                    [
+                        0.487037,
+                        50.8182467
+                    ],
+                    [
+                        0.9761503,
+                        50.8049868
+                    ],
+                    [
+                        0.9922927,
+                        51.0126311
+                    ],
+                    [
+                        1.4491213,
+                        51.0004424
+                    ],
+                    [
+                        1.4781775,
+                        51.4090372
+                    ],
+                    [
+                        1.0229632,
+                        51.4271576
+                    ],
+                    [
+                        1.035877,
+                        51.7640881
+                    ],
+                    [
+                        1.6105448,
+                        51.7500992
+                    ],
+                    [
+                        1.646058,
+                        52.1560003
+                    ],
+                    [
+                        1.7267698,
+                        52.1540195
+                    ],
+                    [
+                        1.749369,
+                        52.4481811
+                    ],
+                    [
+                        1.7870672,
+                        52.4811624
+                    ],
+                    [
+                        1.759102,
+                        52.522505
+                    ],
+                    [
+                        1.7933451,
+                        52.9602749
+                    ],
+                    [
+                        0.3798147,
+                        52.9958468
+                    ],
+                    [
+                        0.3895238,
+                        53.2511239
+                    ],
+                    [
+                        0.3478614,
+                        53.2511239
+                    ],
+                    [
+                        0.3238912,
+                        53.282186
+                    ],
+                    [
+                        0.3461492,
+                        53.6538501
+                    ],
+                    [
+                        0.128487,
+                        53.6575466
+                    ],
+                    [
+                        0.116582,
+                        53.6674703
+                    ],
+                    [
+                        0.1350586,
+                        54.0655731
+                    ],
+                    [
+                        -0.0609831,
+                        54.065908
+                    ],
+                    [
+                        -0.0414249,
+                        54.4709448
+                    ],
+                    [
+                        -0.5662701,
+                        54.4771794
+                    ],
+                    [
+                        -0.5592078,
+                        54.6565127
+                    ],
+                    [
+                        -1.1665638,
+                        54.6623485
+                    ],
+                    [
+                        -1.1637389,
+                        54.842611
+                    ],
+                    [
+                        -1.3316194,
+                        54.843909
+                    ],
+                    [
+                        -1.3257065,
+                        55.2470842
+                    ],
+                    [
+                        -1.529453,
+                        55.2487108
+                    ],
+                    [
+                        -1.524178,
+                        55.6540122
+                    ],
+                    [
+                        -1.7638798,
+                        55.6540122
+                    ],
+                    [
+                        -1.7733693,
+                        55.9719116
+                    ],
+                    [
+                        -2.1607858,
+                        55.9682981
+                    ],
+                    [
+                        -2.1543289,
+                        56.0621387
+                    ],
+                    [
+                        -2.4578051,
+                        56.0585337
+                    ],
+                    [
+                        -2.4190635,
+                        56.641717
+                    ],
+                    [
+                        -2.0962164,
+                        56.641717
+                    ],
+                    [
+                        -2.0833025,
+                        57.0021322
+                    ],
+                    [
+                        -1.9283359,
+                        57.0126802
+                    ],
+                    [
+                        -1.9180966,
+                        57.3590895
+                    ],
+                    [
+                        -1.7502161,
+                        57.3625721
+                    ],
+                    [
+                        -1.7695869,
+                        57.7608634
+                    ],
+                    [
+                        -3.6937554,
+                        57.7574187
+                    ],
+                    [
+                        -3.7066693,
+                        57.9806386
+                    ],
+                    [
+                        -3.5969013,
+                        57.9772149
+                    ],
+                    [
+                        -3.6033582,
+                        58.1207277
+                    ],
+                    [
+                        -3.0222335,
+                        58.1309566
+                    ],
+                    [
+                        -3.0286905,
+                        58.5410788
+                    ],
+                    [
+                        -2.8478961,
+                        58.530968
+                    ],
+                    [
+                        -2.86081,
+                        58.8430508
+                    ],
+                    [
+                        -2.679624,
+                        58.8414991
+                    ],
+                    [
+                        -2.6841897,
+                        58.885175
+                    ],
+                    [
+                        -2.6339665,
+                        58.9052239
+                    ],
+                    [
+                        -2.679624,
+                        58.9335083
+                    ],
+                    [
+                        -2.6887555,
+                        59.0229231
+                    ],
+                    [
+                        -2.3668703,
+                        59.0229231
+                    ],
+                    [
+                        -2.3702946,
+                        59.2652861
+                    ],
+                    [
+                        -2.3429001,
+                        59.2821989
+                    ],
+                    [
+                        -2.3714361,
+                        59.2996861
+                    ],
+                    [
+                        -2.3737189,
+                        59.3707083
+                    ],
+                    [
+                        -2.3429001,
+                        59.385825
+                    ],
+                    [
+                        -2.3725775,
+                        59.400354
+                    ],
+                    [
+                        -2.3714361,
+                        59.4259098
+                    ],
+                    [
+                        -3.0734196,
+                        59.4230067
+                    ],
+                    [
+                        -3.0711368,
+                        59.3433649
+                    ],
+                    [
+                        -3.103097,
+                        59.3311405
+                    ],
+                    [
+                        -3.0745611,
+                        59.3136695
+                    ],
+                    [
+                        -3.0722782,
+                        59.232603
+                    ],
+                    [
+                        -3.3850319,
+                        59.1484167
+                    ],
+                    [
+                        -3.3747589,
+                        58.9352753
+                    ],
+                    [
+                        -3.5653789,
+                        58.9323303
+                    ],
+                    [
+                        -3.554829,
+                        58.69759
+                    ],
+                    [
+                        -5.2808579,
+                        58.6667732
+                    ],
+                    [
+                        -5.2534159,
+                        58.3514125
+                    ],
+                    [
+                        -5.5068508,
+                        58.3437887
+                    ],
+                    [
+                        -5.4761804,
+                        58.0323557
+                    ],
+                    [
+                        -5.8974958,
+                        58.0212436
+                    ],
+                    [
+                        -5.8522972,
+                        57.6171758
+                    ],
+                    [
+                        -6.1396311,
+                        57.6137174
+                    ],
+                    [
+                        -6.1541592,
+                        57.7423183
+                    ],
+                    [
+                        -6.2913692,
+                        57.7380102
+                    ],
+                    [
+                        -6.3365678,
+                        58.1398784
+                    ],
+                    [
+                        -6.1121891,
+                        58.1466944
+                    ],
+                    [
+                        -6.1473778,
+                        58.5106285
+                    ],
+                    [
+                        -6.2934817,
+                        58.5416182
+                    ],
+                    [
+                        -6.8413713,
+                        58.2977321
+                    ],
+                    [
+                        -7.0057382,
+                        58.2929331
+                    ],
+                    [
+                        -7.1016189,
+                        58.2064403
+                    ],
+                    [
+                        -7.2573132,
+                        58.1793148
+                    ],
+                    [
+                        -7.2531092,
+                        58.1004928
+                    ],
+                    [
+                        -7.4070698,
+                        58.0905566
+                    ],
+                    [
+                        -7.391347,
+                        57.7911354
+                    ],
+                    [
+                        -7.790991,
+                        57.7733151
+                    ],
+                    [
+                        -7.7624215,
+                        57.5444165
+                    ],
+                    [
+                        -7.698501,
+                        57.1453194
+                    ],
+                    [
+                        -7.7943817,
+                        57.1304547
+                    ],
+                    [
+                        -7.716764,
+                        56.7368628
+                    ],
+                    [
+                        -7.0122067,
+                        56.7654359
+                    ],
+                    [
+                        -6.979922,
+                        56.5453858
+                    ],
+                    [
+                        -7.0638622,
+                        56.5453858
+                    ],
+                    [
+                        -7.0444914,
+                        56.3562587
+                    ],
+                    [
+                        -6.500676,
+                        56.3812917
+                    ],
+                    [
+                        -6.4491433,
+                        55.9793649
+                    ],
+                    [
+                        -6.563287,
+                        55.9691456
+                    ],
+                    [
+                        -6.5393742,
+                        55.7030135
+                    ],
+                    [
+                        -6.5595521,
+                        55.6907321
+                    ],
+                    [
+                        -6.5345315,
+                        55.6761713
+                    ],
+                    [
+                        -6.5216176,
+                        55.5704434
+                    ],
+                    [
+                        -5.8912587,
+                        55.5923416
+                    ],
+                    [
+                        -5.8560127,
+                        55.2320733
+                    ],
+                    [
+                        -5.2293639,
+                        55.2515958
+                    ],
+                    [
+                        -5.1837064,
+                        54.6254139
+                    ],
+                    [
+                        -3.6655956,
+                        54.6518373
+                    ],
+                    [
+                        -3.6496155,
+                        54.4320023
+                    ],
+                    [
+                        -3.5400375,
+                        54.4306744
+                    ],
+                    [
+                        -3.530906,
+                        54.0290181
+                    ],
+                    [
+                        -3.0697656,
+                        54.030359
+                    ],
+                    [
+                        -3.0675737,
+                        53.8221388
+                    ],
+                    [
+                        -3.0804876,
+                        53.7739911
+                    ],
+                    [
+                        -3.0619239,
+                        53.7477488
+                    ],
+                    [
+                        -3.0611168,
+                        53.6737049
+                    ],
+                    [
+                        -3.2144691,
+                        53.6708361
+                    ],
+                    [
+                        -3.2057699,
+                        53.4226163
+                    ],
+                    [
+                        -3.2799632,
+                        53.355224
+                    ],
+                    [
+                        -3.2896655,
+                        53.3608441
+                    ],
+                    [
+                        -3.3327547,
+                        53.364931
+                    ],
+                    [
+                        -3.3761293,
+                        53.3540318
+                    ],
+                    [
+                        -4.0888976,
+                        53.3433102
+                    ],
+                    [
+                        -4.0945474,
+                        53.4612036
+                    ],
+                    [
+                        -4.697412,
+                        53.4448624
+                    ],
+                    [
+                        -4.6882805,
+                        53.3318598
+                    ],
+                    [
+                        -4.7202407,
+                        53.2895771
+                    ],
+                    [
+                        -4.6837148,
+                        53.2486184
+                    ],
+                    [
+                        -4.6768661,
+                        53.1542644
+                    ],
+                    [
+                        -4.8480816,
+                        53.1446807
+                    ],
+                    [
+                        -4.8178336,
+                        52.7440299
+                    ],
+                    [
+                        -4.2545751,
+                        52.7558939
+                    ],
+                    [
+                        -4.228876,
+                        52.254876
+                    ],
+                    [
+                        -4.2607571,
+                        52.2536408
+                    ],
+                    [
+                        -4.2724603,
+                        52.2432637
+                    ],
+                    [
+                        -4.8136263,
+                        52.230095
+                    ],
+                    [
+                        -4.8079191,
+                        52.1138892
+                    ],
+                    [
+                        -5.3889104,
+                        52.0991668
+                    ],
+                    [
+                        -5.3717888,
+                        51.9129667
+                    ],
+                    [
+                        -5.4208706,
+                        51.9101502
+                    ],
+                    [
+                        -5.414022,
+                        51.8453218
+                    ],
+                    [
+                        -5.3683645,
+                        51.8474373
+                    ],
+                    [
+                        -5.3466772,
+                        51.5595332
+                    ],
+                    [
+                        -4.773676,
+                        51.5758518
+                    ],
+                    [
+                        -4.7656859,
+                        51.4885146
+                    ],
+                    [
+                        -4.1915432,
+                        51.4970427
+                    ],
+                    [
+                        -4.1869775,
+                        51.4344663
+                    ],
+                    [
+                        -3.6151177,
+                        51.4444274
+                    ],
+                    [
+                        -3.6105519,
+                        51.3746543
+                    ],
+                    [
+                        -3.1494115,
+                        51.3789292
+                    ],
+                    [
+                        -3.1494115,
+                        51.2919281
+                    ],
+                    [
+                        -4.3038735,
+                        51.2745907
+                    ],
+                    [
+                        -4.2861169,
+                        51.0508721
+                    ],
+                    [
+                        -4.8543277,
+                        51.0366633
+                    ],
+                    [
+                        -4.8372201,
+                        50.7212787
+                    ],
+                    [
+                        -5.2618345,
+                        50.7082694
+                    ]
+                ],
+                [
+                    [
+                        -2.1502671,
+                        60.171318
+                    ],
+                    [
+                        -2.0030218,
+                        60.1696146
+                    ],
+                    [
+                        -2.0013096,
+                        60.0997023
+                    ],
+                    [
+                        -2.148555,
+                        60.1011247
+                    ]
+                ],
+                [
+                    [
+                        -6.2086011,
+                        59.1163488
+                    ],
+                    [
+                        -6.1229934,
+                        59.1166418
+                    ],
+                    [
+                        -6.121852,
+                        59.0714985
+                    ],
+                    [
+                        -6.2097426,
+                        59.0714985
+                    ]
+                ],
+                [
+                    [
+                        -4.4159559,
+                        59.0889036
+                    ],
+                    [
+                        -4.4212022,
+                        59.0770848
+                    ],
+                    [
+                        -4.3971904,
+                        59.0779143
+                    ],
+                    [
+                        -4.3913388,
+                        59.0897328
+                    ]
+                ]
+            ],
+            "terms_url": "http://geo.nls.uk/maps/",
+            "terms_text": "National Library of Scotland Historic Maps"
+        },
+        {
+            "name": "NLS - OS 1:25k 1st Series 1937-61",
+            "type": "tms",
+            "template": "http://geo.nls.uk/mapdata2/os/25000/{zoom}/{x}/{-y}.png",
+            "scaleExtent": [
+                5,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        -4.7157244,
+                        54.6796556
+                    ],
+                    [
+                        -4.6850662,
+                        54.6800268
+                    ],
+                    [
+                        -4.6835779,
+                        54.6623245
+                    ],
+                    [
+                        -4.7148782,
+                        54.6615818
+                    ]
+                ],
+                [
+                    [
+                        -3.7085748,
+                        58.3371151
+                    ],
+                    [
+                        -3.5405937,
+                        58.3380684
+                    ],
+                    [
+                        -3.5315137,
+                        58.1608002
+                    ],
+                    [
+                        -3.3608086,
+                        58.1622372
+                    ],
+                    [
+                        -3.3653486,
+                        58.252173
+                    ],
+                    [
+                        -3.1610473,
+                        58.2536063
+                    ],
+                    [
+                        -3.1610473,
+                        58.3261509
+                    ],
+                    [
+                        -3.0275704,
+                        58.3271045
+                    ],
+                    [
+                        -3.0366505,
+                        58.6139001
+                    ],
+                    [
+                        -3.0021463,
+                        58.614373
+                    ],
+                    [
+                        -3.0030543,
+                        58.7036341
+                    ],
+                    [
+                        -3.4180129,
+                        58.7003322
+                    ],
+                    [
+                        -3.4171049,
+                        58.6290293
+                    ],
+                    [
+                        -3.7240109,
+                        58.6266658
+                    ],
+                    [
+                        -3.7231029,
+                        58.606806
+                    ],
+                    [
+                        -4.2361262,
+                        58.5992374
+                    ],
+                    [
+                        -4.2334022,
+                        58.5092347
+                    ],
+                    [
+                        -3.88836,
+                        58.5144516
+                    ],
+                    [
+                        -3.8829119,
+                        58.4261327
+                    ],
+                    [
+                        -3.7158389,
+                        58.4270836
+                    ]
+                ],
+                [
+                    [
+                        -6.46676,
+                        49.9943621
+                    ],
+                    [
+                        -6.1889102,
+                        50.004868
+                    ],
+                    [
+                        -6.1789222,
+                        49.8967815
+                    ],
+                    [
+                        -6.3169391,
+                        49.8915171
+                    ],
+                    [
+                        -6.312399,
+                        49.8200979
+                    ],
+                    [
+                        -6.4504159,
+                        49.8159968
+                    ]
+                ],
+                [
+                    [
+                        -5.6453263,
+                        50.2029809
+                    ],
+                    [
+                        -5.7801329,
+                        50.2014076
+                    ],
+                    [
+                        -5.7637888,
+                        50.0197267
+                    ],
+                    [
+                        -5.3479221,
+                        50.0290604
+                    ],
+                    [
+                        -5.3388421,
+                        49.9414854
+                    ],
+                    [
+                        -5.024672,
+                        49.9473287
+                    ],
+                    [
+                        -5.0355681,
+                        50.0383923
+                    ],
+                    [
+                        -5.0010639,
+                        50.0453901
+                    ],
+                    [
+                        -4.9974319,
+                        50.1304478
+                    ],
+                    [
+                        -4.855783,
+                        50.13394
+                    ],
+                    [
+                        -4.861231,
+                        50.206057
+                    ],
+                    [
+                        -4.6546085,
+                        50.2140172
+                    ],
+                    [
+                        -4.6558926,
+                        50.3018616
+                    ],
+                    [
+                        -4.5184924,
+                        50.3026818
+                    ],
+                    [
+                        -4.51464,
+                        50.325642
+                    ],
+                    [
+                        -4.2488284,
+                        50.3264618
+                    ],
+                    [
+                        -4.2488284,
+                        50.3100631
+                    ],
+                    [
+                        -4.10886,
+                        50.3141633
+                    ],
+                    [
+                        -4.1062917,
+                        50.2411267
+                    ],
+                    [
+                        -3.9648088,
+                        50.2432047
+                    ],
+                    [
+                        -3.9640778,
+                        50.2254158
+                    ],
+                    [
+                        -3.8522287,
+                        50.2273626
+                    ],
+                    [
+                        -3.8503757,
+                        50.1552563
+                    ],
+                    [
+                        -3.6921809,
+                        50.1572487
+                    ],
+                    [
+                        -3.5414602,
+                        50.1602198
+                    ],
+                    [
+                        -3.5465781,
+                        50.3226814
+                    ],
+                    [
+                        -3.4068012,
+                        50.3241013
+                    ],
+                    [
+                        -3.4165761,
+                        50.5892711
+                    ],
+                    [
+                        -3.2746691,
+                        50.5962721
+                    ],
+                    [
+                        -3.2749172,
+                        50.6106323
+                    ],
+                    [
+                        -2.9971742,
+                        50.613972
+                    ],
+                    [
+                        -2.9896008,
+                        50.688537
+                    ],
+                    [
+                        -2.7120266,
+                        50.690565
+                    ],
+                    [
+                        -2.710908,
+                        50.6195964
+                    ],
+                    [
+                        -2.5695473,
+                        50.6157538
+                    ],
+                    [
+                        -2.5651019,
+                        50.5134083
+                    ],
+                    [
+                        -2.4014463,
+                        50.513379
+                    ],
+                    [
+                        -2.3940583,
+                        50.6160348
+                    ],
+                    [
+                        -2.2894123,
+                        50.6147436
+                    ],
+                    [
+                        -2.2876184,
+                        50.6008549
+                    ],
+                    [
+                        -2.1477855,
+                        50.6048506
+                    ],
+                    [
+                        -2.1451013,
+                        50.5325437
+                    ],
+                    [
+                        -1.9335117,
+                        50.5347477
+                    ],
+                    [
+                        -1.9362139,
+                        50.6170445
+                    ],
+                    [
+                        -1.8573025,
+                        50.6228094
+                    ],
+                    [
+                        -1.8554865,
+                        50.709139
+                    ],
+                    [
+                        -1.6066929,
+                        50.709139
+                    ],
+                    [
+                        -1.6085089,
+                        50.6239615
+                    ],
+                    [
+                        -1.4450678,
+                        50.6228094
+                    ],
+                    [
+                        -1.4432518,
+                        50.5317039
+                    ],
+                    [
+                        -1.1545059,
+                        50.5293951
+                    ],
+                    [
+                        -1.1472419,
+                        50.6170485
+                    ],
+                    [
+                        -1.011041,
+                        50.6205051
+                    ],
+                    [
+                        -1.011041,
+                        50.7056889
+                    ],
+                    [
+                        -0.704135,
+                        50.7045388
+                    ],
+                    [
+                        -0.700503,
+                        50.7769401
+                    ],
+                    [
+                        -0.5860943,
+                        50.7723465
+                    ],
+                    [
+                        -0.5879103,
+                        50.7907181
+                    ],
+                    [
+                        -0.0149586,
+                        50.7798108
+                    ],
+                    [
+                        -0.0185906,
+                        50.7625836
+                    ],
+                    [
+                        0.0967261,
+                        50.7620093
+                    ],
+                    [
+                        0.0921861,
+                        50.6913106
+                    ],
+                    [
+                        0.3046595,
+                        50.6890096
+                    ],
+                    [
+                        0.3101075,
+                        50.7757917
+                    ],
+                    [
+                        0.5511831,
+                        50.7726336
+                    ],
+                    [
+                        0.5529991,
+                        50.8432096
+                    ],
+                    [
+                        0.695556,
+                        50.8403428
+                    ],
+                    [
+                        0.696464,
+                        50.8592608
+                    ],
+                    [
+                        0.9852099,
+                        50.8523824
+                    ],
+                    [
+                        0.9906579,
+                        50.9417226
+                    ],
+                    [
+                        1.0160821,
+                        50.9411504
+                    ],
+                    [
+                        1.0215301,
+                        51.0303204
+                    ],
+                    [
+                        1.2812198,
+                        51.0240383
+                    ],
+                    [
+                        1.2848518,
+                        51.0948044
+                    ],
+                    [
+                        1.4277848,
+                        51.0948044
+                    ],
+                    [
+                        1.4386809,
+                        51.2882859
+                    ],
+                    [
+                        1.4713691,
+                        51.2871502
+                    ],
+                    [
+                        1.4804492,
+                        51.3994534
+                    ],
+                    [
+                        1.1590151,
+                        51.4073836
+                    ],
+                    [
+                        1.1590151,
+                        51.3869889
+                    ],
+                    [
+                        1.0191822,
+                        51.3903886
+                    ],
+                    [
+                        1.0228142,
+                        51.4798247
+                    ],
+                    [
+                        0.8793493,
+                        51.4843484
+                    ],
+                    [
+                        0.8829813,
+                        51.5566675
+                    ],
+                    [
+                        1.0264462,
+                        51.5544092
+                    ],
+                    [
+                        1.0373423,
+                        51.7493319
+                    ],
+                    [
+                        1.2607117,
+                        51.7482076
+                    ],
+                    [
+                        1.2661598,
+                        51.8279642
+                    ],
+                    [
+                        1.3351682,
+                        51.8335756
+                    ],
+                    [
+                        1.3478803,
+                        51.9199021
+                    ],
+                    [
+                        1.4840812,
+                        51.9199021
+                    ],
+                    [
+                        1.4986093,
+                        52.0038271
+                    ],
+                    [
+                        1.6438902,
+                        52.0027092
+                    ],
+                    [
+                        1.6656823,
+                        52.270221
+                    ],
+                    [
+                        1.7310588,
+                        52.270221
+                    ],
+                    [
+                        1.7528509,
+                        52.4465637
+                    ],
+                    [
+                        1.8254914,
+                        52.4476705
+                    ],
+                    [
+                        1.8345714,
+                        52.624408
+                    ],
+                    [
+                        1.7690346,
+                        52.6291402
+                    ],
+                    [
+                        1.7741711,
+                        52.717904
+                    ],
+                    [
+                        1.6996925,
+                        52.721793
+                    ],
+                    [
+                        1.706113,
+                        52.8103687
+                    ],
+                    [
+                        1.559724,
+                        52.8165777
+                    ],
+                    [
+                        1.5648605,
+                        52.9034116
+                    ],
+                    [
+                        1.4184715,
+                        52.9103818
+                    ],
+                    [
+                        1.4223238,
+                        52.9281894
+                    ],
+                    [
+                        1.3439928,
+                        52.9289635
+                    ],
+                    [
+                        1.3491293,
+                        53.0001194
+                    ],
+                    [
+                        0.4515789,
+                        53.022589
+                    ],
+                    [
+                        0.4497629,
+                        52.9351139
+                    ],
+                    [
+                        0.3789384,
+                        52.9351139
+                    ],
+                    [
+                        0.3716744,
+                        52.846365
+                    ],
+                    [
+                        0.2227614,
+                        52.8496552
+                    ],
+                    [
+                        0.2336575,
+                        52.9329248
+                    ],
+                    [
+                        0.3062979,
+                        52.9351139
+                    ],
+                    [
+                        0.308114,
+                        53.022589
+                    ],
+                    [
+                        0.3807544,
+                        53.0236813
+                    ],
+                    [
+                        0.3993708,
+                        53.2933729
+                    ],
+                    [
+                        0.3248922,
+                        53.2987454
+                    ],
+                    [
+                        0.3274604,
+                        53.3853782
+                    ],
+                    [
+                        0.2504136,
+                        53.38691
+                    ],
+                    [
+                        0.2581183,
+                        53.4748924
+                    ],
+                    [
+                        0.1862079,
+                        53.4779494
+                    ],
+                    [
+                        0.1913443,
+                        53.6548777
+                    ],
+                    [
+                        0.1502527,
+                        53.6594436
+                    ],
+                    [
+                        0.1528209,
+                        53.7666003
+                    ],
+                    [
+                        0.0012954,
+                        53.7734308
+                    ],
+                    [
+                        0.0025796,
+                        53.8424326
+                    ],
+                    [
+                        -0.0282392,
+                        53.841675
+                    ],
+                    [
+                        -0.0226575,
+                        53.9311501
+                    ],
+                    [
+                        -0.1406983,
+                        53.9322193
+                    ],
+                    [
+                        -0.1416063,
+                        54.0219323
+                    ],
+                    [
+                        -0.1706625,
+                        54.0235326
+                    ],
+                    [
+                        -0.1679384,
+                        54.0949482
+                    ],
+                    [
+                        -0.0126694,
+                        54.0912206
+                    ],
+                    [
+                        -0.0099454,
+                        54.1811226
+                    ],
+                    [
+                        -0.1615824,
+                        54.1837795
+                    ],
+                    [
+                        -0.1606744,
+                        54.2029038
+                    ],
+                    [
+                        -0.2405789,
+                        54.2034349
+                    ],
+                    [
+                        -0.2378549,
+                        54.2936234
+                    ],
+                    [
+                        -0.3894919,
+                        54.2941533
+                    ],
+                    [
+                        -0.3857497,
+                        54.3837321
+                    ],
+                    [
+                        -0.461638,
+                        54.3856364
+                    ],
+                    [
+                        -0.4571122,
+                        54.4939066
+                    ],
+                    [
+                        -0.6105651,
+                        54.4965434
+                    ],
+                    [
+                        -0.6096571,
+                        54.5676704
+                    ],
+                    [
+                        -0.7667421,
+                        54.569776
+                    ],
+                    [
+                        -0.7640181,
+                        54.5887213
+                    ],
+                    [
+                        -0.9192871,
+                        54.5908258
+                    ],
+                    [
+                        -0.9148116,
+                        54.6608348
+                    ],
+                    [
+                        -1.1485204,
+                        54.6634343
+                    ],
+                    [
+                        -1.1472363,
+                        54.7528316
+                    ],
+                    [
+                        -1.2268514,
+                        54.7532021
+                    ],
+                    [
+                        -1.2265398,
+                        54.8429879
+                    ],
+                    [
+                        -1.2991803,
+                        54.8435107
+                    ],
+                    [
+                        -1.2991803,
+                        54.9333391
+                    ],
+                    [
+                        -1.3454886,
+                        54.9354258
+                    ],
+                    [
+                        -1.3436726,
+                        55.0234878
+                    ],
+                    [
+                        -1.3772688,
+                        55.0255698
+                    ],
+                    [
+                        -1.3754528,
+                        55.1310877
+                    ],
+                    [
+                        -1.4997441,
+                        55.1315727
+                    ],
+                    [
+                        -1.4969272,
+                        55.2928323
+                    ],
+                    [
+                        -1.5296721,
+                        55.2942946
+                    ],
+                    [
+                        -1.5258198,
+                        55.6523803
+                    ],
+                    [
+                        -1.7659492,
+                        55.6545537
+                    ],
+                    [
+                        -1.7620968,
+                        55.7435626
+                    ],
+                    [
+                        -1.9688392,
+                        55.7435626
+                    ],
+                    [
+                        -1.9698023,
+                        55.8334505
+                    ],
+                    [
+                        -2.0019051,
+                        55.8336308
+                    ],
+                    [
+                        -2.0015841,
+                        55.9235526
+                    ],
+                    [
+                        -2.1604851,
+                        55.9240613
+                    ],
+                    [
+                        -2.1613931,
+                        55.9413549
+                    ],
+                    [
+                        -2.3202942,
+                        55.9408463
+                    ],
+                    [
+                        -2.3212022,
+                        56.0145126
+                    ],
+                    [
+                        -2.5627317,
+                        56.0124824
+                    ],
+                    [
+                        -2.5645477,
+                        56.1022207
+                    ],
+                    [
+                        -2.9658863,
+                        56.0991822
+                    ],
+                    [
+                        -2.9667943,
+                        56.1710304
+                    ],
+                    [
+                        -2.4828272,
+                        56.1755797
+                    ],
+                    [
+                        -2.4882752,
+                        56.2856078
+                    ],
+                    [
+                        -2.5645477,
+                        56.2835918
+                    ],
+                    [
+                        -2.5681798,
+                        56.3742075
+                    ],
+                    [
+                        -2.7261728,
+                        56.3732019
+                    ],
+                    [
+                        -2.7316208,
+                        56.4425301
+                    ],
+                    [
+                        -2.6190281,
+                        56.4425301
+                    ],
+                    [
+                        -2.6153961,
+                        56.5317671
+                    ],
+                    [
+                        -2.453771,
+                        56.5347715
+                    ],
+                    [
+                        -2.4534686,
+                        56.6420248
+                    ],
+                    [
+                        -2.4062523,
+                        56.6440218
+                    ],
+                    [
+                        -2.3953562,
+                        56.7297964
+                    ],
+                    [
+                        -2.2936596,
+                        56.7337811
+                    ],
+                    [
+                        -2.2972916,
+                        56.807423
+                    ],
+                    [
+                        -2.1629067,
+                        56.8113995
+                    ],
+                    [
+                        -2.1592747,
+                        56.9958425
+                    ],
+                    [
+                        -1.9922016,
+                        57.0017771
+                    ],
+                    [
+                        -2.0067297,
+                        57.2737477
+                    ],
+                    [
+                        -1.9195612,
+                        57.2757112
+                    ],
+                    [
+                        -1.9304572,
+                        57.3482876
+                    ],
+                    [
+                        -1.8106005,
+                        57.3443682
+                    ],
+                    [
+                        -1.7997044,
+                        57.4402728
+                    ],
+                    [
+                        -1.6616875,
+                        57.4285429
+                    ],
+                    [
+                        -1.6689516,
+                        57.5398256
+                    ],
+                    [
+                        -1.7452241,
+                        57.5398256
+                    ],
+                    [
+                        -1.7524881,
+                        57.6313302
+                    ],
+                    [
+                        -1.8287606,
+                        57.6332746
+                    ],
+                    [
+                        -1.8287606,
+                        57.7187255
+                    ],
+                    [
+                        -3.1768526,
+                        57.7171219
+                    ],
+                    [
+                        -3.1794208,
+                        57.734264
+                    ],
+                    [
+                        -3.5134082,
+                        57.7292105
+                    ],
+                    [
+                        -3.5129542,
+                        57.7112683
+                    ],
+                    [
+                        -3.7635638,
+                        57.7076303
+                    ],
+                    [
+                        -3.7598539,
+                        57.635713
+                    ],
+                    [
+                        -3.8420372,
+                        57.6343382
+                    ],
+                    [
+                        -3.8458895,
+                        57.6178365
+                    ],
+                    [
+                        -3.9794374,
+                        57.6157733
+                    ],
+                    [
+                        -3.9794374,
+                        57.686544
+                    ],
+                    [
+                        -3.8150708,
+                        57.689976
+                    ],
+                    [
+                        -3.817639,
+                        57.7968899
+                    ],
+                    [
+                        -3.6853753,
+                        57.7989429
+                    ],
+                    [
+                        -3.6892276,
+                        57.8891567
+                    ],
+                    [
+                        -3.9383458,
+                        57.8877915
+                    ],
+                    [
+                        -3.9421981,
+                        57.9750592
+                    ],
+                    [
+                        -3.6943641,
+                        57.9784638
+                    ],
+                    [
+                        -3.6969323,
+                        58.0695865
+                    ],
+                    [
+                        -4.0372226,
+                        58.0641528
+                    ],
+                    [
+                        -4.0346543,
+                        57.9730163
+                    ],
+                    [
+                        -4.2003051,
+                        57.9702923
+                    ],
+                    [
+                        -4.1832772,
+                        57.7012869
+                    ],
+                    [
+                        -4.518752,
+                        57.6951111
+                    ],
+                    [
+                        -4.5122925,
+                        57.6050682
+                    ],
+                    [
+                        -4.6789116,
+                        57.6016628
+                    ],
+                    [
+                        -4.666022,
+                        57.4218334
+                    ],
+                    [
+                        -3.6677696,
+                        57.4394729
+                    ],
+                    [
+                        -3.671282,
+                        57.5295384
+                    ],
+                    [
+                        -3.3384979,
+                        57.5331943
+                    ],
+                    [
+                        -3.3330498,
+                        57.4438859
+                    ],
+                    [
+                        -2.8336466,
+                        57.4485275
+                    ],
+                    [
+                        -2.8236396,
+                        56.9992706
+                    ],
+                    [
+                        -2.3305398,
+                        57.0006693
+                    ],
+                    [
+                        -2.3298977,
+                        56.9113932
+                    ],
+                    [
+                        -2.6579889,
+                        56.9092901
+                    ],
+                    [
+                        -2.6559637,
+                        56.8198406
+                    ],
+                    [
+                        -2.8216747,
+                        56.8188467
+                    ],
+                    [
+                        -2.8184967,
+                        56.7295397
+                    ],
+                    [
+                        -3.1449248,
+                        56.7265508
+                    ],
+                    [
+                        -3.1435628,
+                        56.6362749
+                    ],
+                    [
+                        -3.4679089,
+                        56.6350265
+                    ],
+                    [
+                        -3.474265,
+                        56.7238108
+                    ],
+                    [
+                        -3.8011471,
+                        56.7188284
+                    ],
+                    [
+                        -3.785711,
+                        56.4493026
+                    ],
+                    [
+                        -3.946428,
+                        56.4457896
+                    ],
+                    [
+                        -3.9428873,
+                        56.2659777
+                    ],
+                    [
+                        -4.423146,
+                        56.2588459
+                    ],
+                    [
+                        -4.4141572,
+                        56.0815506
+                    ],
+                    [
+                        -4.8944159,
+                        56.0708008
+                    ],
+                    [
+                        -4.8791072,
+                        55.8896994
+                    ],
+                    [
+                        -5.1994158,
+                        55.8821374
+                    ],
+                    [
+                        -5.1852906,
+                        55.7023791
+                    ],
+                    [
+                        -5.0273445,
+                        55.7067203
+                    ],
+                    [
+                        -5.0222081,
+                        55.6879046
+                    ],
+                    [
+                        -4.897649,
+                        55.6907999
+                    ],
+                    [
+                        -4.8880181,
+                        55.6002822
+                    ],
+                    [
+                        -4.7339244,
+                        55.6046348
+                    ],
+                    [
+                        -4.7275038,
+                        55.5342082
+                    ],
+                    [
+                        -4.773732,
+                        55.5334815
+                    ],
+                    [
+                        -4.7685955,
+                        55.4447227
+                    ],
+                    [
+                        -4.8494947,
+                        55.4418092
+                    ],
+                    [
+                        -4.8405059,
+                        55.3506535
+                    ],
+                    [
+                        -4.8700405,
+                        55.3513836
+                    ],
+                    [
+                        -4.8649041,
+                        55.2629462
+                    ],
+                    [
+                        -4.9920314,
+                        55.2592875
+                    ],
+                    [
+                        -4.9907473,
+                        55.1691779
+                    ],
+                    [
+                        -5.0600894,
+                        55.1655105
+                    ],
+                    [
+                        -5.0575212,
+                        55.0751884
+                    ],
+                    [
+                        -5.2141831,
+                        55.0722477
+                    ],
+                    [
+                        -5.1991766,
+                        54.8020337
+                    ],
+                    [
+                        -5.0466316,
+                        54.8062205
+                    ],
+                    [
+                        -5.0502636,
+                        54.7244996
+                    ],
+                    [
+                        -4.9703591,
+                        54.7203043
+                    ],
+                    [
+                        -4.9776232,
+                        54.6215905
+                    ],
+                    [
+                        -4.796022,
+                        54.6342056
+                    ],
+                    [
+                        -4.796022,
+                        54.7307917
+                    ],
+                    [
+                        -4.8977186,
+                        54.7265971
+                    ],
+                    [
+                        -4.9086147,
+                        54.8145928
+                    ],
+                    [
+                        -4.8069181,
+                        54.8166856
+                    ],
+                    [
+                        -4.8105501,
+                        54.7915648
+                    ],
+                    [
+                        -4.6943253,
+                        54.7978465
+                    ],
+                    [
+                        -4.6761652,
+                        54.7244996
+                    ],
+                    [
+                        -4.5744686,
+                        54.7244996
+                    ],
+                    [
+                        -4.5599405,
+                        54.6426135
+                    ],
+                    [
+                        -4.3093309,
+                        54.6384098
+                    ],
+                    [
+                        -4.3333262,
+                        54.8229889
+                    ],
+                    [
+                        -4.2626999,
+                        54.8274274
+                    ],
+                    [
+                        -4.2549952,
+                        54.7348587
+                    ],
+                    [
+                        -3.8338058,
+                        54.7400481
+                    ],
+                    [
+                        -3.836374,
+                        54.8141105
+                    ],
+                    [
+                        -3.7118149,
+                        54.8133706
+                    ],
+                    [
+                        -3.7143831,
+                        54.8318654
+                    ],
+                    [
+                        -3.5346072,
+                        54.8355633
+                    ],
+                    [
+                        -3.5271039,
+                        54.9066228
+                    ],
+                    [
+                        -3.4808758,
+                        54.9084684
+                    ],
+                    [
+                        -3.4776655,
+                        54.7457328
+                    ],
+                    [
+                        -3.5874573,
+                        54.744621
+                    ],
+                    [
+                        -3.5836049,
+                        54.6546166
+                    ],
+                    [
+                        -3.7107322,
+                        54.6531308
+                    ],
+                    [
+                        -3.6991752,
+                        54.4550407
+                    ],
+                    [
+                        -3.5746161,
+                        54.4572801
+                    ],
+                    [
+                        -3.5759002,
+                        54.3863042
+                    ],
+                    [
+                        -3.539945,
+                        54.3855564
+                    ],
+                    [
+                        -3.5386609,
+                        54.297224
+                    ],
+                    [
+                        -3.46033,
+                        54.2957252
+                    ],
+                    [
+                        -3.4590458,
+                        54.2079507
+                    ],
+                    [
+                        -3.3807149,
+                        54.2102037
+                    ],
+                    [
+                        -3.381999,
+                        54.1169788
+                    ],
+                    [
+                        -3.302878,
+                        54.1160656
+                    ],
+                    [
+                        -3.300154,
+                        54.0276224
+                    ],
+                    [
+                        -3.1013007,
+                        54.0292224
+                    ],
+                    [
+                        -3.093596,
+                        53.6062158
+                    ],
+                    [
+                        -3.2065981,
+                        53.6016441
+                    ],
+                    [
+                        -3.2091663,
+                        53.4917753
+                    ],
+                    [
+                        -3.2451215,
+                        53.4887193
+                    ],
+                    [
+                        -3.2348486,
+                        53.4045934
+                    ],
+                    [
+                        -3.5276266,
+                        53.3999999
+                    ],
+                    [
+                        -3.5343966,
+                        53.328481
+                    ],
+                    [
+                        -3.6488053,
+                        53.3252272
+                    ],
+                    [
+                        -3.6527308,
+                        53.3057716
+                    ],
+                    [
+                        -3.7271873,
+                        53.3046865
+                    ],
+                    [
+                        -3.7315003,
+                        53.3945257
+                    ],
+                    [
+                        -3.9108315,
+                        53.3912769
+                    ],
+                    [
+                        -3.9071995,
+                        53.3023804
+                    ],
+                    [
+                        -3.9521457,
+                        53.3015665
+                    ],
+                    [
+                        -3.9566724,
+                        53.3912183
+                    ],
+                    [
+                        -4.1081979,
+                        53.3889209
+                    ],
+                    [
+                        -4.1081979,
+                        53.4072967
+                    ],
+                    [
+                        -4.2622916,
+                        53.4065312
+                    ],
+                    [
+                        -4.2635757,
+                        53.4753707
+                    ],
+                    [
+                        -4.638537,
+                        53.4677274
+                    ],
+                    [
+                        -4.6346847,
+                        53.3812621
+                    ],
+                    [
+                        -4.7091633,
+                        53.3774321
+                    ],
+                    [
+                        -4.7001745,
+                        53.1954965
+                    ],
+                    [
+                        -4.5499332,
+                        53.1962658
+                    ],
+                    [
+                        -4.5435126,
+                        53.1092488
+                    ],
+                    [
+                        -4.3919871,
+                        53.1100196
+                    ],
+                    [
+                        -4.3855666,
+                        53.0236002
+                    ],
+                    [
+                        -4.6115707,
+                        53.0205105
+                    ],
+                    [
+                        -4.603866,
+                        52.9284932
+                    ],
+                    [
+                        -4.7566756,
+                        52.9261709
+                    ],
+                    [
+                        -4.7476868,
+                        52.8370555
+                    ],
+                    [
+                        -4.8208813,
+                        52.8331768
+                    ],
+                    [
+                        -4.8208813,
+                        52.7446476
+                    ],
+                    [
+                        -4.3701572,
+                        52.7539749
+                    ],
+                    [
+                        -4.3765778,
+                        52.8401583
+                    ],
+                    [
+                        -4.2314728,
+                        52.8455875
+                    ],
+                    [
+                        -4.2237682,
+                        52.7586379
+                    ],
+                    [
+                        -4.1056297,
+                        52.7570836
+                    ],
+                    [
+                        -4.1015192,
+                        52.6714874
+                    ],
+                    [
+                        -4.1487355,
+                        52.6703862
+                    ],
+                    [
+                        -4.1305754,
+                        52.4008596
+                    ],
+                    [
+                        -4.1995838,
+                        52.3986435
+                    ],
+                    [
+                        -4.2050319,
+                        52.3110195
+                    ],
+                    [
+                        -4.3466808,
+                        52.303247
+                    ],
+                    [
+                        -4.3484968,
+                        52.2365693
+                    ],
+                    [
+                        -4.4901457,
+                        52.2332328
+                    ],
+                    [
+                        -4.4883297,
+                        52.2098702
+                    ],
+                    [
+                        -4.6572188,
+                        52.2098702
+                    ],
+                    [
+                        -4.6590348,
+                        52.1385939
+                    ],
+                    [
+                        -4.7788916,
+                        52.13525
+                    ],
+                    [
+                        -4.7807076,
+                        52.1162967
+                    ],
+                    [
+                        -4.9259885,
+                        52.1140663
+                    ],
+                    [
+                        -4.9187245,
+                        52.0392855
+                    ],
+                    [
+                        -5.2365265,
+                        52.0314653
+                    ],
+                    [
+                        -5.2347105,
+                        51.9442339
+                    ],
+                    [
+                        -5.3473032,
+                        51.9408755
+                    ],
+                    [
+                        -5.3473032,
+                        51.9195995
+                    ],
+                    [
+                        -5.4925842,
+                        51.9162392
+                    ],
+                    [
+                        -5.4853201,
+                        51.8265386
+                    ],
+                    [
+                        -5.1983903,
+                        51.8321501
+                    ],
+                    [
+                        -5.1893102,
+                        51.7625177
+                    ],
+                    [
+                        -5.335825,
+                        51.7589528
+                    ],
+                    [
+                        -5.3281204,
+                        51.6686495
+                    ],
+                    [
+                        -5.1836575,
+                        51.6730296
+                    ],
+                    [
+                        -5.1836575,
+                        51.6539134
+                    ],
+                    [
+                        -5.0674452,
+                        51.6578966
+                    ],
+                    [
+                        -5.0603825,
+                        51.5677905
+                    ],
+                    [
+                        -4.5974594,
+                        51.5809588
+                    ],
+                    [
+                        -4.60388,
+                        51.6726314
+                    ],
+                    [
+                        -4.345773,
+                        51.6726314
+                    ],
+                    [
+                        -4.3355001,
+                        51.4962964
+                    ],
+                    [
+                        -3.9528341,
+                        51.5106841
+                    ],
+                    [
+                        -3.9425611,
+                        51.5905333
+                    ],
+                    [
+                        -3.8809237,
+                        51.5953198
+                    ],
+                    [
+                        -3.8706508,
+                        51.5074872
+                    ],
+                    [
+                        -3.7679216,
+                        51.4978952
+                    ],
+                    [
+                        -3.7550805,
+                        51.4242895
+                    ],
+                    [
+                        -3.5855774,
+                        51.41468
+                    ],
+                    [
+                        -3.5778727,
+                        51.3329177
+                    ],
+                    [
+                        -3.0796364,
+                        51.3329177
+                    ],
+                    [
+                        -3.0770682,
+                        51.2494018
+                    ],
+                    [
+                        -3.7216935,
+                        51.2381477
+                    ],
+                    [
+                        -3.7216935,
+                        51.2558315
+                    ],
+                    [
+                        -3.8706508,
+                        51.2558315
+                    ],
+                    [
+                        -3.8680825,
+                        51.2365398
+                    ],
+                    [
+                        -4.2944084,
+                        51.2252825
+                    ],
+                    [
+                        -4.289272,
+                        51.0496352
+                    ],
+                    [
+                        -4.5692089,
+                        51.0431767
+                    ],
+                    [
+                        -4.5624122,
+                        50.9497388
+                    ],
+                    [
+                        -4.5905604,
+                        50.9520269
+                    ],
+                    [
+                        -4.5896524,
+                        50.8627065
+                    ],
+                    [
+                        -4.6296046,
+                        50.8592677
+                    ],
+                    [
+                        -4.6226411,
+                        50.7691513
+                    ],
+                    [
+                        -4.6952816,
+                        50.7680028
+                    ],
+                    [
+                        -4.6934655,
+                        50.6967379
+                    ],
+                    [
+                        -4.8342064,
+                        50.6938621
+                    ],
+                    [
+                        -4.8296664,
+                        50.6046231
+                    ],
+                    [
+                        -4.9676833,
+                        50.6000126
+                    ],
+                    [
+                        -4.9685913,
+                        50.5821427
+                    ],
+                    [
+                        -5.1084242,
+                        50.5786832
+                    ],
+                    [
+                        -5.1029762,
+                        50.4892254
+                    ],
+                    [
+                        -5.1311244,
+                        50.48807
+                    ],
+                    [
+                        -5.1274923,
+                        50.4163798
+                    ],
+                    [
+                        -5.2664172,
+                        50.4117509
+                    ],
+                    [
+                        -5.2609692,
+                        50.3034214
+                    ],
+                    [
+                        -5.5124868,
+                        50.2976214
+                    ],
+                    [
+                        -5.5061308,
+                        50.2256428
+                    ],
+                    [
+                        -5.6468717,
+                        50.2209953
+                    ]
+                ],
+                [
+                    [
+                        -5.1336607,
+                        55.2630226
+                    ],
+                    [
+                        -5.1021999,
+                        55.2639372
+                    ],
+                    [
+                        -5.0999527,
+                        55.2458239
+                    ],
+                    [
+                        -5.1322161,
+                        55.2446343
+                    ]
+                ],
+                [
+                    [
+                        -5.6431878,
+                        55.5095745
+                    ],
+                    [
+                        -5.4861028,
+                        55.5126594
+                    ],
+                    [
+                        -5.4715747,
+                        55.3348829
+                    ],
+                    [
+                        -5.6277517,
+                        55.3302345
+                    ]
+                ],
+                [
+                    [
+                        -4.7213517,
+                        51.2180246
+                    ],
+                    [
+                        -4.5804201,
+                        51.2212417
+                    ],
+                    [
+                        -4.5746416,
+                        51.1306736
+                    ],
+                    [
+                        -4.7174993,
+                        51.1280545
+                    ]
+                ],
+                [
+                    [
+                        -5.1608796,
+                        55.4153626
+                    ],
+                    [
+                        -5.0045387,
+                        55.4190069
+                    ],
+                    [
+                        -5.0184798,
+                        55.6153521
+                    ],
+                    [
+                        -5.1755648,
+                        55.6138137
+                    ]
+                ]
+            ],
+            "terms_url": "http://geo.nls.uk/maps/",
+            "terms_text": "National Library of Scotland Historic Maps"
+        },
+        {
+            "name": "NLS - OS 6-inch Scotland 1842-82",
+            "type": "tms",
+            "template": "http://geo.nls.uk/maps/os/six_inch/{zoom}/{x}/{-y}.png",
+            "scaleExtent": [
+                5,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        -5.2112173,
+                        54.8018593
+                    ],
+                    [
+                        -5.0642752,
+                        54.8026508
+                    ],
+                    [
+                        -5.0560354,
+                        54.6305176
+                    ],
+                    [
+                        -4.3158316,
+                        54.6297227
+                    ],
+                    [
+                        -4.3117117,
+                        54.7448258
+                    ],
+                    [
+                        -3.8530325,
+                        54.7464112
+                    ],
+                    [
+                        -3.8530325,
+                        54.8034424
+                    ],
+                    [
+                        -3.5522818,
+                        54.8034424
+                    ],
+                    [
+                        -3.5522818,
+                        54.8374644
+                    ],
+                    [
+                        -3.468511,
+                        54.8406277
+                    ],
+                    [
+                        -3.4657644,
+                        54.8983158
+                    ],
+                    [
+                        -3.3847403,
+                        54.8991055
+                    ],
+                    [
+                        -3.3888601,
+                        54.9559214
+                    ],
+                    [
+                        -3.0920786,
+                        54.9539468
+                    ],
+                    [
+                        -3.0392359,
+                        54.9923274
+                    ],
+                    [
+                        -3.0212713,
+                        55.0493881
+                    ],
+                    [
+                        -2.9591232,
+                        55.0463283
+                    ],
+                    [
+                        -2.9202807,
+                        55.0666294
+                    ],
+                    [
+                        -2.7857081,
+                        55.068652
+                    ],
+                    [
+                        -2.7852225,
+                        55.0914426
+                    ],
+                    [
+                        -2.7337562,
+                        55.0922761
+                    ],
+                    [
+                        -2.737616,
+                        55.151204
+                    ],
+                    [
+                        -2.7648395,
+                        55.1510672
+                    ],
+                    [
+                        -2.7013114,
+                        55.1722505
+                    ],
+                    [
+                        -2.6635459,
+                        55.2192808
+                    ],
+                    [
+                        -2.6460364,
+                        55.2188891
+                    ],
+                    [
+                        -2.629042,
+                        55.2233933
+                    ],
+                    [
+                        -2.6317886,
+                        55.2287781
+                    ],
+                    [
+                        -2.6235488,
+                        55.2446345
+                    ],
+                    [
+                        -2.6197723,
+                        55.2454663
+                    ],
+                    [
+                        -2.6099017,
+                        55.2454174
+                    ],
+                    [
+                        -2.6099876,
+                        55.2486466
+                    ],
+                    [
+                        -2.6408121,
+                        55.2590039
+                    ],
+                    [
+                        -2.6247896,
+                        55.2615631
+                    ],
+                    [
+                        -2.6045186,
+                        55.2823081
+                    ],
+                    [
+                        -2.5693176,
+                        55.296132
+                    ],
+                    [
+                        -2.5479542,
+                        55.3121617
+                    ],
+                    [
+                        -2.5091116,
+                        55.3234891
+                    ],
+                    [
+                        -2.4780376,
+                        55.3494471
+                    ],
+                    [
+                        -2.4421083,
+                        55.3533118
+                    ],
+                    [
+                        -2.4052079,
+                        55.3439256
+                    ],
+                    [
+                        -2.3726772,
+                        55.3447539
+                    ],
+                    [
+                        -2.3221819,
+                        55.3687665
+                    ],
+                    [
+                        -2.3241241,
+                        55.3999337
+                    ],
+                    [
+                        -2.2576062,
+                        55.425015
+                    ],
+                    [
+                        -2.1985547,
+                        55.4273529
+                    ],
+                    [
+                        -2.1484296,
+                        55.4717466
+                    ],
+                    [
+                        -2.1944348,
+                        55.484199
+                    ],
+                    [
+                        -2.2040479,
+                        55.529306
+                    ],
+                    [
+                        -2.2960584,
+                        55.6379722
+                    ],
+                    [
+                        -2.2177808,
+                        55.6379722
+                    ],
+                    [
+                        -2.1059266,
+                        55.7452498
+                    ],
+                    [
+                        -1.9716874,
+                        55.7462161
+                    ],
+                    [
+                        -1.9697453,
+                        55.9190951
+                    ],
+                    [
+                        -2.1201694,
+                        55.9207115
+                    ],
+                    [
+                        -2.1242893,
+                        55.9776133
+                    ],
+                    [
+                        -2.3440159,
+                        55.9783817
+                    ],
+                    [
+                        -2.3440159,
+                        56.0390349
+                    ],
+                    [
+                        -2.5046909,
+                        56.0413363
+                    ],
+                    [
+                        -2.500571,
+                        56.1003588
+                    ],
+                    [
+                        -2.8823459,
+                        56.0957629
+                    ],
+                    [
+                        -2.8823459,
+                        56.1722898
+                    ],
+                    [
+                        -2.4126804,
+                        56.1692316
+                    ],
+                    [
+                        -2.4181736,
+                        56.2334017
+                    ],
+                    [
+                        -2.5857151,
+                        56.2303484
+                    ],
+                    [
+                        -2.5719822,
+                        56.3416356
+                    ],
+                    [
+                        -2.7257908,
+                        56.3462022
+                    ],
+                    [
+                        -2.7312839,
+                        56.4343808
+                    ],
+                    [
+                        -2.6928318,
+                        56.4343808
+                    ],
+                    [
+                        -2.6928318,
+                        56.4859769
+                    ],
+                    [
+                        -2.5307834,
+                        56.4935587
+                    ],
+                    [
+                        -2.5307834,
+                        56.570806
+                    ],
+                    [
+                        -2.5302878,
+                        56.6047947
+                    ],
+                    [
+                        -2.3732428,
+                        56.6044452
+                    ],
+                    [
+                        -2.3684363,
+                        56.7398824
+                    ],
+                    [
+                        -2.3292975,
+                        56.7398824
+                    ],
+                    [
+                        -2.3292975,
+                        56.7888065
+                    ],
+                    [
+                        -2.3145346,
+                        56.7891826
+                    ],
+                    [
+                        -2.3148779,
+                        56.7967036
+                    ],
+                    [
+                        -2.171369,
+                        56.7967036
+                    ],
+                    [
+                        -2.1703979,
+                        56.9710595
+                    ],
+                    [
+                        -2.0101725,
+                        56.9694716
+                    ],
+                    [
+                        -2.0101725,
+                        57.0846832
+                    ],
+                    [
+                        -2.0817687,
+                        57.085349
+                    ],
+                    [
+                        -2.0488097,
+                        57.1259963
+                    ],
+                    [
+                        -2.0409133,
+                        57.126369
+                    ],
+                    [
+                        -2.0383434,
+                        57.2411129
+                    ],
+                    [
+                        -1.878118,
+                        57.2421638
+                    ],
+                    [
+                        -1.8771469,
+                        57.2978175
+                    ],
+                    [
+                        -1.9868771,
+                        57.2983422
+                    ],
+                    [
+                        -1.9082209,
+                        57.3560063
+                    ],
+                    [
+                        -1.8752048,
+                        57.3560063
+                    ],
+                    [
+                        -1.8761758,
+                        57.3769527
+                    ],
+                    [
+                        -1.8120857,
+                        57.4120111
+                    ],
+                    [
+                        -1.7120661,
+                        57.4120111
+                    ],
+                    [
+                        -1.7034646,
+                        57.6441388
+                    ],
+                    [
+                        -1.8666032,
+                        57.6451781
+                    ],
+                    [
+                        -1.8646611,
+                        57.7033351
+                    ],
+                    [
+                        -3.1204292,
+                        57.7064705
+                    ],
+                    [
+                        -3.1218025,
+                        57.7504652
+                    ],
+                    [
+                        -3.4445259,
+                        57.7526635
+                    ],
+                    [
+                        -3.4472724,
+                        57.7138067
+                    ],
+                    [
+                        -3.5145637,
+                        57.7094052
+                    ],
+                    [
+                        -3.5118171,
+                        57.6939956
+                    ],
+                    [
+                        -3.7645027,
+                        57.6917938
+                    ],
+                    [
+                        -3.7672492,
+                        57.6344975
+                    ],
+                    [
+                        -3.842378,
+                        57.6288312
+                    ],
+                    [
+                        -3.8438346,
+                        57.5965825
+                    ],
+                    [
+                        -3.9414265,
+                        57.5916386
+                    ],
+                    [
+                        -3.9404554,
+                        57.6537782
+                    ],
+                    [
+                        -3.8894746,
+                        57.6529989
+                    ],
+                    [
+                        -3.8826772,
+                        57.7676408
+                    ],
+                    [
+                        -3.7224517,
+                        57.766087
+                    ],
+                    [
+                        -3.7195385,
+                        57.8819201
+                    ],
+                    [
+                        -3.9146888,
+                        57.8853352
+                    ],
+                    [
+                        -3.916062,
+                        57.9546243
+                    ],
+                    [
+                        -3.745774,
+                        57.9538956
+                    ],
+                    [
+                        -3.7471473,
+                        58.0688409
+                    ],
+                    [
+                        -3.5837256,
+                        58.0695672
+                    ],
+                    [
+                        -3.5837256,
+                        58.1116689
+                    ],
+                    [
+                        -3.4560096,
+                        58.1138452
+                    ],
+                    [
+                        -3.4544646,
+                        58.228503
+                    ],
+                    [
+                        -3.4379851,
+                        58.2283222
+                    ],
+                    [
+                        -3.4243233,
+                        58.2427725
+                    ],
+                    [
+                        -3.412307,
+                        58.2438567
+                    ],
+                    [
+                        -3.3735115,
+                        58.2695057
+                    ],
+                    [
+                        -3.3063919,
+                        58.2862038
+                    ],
+                    [
+                        -3.1229154,
+                        58.2859395
+                    ],
+                    [
+                        -3.123602,
+                        58.3443661
+                    ],
+                    [
+                        -2.9574338,
+                        58.3447264
+                    ],
+                    [
+                        -2.951254,
+                        58.6422011
+                    ],
+                    [
+                        -2.8812162,
+                        58.6429157
+                    ],
+                    [
+                        -2.8851004,
+                        58.8112825
+                    ],
+                    [
+                        -2.7180775,
+                        58.8142997
+                    ],
+                    [
+                        -2.7161354,
+                        58.8715749
+                    ],
+                    [
+                        -2.556881,
+                        58.8775984
+                    ],
+                    [
+                        -2.5544533,
+                        58.9923453
+                    ],
+                    [
+                        -2.5567617,
+                        59.0483775
+                    ],
+                    [
+                        -2.391893,
+                        59.0485996
+                    ],
+                    [
+                        -2.3918002,
+                        59.1106996
+                    ],
+                    [
+                        -2.4733695,
+                        59.1106996
+                    ],
+                    [
+                        -2.5591563,
+                        59.1783028
+                    ],
+                    [
+                        -2.5630406,
+                        59.2210646
+                    ],
+                    [
+                        -2.3921334,
+                        59.224046
+                    ],
+                    [
+                        -2.3911409,
+                        59.2740075
+                    ],
+                    [
+                        -2.3639512,
+                        59.2745036
+                    ],
+                    [
+                        -2.3658933,
+                        59.285417
+                    ],
+                    [
+                        -2.3911409,
+                        59.284921
+                    ],
+                    [
+                        -2.3911409,
+                        59.3379505
+                    ],
+                    [
+                        -2.2221759,
+                        59.3381981
+                    ],
+                    [
+                        -2.2233897,
+                        59.395965
+                    ],
+                    [
+                        -2.3758467,
+                        59.396583
+                    ],
+                    [
+                        -2.3899271,
+                        59.4026383
+                    ],
+                    [
+                        -2.4008516,
+                        59.3962122
+                    ],
+                    [
+                        -2.5637882,
+                        59.3952604
+                    ],
+                    [
+                        -2.5637882,
+                        59.3385811
+                    ],
+                    [
+                        -2.7320164,
+                        59.3375306
+                    ],
+                    [
+                        -2.7333896,
+                        59.3952604
+                    ],
+                    [
+                        -3.0726511,
+                        59.3931174
+                    ],
+                    [
+                        -3.0703404,
+                        59.3354759
+                    ],
+                    [
+                        -3.0753186,
+                        59.3355634
+                    ],
+                    [
+                        -3.0749753,
+                        59.3292593
+                    ],
+                    [
+                        -3.0698254,
+                        59.3289091
+                    ],
+                    [
+                        -3.069801,
+                        59.2196159
+                    ],
+                    [
+                        -3.2363384,
+                        59.2166341
+                    ],
+                    [
+                        -3.2336751,
+                        59.1606496
+                    ],
+                    [
+                        -3.4032766,
+                        59.1588895
+                    ],
+                    [
+                        -3.394086,
+                        58.9279316
+                    ],
+                    [
+                        -3.5664497,
+                        58.9259268
+                    ],
+                    [
+                        -3.5611089,
+                        58.8679885
+                    ],
+                    [
+                        -3.392508,
+                        58.8699339
+                    ],
+                    [
+                        -3.3894734,
+                        58.8698711
+                    ],
+                    [
+                        -3.3891093,
+                        58.8684905
+                    ],
+                    [
+                        -3.3912942,
+                        58.868616
+                    ],
+                    [
+                        -3.3884161,
+                        58.7543084
+                    ],
+                    [
+                        -3.2238208,
+                        58.7555677
+                    ],
+                    [
+                        -3.2189655,
+                        58.691289
+                    ],
+                    [
+                        -3.4634113,
+                        58.6905753
+                    ],
+                    [
+                        -3.4551716,
+                        58.6341518
+                    ],
+                    [
+                        -3.787508,
+                        58.6341518
+                    ],
+                    [
+                        -3.7861347,
+                        58.5769211
+                    ],
+                    [
+                        -3.9028645,
+                        58.5733411
+                    ],
+                    [
+                        -3.9028645,
+                        58.6477304
+                    ],
+                    [
+                        -4.0690327,
+                        58.6491594
+                    ],
+                    [
+                        -4.0690327,
+                        58.5912376
+                    ],
+                    [
+                        -4.7364521,
+                        58.5933845
+                    ],
+                    [
+                        -4.7364521,
+                        58.6505884
+                    ],
+                    [
+                        -5.0715351,
+                        58.6520173
+                    ],
+                    [
+                        -5.0654779,
+                        58.5325854
+                    ],
+                    [
+                        -5.2332047,
+                        58.5316087
+                    ],
+                    [
+                        -5.2283494,
+                        58.4719947
+                    ],
+                    [
+                        -5.2424298,
+                        58.4719947
+                    ],
+                    [
+                        -5.2366034,
+                        58.4089731
+                    ],
+                    [
+                        -5.2283494,
+                        58.4094818
+                    ],
+                    [
+                        -5.2210664,
+                        58.3005859
+                    ],
+                    [
+                        -5.5657939,
+                        58.2959933
+                    ],
+                    [
+                        -5.5580254,
+                        58.2372573
+                    ],
+                    [
+                        -5.4146722,
+                        58.2401326
+                    ],
+                    [
+                        -5.4141866,
+                        58.2267768
+                    ],
+                    [
+                        -5.3885749,
+                        58.2272242
+                    ],
+                    [
+                        -5.382714,
+                        58.1198615
+                    ],
+                    [
+                        -5.51043,
+                        58.1191362
+                    ],
+                    [
+                        -5.5114011,
+                        58.006214
+                    ],
+                    [
+                        -5.6745397,
+                        58.0041559
+                    ],
+                    [
+                        -5.6716266,
+                        57.9449366
+                    ],
+                    [
+                        -5.6716266,
+                        57.8887166
+                    ],
+                    [
+                        -5.8347652,
+                        57.8856193
+                    ],
+                    [
+                        -5.8277052,
+                        57.5988958
+                    ],
+                    [
+                        -6.0384259,
+                        57.5986357
+                    ],
+                    [
+                        -6.0389115,
+                        57.6459559
+                    ],
+                    [
+                        -6.1981658,
+                        57.6456961
+                    ],
+                    [
+                        -6.2076123,
+                        57.7600132
+                    ],
+                    [
+                        -6.537067,
+                        57.7544033
+                    ],
+                    [
+                        -6.5312406,
+                        57.6402392
+                    ],
+                    [
+                        -6.7002056,
+                        57.6360809
+                    ],
+                    [
+                        -6.6807844,
+                        57.5236293
+                    ],
+                    [
+                        -6.8516915,
+                        57.5152857
+                    ],
+                    [
+                        -6.8361545,
+                        57.3385811
+                    ],
+                    [
+                        -6.6730158,
+                        57.3438213
+                    ],
+                    [
+                        -6.674958,
+                        57.2850883
+                    ],
+                    [
+                        -6.5098772,
+                        57.2850883
+                    ],
+                    [
+                        -6.4982244,
+                        57.1757637
+                    ],
+                    [
+                        -6.3506228,
+                        57.1820797
+                    ],
+                    [
+                        -6.3312015,
+                        57.1251969
+                    ],
+                    [
+                        -6.1797156,
+                        57.1230884
+                    ],
+                    [
+                        -6.1719471,
+                        57.0682265
+                    ],
+                    [
+                        -6.4593819,
+                        57.059779
+                    ],
+                    [
+                        -6.4564687,
+                        57.1093806
+                    ],
+                    [
+                        -6.6671895,
+                        57.1062165
+                    ],
+                    [
+                        -6.6730158,
+                        57.002708
+                    ],
+                    [
+                        -6.5021087,
+                        57.0048233
+                    ],
+                    [
+                        -6.4836097,
+                        56.8917522
+                    ],
+                    [
+                        -6.3266104,
+                        56.8894062
+                    ],
+                    [
+                        -6.3156645,
+                        56.7799312
+                    ],
+                    [
+                        -6.2146739,
+                        56.775675
+                    ],
+                    [
+                        -6.2146739,
+                        56.7234965
+                    ],
+                    [
+                        -6.6866107,
+                        56.7224309
+                    ],
+                    [
+                        -6.6769001,
+                        56.6114413
+                    ],
+                    [
+                        -6.8419809,
+                        56.607166
+                    ],
+                    [
+                        -6.8400387,
+                        56.5483307
+                    ],
+                    [
+                        -7.1546633,
+                        56.5461895
+                    ],
+                    [
+                        -7.1488369,
+                        56.4872592
+                    ],
+                    [
+                        -6.9915246,
+                        56.490476
+                    ],
+                    [
+                        -6.9876404,
+                        56.4325329
+                    ],
+                    [
+                        -6.6827265,
+                        56.4314591
+                    ],
+                    [
+                        -6.6769001,
+                        56.5472601
+                    ],
+                    [
+                        -6.5292985,
+                        56.5504717
+                    ],
+                    [
+                        -6.5234721,
+                        56.4379018
+                    ],
+                    [
+                        -6.3661598,
+                        56.4368281
+                    ],
+                    [
+                        -6.3642177,
+                        56.3766524
+                    ],
+                    [
+                        -6.5273563,
+                        56.3712749
+                    ],
+                    [
+                        -6.5171745,
+                        56.2428427
+                    ],
+                    [
+                        -6.4869621,
+                        56.247421
+                    ],
+                    [
+                        -6.4869621,
+                        56.1893882
+                    ],
+                    [
+                        -6.3001945,
+                        56.1985572
+                    ],
+                    [
+                        -6.3029411,
+                        56.2581017
+                    ],
+                    [
+                        -5.9019401,
+                        56.256576
+                    ],
+                    [
+                        -5.8964469,
+                        56.0960466
+                    ],
+                    [
+                        -6.0282829,
+                        56.0883855
+                    ],
+                    [
+                        -6.0392692,
+                        56.1557502
+                    ],
+                    [
+                        -6.3853385,
+                        56.1542205
+                    ],
+                    [
+                        -6.3606193,
+                        55.96099
+                    ],
+                    [
+                        -6.2123039,
+                        55.9640647
+                    ],
+                    [
+                        -6.2047508,
+                        55.9202269
+                    ],
+                    [
+                        -6.5185478,
+                        55.9129158
+                    ],
+                    [
+                        -6.5061881,
+                        55.7501763
+                    ],
+                    [
+                        -6.6764762,
+                        55.7409005
+                    ],
+                    [
+                        -6.6599967,
+                        55.6263176
+                    ],
+                    [
+                        -6.3551261,
+                        55.6232161
+                    ],
+                    [
+                        -6.3578727,
+                        55.5689002
+                    ],
+                    [
+                        -6.0392692,
+                        55.5720059
+                    ],
+                    [
+                        -6.0310294,
+                        55.6247669
+                    ],
+                    [
+                        -5.7398917,
+                        55.6309694
+                    ],
+                    [
+                        -5.7371452,
+                        55.4569279
+                    ],
+                    [
+                        -5.8964469,
+                        55.4600426
+                    ],
+                    [
+                        -5.8964469,
+                        55.2789864
+                    ],
+                    [
+                        -5.4350211,
+                        55.2821151
+                    ],
+                    [
+                        -5.4405143,
+                        55.4506979
+                    ],
+                    [
+                        -5.2867057,
+                        55.4569279
+                    ],
+                    [
+                        -5.3086784,
+                        55.4070602
+                    ],
+                    [
+                        -4.9735954,
+                        55.4008223
+                    ],
+                    [
+                        -4.9845817,
+                        55.2038242
+                    ],
+                    [
+                        -5.1493766,
+                        55.2038242
+                    ],
+                    [
+                        -5.1411369,
+                        55.037337
+                    ],
+                    [
+                        -5.2152946,
+                        55.0341891
+                    ]
+                ],
+                [
+                    [
+                        -2.1646559,
+                        60.1622059
+                    ],
+                    [
+                        -1.9930299,
+                        60.1609801
+                    ],
+                    [
+                        -1.9946862,
+                        60.1035151
+                    ],
+                    [
+                        -2.1663122,
+                        60.104743
+                    ]
+                ],
+                [
+                    [
+                        -1.5360658,
+                        59.8570831
+                    ],
+                    [
+                        -1.3653566,
+                        59.8559841
+                    ],
+                    [
+                        -1.366847,
+                        59.7975565
+                    ],
+                    [
+                        -1.190628,
+                        59.7964199
+                    ],
+                    [
+                        -1.1862046,
+                        59.9695391
+                    ],
+                    [
+                        -1.0078652,
+                        59.9683948
+                    ],
+                    [
+                        -1.0041233,
+                        60.114145
+                    ],
+                    [
+                        -0.8360832,
+                        60.1130715
+                    ],
+                    [
+                        -0.834574,
+                        60.1716772
+                    ],
+                    [
+                        -1.0074262,
+                        60.1727795
+                    ],
+                    [
+                        -1.0052165,
+                        60.2583924
+                    ],
+                    [
+                        -0.8299659,
+                        60.2572778
+                    ],
+                    [
+                        -0.826979,
+                        60.3726551
+                    ],
+                    [
+                        -0.6507514,
+                        60.3715381
+                    ],
+                    [
+                        -0.6477198,
+                        60.4882292
+                    ],
+                    [
+                        -0.9984896,
+                        60.4904445
+                    ],
+                    [
+                        -0.9970279,
+                        60.546555
+                    ],
+                    [
+                        -0.6425288,
+                        60.5443201
+                    ],
+                    [
+                        -0.6394896,
+                        60.6606792
+                    ],
+                    [
+                        -0.8148133,
+                        60.6617806
+                    ],
+                    [
+                        -0.8132987,
+                        60.7196112
+                    ],
+                    [
+                        -0.6383298,
+                        60.7185141
+                    ],
+                    [
+                        -0.635467,
+                        60.8275393
+                    ],
+                    [
+                        -0.797568,
+                        60.8285523
+                    ],
+                    [
+                        -0.9941426,
+                        60.8297807
+                    ],
+                    [
+                        -0.9954966,
+                        60.7782667
+                    ],
+                    [
+                        -1.1670282,
+                        60.7793403
+                    ],
+                    [
+                        -1.1700357,
+                        60.6646181
+                    ],
+                    [
+                        -1.5222599,
+                        60.6668304
+                    ],
+                    [
+                        -1.5237866,
+                        60.6084426
+                    ],
+                    [
+                        -1.6975673,
+                        60.609536
+                    ],
+                    [
+                        -1.7021271,
+                        60.4345249
+                    ],
+                    [
+                        -1.5260578,
+                        60.4334111
+                    ],
+                    [
+                        -1.5275203,
+                        60.3770719
+                    ],
+                    [
+                        -1.8751127,
+                        60.3792746
+                    ],
+                    [
+                        -1.8781372,
+                        60.2624647
+                    ],
+                    [
+                        -1.7019645,
+                        60.2613443
+                    ],
+                    [
+                        -1.7049134,
+                        60.1470532
+                    ],
+                    [
+                        -1.528659,
+                        60.1459283
+                    ]
+                ],
+                [
+                    [
+                        -0.9847667,
+                        60.8943762
+                    ],
+                    [
+                        -0.9860347,
+                        60.8361105
+                    ],
+                    [
+                        -0.8078362,
+                        60.8351904
+                    ],
+                    [
+                        -0.8065683,
+                        60.8934578
+                    ]
+                ],
+                [
+                    [
+                        -7.7696901,
+                        56.8788231
+                    ],
+                    [
+                        -7.7614504,
+                        56.7608274
+                    ],
+                    [
+                        -7.6009049,
+                        56.7641903
+                    ],
+                    [
+                        -7.5972473,
+                        56.819332
+                    ],
+                    [
+                        -7.4479894,
+                        56.8203948
+                    ],
+                    [
+                        -7.4489319,
+                        56.8794098
+                    ],
+                    [
+                        -7.2841369,
+                        56.8794098
+                    ],
+                    [
+                        -7.2813904,
+                        57.0471152
+                    ],
+                    [
+                        -7.1303283,
+                        57.0515969
+                    ],
+                    [
+                        -7.1330749,
+                        57.511801
+                    ],
+                    [
+                        -6.96828,
+                        57.5147514
+                    ],
+                    [
+                        -6.9765198,
+                        57.6854668
+                    ],
+                    [
+                        -6.8062317,
+                        57.6913392
+                    ],
+                    [
+                        -6.8089782,
+                        57.8041985
+                    ],
+                    [
+                        -6.6496765,
+                        57.8071252
+                    ],
+                    [
+                        -6.6441833,
+                        57.8612267
+                    ],
+                    [
+                        -6.3200866,
+                        57.8626878
+                    ],
+                    [
+                        -6.3200866,
+                        58.1551617
+                    ],
+                    [
+                        -6.1607849,
+                        58.1522633
+                    ],
+                    [
+                        -6.1552917,
+                        58.20874
+                    ],
+                    [
+                        -5.9850036,
+                        58.2101869
+                    ],
+                    [
+                        -5.9904968,
+                        58.2680163
+                    ],
+                    [
+                        -6.1497986,
+                        58.2665717
+                    ],
+                    [
+                        -6.1415588,
+                        58.5557514
+                    ],
+                    [
+                        -6.3173401,
+                        58.5557514
+                    ],
+                    [
+                        -6.3091003,
+                        58.4983923
+                    ],
+                    [
+                        -6.4876282,
+                        58.4955218
+                    ],
+                    [
+                        -6.4876282,
+                        58.4423768
+                    ],
+                    [
+                        -6.6606628,
+                        58.4395018
+                    ],
+                    [
+                        -6.6469299,
+                        58.3819525
+                    ],
+                    [
+                        -6.8117248,
+                        58.3805125
+                    ],
+                    [
+                        -6.8117248,
+                        58.3286357
+                    ],
+                    [
+                        -6.9792663,
+                        58.3286357
+                    ],
+                    [
+                        -6.9710266,
+                        58.2694608
+                    ],
+                    [
+                        -7.1413147,
+                        58.2680163
+                    ],
+                    [
+                        -7.1403816,
+                        58.0358742
+                    ],
+                    [
+                        -7.3020636,
+                        58.0351031
+                    ],
+                    [
+                        -7.3030347,
+                        57.9774797
+                    ],
+                    [
+                        -7.1379539,
+                        57.9777372
+                    ],
+                    [
+                        -7.1413526,
+                        57.9202792
+                    ],
+                    [
+                        -7.1398961,
+                        57.8640206
+                    ],
+                    [
+                        -7.3020636,
+                        57.862471
+                    ],
+                    [
+                        -7.298484,
+                        57.7442293
+                    ],
+                    [
+                        -7.4509193,
+                        57.7456951
+                    ],
+                    [
+                        -7.4550392,
+                        57.6899522
+                    ],
+                    [
+                        -7.6186131,
+                        57.6906048
+                    ],
+                    [
+                        -7.6198341,
+                        57.7456951
+                    ],
+                    [
+                        -7.7901222,
+                        57.7442293
+                    ],
+                    [
+                        -7.7873756,
+                        57.6855477
+                    ],
+                    [
+                        -7.6222332,
+                        57.6853817
+                    ],
+                    [
+                        -7.6173779,
+                        57.5712602
+                    ],
+                    [
+                        -7.788285,
+                        57.5709998
+                    ],
+                    [
+                        -7.7892561,
+                        57.512109
+                    ],
+                    [
+                        -7.7038025,
+                        57.5115874
+                    ],
+                    [
+                        -7.6999183,
+                        57.4546902
+                    ],
+                    [
+                        -7.5367796,
+                        57.4552126
+                    ],
+                    [
+                        -7.5348375,
+                        57.5126306
+                    ],
+                    [
+                        -7.4581235,
+                        57.5131521
+                    ],
+                    [
+                        -7.4552103,
+                        57.2824165
+                    ],
+                    [
+                        -7.6115515,
+                        57.2845158
+                    ],
+                    [
+                        -7.6144647,
+                        57.2272651
+                    ],
+                    [
+                        -7.451326,
+                        57.2256881
+                    ],
+                    [
+                        -7.451326,
+                        57.1103873
+                    ],
+                    [
+                        -7.6164068,
+                        57.1088053
+                    ],
+                    [
+                        -7.603783,
+                        56.8792358
+                    ]
+                ],
+                [
+                    [
+                        -1.7106618,
+                        59.5626284
+                    ],
+                    [
+                        -1.5417509,
+                        59.562215
+                    ],
+                    [
+                        -1.5423082,
+                        59.5037224
+                    ],
+                    [
+                        -1.7112191,
+                        59.5041365
+                    ]
+                ]
+            ],
+            "terms_url": "http://geo.nls.uk/maps/",
+            "terms_text": "National Library of Scotland Historic Maps"
+        },
+        {
+            "name": "OS 1:25k historic (OSM)",
+            "type": "tms",
+            "template": "http://ooc.openstreetmap.org/os1/{zoom}/{x}/{y}.jpg",
+            "scaleExtent": [
+                6,
+                17
+            ],
+            "polygon": [
+                [
+                    [
+                        -9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        49.8
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "OS New Popular Edition historic",
+            "type": "tms",
+            "template": "http://ooc.openstreetmap.org/npe/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        -5.8,
+                        49.8
+                    ],
+                    [
+                        -5.8,
+                        55.8
+                    ],
+                    [
+                        1.9,
+                        55.8
+                    ],
+                    [
+                        1.9,
+                        49.8
+                    ],
+                    [
+                        -5.8,
+                        49.8
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "OS OpenData Locator",
+            "type": "tms",
+            "template": "http://tiles.itoworld.com/os_locator/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        -9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        61.1
+                    ],
+                    [
+                        1.9,
+                        49.8
+                    ],
+                    [
+                        -9,
+                        49.8
+                    ]
+                ]
+            ],
+            "overlay": true
+        },
+        {
+            "name": "OS OpenData StreetView",
+            "type": "tms",
+            "template": "http://os.openstreetmap.org/sv/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                1,
+                18
+            ],
+            "polygon": [
+                [
+                    [
+                        -5.8292886,
+                        50.0229734
+                    ],
+                    [
+                        -5.8292886,
+                        50.254819
+                    ],
+                    [
+                        -5.373356,
+                        50.254819
+                    ],
+                    [
+                        -5.373356,
+                        50.3530588
+                    ],
+                    [
+                        -5.1756021,
+                        50.3530588
+                    ],
+                    [
+                        -5.1756021,
+                        50.5925406
+                    ],
+                    [
+                        -4.9970743,
+                        50.5925406
+                    ],
+                    [
+                        -4.9970743,
+                        50.6935617
+                    ],
+                    [
+                        -4.7965738,
+                        50.6935617
+                    ],
+                    [
+                        -4.7965738,
+                        50.7822112
+                    ],
+                    [
+                        -4.6949503,
+                        50.7822112
+                    ],
+                    [
+                        -4.6949503,
+                        50.9607371
+                    ],
+                    [
+                        -4.6043131,
+                        50.9607371
+                    ],
+                    [
+                        -4.6043131,
+                        51.0692066
+                    ],
+                    [
+                        -4.3792215,
+                        51.0692066
+                    ],
+                    [
+                        -4.3792215,
+                        51.2521782
+                    ],
+                    [
+                        -3.9039346,
+                        51.2521782
+                    ],
+                    [
+                        -3.9039346,
+                        51.2916998
+                    ],
+                    [
+                        -3.7171671,
+                        51.2916998
+                    ],
+                    [
+                        -3.7171671,
+                        51.2453014
+                    ],
+                    [
+                        -3.1486246,
+                        51.2453014
+                    ],
+                    [
+                        -3.1486246,
+                        51.362067
+                    ],
+                    [
+                        -3.7446329,
+                        51.362067
+                    ],
+                    [
+                        -3.7446329,
+                        51.4340386
+                    ],
+                    [
+                        -3.8297769,
+                        51.4340386
+                    ],
+                    [
+                        -3.8297769,
+                        51.5298246
+                    ],
+                    [
+                        -4.0852091,
+                        51.5298246
+                    ],
+                    [
+                        -4.0852091,
+                        51.4939284
+                    ],
+                    [
+                        -4.3792215,
+                        51.4939284
+                    ],
+                    [
+                        -4.3792215,
+                        51.5427168
+                    ],
+                    [
+                        -5.1444195,
+                        51.5427168
+                    ],
+                    [
+                        -5.1444195,
+                        51.6296003
+                    ],
+                    [
+                        -5.7387103,
+                        51.6296003
+                    ],
+                    [
+                        -5.7387103,
+                        51.774037
+                    ],
+                    [
+                        -5.5095393,
+                        51.774037
+                    ],
+                    [
+                        -5.5095393,
+                        51.9802596
+                    ],
+                    [
+                        -5.198799,
+                        51.9802596
+                    ],
+                    [
+                        -5.198799,
+                        52.0973358
+                    ],
+                    [
+                        -4.8880588,
+                        52.0973358
+                    ],
+                    [
+                        -4.8880588,
+                        52.1831557
+                    ],
+                    [
+                        -4.4957492,
+                        52.1831557
+                    ],
+                    [
+                        -4.4957492,
+                        52.2925739
+                    ],
+                    [
+                        -4.3015365,
+                        52.2925739
+                    ],
+                    [
+                        -4.3015365,
+                        52.3685318
+                    ],
+                    [
+                        -4.1811246,
+                        52.3685318
+                    ],
+                    [
+                        -4.1811246,
+                        52.7933685
+                    ],
+                    [
+                        -4.4413696,
+                        52.7933685
+                    ],
+                    [
+                        -4.4413696,
+                        52.7369614
+                    ],
+                    [
+                        -4.8569847,
+                        52.7369614
+                    ],
+                    [
+                        -4.8569847,
+                        52.9317255
+                    ],
+                    [
+                        -4.7288044,
+                        52.9317255
+                    ],
+                    [
+                        -4.7288044,
+                        53.5038599
+                    ],
+                    [
+                        -4.1578191,
+                        53.5038599
+                    ],
+                    [
+                        -4.1578191,
+                        53.4113498
+                    ],
+                    [
+                        -3.3110518,
+                        53.4113498
+                    ],
+                    [
+                        -3.3110518,
+                        53.5038599
+                    ],
+                    [
+                        -3.2333667,
+                        53.5038599
+                    ],
+                    [
+                        -3.2333667,
+                        54.0159169
+                    ],
+                    [
+                        -3.3926211,
+                        54.0159169
+                    ],
+                    [
+                        -3.3926211,
+                        54.1980953
+                    ],
+                    [
+                        -3.559644,
+                        54.1980953
+                    ],
+                    [
+                        -3.559644,
+                        54.433732
+                    ],
+                    [
+                        -3.7188984,
+                        54.433732
+                    ],
+                    [
+                        -3.7188984,
+                        54.721897
+                    ],
+                    [
+                        -4.3015365,
+                        54.721897
+                    ],
+                    [
+                        -4.3015365,
+                        54.6140739
+                    ],
+                    [
+                        -5.0473132,
+                        54.6140739
+                    ],
+                    [
+                        -5.0473132,
+                        54.7532915
+                    ],
+                    [
+                        -5.2298731,
+                        54.7532915
+                    ],
+                    [
+                        -5.2298731,
+                        55.2190799
+                    ],
+                    [
+                        -5.6532567,
+                        55.2190799
+                    ],
+                    [
+                        -5.6532567,
+                        55.250088
+                    ],
+                    [
+                        -5.8979647,
+                        55.250088
+                    ],
+                    [
+                        -5.8979647,
+                        55.4822462
+                    ],
+                    [
+                        -6.5933212,
+                        55.4822462
+                    ],
+                    [
+                        -6.5933212,
+                        56.3013441
+                    ],
+                    [
+                        -7.1727691,
+                        56.3013441
+                    ],
+                    [
+                        -7.1727691,
+                        56.5601822
+                    ],
+                    [
+                        -6.8171722,
+                        56.5601822
+                    ],
+                    [
+                        -6.8171722,
+                        56.6991713
+                    ],
+                    [
+                        -6.5315276,
+                        56.6991713
+                    ],
+                    [
+                        -6.5315276,
+                        56.9066964
+                    ],
+                    [
+                        -6.811679,
+                        56.9066964
+                    ],
+                    [
+                        -6.811679,
+                        57.3716613
+                    ],
+                    [
+                        -6.8721038,
+                        57.3716613
+                    ],
+                    [
+                        -6.8721038,
+                        57.5518893
+                    ],
+                    [
+                        -7.0973235,
+                        57.5518893
+                    ],
+                    [
+                        -7.0973235,
+                        57.2411085
+                    ],
+                    [
+                        -7.1742278,
+                        57.2411085
+                    ],
+                    [
+                        -7.1742278,
+                        56.9066964
+                    ],
+                    [
+                        -7.3719817,
+                        56.9066964
+                    ],
+                    [
+                        -7.3719817,
+                        56.8075885
+                    ],
+                    [
+                        -7.5202972,
+                        56.8075885
+                    ],
+                    [
+                        -7.5202972,
+                        56.7142479
+                    ],
+                    [
+                        -7.8306806,
+                        56.7142479
+                    ],
+                    [
+                        -7.8306806,
+                        56.8994605
+                    ],
+                    [
+                        -7.6494061,
+                        56.8994605
+                    ],
+                    [
+                        -7.6494061,
+                        57.4739617
+                    ],
+                    [
+                        -7.8306806,
+                        57.4739617
+                    ],
+                    [
+                        -7.8306806,
+                        57.7915584
+                    ],
+                    [
+                        -7.4736249,
+                        57.7915584
+                    ],
+                    [
+                        -7.4736249,
+                        58.086063
+                    ],
+                    [
+                        -7.1879804,
+                        58.086063
+                    ],
+                    [
+                        -7.1879804,
+                        58.367197
+                    ],
+                    [
+                        -6.8034589,
+                        58.367197
+                    ],
+                    [
+                        -6.8034589,
+                        58.4155786
+                    ],
+                    [
+                        -6.638664,
+                        58.4155786
+                    ],
+                    [
+                        -6.638664,
+                        58.4673277
+                    ],
+                    [
+                        -6.5178143,
+                        58.4673277
+                    ],
+                    [
+                        -6.5178143,
+                        58.5625632
+                    ],
+                    [
+                        -6.0536224,
+                        58.5625632
+                    ],
+                    [
+                        -6.0536224,
+                        58.1568843
+                    ],
+                    [
+                        -6.1470062,
+                        58.1568843
+                    ],
+                    [
+                        -6.1470062,
+                        58.1105865
+                    ],
+                    [
+                        -6.2799798,
+                        58.1105865
+                    ],
+                    [
+                        -6.2799798,
+                        57.7122664
+                    ],
+                    [
+                        -6.1591302,
+                        57.7122664
+                    ],
+                    [
+                        -6.1591302,
+                        57.6667563
+                    ],
+                    [
+                        -5.9339104,
+                        57.6667563
+                    ],
+                    [
+                        -5.9339104,
+                        57.8892524
+                    ],
+                    [
+                        -5.80643,
+                        57.8892524
+                    ],
+                    [
+                        -5.80643,
+                        57.9621767
+                    ],
+                    [
+                        -5.6141692,
+                        57.9621767
+                    ],
+                    [
+                        -5.6141692,
+                        58.0911236
+                    ],
+                    [
+                        -5.490819,
+                        58.0911236
+                    ],
+                    [
+                        -5.490819,
+                        58.3733281
+                    ],
+                    [
+                        -5.3199118,
+                        58.3733281
+                    ],
+                    [
+                        -5.3199118,
+                        58.75015
+                    ],
+                    [
+                        -3.5719977,
+                        58.75015
+                    ],
+                    [
+                        -3.5719977,
+                        59.2091788
+                    ],
+                    [
+                        -3.1944501,
+                        59.2091788
+                    ],
+                    [
+                        -3.1944501,
+                        59.4759216
+                    ],
+                    [
+                        -2.243583,
+                        59.4759216
+                    ],
+                    [
+                        -2.243583,
+                        59.1388749
+                    ],
+                    [
+                        -2.4611012,
+                        59.1388749
+                    ],
+                    [
+                        -2.4611012,
+                        58.8185938
+                    ],
+                    [
+                        -2.7407675,
+                        58.8185938
+                    ],
+                    [
+                        -2.7407675,
+                        58.5804743
+                    ],
+                    [
+                        -2.9116746,
+                        58.5804743
+                    ],
+                    [
+                        -2.9116746,
+                        58.1157523
+                    ],
+                    [
+                        -3.4865441,
+                        58.1157523
+                    ],
+                    [
+                        -3.4865441,
+                        57.740386
+                    ],
+                    [
+                        -1.7153245,
+                        57.740386
+                    ],
+                    [
+                        -1.7153245,
+                        57.2225558
+                    ],
+                    [
+                        -1.9794538,
+                        57.2225558
+                    ],
+                    [
+                        -1.9794538,
+                        56.8760742
+                    ],
+                    [
+                        -2.1658979,
+                        56.8760742
+                    ],
+                    [
+                        -2.1658979,
+                        56.6333186
+                    ],
+                    [
+                        -2.3601106,
+                        56.6333186
+                    ],
+                    [
+                        -2.3601106,
+                        56.0477521
+                    ],
+                    [
+                        -1.9794538,
+                        56.0477521
+                    ],
+                    [
+                        -1.9794538,
+                        55.8650949
+                    ],
+                    [
+                        -1.4745008,
+                        55.8650949
+                    ],
+                    [
+                        -1.4745008,
+                        55.2499926
+                    ],
+                    [
+                        -1.3221997,
+                        55.2499926
+                    ],
+                    [
+                        -1.3221997,
+                        54.8221737
+                    ],
+                    [
+                        -1.0550014,
+                        54.8221737
+                    ],
+                    [
+                        -1.0550014,
+                        54.6746628
+                    ],
+                    [
+                        -0.6618765,
+                        54.6746628
+                    ],
+                    [
+                        -0.6618765,
+                        54.5527463
+                    ],
+                    [
+                        -0.3247617,
+                        54.5527463
+                    ],
+                    [
+                        -0.3247617,
+                        54.2865195
+                    ],
+                    [
+                        0.0092841,
+                        54.2865195
+                    ],
+                    [
+                        0.0092841,
+                        53.7938518
+                    ],
+                    [
+                        0.2081962,
+                        53.7938518
+                    ],
+                    [
+                        0.2081962,
+                        53.5217726
+                    ],
+                    [
+                        0.4163548,
+                        53.5217726
+                    ],
+                    [
+                        0.4163548,
+                        53.0298851
+                    ],
+                    [
+                        1.4273388,
+                        53.0298851
+                    ],
+                    [
+                        1.4273388,
+                        52.92021
+                    ],
+                    [
+                        1.8333912,
+                        52.92021
+                    ],
+                    [
+                        1.8333912,
+                        52.042488
+                    ],
+                    [
+                        1.5235504,
+                        52.042488
+                    ],
+                    [
+                        1.5235504,
+                        51.8261335
+                    ],
+                    [
+                        1.2697049,
+                        51.8261335
+                    ],
+                    [
+                        1.2697049,
+                        51.6967453
+                    ],
+                    [
+                        1.116651,
+                        51.6967453
+                    ],
+                    [
+                        1.116651,
+                        51.440346
+                    ],
+                    [
+                        1.5235504,
+                        51.440346
+                    ],
+                    [
+                        1.5235504,
+                        51.3331831
+                    ],
+                    [
+                        1.4507565,
+                        51.3331831
+                    ],
+                    [
+                        1.4507565,
+                        51.0207553
+                    ],
+                    [
+                        1.0699883,
+                        51.0207553
+                    ],
+                    [
+                        1.0699883,
+                        50.9008416
+                    ],
+                    [
+                        0.7788126,
+                        50.9008416
+                    ],
+                    [
+                        0.7788126,
+                        50.729843
+                    ],
+                    [
+                        -0.7255952,
+                        50.729843
+                    ],
+                    [
+                        -0.7255952,
+                        50.7038437
+                    ],
+                    [
+                        -1.0074383,
+                        50.7038437
+                    ],
+                    [
+                        -1.0074383,
+                        50.5736307
+                    ],
+                    [
+                        -2.3625252,
+                        50.5736307
+                    ],
+                    [
+                        -2.3625252,
+                        50.4846421
+                    ],
+                    [
+                        -2.4987805,
+                        50.4846421
+                    ],
+                    [
+                        -2.4987805,
+                        50.5736307
+                    ],
+                    [
+                        -3.4096378,
+                        50.5736307
+                    ],
+                    [
+                        -3.4096378,
+                        50.2057837
+                    ],
+                    [
+                        -3.6922446,
+                        50.2057837
+                    ],
+                    [
+                        -3.6922446,
+                        50.1347737
+                    ],
+                    [
+                        -5.005468,
+                        50.1347737
+                    ],
+                    [
+                        -5.005468,
+                        49.9474456
+                    ],
+                    [
+                        -5.2839506,
+                        49.9474456
+                    ],
+                    [
+                        -5.2839506,
+                        50.0229734
+                    ]
+                ],
+                [
+                    [
+                        -6.4580707,
+                        49.8673563
+                    ],
+                    [
+                        -6.4580707,
+                        49.9499935
+                    ],
+                    [
+                        -6.3978807,
+                        49.9499935
+                    ],
+                    [
+                        -6.3978807,
+                        50.0053797
+                    ],
+                    [
+                        -6.1799606,
+                        50.0053797
+                    ],
+                    [
+                        -6.1799606,
+                        49.9168614
+                    ],
+                    [
+                        -6.2540201,
+                        49.9168614
+                    ],
+                    [
+                        -6.2540201,
+                        49.8673563
+                    ]
+                ],
+                [
+                    [
+                        -5.8343165,
+                        49.932156
+                    ],
+                    [
+                        -5.8343165,
+                        49.9754641
+                    ],
+                    [
+                        -5.7683254,
+                        49.9754641
+                    ],
+                    [
+                        -5.7683254,
+                        49.932156
+                    ]
+                ],
+                [
+                    [
+                        -1.9483797,
+                        60.6885737
+                    ],
+                    [
+                        -1.9483797,
+                        60.3058841
+                    ],
+                    [
+                        -1.7543149,
+                        60.3058841
+                    ],
+                    [
+                        -1.7543149,
+                        60.1284428
+                    ],
+                    [
+                        -1.5754914,
+                        60.1284428
+                    ],
+                    [
+                        -1.5754914,
+                        59.797917
+                    ],
+                    [
+                        -1.0316959,
+                        59.797917
+                    ],
+                    [
+                        -1.0316959,
+                        60.0354518
+                    ],
+                    [
+                        -0.6626918,
+                        60.0354518
+                    ],
+                    [
+                        -0.6626918,
+                        60.9103862
+                    ],
+                    [
+                        -1.1034395,
+                        60.9103862
+                    ],
+                    [
+                        -1.1034395,
+                        60.8040022
+                    ],
+                    [
+                        -1.3506319,
+                        60.8040022
+                    ],
+                    [
+                        -1.3506319,
+                        60.6885737
+                    ]
+                ],
+                [
+                    [
+                        -2.203381,
+                        60.1968568
+                    ],
+                    [
+                        -2.203381,
+                        60.0929443
+                    ],
+                    [
+                        -1.9864011,
+                        60.0929443
+                    ],
+                    [
+                        -1.9864011,
+                        60.1968568
+                    ]
+                ],
+                [
+                    [
+                        -1.7543149,
+                        59.5698289
+                    ],
+                    [
+                        -1.7543149,
+                        59.4639383
+                    ],
+                    [
+                        -1.5373349,
+                        59.4639383
+                    ],
+                    [
+                        -1.5373349,
+                        59.5698289
+                    ]
+                ],
+                [
+                    [
+                        -4.5585981,
+                        59.1370518
+                    ],
+                    [
+                        -4.5585981,
+                        58.9569099
+                    ],
+                    [
+                        -4.2867004,
+                        58.9569099
+                    ],
+                    [
+                        -4.2867004,
+                        59.1370518
+                    ]
+                ],
+                [
+                    [
+                        -6.2787732,
+                        59.2025744
+                    ],
+                    [
+                        -6.2787732,
+                        59.0227769
+                    ],
+                    [
+                        -5.6650612,
+                        59.0227769
+                    ],
+                    [
+                        -5.6650612,
+                        59.2025744
+                    ]
+                ],
+                [
+                    [
+                        -8.7163482,
+                        57.9440556
+                    ],
+                    [
+                        -8.7163482,
+                        57.7305936
+                    ],
+                    [
+                        -8.3592926,
+                        57.7305936
+                    ],
+                    [
+                        -8.3592926,
+                        57.9440556
+                    ]
+                ],
+                [
+                    [
+                        -7.6077005,
+                        50.4021026
+                    ],
+                    [
+                        -7.6077005,
+                        50.2688657
+                    ],
+                    [
+                        -7.3907205,
+                        50.2688657
+                    ],
+                    [
+                        -7.3907205,
+                        50.4021026
+                    ]
+                ],
+                [
+                    [
+                        -7.7304303,
+                        58.3579902
+                    ],
+                    [
+                        -7.7304303,
+                        58.248313
+                    ],
+                    [
+                        -7.5134503,
+                        58.248313
+                    ],
+                    [
+                        -7.5134503,
+                        58.3579902
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "OS Scottish Popular historic",
+            "type": "tms",
+            "template": "http://ooc.openstreetmap.org/npescotland/tiles/{zoom}/{x}/{y}.jpg",
+            "scaleExtent": [
+                6,
+                15
+            ],
+            "polygon": [
+                [
+                    [
+                        -7.8,
+                        54.5
+                    ],
+                    [
+                        -7.8,
+                        61.1
+                    ],
+                    [
+                        -1.1,
+                        61.1
+                    ],
+                    [
+                        -1.1,
+                        54.5
+                    ],
+                    [
+                        -7.8,
+                        54.5
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "OpenPT Map (overlay)",
+            "type": "tms",
+            "template": "http://openptmap.de/tiles/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                5,
+                16
+            ],
+            "polygon": [
+                [
+                    [
+                        6.4901072,
+                        53.665658
+                    ],
+                    [
+                        8.5665347,
+                        53.9848257
+                    ],
+                    [
+                        8.1339457,
+                        54.709715
+                    ],
+                    [
+                        8.317796,
+                        55.0952362
+                    ],
+                    [
+                        10.1887438,
+                        54.7783834
+                    ],
+                    [
+                        10.6321475,
+                        54.4778841
+                    ],
+                    [
+                        11.2702164,
+                        54.6221504
+                    ],
+                    [
+                        11.681176,
+                        54.3709243
+                    ],
+                    [
+                        12.0272473,
+                        54.3898199
+                    ],
+                    [
+                        13.3250145,
+                        54.8531617
+                    ],
+                    [
+                        13.9198245,
+                        54.6972173
+                    ],
+                    [
+                        14.2118221,
+                        54.1308273
+                    ],
+                    [
+                        14.493005,
+                        53.2665063
+                    ],
+                    [
+                        14.1577485,
+                        52.8766495
+                    ],
+                    [
+                        14.7525584,
+                        52.5819369
+                    ],
+                    [
+                        15.0986297,
+                        51.0171541
+                    ],
+                    [
+                        14.9364088,
+                        50.8399279
+                    ],
+                    [
+                        14.730929,
+                        50.7920977
+                    ],
+                    [
+                        14.4389313,
+                        50.8808862
+                    ],
+                    [
+                        12.9573138,
+                        50.3939044
+                    ],
+                    [
+                        12.51391,
+                        50.3939044
+                    ],
+                    [
+                        12.3084302,
+                        50.1173237
+                    ],
+                    [
+                        12.6112425,
+                        49.9088337
+                    ],
+                    [
+                        12.394948,
+                        49.7344006
+                    ],
+                    [
+                        12.7734634,
+                        49.4047626
+                    ],
+                    [
+                        14.1469337,
+                        48.6031036
+                    ],
+                    [
+                        14.6768553,
+                        48.6531391
+                    ],
+                    [
+                        15.0661855,
+                        49.0445497
+                    ],
+                    [
+                        16.2666202,
+                        48.7459305
+                    ],
+                    [
+                        16.4937294,
+                        48.8741286
+                    ],
+                    [
+                        16.904689,
+                        48.7173975
+                    ],
+                    [
+                        16.9371332,
+                        48.5315383
+                    ],
+                    [
+                        16.8384693,
+                        48.3823161
+                    ],
+                    [
+                        17.2017097,
+                        48.010204
+                    ],
+                    [
+                        17.1214145,
+                        47.6997605
+                    ],
+                    [
+                        16.777292,
+                        47.6585709
+                    ],
+                    [
+                        16.6090543,
+                        47.7460598
+                    ],
+                    [
+                        16.410228,
+                        47.6637214
+                    ],
+                    [
+                        16.7352326,
+                        47.6147714
+                    ],
+                    [
+                        16.5555242,
+                        47.3589738
+                    ],
+                    [
+                        16.4790525,
+                        46.9768539
+                    ],
+                    [
+                        16.0355168,
+                        46.8096295
+                    ],
+                    [
+                        16.0508112,
+                        46.6366332
+                    ],
+                    [
+                        14.9572663,
+                        46.6313822
+                    ],
+                    [
+                        14.574908,
+                        46.3892866
+                    ],
+                    [
+                        12.3954655,
+                        46.6891149
+                    ],
+                    [
+                        12.1507562,
+                        47.0550608
+                    ],
+                    [
+                        11.1183887,
+                        46.9142058
+                    ],
+                    [
+                        11.0342699,
+                        46.7729797
+                    ],
+                    [
+                        10.4836739,
+                        46.8462544
+                    ],
+                    [
+                        10.4607324,
+                        46.5472973
+                    ],
+                    [
+                        10.1013156,
+                        46.5735879
+                    ],
+                    [
+                        10.2007287,
+                        46.1831867
+                    ],
+                    [
+                        9.8948421,
+                        46.3629068
+                    ],
+                    [
+                        9.5966026,
+                        46.2889758
+                    ],
+                    [
+                        9.2983631,
+                        46.505206
+                    ],
+                    [
+                        9.2830687,
+                        46.2572605
+                    ],
+                    [
+                        9.0536537,
+                        45.7953255
+                    ],
+                    [
+                        8.4265861,
+                        46.2466846
+                    ],
+                    [
+                        8.4418804,
+                        46.4736161
+                    ],
+                    [
+                        7.8759901,
+                        45.9284607
+                    ],
+                    [
+                        7.0959791,
+                        45.8645956
+                    ],
+                    [
+                        6.7747981,
+                        46.1620044
+                    ],
+                    [
+                        6.8206811,
+                        46.4051083
+                    ],
+                    [
+                        6.5453831,
+                        46.4578142
+                    ],
+                    [
+                        6.3312624,
+                        46.3840116
+                    ],
+                    [
+                        6.3847926,
+                        46.2466846
+                    ],
+                    [
+                        5.8953739,
+                        46.0878021
+                    ],
+                    [
+                        6.1171418,
+                        46.3681838
+                    ],
+                    [
+                        6.0942003,
+                        46.5998657
+                    ],
+                    [
+                        6.4383228,
+                        46.7782169
+                    ],
+                    [
+                        6.4306756,
+                        46.9298747
+                    ],
+                    [
+                        7.0806847,
+                        47.3460216
+                    ],
+                    [
+                        6.8436226,
+                        47.3719227
+                    ],
+                    [
+                        6.9965659,
+                        47.5012373
+                    ],
+                    [
+                        7.1800979,
+                        47.5064033
+                    ],
+                    [
+                        7.2336281,
+                        47.439206
+                    ],
+                    [
+                        7.4553959,
+                        47.4805683
+                    ],
+                    [
+                        7.7842241,
+                        48.645735
+                    ],
+                    [
+                        8.1971711,
+                        49.0282701
+                    ],
+                    [
+                        7.6006921,
+                        49.0382974
+                    ],
+                    [
+                        7.4477487,
+                        49.1634679
+                    ],
+                    [
+                        7.2030394,
+                        49.1034255
+                    ],
+                    [
+                        6.6677378,
+                        49.1634679
+                    ],
+                    [
+                        6.6371491,
+                        49.3331933
+                    ],
+                    [
+                        6.3542039,
+                        49.4576194
+                    ],
+                    [
+                        6.5453831,
+                        49.8043366
+                    ],
+                    [
+                        6.2471436,
+                        49.873384
+                    ],
+                    [
+                        6.0789059,
+                        50.1534883
+                    ],
+                    [
+                        6.3618511,
+                        50.3685934
+                    ],
+                    [
+                        6.0865531,
+                        50.7039632
+                    ],
+                    [
+                        5.8800796,
+                        51.0513752
+                    ],
+                    [
+                        6.1247889,
+                        51.1618085
+                    ],
+                    [
+                        6.1936134,
+                        51.491527
+                    ],
+                    [
+                        5.9641984,
+                        51.7526501
+                    ],
+                    [
+                        6.0253758,
+                        51.8897286
+                    ],
+                    [
+                        6.4536171,
+                        51.8661241
+                    ],
+                    [
+                        6.8436226,
+                        51.9557552
+                    ],
+                    [
+                        6.6906793,
+                        52.0499105
+                    ],
+                    [
+                        7.0042131,
+                        52.2282603
+                    ],
+                    [
+                        7.0195074,
+                        52.4525245
+                    ],
+                    [
+                        6.6983264,
+                        52.4665032
+                    ],
+                    [
+                        6.6906793,
+                        52.6524628
+                    ],
+                    [
+                        7.0348017,
+                        52.6385432
+                    ],
+                    [
+                        7.0730376,
+                        52.8330151
+                    ],
+                    [
+                        7.2183337,
+                        52.9852064
+                    ],
+                    [
+                        7.1953922,
+                        53.3428087
+                    ],
+                    [
+                        7.0042131,
+                        53.3291098
+                    ]
+                ]
+            ],
+            "terms_url": "http://openstreetmap.org/",
+            "terms_text": "© OpenStreetMap contributors, CC-BY-SA"
+        },
+        {
+            "name": "OpenStreetMap (Mapnik)",
+            "type": "tms",
+            "description": "The default OpenStreetMap layer.",
+            "template": "http://tile.openstreetmap.org/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                18
+            ],
+            "terms_url": "http://openstreetmap.org/",
+            "terms_text": "© OpenStreetMap contributors, CC-BY-SA",
+            "default": true
+        },
+        {
+            "name": "OpenStreetMap GPS traces",
+            "type": "tms",
+            "description": "Public GPS traces uploaded to OpenStreetMap.",
+            "template": "http://{switch:a,b,c}.gps-tile.openstreetmap.org/lines/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                20
+            ],
+            "terms_url": "http://www.openstreetmap.org/copyright",
+            "terms_text": "© OpenStreetMap contributors",
+            "terms_html": "© <a href='http://www.openstreetmap.org/copyright'>OpenStreetMap contributors</a>. North: <span style='display: inline-block; width: 10px; height: 10px; background-color: #7fed11;'></span> South: <span style='display: inline-block; width: 10px; height: 10px; background-color: #7f11ed;'></span> East: <span style='display: inline-block; width: 10px; height: 10px; background-color: #ff3f3f;'></span> West: <span style='display: inline-block; width: 10px; height: 10px; background-color: #00bfbf;'></span>",
+            "overlay": true
+        },
+        {
+            "name": "Pangasinán/Bulacan (Phillipines HiRes)",
+            "type": "tms",
+            "template": "http://gravitystorm.dev.openstreetmap.org/imagery/philippines/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                12,
+                19
+            ],
+            "polygon": [
+                [
+                    [
+                        120.336593,
+                        15.985768
+                    ],
+                    [
+                        120.445995,
+                        15.984
+                    ],
+                    [
+                        120.446134,
+                        15.974459
+                    ],
+                    [
+                        120.476464,
+                        15.974592
+                    ],
+                    [
+                        120.594247,
+                        15.946832
+                    ],
+                    [
+                        120.598064,
+                        16.090795
+                    ],
+                    [
+                        120.596537,
+                        16.197999
+                    ],
+                    [
+                        120.368537,
+                        16.218527
+                    ],
+                    [
+                        120.347576,
+                        16.042308
+                    ],
+                    [
+                        120.336593,
+                        15.985768
+                    ]
+                ],
+                [
+                    [
+                        120.8268,
+                        15.3658
+                    ],
+                    [
+                        121.2684,
+                        15.2602
+                    ],
+                    [
+                        121.2699,
+                        14.7025
+                    ],
+                    [
+                        120.695,
+                        14.8423
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "Slovakia EEA CORINE 2006",
+            "type": "tms",
+            "template": "http://www.freemap.sk/tms/clc/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_url": "http://www.eea.europa.eu/data-and-maps/data/clc-2006-vector-data-version-1",
+            "terms_text": "EEA Corine 2006"
+        },
+        {
+            "name": "Slovakia EEA GMES Urban Atlas",
+            "type": "tms",
+            "template": "http://www.freemap.sk/tms/urbanatlas/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        19.83682,
+                        49.25529
+                    ],
+                    [
+                        19.80075,
+                        49.42385
+                    ],
+                    [
+                        19.60437,
+                        49.48058
+                    ],
+                    [
+                        19.49179,
+                        49.63961
+                    ],
+                    [
+                        19.21831,
+                        49.52604
+                    ],
+                    [
+                        19.16778,
+                        49.42521
+                    ],
+                    [
+                        19.00308,
+                        49.42236
+                    ],
+                    [
+                        18.97611,
+                        49.5308
+                    ],
+                    [
+                        18.54685,
+                        49.51425
+                    ],
+                    [
+                        18.31432,
+                        49.33818
+                    ],
+                    [
+                        18.15913,
+                        49.2961
+                    ],
+                    [
+                        18.05564,
+                        49.11134
+                    ],
+                    [
+                        17.56396,
+                        48.84938
+                    ],
+                    [
+                        17.17929,
+                        48.88816
+                    ],
+                    [
+                        17.058,
+                        48.81105
+                    ],
+                    [
+                        16.90426,
+                        48.61947
+                    ],
+                    [
+                        16.79685,
+                        48.38561
+                    ],
+                    [
+                        17.06762,
+                        48.01116
+                    ],
+                    [
+                        17.32787,
+                        47.97749
+                    ],
+                    [
+                        17.51699,
+                        47.82535
+                    ],
+                    [
+                        17.74776,
+                        47.73093
+                    ],
+                    [
+                        18.29515,
+                        47.72075
+                    ],
+                    [
+                        18.67959,
+                        47.75541
+                    ],
+                    [
+                        18.89755,
+                        47.81203
+                    ],
+                    [
+                        18.79463,
+                        47.88245
+                    ],
+                    [
+                        18.84318,
+                        48.04046
+                    ],
+                    [
+                        19.46212,
+                        48.05333
+                    ],
+                    [
+                        19.62064,
+                        48.22938
+                    ],
+                    [
+                        19.89585,
+                        48.09387
+                    ],
+                    [
+                        20.33766,
+                        48.2643
+                    ],
+                    [
+                        20.55395,
+                        48.52358
+                    ],
+                    [
+                        20.82335,
+                        48.55714
+                    ],
+                    [
+                        21.10271,
+                        48.47096
+                    ],
+                    [
+                        21.45863,
+                        48.55513
+                    ],
+                    [
+                        21.74536,
+                        48.31435
+                    ],
+                    [
+                        22.15293,
+                        48.37179
+                    ],
+                    [
+                        22.61255,
+                        49.08914
+                    ],
+                    [
+                        22.09997,
+                        49.23814
+                    ],
+                    [
+                        21.9686,
+                        49.36363
+                    ],
+                    [
+                        21.6244,
+                        49.46989
+                    ],
+                    [
+                        21.06873,
+                        49.46402
+                    ],
+                    [
+                        20.94336,
+                        49.31088
+                    ],
+                    [
+                        20.73052,
+                        49.44006
+                    ],
+                    [
+                        20.22804,
+                        49.41714
+                    ],
+                    [
+                        20.05234,
+                        49.23052
+                    ],
+                    [
+                        19.83682,
+                        49.25529
+                    ]
+                ]
+            ],
+            "terms_url": "http://www.eea.europa.eu/data-and-maps/data/urban-atlas",
+            "terms_text": "EEA GMES Urban Atlas"
+        },
+        {
+            "name": "Slovakia Historic Maps",
+            "type": "tms",
+            "template": "http://tms.freemap.sk/historicke/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                12
+            ],
+            "polygon": [
+                [
+                    [
+                        16.8196949,
+                        47.4927236
+                    ],
+                    [
+                        16.8196949,
+                        49.5030322
+                    ],
+                    [
+                        22.8388318,
+                        49.5030322
+                    ],
+                    [
+                        22.8388318,
+                        47.4927236
+                    ],
+                    [
+                        16.8196949,
+                        47.4927236
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "South Africa CD:NGI Aerial",
+            "type": "tms",
+            "template": "http://{switch:a,b,c}.aerial.openstreetmap.org.za/ngi-aerial/{zoom}/{x}/{y}.jpg",
+            "scaleExtent": [
+                1,
+                22
+            ],
+            "polygon": [
+                [
+                    [
+                        17.8396817,
+                        -32.7983384
+                    ],
+                    [
+                        17.8893509,
+                        -32.6972835
+                    ],
+                    [
+                        18.00364,
+                        -32.6982187
+                    ],
+                    [
+                        18.0991679,
+                        -32.7485251
+                    ],
+                    [
+                        18.2898747,
+                        -32.5526645
+                    ],
+                    [
+                        18.2930182,
+                        -32.0487089
+                    ],
+                    [
+                        18.105455,
+                        -31.6454966
+                    ],
+                    [
+                        17.8529257,
+                        -31.3443951
+                    ],
+                    [
+                        17.5480046,
+                        -30.902171
+                    ],
+                    [
+                        17.4044506,
+                        -30.6374731
+                    ],
+                    [
+                        17.2493704,
+                        -30.3991663
+                    ],
+                    [
+                        16.9936977,
+                        -29.6543552
+                    ],
+                    [
+                        16.7987996,
+                        -29.19437
+                    ],
+                    [
+                        16.5494139,
+                        -28.8415949
+                    ],
+                    [
+                        16.4498691,
+                        -28.691876
+                    ],
+                    [
+                        16.4491046,
+                        -28.5515766
+                    ],
+                    [
+                        16.6002551,
+                        -28.4825663
+                    ],
+                    [
+                        16.7514057,
+                        -28.4486958
+                    ],
+                    [
+                        16.7462192,
+                        -28.2458973
+                    ],
+                    [
+                        16.8855148,
+                        -28.04729
+                    ],
+                    [
+                        16.9929502,
+                        -28.0244005
+                    ],
+                    [
+                        17.0529659,
+                        -28.0257086
+                    ],
+                    [
+                        17.1007562,
+                        -28.0338839
+                    ],
+                    [
+                        17.2011527,
+                        -28.0930546
+                    ],
+                    [
+                        17.2026346,
+                        -28.2328424
+                    ],
+                    [
+                        17.2474611,
+                        -28.2338215
+                    ],
+                    [
+                        17.2507953,
+                        -28.198892
+                    ],
+                    [
+                        17.3511919,
+                        -28.1975861
+                    ],
+                    [
+                        17.3515624,
+                        -28.2442655
+                    ],
+                    [
+                        17.4015754,
+                        -28.2452446
+                    ],
+                    [
+                        17.4149122,
+                        -28.3489751
+                    ],
+                    [
+                        17.4008345,
+                        -28.547997
+                    ],
+                    [
+                        17.4526999,
+                        -28.5489733
+                    ],
+                    [
+                        17.4512071,
+                        -28.6495106
+                    ],
+                    [
+                        17.4983599,
+                        -28.6872054
+                    ],
+                    [
+                        17.6028204,
+                        -28.6830048
+                    ],
+                    [
+                        17.6499732,
+                        -28.6967928
+                    ],
+                    [
+                        17.6525928,
+                        -28.7381457
+                    ],
+                    [
+                        17.801386,
+                        -28.7381457
+                    ],
+                    [
+                        17.9994276,
+                        -28.7560602
+                    ],
+                    [
+                        18.0002748,
+                        -28.7956172
+                    ],
+                    [
+                        18.1574507,
+                        -28.8718055
+                    ],
+                    [
+                        18.5063811,
+                        -28.8718055
+                    ],
+                    [
+                        18.6153564,
+                        -28.8295875
+                    ],
+                    [
+                        18.9087513,
+                        -28.8277516
+                    ],
+                    [
+                        19.1046973,
+                        -28.9488548
+                    ],
+                    [
+                        19.1969071,
+                        -28.9378513
+                    ],
+                    [
+                        19.243012,
+                        -28.8516164
+                    ],
+                    [
+                        19.2314858,
+                        -28.802963
+                    ],
+                    [
+                        19.2587296,
+                        -28.7009928
+                    ],
+                    [
+                        19.4431493,
+                        -28.6973163
+                    ],
+                    [
+                        19.5500289,
+                        -28.4958332
+                    ],
+                    [
+                        19.6967264,
+                        -28.4939914
+                    ],
+                    [
+                        19.698822,
+                        -28.4479358
+                    ],
+                    [
+                        19.8507587,
+                        -28.4433291
+                    ],
+                    [
+                        19.8497109,
+                        -28.4027818
+                    ],
+                    [
+                        19.9953605,
+                        -28.399095
+                    ],
+                    [
+                        19.9893671,
+                        -24.7497859
+                    ],
+                    [
+                        20.2916682,
+                        -24.9192346
+                    ],
+                    [
+                        20.4724562,
+                        -25.1501701
+                    ],
+                    [
+                        20.6532441,
+                        -25.4529449
+                    ],
+                    [
+                        20.733265,
+                        -25.6801957
+                    ],
+                    [
+                        20.8281046,
+                        -25.8963498
+                    ],
+                    [
+                        20.8429232,
+                        -26.215851
+                    ],
+                    [
+                        20.6502804,
+                        -26.4840868
+                    ],
+                    [
+                        20.6532441,
+                        -26.8204869
+                    ],
+                    [
+                        21.0889134,
+                        -26.846933
+                    ],
+                    [
+                        21.6727695,
+                        -26.8389998
+                    ],
+                    [
+                        21.7765003,
+                        -26.6696268
+                    ],
+                    [
+                        21.9721069,
+                        -26.6431395
+                    ],
+                    [
+                        22.2803355,
+                        -26.3274702
+                    ],
+                    [
+                        22.5707817,
+                        -26.1333967
+                    ],
+                    [
+                        22.7752795,
+                        -25.6775246
+                    ],
+                    [
+                        23.0005235,
+                        -25.2761948
+                    ],
+                    [
+                        23.4658301,
+                        -25.2735148
+                    ],
+                    [
+                        23.883717,
+                        -25.597366
+                    ],
+                    [
+                        24.2364017,
+                        -25.613402
+                    ],
+                    [
+                        24.603905,
+                        -25.7896563
+                    ],
+                    [
+                        25.110704,
+                        -25.7389432
+                    ],
+                    [
+                        25.5078447,
+                        -25.6855376
+                    ],
+                    [
+                        25.6441766,
+                        -25.4823781
+                    ],
+                    [
+                        25.8419267,
+                        -24.7805437
+                    ],
+                    [
+                        25.846641,
+                        -24.7538456
+                    ],
+                    [
+                        26.3928487,
+                        -24.6332894
+                    ],
+                    [
+                        26.4739066,
+                        -24.5653312
+                    ],
+                    [
+                        26.5089966,
+                        -24.4842437
+                    ],
+                    [
+                        26.5861946,
+                        -24.4075775
+                    ],
+                    [
+                        26.7300635,
+                        -24.3014458
+                    ],
+                    [
+                        26.8567384,
+                        -24.2499463
+                    ],
+                    [
+                        26.8574402,
+                        -24.1026901
+                    ],
+                    [
+                        26.9215471,
+                        -23.8990957
+                    ],
+                    [
+                        26.931831,
+                        -23.8461891
+                    ],
+                    [
+                        26.9714827,
+                        -23.6994344
+                    ],
+                    [
+                        27.0006074,
+                        -23.6367644
+                    ],
+                    [
+                        27.0578041,
+                        -23.6052574
+                    ],
+                    [
+                        27.1360547,
+                        -23.5203437
+                    ],
+                    [
+                        27.3339623,
+                        -23.3973792
+                    ],
+                    [
+                        27.5144057,
+                        -23.3593929
+                    ],
+                    [
+                        27.5958145,
+                        -23.2085465
+                    ],
+                    [
+                        27.8098634,
+                        -23.0994957
+                    ],
+                    [
+                        27.8828506,
+                        -23.0620496
+                    ],
+                    [
+                        27.9382928,
+                        -22.9496487
+                    ],
+                    [
+                        28.0407556,
+                        -22.8255118
+                    ],
+                    [
+                        28.2056786,
+                        -22.6552861
+                    ],
+                    [
+                        28.3397223,
+                        -22.5639374
+                    ],
+                    [
+                        28.4906093,
+                        -22.560697
+                    ],
+                    [
+                        28.6108769,
+                        -22.5400248
+                    ],
+                    [
+                        28.828175,
+                        -22.4550173
+                    ],
+                    [
+                        28.9285324,
+                        -22.4232328
+                    ],
+                    [
+                        28.9594116,
+                        -22.3090081
+                    ],
+                    [
+                        29.0162574,
+                        -22.208335
+                    ],
+                    [
+                        29.2324117,
+                        -22.1693453
+                    ],
+                    [
+                        29.3531213,
+                        -22.1842926
+                    ],
+                    [
+                        29.6548952,
+                        -22.1186426
+                    ],
+                    [
+                        29.7777102,
+                        -22.1361956
+                    ],
+                    [
+                        29.9292989,
+                        -22.1849425
+                    ],
+                    [
+                        30.1166795,
+                        -22.2830348
+                    ],
+                    [
+                        30.2563377,
+                        -22.2914767
+                    ],
+                    [
+                        30.3033582,
+                        -22.3395204
+                    ],
+                    [
+                        30.5061784,
+                        -22.3057617
+                    ],
+                    [
+                        30.8374279,
+                        -22.284983
+                    ],
+                    [
+                        31.0058599,
+                        -22.3077095
+                    ],
+                    [
+                        31.1834152,
+                        -22.3232913
+                    ],
+                    [
+                        31.2930586,
+                        -22.3674647
+                    ],
+                    [
+                        31.5680579,
+                        -23.1903385
+                    ],
+                    [
+                        31.5568311,
+                        -23.4430809
+                    ],
+                    [
+                        31.6931122,
+                        -23.6175209
+                    ],
+                    [
+                        31.7119696,
+                        -23.741136
+                    ],
+                    [
+                        31.7774743,
+                        -23.8800628
+                    ],
+                    [
+                        31.8886337,
+                        -23.9481098
+                    ],
+                    [
+                        31.9144386,
+                        -24.1746736
+                    ],
+                    [
+                        31.9948307,
+                        -24.3040878
+                    ],
+                    [
+                        32.0166656,
+                        -24.4405988
+                    ],
+                    [
+                        32.0077331,
+                        -24.6536578
+                    ],
+                    [
+                        32.019643,
+                        -24.9140701
+                    ],
+                    [
+                        32.035523,
+                        -25.0849767
+                    ],
+                    [
+                        32.019643,
+                        -25.3821442
+                    ],
+                    [
+                        31.9928457,
+                        -25.4493771
+                    ],
+                    [
+                        31.9997931,
+                        -25.5165725
+                    ],
+                    [
+                        32.0057481,
+                        -25.6078978
+                    ],
+                    [
+                        32.0057481,
+                        -25.6624806
+                    ],
+                    [
+                        31.9362735,
+                        -25.8403721
+                    ],
+                    [
+                        31.9809357,
+                        -25.9546537
+                    ],
+                    [
+                        31.8687838,
+                        -26.0037251
+                    ],
+                    [
+                        31.4162062,
+                        -25.7277683
+                    ],
+                    [
+                        31.3229117,
+                        -25.7438611
+                    ],
+                    [
+                        31.2504595,
+                        -25.8296526
+                    ],
+                    [
+                        31.1393001,
+                        -25.9162746
+                    ],
+                    [
+                        31.1164727,
+                        -25.9912361
+                    ],
+                    [
+                        30.9656135,
+                        -26.2665756
+                    ],
+                    [
+                        30.8921689,
+                        -26.3279703
+                    ],
+                    [
+                        30.8534616,
+                        -26.4035568
+                    ],
+                    [
+                        30.8226943,
+                        -26.4488849
+                    ],
+                    [
+                        30.8022583,
+                        -26.5240694
+                    ],
+                    [
+                        30.8038369,
+                        -26.8082089
+                    ],
+                    [
+                        30.9020939,
+                        -26.7807451
+                    ],
+                    [
+                        30.9100338,
+                        -26.8489495
+                    ],
+                    [
+                        30.9824859,
+                        -26.9082627
+                    ],
+                    [
+                        30.976531,
+                        -27.0029222
+                    ],
+                    [
+                        31.0034434,
+                        -27.0441587
+                    ],
+                    [
+                        31.1543322,
+                        -27.1980416
+                    ],
+                    [
+                        31.5015607,
+                        -27.311117
+                    ],
+                    [
+                        31.9700183,
+                        -27.311117
+                    ],
+                    [
+                        31.9700183,
+                        -27.120472
+                    ],
+                    [
+                        31.9769658,
+                        -27.050664
+                    ],
+                    [
+                        32.0002464,
+                        -26.7983892
+                    ],
+                    [
+                        32.1069826,
+                        -26.7984645
+                    ],
+                    [
+                        32.3114546,
+                        -26.8479493
+                    ],
+                    [
+                        32.899986,
+                        -26.8516059
+                    ],
+                    [
+                        32.886091,
+                        -26.9816971
+                    ],
+                    [
+                        32.709427,
+                        -27.4785436
+                    ],
+                    [
+                        32.6240724,
+                        -27.7775144
+                    ],
+                    [
+                        32.5813951,
+                        -28.07479
+                    ],
+                    [
+                        32.5387178,
+                        -28.2288046
+                    ],
+                    [
+                        32.4275584,
+                        -28.5021568
+                    ],
+                    [
+                        32.3640388,
+                        -28.5945699
+                    ],
+                    [
+                        32.0702603,
+                        -28.8469827
+                    ],
+                    [
+                        31.9878832,
+                        -28.9069497
+                    ],
+                    [
+                        31.7764818,
+                        -28.969487
+                    ],
+                    [
+                        31.4638459,
+                        -29.2859343
+                    ],
+                    [
+                        31.359634,
+                        -29.3854348
+                    ],
+                    [
+                        31.1680825,
+                        -29.6307408
+                    ],
+                    [
+                        31.064863,
+                        -29.7893535
+                    ],
+                    [
+                        31.0534493,
+                        -29.8470469
+                    ],
+                    [
+                        31.0669933,
+                        -29.8640319
+                    ],
+                    [
+                        31.0455459,
+                        -29.9502017
+                    ],
+                    [
+                        30.9518556,
+                        -30.0033946
+                    ],
+                    [
+                        30.8651833,
+                        -30.1024093
+                    ],
+                    [
+                        30.7244725,
+                        -30.392502
+                    ],
+                    [
+                        30.3556256,
+                        -30.9308873
+                    ],
+                    [
+                        30.0972364,
+                        -31.2458274
+                    ],
+                    [
+                        29.8673136,
+                        -31.4304296
+                    ],
+                    [
+                        29.7409393,
+                        -31.5014699
+                    ],
+                    [
+                        29.481312,
+                        -31.6978686
+                    ],
+                    [
+                        28.8943171,
+                        -32.2898903
+                    ],
+                    [
+                        28.5497137,
+                        -32.5894641
+                    ],
+                    [
+                        28.1436499,
+                        -32.8320732
+                    ],
+                    [
+                        28.0748735,
+                        -32.941689
+                    ],
+                    [
+                        27.8450942,
+                        -33.082869
+                    ],
+                    [
+                        27.3757956,
+                        -33.3860685
+                    ],
+                    [
+                        26.8805407,
+                        -33.6458951
+                    ],
+                    [
+                        26.5916871,
+                        -33.7480756
+                    ],
+                    [
+                        26.4527308,
+                        -33.7935795
+                    ],
+                    [
+                        26.206754,
+                        -33.7548943
+                    ],
+                    [
+                        26.0077897,
+                        -33.7223961
+                    ],
+                    [
+                        25.8055494,
+                        -33.7524272
+                    ],
+                    [
+                        25.7511073,
+                        -33.8006512
+                    ],
+                    [
+                        25.6529079,
+                        -33.8543597
+                    ],
+                    [
+                        25.6529079,
+                        -33.9469768
+                    ],
+                    [
+                        25.7195789,
+                        -34.0040115
+                    ],
+                    [
+                        25.7202807,
+                        -34.0511235
+                    ],
+                    [
+                        25.5508915,
+                        -34.063151
+                    ],
+                    [
+                        25.3504571,
+                        -34.0502627
+                    ],
+                    [
+                        25.2810609,
+                        -34.0020322
+                    ],
+                    [
+                        25.0476316,
+                        -33.9994588
+                    ],
+                    [
+                        24.954724,
+                        -34.0043594
+                    ],
+                    [
+                        24.9496586,
+                        -34.1010363
+                    ],
+                    [
+                        24.8770358,
+                        -34.1506456
+                    ],
+                    [
+                        24.8762914,
+                        -34.2005281
+                    ],
+                    [
+                        24.8532574,
+                        -34.2189562
+                    ],
+                    [
+                        24.7645287,
+                        -34.2017946
+                    ],
+                    [
+                        24.5001356,
+                        -34.2003254
+                    ],
+                    [
+                        24.3486733,
+                        -34.1163824
+                    ],
+                    [
+                        24.1988819,
+                        -34.1019039
+                    ],
+                    [
+                        23.9963377,
+                        -34.0514443
+                    ],
+                    [
+                        23.8017509,
+                        -34.0524332
+                    ],
+                    [
+                        23.7493589,
+                        -34.0111855
+                    ],
+                    [
+                        23.4973536,
+                        -34.009014
+                    ],
+                    [
+                        23.4155191,
+                        -34.0434586
+                    ],
+                    [
+                        23.4154284,
+                        -34.1140433
+                    ],
+                    [
+                        22.9000853,
+                        -34.0993009
+                    ],
+                    [
+                        22.8412418,
+                        -34.0547911
+                    ],
+                    [
+                        22.6470321,
+                        -34.0502627
+                    ],
+                    [
+                        22.6459843,
+                        -34.0072768
+                    ],
+                    [
+                        22.570016,
+                        -34.0064081
+                    ],
+                    [
+                        22.5050499,
+                        -34.0645866
+                    ],
+                    [
+                        22.2519968,
+                        -34.0645866
+                    ],
+                    [
+                        22.2221334,
+                        -34.1014701
+                    ],
+                    [
+                        22.1621197,
+                        -34.1057019
+                    ],
+                    [
+                        22.1712431,
+                        -34.1521766
+                    ],
+                    [
+                        22.1576913,
+                        -34.2180897
+                    ],
+                    [
+                        22.0015632,
+                        -34.2172232
+                    ],
+                    [
+                        21.9496952,
+                        -34.3220009
+                    ],
+                    [
+                        21.8611528,
+                        -34.4007145
+                    ],
+                    [
+                        21.5614708,
+                        -34.4020114
+                    ],
+                    [
+                        21.5468011,
+                        -34.3661242
+                    ],
+                    [
+                        21.501744,
+                        -34.3669892
+                    ],
+                    [
+                        21.5006961,
+                        -34.4020114
+                    ],
+                    [
+                        21.4194886,
+                        -34.4465247
+                    ],
+                    [
+                        21.1978706,
+                        -34.4478208
+                    ],
+                    [
+                        21.0988193,
+                        -34.3991325
+                    ],
+                    [
+                        21.0033746,
+                        -34.3753872
+                    ],
+                    [
+                        20.893192,
+                        -34.3997115
+                    ],
+                    [
+                        20.8976647,
+                        -34.4854003
+                    ],
+                    [
+                        20.7446802,
+                        -34.4828092
+                    ],
+                    [
+                        20.5042011,
+                        -34.486264
+                    ],
+                    [
+                        20.2527197,
+                        -34.701477
+                    ],
+                    [
+                        20.0803502,
+                        -34.8361855
+                    ],
+                    [
+                        19.9923317,
+                        -34.8379056
+                    ],
+                    [
+                        19.899074,
+                        -34.8275845
+                    ],
+                    [
+                        19.8938348,
+                        -34.7936018
+                    ],
+                    [
+                        19.5972963,
+                        -34.7961833
+                    ],
+                    [
+                        19.3929677,
+                        -34.642015
+                    ],
+                    [
+                        19.2877095,
+                        -34.6404784
+                    ],
+                    [
+                        19.2861377,
+                        -34.5986563
+                    ],
+                    [
+                        19.3474363,
+                        -34.5244458
+                    ],
+                    [
+                        19.3285256,
+                        -34.4534372
+                    ],
+                    [
+                        19.098001,
+                        -34.449981
+                    ],
+                    [
+                        19.0725583,
+                        -34.3802371
+                    ],
+                    [
+                        19.0023531,
+                        -34.3525593
+                    ],
+                    [
+                        18.9520568,
+                        -34.3949373
+                    ],
+                    [
+                        18.7975006,
+                        -34.3936403
+                    ],
+                    [
+                        18.7984174,
+                        -34.1016376
+                    ],
+                    [
+                        18.501748,
+                        -34.1015292
+                    ],
+                    [
+                        18.4999545,
+                        -34.3616945
+                    ],
+                    [
+                        18.4477325,
+                        -34.3620007
+                    ],
+                    [
+                        18.4479944,
+                        -34.3522691
+                    ],
+                    [
+                        18.3974362,
+                        -34.3514041
+                    ],
+                    [
+                        18.3971742,
+                        -34.3022959
+                    ],
+                    [
+                        18.3565705,
+                        -34.3005647
+                    ],
+                    [
+                        18.3479258,
+                        -34.2020436
+                    ],
+                    [
+                        18.2972095,
+                        -34.1950274
+                    ],
+                    [
+                        18.2951139,
+                        -33.9937138
+                    ],
+                    [
+                        18.3374474,
+                        -33.9914079
+                    ],
+                    [
+                        18.3476638,
+                        -33.8492427
+                    ],
+                    [
+                        18.3479258,
+                        -33.781555
+                    ],
+                    [
+                        18.4124718,
+                        -33.7448849
+                    ],
+                    [
+                        18.3615477,
+                        -33.6501624
+                    ],
+                    [
+                        18.2992013,
+                        -33.585591
+                    ],
+                    [
+                        18.2166839,
+                        -33.448872
+                    ],
+                    [
+                        18.1389858,
+                        -33.3974083
+                    ],
+                    [
+                        17.9473472,
+                        -33.1602647
+                    ],
+                    [
+                        17.8855247,
+                        -33.0575732
+                    ],
+                    [
+                        17.8485884,
+                        -32.9668505
+                    ],
+                    [
+                        17.8396817,
+                        -32.8507302
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "Stadt Uster Orthophoto 2008 10cm",
+            "type": "tms",
+            "template": "http://mapproxy.sosm.ch:8080/tiles/uster/EPSG900913/{zoom}/{x}/{y}.png?origin=nw",
+            "polygon": [
+                [
+                    [
+                        8.6,
+                        47.31
+                    ],
+                    [
+                        8.6,
+                        47.39
+                    ],
+                    [
+                        8.77,
+                        47.39
+                    ],
+                    [
+                        8.77,
+                        47.31
+                    ],
+                    [
+                        8.6,
+                        47.31
+                    ]
+                ]
+            ],
+            "terms_text": "Stadt Uster Vermessung Orthophoto 2008"
+        },
+        {
+            "name": "Stevns (Denmark)",
+            "type": "tms",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.dk/stevns/2009/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                20
+            ],
+            "polygon": [
+                [
+                    [
+                        12.0913942,
+                        55.3491574
+                    ],
+                    [
+                        12.0943104,
+                        55.3842256
+                    ],
+                    [
+                        12.1573875,
+                        55.3833103
+                    ],
+                    [
+                        12.1587287,
+                        55.4013326
+                    ],
+                    [
+                        12.1903468,
+                        55.400558
+                    ],
+                    [
+                        12.1931411,
+                        55.4364665
+                    ],
+                    [
+                        12.2564251,
+                        55.4347995
+                    ],
+                    [
+                        12.2547073,
+                        55.4168882
+                    ],
+                    [
+                        12.3822489,
+                        55.4134349
+                    ],
+                    [
+                        12.3795942,
+                        55.3954143
+                    ],
+                    [
+                        12.4109213,
+                        55.3946958
+                    ],
+                    [
+                        12.409403,
+                        55.3766417
+                    ],
+                    [
+                        12.4407807,
+                        55.375779
+                    ],
+                    [
+                        12.4394142,
+                        55.3578314
+                    ],
+                    [
+                        12.4707413,
+                        55.3569971
+                    ],
+                    [
+                        12.4629475,
+                        55.2672214
+                    ],
+                    [
+                        12.4315633,
+                        55.2681491
+                    ],
+                    [
+                        12.430045,
+                        55.2502103
+                    ],
+                    [
+                        12.3672011,
+                        55.2519673
+                    ],
+                    [
+                        12.3656858,
+                        55.2340267
+                    ],
+                    [
+                        12.2714604,
+                        55.2366031
+                    ],
+                    [
+                        12.2744467,
+                        55.272476
+                    ],
+                    [
+                        12.2115654,
+                        55.2741475
+                    ],
+                    [
+                        12.2130078,
+                        55.2920322
+                    ],
+                    [
+                        12.1815665,
+                        55.2928638
+                    ],
+                    [
+                        12.183141,
+                        55.3107091
+                    ],
+                    [
+                        12.2144897,
+                        55.3100981
+                    ],
+                    [
+                        12.2159927,
+                        55.3279764
+                    ],
+                    [
+                        12.1214458,
+                        55.3303379
+                    ],
+                    [
+                        12.1229489,
+                        55.3483291
+                    ]
+                ]
+            ],
+            "terms_text": "Stevns Kommune"
+        },
+        {
+            "name": "Surrey Air Survey",
+            "type": "tms",
+            "template": "http://gravitystorm.dev.openstreetmap.org/surrey/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        -0.856,
+                        51.071
+                    ],
+                    [
+                        -0.856,
+                        51.473
+                    ],
+                    [
+                        0.062,
+                        51.473
+                    ],
+                    [
+                        0.062,
+                        51.071
+                    ],
+                    [
+                        -0.856,
+                        51.071
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "TIGER 2012 Roads Overlay",
+            "type": "tms",
+            "description": "Public domain road data from the US Government.",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.us/tiger2012_roads_expanded/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                16,
+                19
+            ],
+            "polygon": [
+                [
+                    [
+                        -124.7617886,
+                        48.4130148
+                    ],
+                    [
+                        -124.6059492,
+                        45.90245
+                    ],
+                    [
+                        -124.9934269,
+                        40.0557614
+                    ],
+                    [
+                        -122.5369737,
+                        36.8566086
+                    ],
+                    [
+                        -119.9775867,
+                        33.0064099
+                    ],
+                    [
+                        -117.675935,
+                        32.4630223
+                    ],
+                    [
+                        -114.8612307,
+                        32.4799891
+                    ],
+                    [
+                        -111.0089311,
+                        31.336015
+                    ],
+                    [
+                        -108.1992687,
+                        31.3260016
+                    ],
+                    [
+                        -108.1871123,
+                        31.7755116
+                    ],
+                    [
+                        -106.5307225,
+                        31.7820947
+                    ],
+                    [
+                        -106.4842052,
+                        31.7464455
+                    ],
+                    [
+                        -106.429317,
+                        31.7520583
+                    ],
+                    [
+                        -106.2868855,
+                        31.5613291
+                    ],
+                    [
+                        -106.205248,
+                        31.446704
+                    ],
+                    [
+                        -105.0205259,
+                        30.5360988
+                    ],
+                    [
+                        -104.5881916,
+                        29.6997856
+                    ],
+                    [
+                        -103.2518856,
+                        28.8908685
+                    ],
+                    [
+                        -102.7173632,
+                        29.3920567
+                    ],
+                    [
+                        -102.1513983,
+                        29.7475702
+                    ],
+                    [
+                        -101.2552871,
+                        29.4810523
+                    ],
+                    [
+                        -100.0062436,
+                        28.0082173
+                    ],
+                    [
+                        -99.2351068,
+                        26.4475962
+                    ],
+                    [
+                        -98.0109067,
+                        25.9928035
+                    ],
+                    [
+                        -97.435024,
+                        25.8266009
+                    ],
+                    [
+                        -96.9555259,
+                        25.9821589
+                    ],
+                    [
+                        -96.8061741,
+                        27.7978168
+                    ],
+                    [
+                        -95.5563349,
+                        28.5876066
+                    ],
+                    [
+                        -93.7405308,
+                        29.4742093
+                    ],
+                    [
+                        -90.9028456,
+                        28.8564513
+                    ],
+                    [
+                        -88.0156706,
+                        28.9944338
+                    ],
+                    [
+                        -88.0162494,
+                        30.0038862
+                    ],
+                    [
+                        -86.0277506,
+                        30.0047454
+                    ],
+                    [
+                        -84.0187909,
+                        28.9961781
+                    ],
+                    [
+                        -81.9971976,
+                        25.9826768
+                    ],
+                    [
+                        -81.9966618,
+                        25.0134917
+                    ],
+                    [
+                        -84.0165592,
+                        25.0125783
+                    ],
+                    [
+                        -84.0160068,
+                        24.0052745
+                    ],
+                    [
+                        -80.0199985,
+                        24.007096
+                    ],
+                    [
+                        -79.8901116,
+                        26.8550713
+                    ],
+                    [
+                        -80.0245309,
+                        32.0161282
+                    ],
+                    [
+                        -75.4147385,
+                        35.0531894
+                    ],
+                    [
+                        -74.0211163,
+                        39.5727927
+                    ],
+                    [
+                        -72.002019,
+                        40.9912464
+                    ],
+                    [
+                        -69.8797398,
+                        40.9920457
+                    ],
+                    [
+                        -69.8489304,
+                        43.2619916
+                    ],
+                    [
+                        -66.9452845,
+                        44.7104937
+                    ],
+                    [
+                        -67.7596632,
+                        47.0990024
+                    ],
+                    [
+                        -69.2505131,
+                        47.5122328
+                    ],
+                    [
+                        -70.4614886,
+                        46.2176574
+                    ],
+                    [
+                        -71.412273,
+                        45.254878
+                    ],
+                    [
+                        -72.0222508,
+                        45.0059846
+                    ],
+                    [
+                        -75.0798841,
+                        44.9802854
+                    ],
+                    [
+                        -76.9023061,
+                        43.8024568
+                    ],
+                    [
+                        -78.7623935,
+                        43.6249578
+                    ],
+                    [
+                        -79.15798,
+                        43.4462589
+                    ],
+                    [
+                        -79.0060087,
+                        42.8005317
+                    ],
+                    [
+                        -82.662475,
+                        41.6889458
+                    ],
+                    [
+                        -82.1761642,
+                        43.588535
+                    ],
+                    [
+                        -83.2813977,
+                        46.138853
+                    ],
+                    [
+                        -87.5064535,
+                        48.0142702
+                    ],
+                    [
+                        -88.3492194,
+                        48.2963271
+                    ],
+                    [
+                        -89.4353148,
+                        47.9837822
+                    ],
+                    [
+                        -93.9981078,
+                        49.0067142
+                    ],
+                    [
+                        -95.1105379,
+                        49.412004
+                    ],
+                    [
+                        -96.0131199,
+                        49.0060547
+                    ],
+                    [
+                        -123.3228926,
+                        49.0042878
+                    ],
+                    [
+                        -123.2275233,
+                        48.1849927
+                    ]
+                ],
+                [
+                    [
+                        -160.5787616,
+                        22.5062947
+                    ],
+                    [
+                        -160.5782192,
+                        21.4984647
+                    ],
+                    [
+                        -158.7470604,
+                        21.2439843
+                    ],
+                    [
+                        -157.5083185,
+                        20.995803
+                    ],
+                    [
+                        -155.9961942,
+                        18.7790194
+                    ],
+                    [
+                        -154.6217803,
+                        18.7586966
+                    ],
+                    [
+                        -154.6890176,
+                        19.8805722
+                    ],
+                    [
+                        -156.2927622,
+                        21.2225888
+                    ],
+                    [
+                        -157.5047384,
+                        21.9984962
+                    ],
+                    [
+                        -159.0093692,
+                        22.5070181
+                    ]
+                ],
+                [
+                    [
+                        -167.1571546,
+                        68.721974
+                    ],
+                    [
+                        -164.8553982,
+                        67.0255078
+                    ],
+                    [
+                        -168.002195,
+                        66.0017503
+                    ],
+                    [
+                        -169.0087448,
+                        66.001546
+                    ],
+                    [
+                        -169.0075381,
+                        64.9987675
+                    ],
+                    [
+                        -172.5143281,
+                        63.8767267
+                    ],
+                    [
+                        -173.8197023,
+                        59.74014
+                    ],
+                    [
+                        -162.5018149,
+                        58.0005815
+                    ],
+                    [
+                        -160.0159024,
+                        58.0012389
+                    ],
+                    [
+                        -160.0149725,
+                        57.000035
+                    ],
+                    [
+                        -160.5054788,
+                        56.9999017
+                    ],
+                    [
+                        -165.8092575,
+                        54.824847
+                    ],
+                    [
+                        -178.000097,
+                        52.2446469
+                    ],
+                    [
+                        -177.9992996,
+                        51.2554252
+                    ],
+                    [
+                        -171.4689067,
+                        51.8215329
+                    ],
+                    [
+                        -162.40251,
+                        53.956664
+                    ],
+                    [
+                        -159.0075717,
+                        55.002502
+                    ],
+                    [
+                        -158.0190709,
+                        55.0027849
+                    ],
+                    [
+                        -151.9963213,
+                        55.9991902
+                    ],
+                    [
+                        -151.500341,
+                        57.9987853
+                    ],
+                    [
+                        -151.5012894,
+                        58.9919816
+                    ],
+                    [
+                        -138.5159989,
+                        58.9953194
+                    ],
+                    [
+                        -138.5150471,
+                        57.9986434
+                    ],
+                    [
+                        -133.9948193,
+                        54.0031685
+                    ],
+                    [
+                        -130.0044418,
+                        54.0043387
+                    ],
+                    [
+                        -130.0070826,
+                        57.0000507
+                    ],
+                    [
+                        -131.975877,
+                        56.9995156
+                    ],
+                    [
+                        -135.1229873,
+                        59.756601
+                    ],
+                    [
+                        -138.0071813,
+                        59.991805
+                    ],
+                    [
+                        -139.1715881,
+                        60.4127229
+                    ],
+                    [
+                        -140.9874011,
+                        61.0118551
+                    ],
+                    [
+                        -140.9683975,
+                        69.9535069
+                    ],
+                    [
+                        -156.176891,
+                        71.5633329
+                    ],
+                    [
+                        -160.413634,
+                        70.7397728
+                    ],
+                    [
+                        -163.0218273,
+                        69.9707435
+                    ],
+                    [
+                        -164.9717003,
+                        68.994689
+                    ]
+                ]
+            ],
+            "overlay": true
+        },
+        {
+            "name": "Toulouse - Orthophotoplan 2007",
+            "type": "tms",
+            "template": "http://wms.openstreetmap.fr/tms/1.0.0/toulouse_ortho2007/{zoom}/{x}/{y}",
+            "scaleExtent": [
+                0,
+                22
+            ],
+            "polygon": [
+                [
+                    [
+                        1.1919978,
+                        43.6328791
+                    ],
+                    [
+                        1.2015377,
+                        43.6329729
+                    ],
+                    [
+                        1.2011107,
+                        43.6554932
+                    ],
+                    [
+                        1.2227985,
+                        43.6557029
+                    ],
+                    [
+                        1.2226231,
+                        43.6653353
+                    ],
+                    [
+                        1.2275341,
+                        43.6653849
+                    ],
+                    [
+                        1.2275417,
+                        43.6656387
+                    ],
+                    [
+                        1.2337568,
+                        43.6656883
+                    ],
+                    [
+                        1.2337644,
+                        43.6650153
+                    ],
+                    [
+                        1.2351218,
+                        43.6650319
+                    ],
+                    [
+                        1.2350913,
+                        43.6670729
+                    ],
+                    [
+                        1.2443566,
+                        43.6671556
+                    ],
+                    [
+                        1.2441584,
+                        43.6743925
+                    ],
+                    [
+                        1.2493973,
+                        43.6744256
+                    ],
+                    [
+                        1.2493973,
+                        43.6746628
+                    ],
+                    [
+                        1.2555666,
+                        43.6747234
+                    ],
+                    [
+                        1.2555742,
+                        43.6744532
+                    ],
+                    [
+                        1.2569545,
+                        43.6744697
+                    ],
+                    [
+                        1.2568782,
+                        43.678529
+                    ],
+                    [
+                        1.2874873,
+                        43.6788257
+                    ],
+                    [
+                        1.2870803,
+                        43.7013229
+                    ],
+                    [
+                        1.3088219,
+                        43.7014632
+                    ],
+                    [
+                        1.3086493,
+                        43.7127673
+                    ],
+                    [
+                        1.3303262,
+                        43.7129544
+                    ],
+                    [
+                        1.3300242,
+                        43.7305221
+                    ],
+                    [
+                        1.3367106,
+                        43.7305845
+                    ],
+                    [
+                        1.3367322,
+                        43.7312235
+                    ],
+                    [
+                        1.3734338,
+                        43.7310456
+                    ],
+                    [
+                        1.3735848,
+                        43.7245772
+                    ],
+                    [
+                        1.4604504,
+                        43.7252947
+                    ],
+                    [
+                        1.4607783,
+                        43.7028034
+                    ],
+                    [
+                        1.4824875,
+                        43.7029516
+                    ],
+                    [
+                        1.4829828,
+                        43.6692071
+                    ],
+                    [
+                        1.5046832,
+                        43.6693616
+                    ],
+                    [
+                        1.5048383,
+                        43.6581174
+                    ],
+                    [
+                        1.5265475,
+                        43.6582656
+                    ],
+                    [
+                        1.5266945,
+                        43.6470298
+                    ],
+                    [
+                        1.548368,
+                        43.6471633
+                    ],
+                    [
+                        1.5485357,
+                        43.6359385
+                    ],
+                    [
+                        1.5702172,
+                        43.636082
+                    ],
+                    [
+                        1.5705123,
+                        43.6135777
+                    ],
+                    [
+                        1.5488166,
+                        43.6134276
+                    ],
+                    [
+                        1.549097,
+                        43.5909479
+                    ],
+                    [
+                        1.5707695,
+                        43.5910694
+                    ],
+                    [
+                        1.5709373,
+                        43.5798341
+                    ],
+                    [
+                        1.5793714,
+                        43.5798894
+                    ],
+                    [
+                        1.5794782,
+                        43.5737682
+                    ],
+                    [
+                        1.5809119,
+                        43.5737792
+                    ],
+                    [
+                        1.5810859,
+                        43.5573794
+                    ],
+                    [
+                        1.5712334,
+                        43.5573131
+                    ],
+                    [
+                        1.5716504,
+                        43.5235497
+                    ],
+                    [
+                        1.3984804,
+                        43.5222618
+                    ],
+                    [
+                        1.3986509,
+                        43.5110113
+                    ],
+                    [
+                        1.3120959,
+                        43.5102543
+                    ],
+                    [
+                        1.3118968,
+                        43.5215192
+                    ],
+                    [
+                        1.2902569,
+                        43.5213126
+                    ],
+                    [
+                        1.2898637,
+                        43.5438168
+                    ],
+                    [
+                        1.311517,
+                        43.5440133
+                    ],
+                    [
+                        1.3113271,
+                        43.5552596
+                    ],
+                    [
+                        1.3036924,
+                        43.5551924
+                    ],
+                    [
+                        1.3036117,
+                        43.5595099
+                    ],
+                    [
+                        1.2955449,
+                        43.5594317
+                    ],
+                    [
+                        1.2955449,
+                        43.5595489
+                    ],
+                    [
+                        1.2895595,
+                        43.5594473
+                    ],
+                    [
+                        1.2892899,
+                        43.5775366
+                    ],
+                    [
+                        1.2675698,
+                        43.5773647
+                    ],
+                    [
+                        1.2673973,
+                        43.5886141
+                    ],
+                    [
+                        1.25355,
+                        43.5885047
+                    ],
+                    [
+                        1.2533774,
+                        43.5956282
+                    ],
+                    [
+                        1.2518029,
+                        43.5956282
+                    ],
+                    [
+                        1.2518029,
+                        43.5949409
+                    ],
+                    [
+                        1.2350437,
+                        43.5947847
+                    ],
+                    [
+                        1.2350437,
+                        43.5945972
+                    ],
+                    [
+                        1.2239572,
+                        43.5945972
+                    ],
+                    [
+                        1.2239357,
+                        43.5994708
+                    ],
+                    [
+                        1.2139708,
+                        43.599299
+                    ],
+                    [
+                        1.2138845,
+                        43.6046408
+                    ],
+                    [
+                        1.2020647,
+                        43.6044846
+                    ],
+                    [
+                        1.2019464,
+                        43.61048
+                    ],
+                    [
+                        1.1924294,
+                        43.6103695
+                    ]
+                ]
+            ],
+            "terms_url": "https://wiki.openstreetmap.org/wiki/Toulouse/ToulouseMetropoleData",
+            "terms_text": "ToulouseMetropole"
+        },
+        {
+            "name": "Toulouse - Orthophotoplan 2011",
+            "type": "tms",
+            "template": "http://wms.openstreetmap.fr/tms/1.0.0/toulouse_ortho2011/{zoom}/{x}/{y}",
+            "scaleExtent": [
+                0,
+                22
+            ],
+            "polygon": [
+                [
+                    [
+                        1.1135067,
+                        43.6867566
+                    ],
+                    [
+                        1.1351836,
+                        43.6870842
+                    ],
+                    [
+                        1.1348907,
+                        43.6983471
+                    ],
+                    [
+                        1.1782867,
+                        43.6990338
+                    ],
+                    [
+                        1.1779903,
+                        43.7102786
+                    ],
+                    [
+                        1.1996591,
+                        43.7106144
+                    ],
+                    [
+                        1.1993387,
+                        43.7218722
+                    ],
+                    [
+                        1.2427356,
+                        43.7225269
+                    ],
+                    [
+                        1.2424336,
+                        43.7337491
+                    ],
+                    [
+                        1.2641536,
+                        43.734092
+                    ],
+                    [
+                        1.2638301,
+                        43.7453588
+                    ],
+                    [
+                        1.2855285,
+                        43.7456548
+                    ],
+                    [
+                        1.2852481,
+                        43.756935
+                    ],
+                    [
+                        1.306925,
+                        43.757231
+                    ],
+                    [
+                        1.3066446,
+                        43.7684779
+                    ],
+                    [
+                        1.3283431,
+                        43.7687894
+                    ],
+                    [
+                        1.3280842,
+                        43.780034
+                    ],
+                    [
+                        1.4367275,
+                        43.7815757
+                    ],
+                    [
+                        1.4373098,
+                        43.7591004
+                    ],
+                    [
+                        1.4590083,
+                        43.7593653
+                    ],
+                    [
+                        1.4593318,
+                        43.7481479
+                    ],
+                    [
+                        1.4810303,
+                        43.7483972
+                    ],
+                    [
+                        1.4813322,
+                        43.7371777
+                    ],
+                    [
+                        1.5030307,
+                        43.7374115
+                    ],
+                    [
+                        1.5035915,
+                        43.7149664
+                    ],
+                    [
+                        1.5253115,
+                        43.7151846
+                    ],
+                    [
+                        1.5256135,
+                        43.7040057
+                    ],
+                    [
+                        1.5472688,
+                        43.7042552
+                    ],
+                    [
+                        1.5475708,
+                        43.6930431
+                    ],
+                    [
+                        1.5692045,
+                        43.6932926
+                    ],
+                    [
+                        1.5695712,
+                        43.6820316
+                    ],
+                    [
+                        1.5912049,
+                        43.6822656
+                    ],
+                    [
+                        1.5917441,
+                        43.6597998
+                    ],
+                    [
+                        1.613421,
+                        43.6600339
+                    ],
+                    [
+                        1.613723,
+                        43.6488291
+                    ],
+                    [
+                        1.6353783,
+                        43.6490788
+                    ],
+                    [
+                        1.6384146,
+                        43.5140731
+                    ],
+                    [
+                        1.2921649,
+                        43.5094658
+                    ],
+                    [
+                        1.2918629,
+                        43.5206966
+                    ],
+                    [
+                        1.2702076,
+                        43.5203994
+                    ],
+                    [
+                        1.2698841,
+                        43.5316437
+                    ],
+                    [
+                        1.2482288,
+                        43.531331
+                    ],
+                    [
+                        1.2476048,
+                        43.5537788
+                    ],
+                    [
+                        1.2259628,
+                        43.5534914
+                    ],
+                    [
+                        1.2256819,
+                        43.564716
+                    ],
+                    [
+                        1.2039835,
+                        43.564419
+                    ],
+                    [
+                        1.2033148,
+                        43.5869049
+                    ],
+                    [
+                        1.1816164,
+                        43.5865611
+                    ],
+                    [
+                        1.1810237,
+                        43.6090368
+                    ],
+                    [
+                        1.1592821,
+                        43.6086932
+                    ],
+                    [
+                        1.1589585,
+                        43.6199523
+                    ],
+                    [
+                        1.1372601,
+                        43.6196244
+                    ],
+                    [
+                        1.1365933,
+                        43.642094
+                    ],
+                    [
+                        1.1149055,
+                        43.6417629
+                    ]
+                ]
+            ],
+            "terms_url": "https://wiki.openstreetmap.org/wiki/Toulouse/ToulouseMetropoleData",
+            "terms_text": "ToulouseMetropole"
+        },
+        {
+            "name": "Tours - Orthophotos 2008",
+            "type": "tms",
+            "template": "http://tms.mapspot.ge/tms/2/nonstandard/{zoom}/{x}/{y}.jpeg",
+            "polygon": [
+                [
+                    [
+                        0.5457462,
+                        47.465264
+                    ],
+                    [
+                        0.54585,
+                        47.4608163
+                    ],
+                    [
+                        0.5392188,
+                        47.4606983
+                    ],
+                    [
+                        0.5393484,
+                        47.456243
+                    ],
+                    [
+                        0.5327959,
+                        47.4561003
+                    ],
+                    [
+                        0.5329011,
+                        47.451565
+                    ],
+                    [
+                        0.52619,
+                        47.4514013
+                    ],
+                    [
+                        0.5265854,
+                        47.4424884
+                    ],
+                    [
+                        0.5000941,
+                        47.4420739
+                    ],
+                    [
+                        0.5002357,
+                        47.4375835
+                    ],
+                    [
+                        0.4936014,
+                        47.4374324
+                    ],
+                    [
+                        0.4937,
+                        47.4329285
+                    ],
+                    [
+                        0.4606141,
+                        47.4324593
+                    ],
+                    [
+                        0.4607248,
+                        47.4279827
+                    ],
+                    [
+                        0.4541016,
+                        47.4278125
+                    ],
+                    [
+                        0.454932,
+                        47.4053921
+                    ],
+                    [
+                        0.4615431,
+                        47.4054476
+                    ],
+                    [
+                        0.4619097,
+                        47.3964924
+                    ],
+                    [
+                        0.4684346,
+                        47.3966005
+                    ],
+                    [
+                        0.4691319,
+                        47.3786415
+                    ],
+                    [
+                        0.4757125,
+                        47.3787609
+                    ],
+                    [
+                        0.4762116,
+                        47.3652018
+                    ],
+                    [
+                        0.4828297,
+                        47.3653499
+                    ],
+                    [
+                        0.4832223,
+                        47.3518574
+                    ],
+                    [
+                        0.5097927,
+                        47.3522592
+                    ],
+                    [
+                        0.5095688,
+                        47.3567713
+                    ],
+                    [
+                        0.5227698,
+                        47.3569785
+                    ],
+                    [
+                        0.5226429,
+                        47.3614867
+                    ],
+                    [
+                        0.5490721,
+                        47.3618878
+                    ],
+                    [
+                        0.5489087,
+                        47.3663307
+                    ],
+                    [
+                        0.5555159,
+                        47.3664985
+                    ],
+                    [
+                        0.5559105,
+                        47.3575522
+                    ],
+                    [
+                        0.6152789,
+                        47.358407
+                    ],
+                    [
+                        0.6152963,
+                        47.362893
+                    ],
+                    [
+                        0.6285093,
+                        47.3630936
+                    ],
+                    [
+                        0.6288256,
+                        47.353987
+                    ],
+                    [
+                        0.6155012,
+                        47.3538823
+                    ],
+                    [
+                        0.6157682,
+                        47.3493424
+                    ],
+                    [
+                        0.6090956,
+                        47.3492991
+                    ],
+                    [
+                        0.6094735,
+                        47.3402962
+                    ],
+                    [
+                        0.6160477,
+                        47.3404448
+                    ],
+                    [
+                        0.616083,
+                        47.3369074
+                    ],
+                    [
+                        0.77497,
+                        47.3388218
+                    ],
+                    [
+                        0.7745786,
+                        47.351628
+                    ],
+                    [
+                        0.7680363,
+                        47.3515901
+                    ],
+                    [
+                        0.767589,
+                        47.3605298
+                    ],
+                    [
+                        0.7742443,
+                        47.3606238
+                    ],
+                    [
+                        0.7733465,
+                        47.3921266
+                    ],
+                    [
+                        0.7667434,
+                        47.3920195
+                    ],
+                    [
+                        0.7664411,
+                        47.4010837
+                    ],
+                    [
+                        0.7730647,
+                        47.4011115
+                    ],
+                    [
+                        0.7728868,
+                        47.4101297
+                    ],
+                    [
+                        0.7661849,
+                        47.4100226
+                    ],
+                    [
+                        0.7660267,
+                        47.4145044
+                    ],
+                    [
+                        0.7527613,
+                        47.4143038
+                    ],
+                    [
+                        0.7529788,
+                        47.4098086
+                    ],
+                    [
+                        0.7462373,
+                        47.4097016
+                    ],
+                    [
+                        0.7459424,
+                        47.4232208
+                    ],
+                    [
+                        0.7392324,
+                        47.4231451
+                    ],
+                    [
+                        0.738869,
+                        47.4366116
+                    ],
+                    [
+                        0.7323267,
+                        47.4365171
+                    ],
+                    [
+                        0.7321869,
+                        47.4410556
+                    ],
+                    [
+                        0.7255048,
+                        47.44098
+                    ],
+                    [
+                        0.7254209,
+                        47.4453479
+                    ],
+                    [
+                        0.7318793,
+                        47.4454803
+                    ],
+                    [
+                        0.7318514,
+                        47.4501126
+                    ],
+                    [
+                        0.7384496,
+                        47.450226
+                    ],
+                    [
+                        0.7383098,
+                        47.454631
+                    ],
+                    [
+                        0.7449359,
+                        47.4547444
+                    ],
+                    [
+                        0.7443209,
+                        47.4771985
+                    ],
+                    [
+                        0.7310685,
+                        47.4769717
+                    ],
+                    [
+                        0.7309008,
+                        47.4815445
+                    ],
+                    [
+                        0.7176205,
+                        47.4812611
+                    ],
+                    [
+                        0.7177883,
+                        47.4768394
+                    ],
+                    [
+                        0.69777,
+                        47.4764993
+                    ],
+                    [
+                        0.6980496,
+                        47.4719827
+                    ],
+                    [
+                        0.6914514,
+                        47.4718882
+                    ],
+                    [
+                        0.6917309,
+                        47.4630241
+                    ],
+                    [
+                        0.6851048,
+                        47.4629295
+                    ],
+                    [
+                        0.684937,
+                        47.4673524
+                    ],
+                    [
+                        0.678255,
+                        47.4673335
+                    ],
+                    [
+                        0.6779754,
+                        47.4762158
+                    ],
+                    [
+                        0.6714051,
+                        47.4761592
+                    ],
+                    [
+                        0.6710417,
+                        47.4881952
+                    ],
+                    [
+                        0.6577334,
+                        47.4879685
+                    ],
+                    [
+                        0.6578173,
+                        47.48504
+                    ],
+                    [
+                        0.6511911,
+                        47.4848322
+                    ],
+                    [
+                        0.6514707,
+                        47.4758568
+                    ],
+                    [
+                        0.6448166,
+                        47.4757245
+                    ],
+                    [
+                        0.6449284,
+                        47.4712646
+                    ],
+                    [
+                        0.6117976,
+                        47.4707543
+                    ],
+                    [
+                        0.6118815,
+                        47.4663129
+                    ],
+                    [
+                        0.6052833,
+                        47.4661239
+                    ],
+                    [
+                        0.6054231,
+                        47.4616631
+                    ],
+                    [
+                        0.5988808,
+                        47.4615497
+                    ],
+                    [
+                        0.5990206,
+                        47.4570886
+                    ],
+                    [
+                        0.572488,
+                        47.4566916
+                    ],
+                    [
+                        0.5721805,
+                        47.4656513
+                    ]
+                ]
+            ],
+            "terms_url": "http://wiki.openstreetmap.org/wiki/Tours/Orthophoto",
+            "terms_text": "Orthophoto Tour(s) Plus 2008"
+        },
+        {
+            "name": "Tours - Orthophotos 2008-2010",
+            "type": "tms",
+            "template": "http://wms.openstreetmap.fr/tms/1.0.0/tours/{zoom}/{x}/{y}",
+            "scaleExtent": [
+                0,
+                20
+            ],
+            "polygon": [
+                [
+                    [
+                        0.5457462,
+                        47.465264
+                    ],
+                    [
+                        0.54585,
+                        47.4608163
+                    ],
+                    [
+                        0.5392188,
+                        47.4606983
+                    ],
+                    [
+                        0.5393484,
+                        47.456243
+                    ],
+                    [
+                        0.5327959,
+                        47.4561003
+                    ],
+                    [
+                        0.5329011,
+                        47.451565
+                    ],
+                    [
+                        0.52619,
+                        47.4514013
+                    ],
+                    [
+                        0.5265854,
+                        47.4424884
+                    ],
+                    [
+                        0.5000941,
+                        47.4420739
+                    ],
+                    [
+                        0.5002357,
+                        47.4375835
+                    ],
+                    [
+                        0.4936014,
+                        47.4374324
+                    ],
+                    [
+                        0.4937,
+                        47.4329285
+                    ],
+                    [
+                        0.4606141,
+                        47.4324593
+                    ],
+                    [
+                        0.4607248,
+                        47.4279827
+                    ],
+                    [
+                        0.4541016,
+                        47.4278125
+                    ],
+                    [
+                        0.454932,
+                        47.4053921
+                    ],
+                    [
+                        0.4615431,
+                        47.4054476
+                    ],
+                    [
+                        0.4619097,
+                        47.3964924
+                    ],
+                    [
+                        0.4684346,
+                        47.3966005
+                    ],
+                    [
+                        0.4691319,
+                        47.3786415
+                    ],
+                    [
+                        0.4757125,
+                        47.3787609
+                    ],
+                    [
+                        0.4762116,
+                        47.3652018
+                    ],
+                    [
+                        0.4828297,
+                        47.3653499
+                    ],
+                    [
+                        0.4829611,
+                        47.3608321
+                    ],
+                    [
+                        0.4763543,
+                        47.360743
+                    ],
+                    [
+                        0.476654,
+                        47.3517263
+                    ],
+                    [
+                        0.4700497,
+                        47.3516186
+                    ],
+                    [
+                        0.4701971,
+                        47.3471313
+                    ],
+                    [
+                        0.4637503,
+                        47.3470104
+                    ],
+                    [
+                        0.4571425,
+                        47.3424146
+                    ],
+                    [
+                        0.4572922,
+                        47.3379061
+                    ],
+                    [
+                        0.4506741,
+                        47.3378081
+                    ],
+                    [
+                        0.4508379,
+                        47.3333051
+                    ],
+                    [
+                        0.4442212,
+                        47.3332032
+                    ],
+                    [
+                        0.4443809,
+                        47.328711
+                    ],
+                    [
+                        0.4311392,
+                        47.3284977
+                    ],
+                    [
+                        0.4316262,
+                        47.3150004
+                    ],
+                    [
+                        0.4382432,
+                        47.3151136
+                    ],
+                    [
+                        0.4383815,
+                        47.3106174
+                    ],
+                    [
+                        0.4714487,
+                        47.3111374
+                    ],
+                    [
+                        0.4713096,
+                        47.3156565
+                    ],
+                    [
+                        0.477888,
+                        47.3157542
+                    ],
+                    [
+                        0.4780733,
+                        47.3112802
+                    ],
+                    [
+                        0.4846826,
+                        47.3113639
+                    ],
+                    [
+                        0.4848576,
+                        47.3068686
+                    ],
+                    [
+                        0.4914359,
+                        47.3069803
+                    ],
+                    [
+                        0.491745,
+                        47.2979733
+                    ],
+                    [
+                        0.4851578,
+                        47.2978722
+                    ],
+                    [
+                        0.4854269,
+                        47.2888744
+                    ],
+                    [
+                        0.4788485,
+                        47.2887697
+                    ],
+                    [
+                        0.4791574,
+                        47.2797818
+                    ],
+                    [
+                        0.4857769,
+                        47.2799005
+                    ],
+                    [
+                        0.4859107,
+                        47.2753885
+                    ],
+                    [
+                        0.492539,
+                        47.2755029
+                    ],
+                    [
+                        0.4926669,
+                        47.2710127
+                    ],
+                    [
+                        0.4992986,
+                        47.2711066
+                    ],
+                    [
+                        0.4994296,
+                        47.2666116
+                    ],
+                    [
+                        0.5192658,
+                        47.2669245
+                    ],
+                    [
+                        0.5194225,
+                        47.2624231
+                    ],
+                    [
+                        0.5260186,
+                        47.2625205
+                    ],
+                    [
+                        0.5258735,
+                        47.2670183
+                    ],
+                    [
+                        0.5456972,
+                        47.2673383
+                    ],
+                    [
+                        0.5455537,
+                        47.2718283
+                    ],
+                    [
+                        0.5587737,
+                        47.2720366
+                    ],
+                    [
+                        0.5586259,
+                        47.2765185
+                    ],
+                    [
+                        0.5652252,
+                        47.2766278
+                    ],
+                    [
+                        0.5650848,
+                        47.2811206
+                    ],
+                    [
+                        0.5716753,
+                        47.2812285
+                    ],
+                    [
+                        0.5715223,
+                        47.2857217
+                    ],
+                    [
+                        0.5781436,
+                        47.2858299
+                    ],
+                    [
+                        0.5779914,
+                        47.2903294
+                    ],
+                    [
+                        0.5846023,
+                        47.2904263
+                    ],
+                    [
+                        0.5843076,
+                        47.2994231
+                    ],
+                    [
+                        0.597499,
+                        47.2996094
+                    ],
+                    [
+                        0.5976637,
+                        47.2951375
+                    ],
+                    [
+                        0.6571596,
+                        47.2960036
+                    ],
+                    [
+                        0.6572988,
+                        47.2915091
+                    ],
+                    [
+                        0.6705019,
+                        47.2917186
+                    ],
+                    [
+                        0.6703475,
+                        47.2962082
+                    ],
+                    [
+                        0.6836175,
+                        47.2963688
+                    ],
+                    [
+                        0.6834322,
+                        47.3008929
+                    ],
+                    [
+                        0.690062,
+                        47.3009558
+                    ],
+                    [
+                        0.6899241,
+                        47.3054703
+                    ],
+                    [
+                        0.7362019,
+                        47.3061157
+                    ],
+                    [
+                        0.7360848,
+                        47.3106063
+                    ],
+                    [
+                        0.7559022,
+                        47.3108935
+                    ],
+                    [
+                        0.7557718,
+                        47.315392
+                    ],
+                    [
+                        0.7623755,
+                        47.3154716
+                    ],
+                    [
+                        0.7622314,
+                        47.3199941
+                    ],
+                    [
+                        0.7754911,
+                        47.3201546
+                    ],
+                    [
+                        0.77497,
+                        47.3388218
+                    ],
+                    [
+                        0.7745786,
+                        47.351628
+                    ],
+                    [
+                        0.7680363,
+                        47.3515901
+                    ],
+                    [
+                        0.767589,
+                        47.3605298
+                    ],
+                    [
+                        0.7742443,
+                        47.3606238
+                    ],
+                    [
+                        0.7733465,
+                        47.3921266
+                    ],
+                    [
+                        0.7667434,
+                        47.3920195
+                    ],
+                    [
+                        0.7664411,
+                        47.4010837
+                    ],
+                    [
+                        0.7730647,
+                        47.4011115
+                    ],
+                    [
+                        0.7728868,
+                        47.4101297
+                    ],
+                    [
+                        0.7661849,
+                        47.4100226
+                    ],
+                    [
+                        0.7660267,
+                        47.4145044
+                    ],
+                    [
+                        0.7527613,
+                        47.4143038
+                    ],
+                    [
+                        0.7529788,
+                        47.4098086
+                    ],
+                    [
+                        0.7462373,
+                        47.4097016
+                    ],
+                    [
+                        0.7459424,
+                        47.4232208
+                    ],
+                    [
+                        0.7392324,
+                        47.4231451
+                    ],
+                    [
+                        0.738869,
+                        47.4366116
+                    ],
+                    [
+                        0.7323267,
+                        47.4365171
+                    ],
+                    [
+                        0.7321869,
+                        47.4410556
+                    ],
+                    [
+                        0.7255048,
+                        47.44098
+                    ],
+                    [
+                        0.7254209,
+                        47.4453479
+                    ],
+                    [
+                        0.7318793,
+                        47.4454803
+                    ],
+                    [
+                        0.7318514,
+                        47.4501126
+                    ],
+                    [
+                        0.7384496,
+                        47.450226
+                    ],
+                    [
+                        0.7383098,
+                        47.454631
+                    ],
+                    [
+                        0.7449359,
+                        47.4547444
+                    ],
+                    [
+                        0.7443209,
+                        47.4771985
+                    ],
+                    [
+                        0.7310685,
+                        47.4769717
+                    ],
+                    [
+                        0.7309008,
+                        47.4815445
+                    ],
+                    [
+                        0.7176205,
+                        47.4812611
+                    ],
+                    [
+                        0.7177883,
+                        47.4768394
+                    ],
+                    [
+                        0.69777,
+                        47.4764993
+                    ],
+                    [
+                        0.6980496,
+                        47.4719827
+                    ],
+                    [
+                        0.6914514,
+                        47.4718882
+                    ],
+                    [
+                        0.6917309,
+                        47.4630241
+                    ],
+                    [
+                        0.6851048,
+                        47.4629295
+                    ],
+                    [
+                        0.684937,
+                        47.4673524
+                    ],
+                    [
+                        0.678255,
+                        47.4673335
+                    ],
+                    [
+                        0.6779754,
+                        47.4762158
+                    ],
+                    [
+                        0.6714051,
+                        47.4761592
+                    ],
+                    [
+                        0.6710417,
+                        47.4881952
+                    ],
+                    [
+                        0.6577334,
+                        47.4879685
+                    ],
+                    [
+                        0.6578173,
+                        47.48504
+                    ],
+                    [
+                        0.6511911,
+                        47.4848322
+                    ],
+                    [
+                        0.6514707,
+                        47.4758568
+                    ],
+                    [
+                        0.6448166,
+                        47.4757245
+                    ],
+                    [
+                        0.6449284,
+                        47.4712646
+                    ],
+                    [
+                        0.6117976,
+                        47.4707543
+                    ],
+                    [
+                        0.6118815,
+                        47.4663129
+                    ],
+                    [
+                        0.6052833,
+                        47.4661239
+                    ],
+                    [
+                        0.6054231,
+                        47.4616631
+                    ],
+                    [
+                        0.5988808,
+                        47.4615497
+                    ],
+                    [
+                        0.5990206,
+                        47.4570886
+                    ],
+                    [
+                        0.572488,
+                        47.4566916
+                    ],
+                    [
+                        0.5721805,
+                        47.4656513
+                    ]
+                ]
+            ],
+            "terms_url": "http://wiki.openstreetmap.org/wiki/Tours/Orthophoto",
+            "terms_text": "Orthophoto Tour(s) Plus 2008"
+        },
+        {
+            "name": "USGS Large Scale Imagery",
+            "type": "tms",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.us/usgs_large_scale/{zoom}/{x}/{y}.jpg",
+            "scaleExtent": [
+                12,
+                20
+            ],
+            "polygon": [
+                [
+                    [
+                        -123.2549305,
+                        48.7529029
+                    ],
+                    [
+                        -123.2549305,
+                        48.5592263
+                    ],
+                    [
+                        -123.192224,
+                        48.5592263
+                    ],
+                    [
+                        -123.192224,
+                        48.4348366
+                    ],
+                    [
+                        -122.9419646,
+                        48.4348366
+                    ],
+                    [
+                        -122.9419646,
+                        48.3720812
+                    ],
+                    [
+                        -122.8806229,
+                        48.3720812
+                    ],
+                    [
+                        -122.8806229,
+                        48.3094763
+                    ],
+                    [
+                        -122.8167566,
+                        48.3094763
+                    ],
+                    [
+                        -122.8167566,
+                        48.1904587
+                    ],
+                    [
+                        -123.0041133,
+                        48.1904587
+                    ],
+                    [
+                        -123.0041133,
+                        48.1275918
+                    ],
+                    [
+                        -123.058416,
+                        48.1275918
+                    ],
+                    [
+                        -123.058416,
+                        48.190514
+                    ],
+                    [
+                        -123.254113,
+                        48.190514
+                    ],
+                    [
+                        -123.254113,
+                        48.1274982
+                    ],
+                    [
+                        -123.3706593,
+                        48.1274982
+                    ],
+                    [
+                        -123.3706593,
+                        48.1908403
+                    ],
+                    [
+                        -124.0582632,
+                        48.1908403
+                    ],
+                    [
+                        -124.0582632,
+                        48.253442
+                    ],
+                    [
+                        -124.1815163,
+                        48.253442
+                    ],
+                    [
+                        -124.1815163,
+                        48.3164666
+                    ],
+                    [
+                        -124.4319117,
+                        48.3164666
+                    ],
+                    [
+                        -124.4319117,
+                        48.3782613
+                    ],
+                    [
+                        -124.5564618,
+                        48.3782613
+                    ],
+                    [
+                        -124.5564618,
+                        48.4408305
+                    ],
+                    [
+                        -124.7555107,
+                        48.4408305
+                    ],
+                    [
+                        -124.7555107,
+                        48.1914986
+                    ],
+                    [
+                        -124.8185282,
+                        48.1914986
+                    ],
+                    [
+                        -124.8185282,
+                        48.1228381
+                    ],
+                    [
+                        -124.7552951,
+                        48.1228381
+                    ],
+                    [
+                        -124.7552951,
+                        47.5535253
+                    ],
+                    [
+                        -124.3812108,
+                        47.5535253
+                    ],
+                    [
+                        -124.3812108,
+                        47.1218696
+                    ],
+                    [
+                        -124.1928897,
+                        47.1218696
+                    ],
+                    [
+                        -124.1928897,
+                        43.7569431
+                    ],
+                    [
+                        -124.4443382,
+                        43.7569431
+                    ],
+                    [
+                        -124.4443382,
+                        43.1425556
+                    ],
+                    [
+                        -124.6398855,
+                        43.1425556
+                    ],
+                    [
+                        -124.6398855,
+                        42.6194503
+                    ],
+                    [
+                        -124.4438525,
+                        42.6194503
+                    ],
+                    [
+                        -124.4438525,
+                        39.8080662
+                    ],
+                    [
+                        -123.8815685,
+                        39.8080662
+                    ],
+                    [
+                        -123.8815685,
+                        39.1102825
+                    ],
+                    [
+                        -123.75805,
+                        39.1102825
+                    ],
+                    [
+                        -123.75805,
+                        38.4968799
+                    ],
+                    [
+                        -123.2702803,
+                        38.4968799
+                    ],
+                    [
+                        -123.2702803,
+                        37.9331905
+                    ],
+                    [
+                        -122.8148084,
+                        37.9331905
+                    ],
+                    [
+                        -122.8148084,
+                        37.8019606
+                    ],
+                    [
+                        -122.5664316,
+                        37.8019606
+                    ],
+                    [
+                        -122.5664316,
+                        36.9319611
+                    ],
+                    [
+                        -121.8784026,
+                        36.9319611
+                    ],
+                    [
+                        -121.8784026,
+                        36.6897596
+                    ],
+                    [
+                        -122.0034748,
+                        36.6897596
+                    ],
+                    [
+                        -122.0034748,
+                        36.4341056
+                    ],
+                    [
+                        -121.9414159,
+                        36.4341056
+                    ],
+                    [
+                        -121.9414159,
+                        35.9297636
+                    ],
+                    [
+                        -121.5040977,
+                        35.9297636
+                    ],
+                    [
+                        -121.5040977,
+                        35.8100273
+                    ],
+                    [
+                        -121.3790276,
+                        35.8100273
+                    ],
+                    [
+                        -121.3790276,
+                        35.4239164
+                    ],
+                    [
+                        -120.9426515,
+                        35.4239164
+                    ],
+                    [
+                        -120.9426515,
+                        35.1849683
+                    ],
+                    [
+                        -120.8171978,
+                        35.1849683
+                    ],
+                    [
+                        -120.8171978,
+                        35.1219894
+                    ],
+                    [
+                        -120.6918447,
+                        35.1219894
+                    ],
+                    [
+                        -120.6918447,
+                        34.4966794
+                    ],
+                    [
+                        -120.5045898,
+                        34.4966794
+                    ],
+                    [
+                        -120.5045898,
+                        34.4339651
+                    ],
+                    [
+                        -120.0078775,
+                        34.4339651
+                    ],
+                    [
+                        -120.0078775,
+                        34.3682626
+                    ],
+                    [
+                        -119.5283517,
+                        34.3682626
+                    ],
+                    [
+                        -119.5283517,
+                        34.0576434
+                    ],
+                    [
+                        -119.0060985,
+                        34.0576434
+                    ],
+                    [
+                        -119.0060985,
+                        33.9975267
+                    ],
+                    [
+                        -118.5046259,
+                        33.9975267
+                    ],
+                    [
+                        -118.5046259,
+                        33.8694631
+                    ],
+                    [
+                        -118.4413209,
+                        33.8694631
+                    ],
+                    [
+                        -118.4413209,
+                        33.6865253
+                    ],
+                    [
+                        -118.066912,
+                        33.6865253
+                    ],
+                    [
+                        -118.066912,
+                        33.3063832
+                    ],
+                    [
+                        -117.5030045,
+                        33.3063832
+                    ],
+                    [
+                        -117.5030045,
+                        33.0500337
+                    ],
+                    [
+                        -117.3188195,
+                        33.0500337
+                    ],
+                    [
+                        -117.3188195,
+                        32.6205888
+                    ],
+                    [
+                        -117.1917023,
+                        32.6205888
+                    ],
+                    [
+                        -117.1917023,
+                        32.4974566
+                    ],
+                    [
+                        -116.746496,
+                        32.4974566
+                    ],
+                    [
+                        -116.746496,
+                        32.5609161
+                    ],
+                    [
+                        -115.9970138,
+                        32.5609161
+                    ],
+                    [
+                        -115.9970138,
+                        32.6264942
+                    ],
+                    [
+                        -114.8808125,
+                        32.6264942
+                    ],
+                    [
+                        -114.8808125,
+                        32.4340796
+                    ],
+                    [
+                        -114.6294474,
+                        32.4340796
+                    ],
+                    [
+                        -114.6294474,
+                        32.3731636
+                    ],
+                    [
+                        -114.4447437,
+                        32.3731636
+                    ],
+                    [
+                        -114.4447437,
+                        32.3075418
+                    ],
+                    [
+                        -114.2557628,
+                        32.3075418
+                    ],
+                    [
+                        -114.2557628,
+                        32.2444561
+                    ],
+                    [
+                        -114.0680274,
+                        32.2444561
+                    ],
+                    [
+                        -114.0680274,
+                        32.1829113
+                    ],
+                    [
+                        -113.8166499,
+                        32.1829113
+                    ],
+                    [
+                        -113.8166499,
+                        32.1207622
+                    ],
+                    [
+                        -113.6307421,
+                        32.1207622
+                    ],
+                    [
+                        -113.6307421,
+                        32.0565099
+                    ],
+                    [
+                        -113.4417495,
+                        32.0565099
+                    ],
+                    [
+                        -113.4417495,
+                        31.9984372
+                    ],
+                    [
+                        -113.2546027,
+                        31.9984372
+                    ],
+                    [
+                        -113.2546027,
+                        31.9325434
+                    ],
+                    [
+                        -113.068072,
+                        31.9325434
+                    ],
+                    [
+                        -113.068072,
+                        31.8718062
+                    ],
+                    [
+                        -112.8161105,
+                        31.8718062
+                    ],
+                    [
+                        -112.8161105,
+                        31.8104171
+                    ],
+                    [
+                        -112.6308756,
+                        31.8104171
+                    ],
+                    [
+                        -112.6308756,
+                        31.7464723
+                    ],
+                    [
+                        -112.4418918,
+                        31.7464723
+                    ],
+                    [
+                        -112.4418918,
+                        31.6856001
+                    ],
+                    [
+                        -112.257192,
+                        31.6856001
+                    ],
+                    [
+                        -112.257192,
+                        31.6210352
+                    ],
+                    [
+                        -112.0033787,
+                        31.6210352
+                    ],
+                    [
+                        -112.0033787,
+                        31.559584
+                    ],
+                    [
+                        -111.815619,
+                        31.559584
+                    ],
+                    [
+                        -111.815619,
+                        31.4970238
+                    ],
+                    [
+                        -111.6278586,
+                        31.4970238
+                    ],
+                    [
+                        -111.6278586,
+                        31.4339867
+                    ],
+                    [
+                        -111.4418978,
+                        31.4339867
+                    ],
+                    [
+                        -111.4418978,
+                        31.3733859
+                    ],
+                    [
+                        -111.2559708,
+                        31.3733859
+                    ],
+                    [
+                        -111.2559708,
+                        31.3113225
+                    ],
+                    [
+                        -108.1845822,
+                        31.3113225
+                    ],
+                    [
+                        -108.1845822,
+                        31.7459502
+                    ],
+                    [
+                        -106.5065055,
+                        31.7459502
+                    ],
+                    [
+                        -106.5065055,
+                        31.6842308
+                    ],
+                    [
+                        -106.3797265,
+                        31.6842308
+                    ],
+                    [
+                        -106.3797265,
+                        31.621752
+                    ],
+                    [
+                        -106.317434,
+                        31.621752
+                    ],
+                    [
+                        -106.317434,
+                        31.4968167
+                    ],
+                    [
+                        -106.2551769,
+                        31.4968167
+                    ],
+                    [
+                        -106.2551769,
+                        31.4344889
+                    ],
+                    [
+                        -106.1924698,
+                        31.4344889
+                    ],
+                    [
+                        -106.1924698,
+                        31.3721296
+                    ],
+                    [
+                        -106.0039212,
+                        31.3721296
+                    ],
+                    [
+                        -106.0039212,
+                        31.309328
+                    ],
+                    [
+                        -105.9416582,
+                        31.309328
+                    ],
+                    [
+                        -105.9416582,
+                        31.2457547
+                    ],
+                    [
+                        -105.8798174,
+                        31.2457547
+                    ],
+                    [
+                        -105.8798174,
+                        31.1836194
+                    ],
+                    [
+                        -105.8162349,
+                        31.1836194
+                    ],
+                    [
+                        -105.8162349,
+                        31.1207155
+                    ],
+                    [
+                        -105.6921198,
+                        31.1207155
+                    ],
+                    [
+                        -105.6921198,
+                        31.0584835
+                    ],
+                    [
+                        -105.6302881,
+                        31.0584835
+                    ],
+                    [
+                        -105.6302881,
+                        30.9328271
+                    ],
+                    [
+                        -105.5044418,
+                        30.9328271
+                    ],
+                    [
+                        -105.5044418,
+                        30.8715864
+                    ],
+                    [
+                        -105.4412973,
+                        30.8715864
+                    ],
+                    [
+                        -105.4412973,
+                        30.808463
+                    ],
+                    [
+                        -105.3781497,
+                        30.808463
+                    ],
+                    [
+                        -105.3781497,
+                        30.7471828
+                    ],
+                    [
+                        -105.1904658,
+                        30.7471828
+                    ],
+                    [
+                        -105.1904658,
+                        30.6843231
+                    ],
+                    [
+                        -105.1286244,
+                        30.6843231
+                    ],
+                    [
+                        -105.1286244,
+                        30.6199737
+                    ],
+                    [
+                        -105.0036504,
+                        30.6199737
+                    ],
+                    [
+                        -105.0036504,
+                        30.5589058
+                    ],
+                    [
+                        -104.9417962,
+                        30.5589058
+                    ],
+                    [
+                        -104.9417962,
+                        30.4963236
+                    ],
+                    [
+                        -104.8782018,
+                        30.4963236
+                    ],
+                    [
+                        -104.8782018,
+                        30.3098261
+                    ],
+                    [
+                        -104.8155257,
+                        30.3098261
+                    ],
+                    [
+                        -104.8155257,
+                        30.2478305
+                    ],
+                    [
+                        -104.7536079,
+                        30.2478305
+                    ],
+                    [
+                        -104.7536079,
+                        29.9353916
+                    ],
+                    [
+                        -104.690949,
+                        29.9353916
+                    ],
+                    [
+                        -104.690949,
+                        29.8090156
+                    ],
+                    [
+                        -104.6291301,
+                        29.8090156
+                    ],
+                    [
+                        -104.6291301,
+                        29.6843577
+                    ],
+                    [
+                        -104.5659869,
+                        29.6843577
+                    ],
+                    [
+                        -104.5659869,
+                        29.6223459
+                    ],
+                    [
+                        -104.5037188,
+                        29.6223459
+                    ],
+                    [
+                        -104.5037188,
+                        29.5595436
+                    ],
+                    [
+                        -104.4410072,
+                        29.5595436
+                    ],
+                    [
+                        -104.4410072,
+                        29.4974832
+                    ],
+                    [
+                        -104.2537551,
+                        29.4974832
+                    ],
+                    [
+                        -104.2537551,
+                        29.3716718
+                    ],
+                    [
+                        -104.1291984,
+                        29.3716718
+                    ],
+                    [
+                        -104.1291984,
+                        29.3091621
+                    ],
+                    [
+                        -104.0688737,
+                        29.3091621
+                    ],
+                    [
+                        -104.0688737,
+                        29.2467276
+                    ],
+                    [
+                        -103.8187309,
+                        29.2467276
+                    ],
+                    [
+                        -103.8187309,
+                        29.1843076
+                    ],
+                    [
+                        -103.755736,
+                        29.1843076
+                    ],
+                    [
+                        -103.755736,
+                        29.1223174
+                    ],
+                    [
+                        -103.5667542,
+                        29.1223174
+                    ],
+                    [
+                        -103.5667542,
+                        29.0598119
+                    ],
+                    [
+                        -103.5049819,
+                        29.0598119
+                    ],
+                    [
+                        -103.5049819,
+                        28.9967506
+                    ],
+                    [
+                        -103.3165753,
+                        28.9967506
+                    ],
+                    [
+                        -103.3165753,
+                        28.9346923
+                    ],
+                    [
+                        -103.0597572,
+                        28.9346923
+                    ],
+                    [
+                        -103.0597572,
+                        29.0592965
+                    ],
+                    [
+                        -102.9979694,
+                        29.0592965
+                    ],
+                    [
+                        -102.9979694,
+                        29.1212855
+                    ],
+                    [
+                        -102.9331397,
+                        29.1212855
+                    ],
+                    [
+                        -102.9331397,
+                        29.1848575
+                    ],
+                    [
+                        -102.8095989,
+                        29.1848575
+                    ],
+                    [
+                        -102.8095989,
+                        29.2526154
+                    ],
+                    [
+                        -102.8701345,
+                        29.2526154
+                    ],
+                    [
+                        -102.8701345,
+                        29.308096
+                    ],
+                    [
+                        -102.8096681,
+                        29.308096
+                    ],
+                    [
+                        -102.8096681,
+                        29.3715484
+                    ],
+                    [
+                        -102.7475655,
+                        29.3715484
+                    ],
+                    [
+                        -102.7475655,
+                        29.5581899
+                    ],
+                    [
+                        -102.684554,
+                        29.5581899
+                    ],
+                    [
+                        -102.684554,
+                        29.6847655
+                    ],
+                    [
+                        -102.4967764,
+                        29.6847655
+                    ],
+                    [
+                        -102.4967764,
+                        29.7457694
+                    ],
+                    [
+                        -102.3086647,
+                        29.7457694
+                    ],
+                    [
+                        -102.3086647,
+                        29.8086627
+                    ],
+                    [
+                        -102.1909323,
+                        29.8086627
+                    ],
+                    [
+                        -102.1909323,
+                        29.7460097
+                    ],
+                    [
+                        -101.5049914,
+                        29.7460097
+                    ],
+                    [
+                        -101.5049914,
+                        29.6846777
+                    ],
+                    [
+                        -101.3805796,
+                        29.6846777
+                    ],
+                    [
+                        -101.3805796,
+                        29.5594459
+                    ],
+                    [
+                        -101.3175057,
+                        29.5594459
+                    ],
+                    [
+                        -101.3175057,
+                        29.4958934
+                    ],
+                    [
+                        -101.1910075,
+                        29.4958934
+                    ],
+                    [
+                        -101.1910075,
+                        29.4326115
+                    ],
+                    [
+                        -101.067501,
+                        29.4326115
+                    ],
+                    [
+                        -101.067501,
+                        29.308808
+                    ],
+                    [
+                        -100.9418897,
+                        29.308808
+                    ],
+                    [
+                        -100.9418897,
+                        29.2456231
+                    ],
+                    [
+                        -100.8167271,
+                        29.2456231
+                    ],
+                    [
+                        -100.8167271,
+                        29.1190449
+                    ],
+                    [
+                        -100.7522672,
+                        29.1190449
+                    ],
+                    [
+                        -100.7522672,
+                        29.0578214
+                    ],
+                    [
+                        -100.6925358,
+                        29.0578214
+                    ],
+                    [
+                        -100.6925358,
+                        28.8720431
+                    ],
+                    [
+                        -100.6290158,
+                        28.8720431
+                    ],
+                    [
+                        -100.6290158,
+                        28.8095363
+                    ],
+                    [
+                        -100.5679901,
+                        28.8095363
+                    ],
+                    [
+                        -100.5679901,
+                        28.622554
+                    ],
+                    [
+                        -100.5040411,
+                        28.622554
+                    ],
+                    [
+                        -100.5040411,
+                        28.5583804
+                    ],
+                    [
+                        -100.4421832,
+                        28.5583804
+                    ],
+                    [
+                        -100.4421832,
+                        28.4968266
+                    ],
+                    [
+                        -100.379434,
+                        28.4968266
+                    ],
+                    [
+                        -100.379434,
+                        28.3092865
+                    ],
+                    [
+                        -100.3171942,
+                        28.3092865
+                    ],
+                    [
+                        -100.3171942,
+                        28.1835681
+                    ],
+                    [
+                        -100.254483,
+                        28.1835681
+                    ],
+                    [
+                        -100.254483,
+                        28.1213885
+                    ],
+                    [
+                        -100.1282282,
+                        28.1213885
+                    ],
+                    [
+                        -100.1282282,
+                        28.059215
+                    ],
+                    [
+                        -100.0659537,
+                        28.059215
+                    ],
+                    [
+                        -100.0659537,
+                        27.9966087
+                    ],
+                    [
+                        -100.0023855,
+                        27.9966087
+                    ],
+                    [
+                        -100.0023855,
+                        27.9332152
+                    ],
+                    [
+                        -99.9426497,
+                        27.9332152
+                    ],
+                    [
+                        -99.9426497,
+                        27.7454658
+                    ],
+                    [
+                        -99.816851,
+                        27.7454658
+                    ],
+                    [
+                        -99.816851,
+                        27.6834301
+                    ],
+                    [
+                        -99.7541346,
+                        27.6834301
+                    ],
+                    [
+                        -99.7541346,
+                        27.6221543
+                    ],
+                    [
+                        -99.6291629,
+                        27.6221543
+                    ],
+                    [
+                        -99.6291629,
+                        27.5588977
+                    ],
+                    [
+                        -99.5672838,
+                        27.5588977
+                    ],
+                    [
+                        -99.5672838,
+                        27.4353752
+                    ],
+                    [
+                        -99.5041798,
+                        27.4353752
+                    ],
+                    [
+                        -99.5041798,
+                        27.3774021
+                    ],
+                    [
+                        -99.5671796,
+                        27.3774021
+                    ],
+                    [
+                        -99.5671796,
+                        27.2463726
+                    ],
+                    [
+                        -99.504975,
+                        27.2463726
+                    ],
+                    [
+                        -99.504975,
+                        26.9965649
+                    ],
+                    [
+                        -99.4427427,
+                        26.9965649
+                    ],
+                    [
+                        -99.4427427,
+                        26.872803
+                    ],
+                    [
+                        -99.3800633,
+                        26.872803
+                    ],
+                    [
+                        -99.3800633,
+                        26.8068179
+                    ],
+                    [
+                        -99.3190684,
+                        26.8068179
+                    ],
+                    [
+                        -99.3190684,
+                        26.7473614
+                    ],
+                    [
+                        -99.2537541,
+                        26.7473614
+                    ],
+                    [
+                        -99.2537541,
+                        26.6210068
+                    ],
+                    [
+                        -99.1910617,
+                        26.6210068
+                    ],
+                    [
+                        -99.1910617,
+                        26.4956737
+                    ],
+                    [
+                        -99.1300639,
+                        26.4956737
+                    ],
+                    [
+                        -99.1300639,
+                        26.3713808
+                    ],
+                    [
+                        -99.0029473,
+                        26.3713808
+                    ],
+                    [
+                        -99.0029473,
+                        26.3093836
+                    ],
+                    [
+                        -98.816572,
+                        26.3093836
+                    ],
+                    [
+                        -98.816572,
+                        26.2457762
+                    ],
+                    [
+                        -98.6920082,
+                        26.2457762
+                    ],
+                    [
+                        -98.6920082,
+                        26.1837096
+                    ],
+                    [
+                        -98.4440896,
+                        26.1837096
+                    ],
+                    [
+                        -98.4440896,
+                        26.1217217
+                    ],
+                    [
+                        -98.3823181,
+                        26.1217217
+                    ],
+                    [
+                        -98.3823181,
+                        26.0596488
+                    ],
+                    [
+                        -98.2532707,
+                        26.0596488
+                    ],
+                    [
+                        -98.2532707,
+                        25.9986871
+                    ],
+                    [
+                        -98.0109084,
+                        25.9986871
+                    ],
+                    [
+                        -98.0109084,
+                        25.9932255
+                    ],
+                    [
+                        -97.6932319,
+                        25.9932255
+                    ],
+                    [
+                        -97.6932319,
+                        25.9334103
+                    ],
+                    [
+                        -97.6313904,
+                        25.9334103
+                    ],
+                    [
+                        -97.6313904,
+                        25.8695893
+                    ],
+                    [
+                        -97.5046779,
+                        25.8695893
+                    ],
+                    [
+                        -97.5046779,
+                        25.8073488
+                    ],
+                    [
+                        -97.3083401,
+                        25.8073488
+                    ],
+                    [
+                        -97.3083401,
+                        25.8731159
+                    ],
+                    [
+                        -97.2456326,
+                        25.8731159
+                    ],
+                    [
+                        -97.2456326,
+                        25.9353731
+                    ],
+                    [
+                        -97.1138939,
+                        25.9353731
+                    ],
+                    [
+                        -97.1138939,
+                        27.6809179
+                    ],
+                    [
+                        -97.0571035,
+                        27.6809179
+                    ],
+                    [
+                        -97.0571035,
+                        27.8108242
+                    ],
+                    [
+                        -95.5810766,
+                        27.8108242
+                    ],
+                    [
+                        -95.5810766,
+                        28.7468827
+                    ],
+                    [
+                        -94.271041,
+                        28.7468827
+                    ],
+                    [
+                        -94.271041,
+                        29.5594076
+                    ],
+                    [
+                        -92.5029947,
+                        29.5594076
+                    ],
+                    [
+                        -92.5029947,
+                        29.4974754
+                    ],
+                    [
+                        -91.8776216,
+                        29.4974754
+                    ],
+                    [
+                        -91.8776216,
+                        29.3727013
+                    ],
+                    [
+                        -91.378418,
+                        29.3727013
+                    ],
+                    [
+                        -91.378418,
+                        29.2468326
+                    ],
+                    [
+                        -91.3153953,
+                        29.2468326
+                    ],
+                    [
+                        -91.3153953,
+                        29.1844301
+                    ],
+                    [
+                        -91.1294702,
+                        29.1844301
+                    ],
+                    [
+                        -91.1294702,
+                        29.1232559
+                    ],
+                    [
+                        -91.0052632,
+                        29.1232559
+                    ],
+                    [
+                        -91.0052632,
+                        28.9968437
+                    ],
+                    [
+                        -89.4500159,
+                        28.9968437
+                    ],
+                    [
+                        -89.4500159,
+                        28.8677422
+                    ],
+                    [
+                        -88.8104309,
+                        28.8677422
+                    ],
+                    [
+                        -88.8104309,
+                        30.1841864
+                    ],
+                    [
+                        -85.8791527,
+                        30.1841864
+                    ],
+                    [
+                        -85.8791527,
+                        29.5455038
+                    ],
+                    [
+                        -84.8368083,
+                        29.5455038
+                    ],
+                    [
+                        -84.8368083,
+                        29.6225158
+                    ],
+                    [
+                        -84.7482786,
+                        29.6225158
+                    ],
+                    [
+                        -84.7482786,
+                        29.683624
+                    ],
+                    [
+                        -84.685894,
+                        29.683624
+                    ],
+                    [
+                        -84.685894,
+                        29.7468386
+                    ],
+                    [
+                        -83.6296975,
+                        29.7468386
+                    ],
+                    [
+                        -83.6296975,
+                        29.4324361
+                    ],
+                    [
+                        -83.3174937,
+                        29.4324361
+                    ],
+                    [
+                        -83.3174937,
+                        29.0579442
+                    ],
+                    [
+                        -82.879659,
+                        29.0579442
+                    ],
+                    [
+                        -82.879659,
+                        27.7453529
+                    ],
+                    [
+                        -82.8182822,
+                        27.7453529
+                    ],
+                    [
+                        -82.8182822,
+                        26.9290868
+                    ],
+                    [
+                        -82.3796782,
+                        26.9290868
+                    ],
+                    [
+                        -82.3796782,
+                        26.3694183
+                    ],
+                    [
+                        -81.8777106,
+                        26.3694183
+                    ],
+                    [
+                        -81.8777106,
+                        25.805971
+                    ],
+                    [
+                        -81.5036862,
+                        25.805971
+                    ],
+                    [
+                        -81.5036862,
+                        25.7474753
+                    ],
+                    [
+                        -81.4405462,
+                        25.7474753
+                    ],
+                    [
+                        -81.4405462,
+                        25.6851489
+                    ],
+                    [
+                        -81.3155883,
+                        25.6851489
+                    ],
+                    [
+                        -81.3155883,
+                        25.5600985
+                    ],
+                    [
+                        -81.2538534,
+                        25.5600985
+                    ],
+                    [
+                        -81.2538534,
+                        25.4342361
+                    ],
+                    [
+                        -81.1902012,
+                        25.4342361
+                    ],
+                    [
+                        -81.1902012,
+                        25.1234341
+                    ],
+                    [
+                        -81.1288133,
+                        25.1234341
+                    ],
+                    [
+                        -81.1288133,
+                        25.0619389
+                    ],
+                    [
+                        -81.0649231,
+                        25.0619389
+                    ],
+                    [
+                        -81.0649231,
+                        24.8157807
+                    ],
+                    [
+                        -81.6289469,
+                        24.8157807
+                    ],
+                    [
+                        -81.6289469,
+                        24.7538367
+                    ],
+                    [
+                        -81.6907173,
+                        24.7538367
+                    ],
+                    [
+                        -81.6907173,
+                        24.6899374
+                    ],
+                    [
+                        -81.8173189,
+                        24.6899374
+                    ],
+                    [
+                        -81.8173189,
+                        24.6279161
+                    ],
+                    [
+                        -82.1910041,
+                        24.6279161
+                    ],
+                    [
+                        -82.1910041,
+                        24.496294
+                    ],
+                    [
+                        -81.6216596,
+                        24.496294
+                    ],
+                    [
+                        -81.6216596,
+                        24.559484
+                    ],
+                    [
+                        -81.372006,
+                        24.559484
+                    ],
+                    [
+                        -81.372006,
+                        24.6220687
+                    ],
+                    [
+                        -81.0593278,
+                        24.6220687
+                    ],
+                    [
+                        -81.0593278,
+                        24.684826
+                    ],
+                    [
+                        -80.9347147,
+                        24.684826
+                    ],
+                    [
+                        -80.9347147,
+                        24.7474828
+                    ],
+                    [
+                        -80.7471081,
+                        24.7474828
+                    ],
+                    [
+                        -80.7471081,
+                        24.8100618
+                    ],
+                    [
+                        -80.3629898,
+                        24.8100618
+                    ],
+                    [
+                        -80.3629898,
+                        25.1175858
+                    ],
+                    [
+                        -80.122344,
+                        25.1175858
+                    ],
+                    [
+                        -80.122344,
+                        25.7472357
+                    ],
+                    [
+                        -80.0588458,
+                        25.7472357
+                    ],
+                    [
+                        -80.0588458,
+                        26.3708251
+                    ],
+                    [
+                        -79.995837,
+                        26.3708251
+                    ],
+                    [
+                        -79.995837,
+                        26.9398003
+                    ],
+                    [
+                        -80.0587265,
+                        26.9398003
+                    ],
+                    [
+                        -80.0587265,
+                        27.1277466
+                    ],
+                    [
+                        -80.1226251,
+                        27.1277466
+                    ],
+                    [
+                        -80.1226251,
+                        27.2534279
+                    ],
+                    [
+                        -80.1846956,
+                        27.2534279
+                    ],
+                    [
+                        -80.1846956,
+                        27.3781229
+                    ],
+                    [
+                        -80.246175,
+                        27.3781229
+                    ],
+                    [
+                        -80.246175,
+                        27.5658729
+                    ],
+                    [
+                        -80.3094768,
+                        27.5658729
+                    ],
+                    [
+                        -80.3094768,
+                        27.7530311
+                    ],
+                    [
+                        -80.3721485,
+                        27.7530311
+                    ],
+                    [
+                        -80.3721485,
+                        27.8774451
+                    ],
+                    [
+                        -80.4351457,
+                        27.8774451
+                    ],
+                    [
+                        -80.4351457,
+                        28.0033366
+                    ],
+                    [
+                        -80.4966078,
+                        28.0033366
+                    ],
+                    [
+                        -80.4966078,
+                        28.1277326
+                    ],
+                    [
+                        -80.5587159,
+                        28.1277326
+                    ],
+                    [
+                        -80.5587159,
+                        28.3723509
+                    ],
+                    [
+                        -80.4966335,
+                        28.3723509
+                    ],
+                    [
+                        -80.4966335,
+                        29.5160326
+                    ],
+                    [
+                        -81.1213644,
+                        29.5160326
+                    ],
+                    [
+                        -81.1213644,
+                        31.6846966
+                    ],
+                    [
+                        -80.6018723,
+                        31.6846966
+                    ],
+                    [
+                        -80.6018723,
+                        32.2475309
+                    ],
+                    [
+                        -79.4921024,
+                        32.2475309
+                    ],
+                    [
+                        -79.4921024,
+                        32.9970261
+                    ],
+                    [
+                        -79.1116488,
+                        32.9970261
+                    ],
+                    [
+                        -79.1116488,
+                        33.3729457
+                    ],
+                    [
+                        -78.6153621,
+                        33.3729457
+                    ],
+                    [
+                        -78.6153621,
+                        33.8097638
+                    ],
+                    [
+                        -77.9316963,
+                        33.8097638
+                    ],
+                    [
+                        -77.9316963,
+                        33.8718243
+                    ],
+                    [
+                        -77.8692252,
+                        33.8718243
+                    ],
+                    [
+                        -77.8692252,
+                        34.0552454
+                    ],
+                    [
+                        -77.6826392,
+                        34.0552454
+                    ],
+                    [
+                        -77.6826392,
+                        34.2974598
+                    ],
+                    [
+                        -77.2453509,
+                        34.2974598
+                    ],
+                    [
+                        -77.2453509,
+                        34.5598585
+                    ],
+                    [
+                        -76.4973277,
+                        34.5598585
+                    ],
+                    [
+                        -76.4973277,
+                        34.622796
+                    ],
+                    [
+                        -76.4337602,
+                        34.622796
+                    ],
+                    [
+                        -76.4337602,
+                        34.6849285
+                    ],
+                    [
+                        -76.373212,
+                        34.6849285
+                    ],
+                    [
+                        -76.373212,
+                        34.7467674
+                    ],
+                    [
+                        -76.3059364,
+                        34.7467674
+                    ],
+                    [
+                        -76.3059364,
+                        34.808551
+                    ],
+                    [
+                        -76.2468017,
+                        34.808551
+                    ],
+                    [
+                        -76.2468017,
+                        34.8728418
+                    ],
+                    [
+                        -76.1825922,
+                        34.8728418
+                    ],
+                    [
+                        -76.1825922,
+                        34.9335332
+                    ],
+                    [
+                        -76.120814,
+                        34.9335332
+                    ],
+                    [
+                        -76.120814,
+                        34.9952359
+                    ],
+                    [
+                        -75.9979015,
+                        34.9952359
+                    ],
+                    [
+                        -75.9979015,
+                        35.0578182
+                    ],
+                    [
+                        -75.870338,
+                        35.0578182
+                    ],
+                    [
+                        -75.870338,
+                        35.1219097
+                    ],
+                    [
+                        -75.7462194,
+                        35.1219097
+                    ],
+                    [
+                        -75.7462194,
+                        35.1818911
+                    ],
+                    [
+                        -75.4929694,
+                        35.1818911
+                    ],
+                    [
+                        -75.4929694,
+                        35.3082988
+                    ],
+                    [
+                        -75.4325662,
+                        35.3082988
+                    ],
+                    [
+                        -75.4325662,
+                        35.7542495
+                    ],
+                    [
+                        -75.4969907,
+                        35.7542495
+                    ],
+                    [
+                        -75.4969907,
+                        37.8105602
+                    ],
+                    [
+                        -75.3082972,
+                        37.8105602
+                    ],
+                    [
+                        -75.3082972,
+                        37.8720088
+                    ],
+                    [
+                        -75.245601,
+                        37.8720088
+                    ],
+                    [
+                        -75.245601,
+                        37.9954849
+                    ],
+                    [
+                        -75.1828751,
+                        37.9954849
+                    ],
+                    [
+                        -75.1828751,
+                        38.0585079
+                    ],
+                    [
+                        -75.1184793,
+                        38.0585079
+                    ],
+                    [
+                        -75.1184793,
+                        38.2469091
+                    ],
+                    [
+                        -75.0592098,
+                        38.2469091
+                    ],
+                    [
+                        -75.0592098,
+                        38.3704316
+                    ],
+                    [
+                        -74.9948111,
+                        38.3704316
+                    ],
+                    [
+                        -74.9948111,
+                        38.8718417
+                    ],
+                    [
+                        -74.4878252,
+                        38.8718417
+                    ],
+                    [
+                        -74.4878252,
+                        39.3089428
+                    ],
+                    [
+                        -74.1766317,
+                        39.3089428
+                    ],
+                    [
+                        -74.1766317,
+                        39.6224653
+                    ],
+                    [
+                        -74.0567045,
+                        39.6224653
+                    ],
+                    [
+                        -74.0567045,
+                        39.933178
+                    ],
+                    [
+                        -73.9959035,
+                        39.933178
+                    ],
+                    [
+                        -73.9959035,
+                        40.1854852
+                    ],
+                    [
+                        -73.9341593,
+                        40.1854852
+                    ],
+                    [
+                        -73.9341593,
+                        40.4959486
+                    ],
+                    [
+                        -73.8723024,
+                        40.4959486
+                    ],
+                    [
+                        -73.8723024,
+                        40.5527135
+                    ],
+                    [
+                        -71.8074506,
+                        40.5527135
+                    ],
+                    [
+                        -71.8074506,
+                        41.3088005
+                    ],
+                    [
+                        -70.882512,
+                        41.3088005
+                    ],
+                    [
+                        -70.882512,
+                        41.184978
+                    ],
+                    [
+                        -70.7461947,
+                        41.184978
+                    ],
+                    [
+                        -70.7461947,
+                        41.3091865
+                    ],
+                    [
+                        -70.4337553,
+                        41.3091865
+                    ],
+                    [
+                        -70.4337553,
+                        41.4963885
+                    ],
+                    [
+                        -69.9334281,
+                        41.4963885
+                    ],
+                    [
+                        -69.9334281,
+                        41.6230802
+                    ],
+                    [
+                        -69.869857,
+                        41.6230802
+                    ],
+                    [
+                        -69.869857,
+                        41.8776895
+                    ],
+                    [
+                        -69.935791,
+                        41.8776895
+                    ],
+                    [
+                        -69.935791,
+                        42.0032342
+                    ],
+                    [
+                        -69.9975823,
+                        42.0032342
+                    ],
+                    [
+                        -69.9975823,
+                        42.0650191
+                    ],
+                    [
+                        -70.0606103,
+                        42.0650191
+                    ],
+                    [
+                        -70.0606103,
+                        42.1294348
+                    ],
+                    [
+                        -70.5572884,
+                        42.1294348
+                    ],
+                    [
+                        -70.5572884,
+                        43.2487079
+                    ],
+                    [
+                        -70.4974097,
+                        43.2487079
+                    ],
+                    [
+                        -70.4974097,
+                        43.3092194
+                    ],
+                    [
+                        -70.3704249,
+                        43.3092194
+                    ],
+                    [
+                        -70.3704249,
+                        43.371963
+                    ],
+                    [
+                        -70.3085701,
+                        43.371963
+                    ],
+                    [
+                        -70.3085701,
+                        43.4969879
+                    ],
+                    [
+                        -70.183921,
+                        43.4969879
+                    ],
+                    [
+                        -70.183921,
+                        43.6223531
+                    ],
+                    [
+                        -70.057583,
+                        43.6223531
+                    ],
+                    [
+                        -70.057583,
+                        43.6850173
+                    ],
+                    [
+                        -69.7455247,
+                        43.6850173
+                    ],
+                    [
+                        -69.7455247,
+                        43.7476571
+                    ],
+                    [
+                        -69.2472845,
+                        43.7476571
+                    ],
+                    [
+                        -69.2472845,
+                        43.8107035
+                    ],
+                    [
+                        -69.0560701,
+                        43.8107035
+                    ],
+                    [
+                        -69.0560701,
+                        43.8717247
+                    ],
+                    [
+                        -68.9950522,
+                        43.8717247
+                    ],
+                    [
+                        -68.9950522,
+                        43.9982022
+                    ],
+                    [
+                        -68.4963672,
+                        43.9982022
+                    ],
+                    [
+                        -68.4963672,
+                        44.0597368
+                    ],
+                    [
+                        -68.3081038,
+                        44.0597368
+                    ],
+                    [
+                        -68.3081038,
+                        44.122137
+                    ],
+                    [
+                        -68.1851802,
+                        44.122137
+                    ],
+                    [
+                        -68.1851802,
+                        44.3081382
+                    ],
+                    [
+                        -67.9956019,
+                        44.3081382
+                    ],
+                    [
+                        -67.9956019,
+                        44.3727489
+                    ],
+                    [
+                        -67.8103041,
+                        44.3727489
+                    ],
+                    [
+                        -67.8103041,
+                        44.435178
+                    ],
+                    [
+                        -67.4965289,
+                        44.435178
+                    ],
+                    [
+                        -67.4965289,
+                        44.4968776
+                    ],
+                    [
+                        -67.37102,
+                        44.4968776
+                    ],
+                    [
+                        -67.37102,
+                        44.5600642
+                    ],
+                    [
+                        -67.1848753,
+                        44.5600642
+                    ],
+                    [
+                        -67.1848753,
+                        44.6213345
+                    ],
+                    [
+                        -67.1221208,
+                        44.6213345
+                    ],
+                    [
+                        -67.1221208,
+                        44.6867918
+                    ],
+                    [
+                        -67.059365,
+                        44.6867918
+                    ],
+                    [
+                        -67.059365,
+                        44.7473657
+                    ],
+                    [
+                        -66.9311098,
+                        44.7473657
+                    ],
+                    [
+                        -66.9311098,
+                        44.9406566
+                    ],
+                    [
+                        -66.994683,
+                        44.9406566
+                    ],
+                    [
+                        -66.994683,
+                        45.0024514
+                    ],
+                    [
+                        -67.0595847,
+                        45.0024514
+                    ],
+                    [
+                        -67.0595847,
+                        45.1273377
+                    ],
+                    [
+                        -67.1201974,
+                        45.1273377
+                    ],
+                    [
+                        -67.1201974,
+                        45.1910115
+                    ],
+                    [
+                        -67.2469811,
+                        45.1910115
+                    ],
+                    [
+                        -67.2469811,
+                        45.253442
+                    ],
+                    [
+                        -67.3177546,
+                        45.253442
+                    ],
+                    [
+                        -67.3177546,
+                        45.1898369
+                    ],
+                    [
+                        -67.370749,
+                        45.1898369
+                    ],
+                    [
+                        -67.370749,
+                        45.2534001
+                    ],
+                    [
+                        -67.4326888,
+                        45.2534001
+                    ],
+                    [
+                        -67.4326888,
+                        45.3083409
+                    ],
+                    [
+                        -67.3708571,
+                        45.3083409
+                    ],
+                    [
+                        -67.3708571,
+                        45.4396986
+                    ],
+                    [
+                        -67.4305573,
+                        45.4396986
+                    ],
+                    [
+                        -67.4305573,
+                        45.4950095
+                    ],
+                    [
+                        -67.37099,
+                        45.4950095
+                    ],
+                    [
+                        -67.37099,
+                        45.6264543
+                    ],
+                    [
+                        -67.6214982,
+                        45.6264543
+                    ],
+                    [
+                        -67.6214982,
+                        45.6896133
+                    ],
+                    [
+                        -67.683828,
+                        45.6896133
+                    ],
+                    [
+                        -67.683828,
+                        45.753259
+                    ],
+                    [
+                        -67.7462097,
+                        45.753259
+                    ],
+                    [
+                        -67.7462097,
+                        47.1268165
+                    ],
+                    [
+                        -67.8700141,
+                        47.1268165
+                    ],
+                    [
+                        -67.8700141,
+                        47.1900278
+                    ],
+                    [
+                        -67.9323803,
+                        47.1900278
+                    ],
+                    [
+                        -67.9323803,
+                        47.2539678
+                    ],
+                    [
+                        -67.9959387,
+                        47.2539678
+                    ],
+                    [
+                        -67.9959387,
+                        47.3149737
+                    ],
+                    [
+                        -68.1206676,
+                        47.3149737
+                    ],
+                    [
+                        -68.1206676,
+                        47.3780823
+                    ],
+                    [
+                        -68.4423175,
+                        47.3780823
+                    ],
+                    [
+                        -68.4423175,
+                        47.3166082
+                    ],
+                    [
+                        -68.6314305,
+                        47.3166082
+                    ],
+                    [
+                        -68.6314305,
+                        47.2544676
+                    ],
+                    [
+                        -68.9978037,
+                        47.2544676
+                    ],
+                    [
+                        -68.9978037,
+                        47.439895
+                    ],
+                    [
+                        -69.0607223,
+                        47.439895
+                    ],
+                    [
+                        -69.0607223,
+                        47.5047558
+                    ],
+                    [
+                        -69.2538122,
+                        47.5047558
+                    ],
+                    [
+                        -69.2538122,
+                        47.4398084
+                    ],
+                    [
+                        -69.3179284,
+                        47.4398084
+                    ],
+                    [
+                        -69.3179284,
+                        47.378601
+                    ],
+                    [
+                        -69.4438546,
+                        47.378601
+                    ],
+                    [
+                        -69.4438546,
+                        47.3156274
+                    ],
+                    [
+                        -69.5038204,
+                        47.3156274
+                    ],
+                    [
+                        -69.5038204,
+                        47.2525839
+                    ],
+                    [
+                        -69.5667838,
+                        47.2525839
+                    ],
+                    [
+                        -69.5667838,
+                        47.1910884
+                    ],
+                    [
+                        -69.6303478,
+                        47.1910884
+                    ],
+                    [
+                        -69.6303478,
+                        47.128701
+                    ],
+                    [
+                        -69.6933103,
+                        47.128701
+                    ],
+                    [
+                        -69.6933103,
+                        47.0654307
+                    ],
+                    [
+                        -69.7557063,
+                        47.0654307
+                    ],
+                    [
+                        -69.7557063,
+                        47.0042751
+                    ],
+                    [
+                        -69.8180391,
+                        47.0042751
+                    ],
+                    [
+                        -69.8180391,
+                        46.9415344
+                    ],
+                    [
+                        -69.8804023,
+                        46.9415344
+                    ],
+                    [
+                        -69.8804023,
+                        46.8792519
+                    ],
+                    [
+                        -69.9421674,
+                        46.8792519
+                    ],
+                    [
+                        -69.9421674,
+                        46.8177399
+                    ],
+                    [
+                        -70.0063088,
+                        46.8177399
+                    ],
+                    [
+                        -70.0063088,
+                        46.6920295
+                    ],
+                    [
+                        -70.0704265,
+                        46.6920295
+                    ],
+                    [
+                        -70.0704265,
+                        46.4425926
+                    ],
+                    [
+                        -70.1945902,
+                        46.4425926
+                    ],
+                    [
+                        -70.1945902,
+                        46.3785887
+                    ],
+                    [
+                        -70.2562047,
+                        46.3785887
+                    ],
+                    [
+                        -70.2562047,
+                        46.3152628
+                    ],
+                    [
+                        -70.3203651,
+                        46.3152628
+                    ],
+                    [
+                        -70.3203651,
+                        46.0651209
+                    ],
+                    [
+                        -70.3814988,
+                        46.0651209
+                    ],
+                    [
+                        -70.3814988,
+                        45.93552
+                    ],
+                    [
+                        -70.3201618,
+                        45.93552
+                    ],
+                    [
+                        -70.3201618,
+                        45.879479
+                    ],
+                    [
+                        -70.4493131,
+                        45.879479
+                    ],
+                    [
+                        -70.4493131,
+                        45.7538713
+                    ],
+                    [
+                        -70.5070021,
+                        45.7538713
+                    ],
+                    [
+                        -70.5070021,
+                        45.6916912
+                    ],
+                    [
+                        -70.6316642,
+                        45.6916912
+                    ],
+                    [
+                        -70.6316642,
+                        45.6291619
+                    ],
+                    [
+                        -70.7575538,
+                        45.6291619
+                    ],
+                    [
+                        -70.7575538,
+                        45.4414685
+                    ],
+                    [
+                        -70.8809878,
+                        45.4414685
+                    ],
+                    [
+                        -70.8809878,
+                        45.3780612
+                    ],
+                    [
+                        -71.13328,
+                        45.3780612
+                    ],
+                    [
+                        -71.13328,
+                        45.3151452
+                    ],
+                    [
+                        -71.3830282,
+                        45.3151452
+                    ],
+                    [
+                        -71.3830282,
+                        45.253416
+                    ],
+                    [
+                        -71.5076448,
+                        45.253416
+                    ],
+                    [
+                        -71.5076448,
+                        45.0655726
+                    ],
+                    [
+                        -73.9418929,
+                        45.0655726
+                    ],
+                    [
+                        -73.9418929,
+                        45.0031242
+                    ],
+                    [
+                        -74.7469725,
+                        45.0031242
+                    ],
+                    [
+                        -74.7469725,
+                        45.0649003
+                    ],
+                    [
+                        -74.8800964,
+                        45.0649003
+                    ],
+                    [
+                        -74.8800964,
+                        45.0029023
+                    ],
+                    [
+                        -75.0662455,
+                        45.0029023
+                    ],
+                    [
+                        -75.0662455,
+                        44.9415167
+                    ],
+                    [
+                        -75.2539363,
+                        44.9415167
+                    ],
+                    [
+                        -75.2539363,
+                        44.8776043
+                    ],
+                    [
+                        -75.3789648,
+                        44.8776043
+                    ],
+                    [
+                        -75.3789648,
+                        44.8153462
+                    ],
+                    [
+                        -75.4431283,
+                        44.8153462
+                    ],
+                    [
+                        -75.4431283,
+                        44.7536053
+                    ],
+                    [
+                        -75.5666566,
+                        44.7536053
+                    ],
+                    [
+                        -75.5666566,
+                        44.6909879
+                    ],
+                    [
+                        -75.6290205,
+                        44.6909879
+                    ],
+                    [
+                        -75.6290205,
+                        44.6284958
+                    ],
+                    [
+                        -75.7540484,
+                        44.6284958
+                    ],
+                    [
+                        -75.7540484,
+                        44.566385
+                    ],
+                    [
+                        -75.817312,
+                        44.566385
+                    ],
+                    [
+                        -75.817312,
+                        44.5028932
+                    ],
+                    [
+                        -75.8799549,
+                        44.5028932
+                    ],
+                    [
+                        -75.8799549,
+                        44.3784946
+                    ],
+                    [
+                        -76.1300319,
+                        44.3784946
+                    ],
+                    [
+                        -76.1300319,
+                        44.3159227
+                    ],
+                    [
+                        -76.1926961,
+                        44.3159227
+                    ],
+                    [
+                        -76.1926961,
+                        44.2534378
+                    ],
+                    [
+                        -76.3182619,
+                        44.2534378
+                    ],
+                    [
+                        -76.3182619,
+                        44.1916726
+                    ],
+                    [
+                        -76.3792975,
+                        44.1916726
+                    ],
+                    [
+                        -76.3792975,
+                        44.0653733
+                    ],
+                    [
+                        -76.4427584,
+                        44.0653733
+                    ],
+                    [
+                        -76.4427584,
+                        43.9963825
+                    ],
+                    [
+                        -76.317027,
+                        43.9963825
+                    ],
+                    [
+                        -76.317027,
+                        43.9414581
+                    ],
+                    [
+                        -76.5076611,
+                        43.9414581
+                    ],
+                    [
+                        -76.5076611,
+                        43.8723335
+                    ],
+                    [
+                        -76.3829974,
+                        43.8723335
+                    ],
+                    [
+                        -76.3829974,
+                        43.8091872
+                    ],
+                    [
+                        -76.2534102,
+                        43.8091872
+                    ],
+                    [
+                        -76.2534102,
+                        43.5665222
+                    ],
+                    [
+                        -76.5064833,
+                        43.5665222
+                    ],
+                    [
+                        -76.5064833,
+                        43.5033881
+                    ],
+                    [
+                        -76.6331208,
+                        43.5033881
+                    ],
+                    [
+                        -76.6331208,
+                        43.4432252
+                    ],
+                    [
+                        -76.6951085,
+                        43.4432252
+                    ],
+                    [
+                        -76.6951085,
+                        43.3786858
+                    ],
+                    [
+                        -76.8177798,
+                        43.3786858
+                    ],
+                    [
+                        -76.8177798,
+                        43.318066
+                    ],
+                    [
+                        -77.682,
+                        43.318066
+                    ],
+                    [
+                        -77.682,
+                        43.3789376
+                    ],
+                    [
+                        -78.0565883,
+                        43.3789376
+                    ],
+                    [
+                        -78.0565883,
+                        43.4396918
+                    ],
+                    [
+                        -78.4389748,
+                        43.4396918
+                    ],
+                    [
+                        -78.4389748,
+                        43.3794382
+                    ],
+                    [
+                        -78.8803396,
+                        43.3794382
+                    ],
+                    [
+                        -78.8803396,
+                        43.3149724
+                    ],
+                    [
+                        -79.1298858,
+                        43.3149724
+                    ],
+                    [
+                        -79.1298858,
+                        43.2429286
+                    ],
+                    [
+                        -79.0669615,
+                        43.2429286
+                    ],
+                    [
+                        -79.0669615,
+                        43.1299931
+                    ],
+                    [
+                        -79.1298858,
+                        43.1299931
+                    ],
+                    [
+                        -79.1298858,
+                        43.0577305
+                    ],
+                    [
+                        -79.071264,
+                        43.0577305
+                    ],
+                    [
+                        -79.071264,
+                        42.9294906
+                    ],
+                    [
+                        -78.943264,
+                        42.9294906
+                    ],
+                    [
+                        -78.943264,
+                        42.7542165
+                    ],
+                    [
+                        -79.069439,
+                        42.7542165
+                    ],
+                    [
+                        -79.069439,
+                        42.6941622
+                    ],
+                    [
+                        -79.133439,
+                        42.6941622
+                    ],
+                    [
+                        -79.133439,
+                        42.6296973
+                    ],
+                    [
+                        -79.1947499,
+                        42.6296973
+                    ],
+                    [
+                        -79.1947499,
+                        42.5663538
+                    ],
+                    [
+                        -79.3786827,
+                        42.5663538
+                    ],
+                    [
+                        -79.3786827,
+                        42.5033425
+                    ],
+                    [
+                        -79.4442961,
+                        42.5033425
+                    ],
+                    [
+                        -79.4442961,
+                        42.4410614
+                    ],
+                    [
+                        -79.5679936,
+                        42.4410614
+                    ],
+                    [
+                        -79.5679936,
+                        42.3775264
+                    ],
+                    [
+                        -79.6906154,
+                        42.3775264
+                    ],
+                    [
+                        -79.6906154,
+                        42.3171086
+                    ],
+                    [
+                        -79.8164642,
+                        42.3171086
+                    ],
+                    [
+                        -79.8164642,
+                        42.2534481
+                    ],
+                    [
+                        -80.0052373,
+                        42.2534481
+                    ],
+                    [
+                        -80.0052373,
+                        42.1909188
+                    ],
+                    [
+                        -80.1916829,
+                        42.1909188
+                    ],
+                    [
+                        -80.1916829,
+                        42.1272555
+                    ],
+                    [
+                        -80.3167992,
+                        42.1272555
+                    ],
+                    [
+                        -80.3167992,
+                        42.0669857
+                    ],
+                    [
+                        -80.5063234,
+                        42.0669857
+                    ],
+                    [
+                        -80.5063234,
+                        42.0034331
+                    ],
+                    [
+                        -80.6930471,
+                        42.0034331
+                    ],
+                    [
+                        -80.6930471,
+                        41.9415141
+                    ],
+                    [
+                        -80.9440403,
+                        41.9415141
+                    ],
+                    [
+                        -80.9440403,
+                        41.8781193
+                    ],
+                    [
+                        -81.1942729,
+                        41.8781193
+                    ],
+                    [
+                        -81.1942729,
+                        41.8166455
+                    ],
+                    [
+                        -81.3190089,
+                        41.8166455
+                    ],
+                    [
+                        -81.3190089,
+                        41.7545453
+                    ],
+                    [
+                        -81.4418435,
+                        41.7545453
+                    ],
+                    [
+                        -81.4418435,
+                        41.690965
+                    ],
+                    [
+                        -81.5053523,
+                        41.690965
+                    ],
+                    [
+                        -81.5053523,
+                        41.6301643
+                    ],
+                    [
+                        -82.7470081,
+                        41.6301643
+                    ],
+                    [
+                        -82.7470081,
+                        41.7536942
+                    ],
+                    [
+                        -82.8839135,
+                        41.7536942
+                    ],
+                    [
+                        -82.8839135,
+                        41.5656075
+                    ],
+                    [
+                        -82.9957195,
+                        41.5656075
+                    ],
+                    [
+                        -82.9957195,
+                        41.6270375
+                    ],
+                    [
+                        -83.1257796,
+                        41.6270375
+                    ],
+                    [
+                        -83.1257796,
+                        41.6878411
+                    ],
+                    [
+                        -83.2474733,
+                        41.6878411
+                    ],
+                    [
+                        -83.2474733,
+                        41.7536942
+                    ],
+                    [
+                        -83.3737305,
+                        41.7536942
+                    ],
+                    [
+                        -83.3737305,
+                        41.809276
+                    ],
+                    [
+                        -83.3106019,
+                        41.809276
+                    ],
+                    [
+                        -83.3106019,
+                        41.8716064
+                    ],
+                    [
+                        -83.2474733,
+                        41.8716064
+                    ],
+                    [
+                        -83.2474733,
+                        41.9361393
+                    ],
+                    [
+                        -83.1843447,
+                        41.9361393
+                    ],
+                    [
+                        -83.1843447,
+                        41.9960851
+                    ],
+                    [
+                        -83.1207681,
+                        41.9960851
+                    ],
+                    [
+                        -83.1207681,
+                        42.2464812
+                    ],
+                    [
+                        -83.0589194,
+                        42.2464812
+                    ],
+                    [
+                        -83.0589194,
+                        42.3089555
+                    ],
+                    [
+                        -82.8685328,
+                        42.3089555
+                    ],
+                    [
+                        -82.8685328,
+                        42.3717652
+                    ],
+                    [
+                        -82.8072219,
+                        42.3717652
+                    ],
+                    [
+                        -82.8072219,
+                        42.558553
+                    ],
+                    [
+                        -82.7553745,
+                        42.558553
+                    ],
+                    [
+                        -82.7553745,
+                        42.4954945
+                    ],
+                    [
+                        -82.5599041,
+                        42.4954945
+                    ],
+                    [
+                        -82.5599041,
+                        42.558553
+                    ],
+                    [
+                        -82.4967755,
+                        42.558553
+                    ],
+                    [
+                        -82.4967755,
+                        42.6833607
+                    ],
+                    [
+                        -82.4328863,
+                        42.6833607
+                    ],
+                    [
+                        -82.4328863,
+                        42.9342196
+                    ],
+                    [
+                        -82.3700552,
+                        42.9342196
+                    ],
+                    [
+                        -82.3700552,
+                        43.0648071
+                    ],
+                    [
+                        -82.4328863,
+                        43.0648071
+                    ],
+                    [
+                        -82.4328863,
+                        43.1917566
+                    ],
+                    [
+                        -82.4947464,
+                        43.1917566
+                    ],
+                    [
+                        -82.4947464,
+                        43.5034627
+                    ],
+                    [
+                        -82.557133,
+                        43.5034627
+                    ],
+                    [
+                        -82.557133,
+                        43.8160901
+                    ],
+                    [
+                        -82.6197884,
+                        43.8160901
+                    ],
+                    [
+                        -82.6197884,
+                        43.9422098
+                    ],
+                    [
+                        -82.6839499,
+                        43.9422098
+                    ],
+                    [
+                        -82.6839499,
+                        44.0022641
+                    ],
+                    [
+                        -82.7465346,
+                        44.0022641
+                    ],
+                    [
+                        -82.7465346,
+                        44.0670545
+                    ],
+                    [
+                        -82.8708696,
+                        44.0670545
+                    ],
+                    [
+                        -82.8708696,
+                        44.1291935
+                    ],
+                    [
+                        -83.008517,
+                        44.1291935
+                    ],
+                    [
+                        -83.008517,
+                        44.0664786
+                    ],
+                    [
+                        -83.1336086,
+                        44.0664786
+                    ],
+                    [
+                        -83.1336086,
+                        44.0053949
+                    ],
+                    [
+                        -83.2414522,
+                        44.0053949
+                    ],
+                    [
+                        -83.2414522,
+                        44.9962034
+                    ],
+                    [
+                        -83.1806112,
+                        44.9962034
+                    ],
+                    [
+                        -83.1806112,
+                        45.067302
+                    ],
+                    [
+                        -83.2455172,
+                        45.067302
+                    ],
+                    [
+                        -83.2455172,
+                        45.1287382
+                    ],
+                    [
+                        -83.3065878,
+                        45.1287382
+                    ],
+                    [
+                        -83.3065878,
+                        45.2551509
+                    ],
+                    [
+                        -83.3706087,
+                        45.2551509
+                    ],
+                    [
+                        -83.3706087,
+                        45.3165923
+                    ],
+                    [
+                        -83.4325644,
+                        45.3165923
+                    ],
+                    [
+                        -83.4325644,
+                        45.3792105
+                    ],
+                    [
+                        -83.6178415,
+                        45.3792105
+                    ],
+                    [
+                        -83.6178415,
+                        45.4419665
+                    ],
+                    [
+                        -83.8084291,
+                        45.4419665
+                    ],
+                    [
+                        -83.8084291,
+                        45.5036189
+                    ],
+                    [
+                        -84.0550718,
+                        45.5036189
+                    ],
+                    [
+                        -84.0550718,
+                        45.5647907
+                    ],
+                    [
+                        -84.1235181,
+                        45.5647907
+                    ],
+                    [
+                        -84.1235181,
+                        45.6287845
+                    ],
+                    [
+                        -84.1807534,
+                        45.6287845
+                    ],
+                    [
+                        -84.1807534,
+                        45.6914688
+                    ],
+                    [
+                        -84.3111554,
+                        45.6914688
+                    ],
+                    [
+                        -84.3111554,
+                        45.9337076
+                    ],
+                    [
+                        -83.8209974,
+                        45.9337076
+                    ],
+                    [
+                        -83.8209974,
+                        45.8725113
+                    ],
+                    [
+                        -83.4968086,
+                        45.8725113
+                    ],
+                    [
+                        -83.4968086,
+                        45.9337076
+                    ],
+                    [
+                        -83.4338066,
+                        45.9337076
+                    ],
+                    [
+                        -83.4338066,
+                        46.0016863
+                    ],
+                    [
+                        -83.4962697,
+                        46.0016863
+                    ],
+                    [
+                        -83.4962697,
+                        46.0668178
+                    ],
+                    [
+                        -83.5599956,
+                        46.0668178
+                    ],
+                    [
+                        -83.5599956,
+                        46.1261576
+                    ],
+                    [
+                        -83.9954558,
+                        46.1261576
+                    ],
+                    [
+                        -83.9954558,
+                        46.1931747
+                    ],
+                    [
+                        -84.0591816,
+                        46.1931747
+                    ],
+                    [
+                        -84.0591816,
+                        46.3814972
+                    ],
+                    [
+                        -84.1152614,
+                        46.3814972
+                    ],
+                    [
+                        -84.1152614,
+                        46.4953584
+                    ],
+                    [
+                        -84.0591816,
+                        46.4953584
+                    ],
+                    [
+                        -84.0591816,
+                        46.5682653
+                    ],
+                    [
+                        -84.2579545,
+                        46.5682653
+                    ],
+                    [
+                        -84.2579545,
+                        46.5051232
+                    ],
+                    [
+                        -84.3071879,
+                        46.5051232
+                    ],
+                    [
+                        -84.3071879,
+                        46.5682653
+                    ],
+                    [
+                        -84.4415364,
+                        46.5682653
+                    ],
+                    [
+                        -84.4415364,
+                        46.504525
+                    ],
+                    [
+                        -84.9965729,
+                        46.504525
+                    ],
+                    [
+                        -84.9965729,
+                        46.6842882
+                    ],
+                    [
+                        -84.9298158,
+                        46.6842882
+                    ],
+                    [
+                        -84.9298158,
+                        46.818077
+                    ],
+                    [
+                        -85.3165894,
+                        46.818077
+                    ],
+                    [
+                        -85.3165894,
+                        46.7535825
+                    ],
+                    [
+                        -87.5562645,
+                        46.7535825
+                    ],
+                    [
+                        -87.5562645,
+                        47.4407371
+                    ],
+                    [
+                        -87.6825361,
+                        47.4407371
+                    ],
+                    [
+                        -87.6825361,
+                        47.5035554
+                    ],
+                    [
+                        -88.2560738,
+                        47.5035554
+                    ],
+                    [
+                        -88.2560738,
+                        47.4433716
+                    ],
+                    [
+                        -88.4417419,
+                        47.4433716
+                    ],
+                    [
+                        -88.4417419,
+                        47.3789949
+                    ],
+                    [
+                        -88.50683,
+                        47.3789949
+                    ],
+                    [
+                        -88.50683,
+                        47.3153881
+                    ],
+                    [
+                        -88.6312821,
+                        47.3153881
+                    ],
+                    [
+                        -88.6312821,
+                        47.2539782
+                    ],
+                    [
+                        -88.7569636,
+                        47.2539782
+                    ],
+                    [
+                        -88.7569636,
+                        47.1934682
+                    ],
+                    [
+                        -88.8838253,
+                        47.1934682
+                    ],
+                    [
+                        -88.8838253,
+                        47.1284735
+                    ],
+                    [
+                        -88.9434208,
+                        47.1284735
+                    ],
+                    [
+                        -88.9434208,
+                        47.0662127
+                    ],
+                    [
+                        -89.0708726,
+                        47.0662127
+                    ],
+                    [
+                        -89.0708726,
+                        47.0026826
+                    ],
+                    [
+                        -89.2565553,
+                        47.0026826
+                    ],
+                    [
+                        -89.2565553,
+                        46.9410806
+                    ],
+                    [
+                        -90.3677669,
+                        46.9410806
+                    ],
+                    [
+                        -90.3677669,
+                        47.6844827
+                    ],
+                    [
+                        -90.3069978,
+                        47.6844827
+                    ],
+                    [
+                        -90.3069978,
+                        47.7460174
+                    ],
+                    [
+                        -89.994859,
+                        47.7460174
+                    ],
+                    [
+                        -89.994859,
+                        47.8082719
+                    ],
+                    [
+                        -89.8048615,
+                        47.8082719
+                    ],
+                    [
+                        -89.8048615,
+                        47.8700562
+                    ],
+                    [
+                        -89.6797699,
+                        47.8700562
+                    ],
+                    [
+                        -89.6797699,
+                        47.9339637
+                    ],
+                    [
+                        -89.4933757,
+                        47.9339637
+                    ],
+                    [
+                        -89.4933757,
+                        47.9957956
+                    ],
+                    [
+                        -89.4284697,
+                        47.9957956
+                    ],
+                    [
+                        -89.4284697,
+                        48.0656377
+                    ],
+                    [
+                        -89.9932739,
+                        48.0656377
+                    ],
+                    [
+                        -89.9932739,
+                        48.1282966
+                    ],
+                    [
+                        -90.7455933,
+                        48.1282966
+                    ],
+                    [
+                        -90.7455933,
+                        48.1893056
+                    ],
+                    [
+                        -90.8087291,
+                        48.1893056
+                    ],
+                    [
+                        -90.8087291,
+                        48.2522065
+                    ],
+                    [
+                        -91.067763,
+                        48.2522065
+                    ],
+                    [
+                        -91.067763,
+                        48.1916658
+                    ],
+                    [
+                        -91.1946247,
+                        48.1916658
+                    ],
+                    [
+                        -91.1946247,
+                        48.1279027
+                    ],
+                    [
+                        -91.6814196,
+                        48.1279027
+                    ],
+                    [
+                        -91.6814196,
+                        48.2525994
+                    ],
+                    [
+                        -91.9321927,
+                        48.2525994
+                    ],
+                    [
+                        -91.9321927,
+                        48.3142454
+                    ],
+                    [
+                        -91.9929683,
+                        48.3142454
+                    ],
+                    [
+                        -91.9929683,
+                        48.3780845
+                    ],
+                    [
+                        -92.3189383,
+                        48.3780845
+                    ],
+                    [
+                        -92.3189383,
+                        48.2529081
+                    ],
+                    [
+                        -92.3732233,
+                        48.2529081
+                    ],
+                    [
+                        -92.3732233,
+                        48.3153385
+                    ],
+                    [
+                        -92.4322288,
+                        48.3153385
+                    ],
+                    [
+                        -92.4322288,
+                        48.4411448
+                    ],
+                    [
+                        -92.4977248,
+                        48.4411448
+                    ],
+                    [
+                        -92.4977248,
+                        48.501781
+                    ],
+                    [
+                        -92.5679413,
+                        48.501781
+                    ],
+                    [
+                        -92.5679413,
+                        48.439579
+                    ],
+                    [
+                        -92.6210462,
+                        48.439579
+                    ],
+                    [
+                        -92.6210462,
+                        48.5650783
+                    ],
+                    [
+                        -92.8086835,
+                        48.5650783
+                    ],
+                    [
+                        -92.8086835,
+                        48.6286865
+                    ],
+                    [
+                        -92.8086835,
+                        48.6267365
+                    ],
+                    [
+                        -92.933185,
+                        48.6267365
+                    ],
+                    [
+                        -92.933185,
+                        48.6922145
+                    ],
+                    [
+                        -93.0051716,
+                        48.6922145
+                    ],
+                    [
+                        -93.0051716,
+                        48.6282965
+                    ],
+                    [
+                        -93.1225924,
+                        48.6282965
+                    ],
+                    [
+                        -93.1225924,
+                        48.6922145
+                    ],
+                    [
+                        -93.3190806,
+                        48.6922145
+                    ],
+                    [
+                        -93.3190806,
+                        48.6267365
+                    ],
+                    [
+                        -93.5049477,
+                        48.6267365
+                    ],
+                    [
+                        -93.5049477,
+                        48.5635164
+                    ],
+                    [
+                        -93.7474601,
+                        48.5635164
+                    ],
+                    [
+                        -93.7474601,
+                        48.6267365
+                    ],
+                    [
+                        -93.8135461,
+                        48.6267365
+                    ],
+                    [
+                        -93.8135461,
+                        48.6898775
+                    ],
+                    [
+                        -94.2453121,
+                        48.6898775
+                    ],
+                    [
+                        -94.2453121,
+                        48.7554327
+                    ],
+                    [
+                        -94.6183171,
+                        48.7554327
+                    ],
+                    [
+                        -94.6183171,
+                        48.941036
+                    ],
+                    [
+                        -94.6809018,
+                        48.941036
+                    ],
+                    [
+                        -94.6809018,
+                        49.0029737
+                    ],
+                    [
+                        -94.7441532,
+                        49.0029737
+                    ],
+                    [
+                        -94.7441532,
+                        49.2536079
+                    ],
+                    [
+                        -94.8084069,
+                        49.2536079
+                    ],
+                    [
+                        -94.8084069,
+                        49.3784134
+                    ],
+                    [
+                        -95.1192391,
+                        49.3784134
+                    ],
+                    [
+                        -95.1192391,
+                        49.4425264
+                    ],
+                    [
+                        -95.1934341,
+                        49.4425264
+                    ],
+                    [
+                        -95.1934341,
+                        49.0035292
+                    ],
+                    [
+                        -96.87069,
+                        49.0035292
+                    ],
+                    [
+                        -96.87069,
+                        49.0656063
+                    ],
+                    [
+                        -99.0049312,
+                        49.0656063
+                    ],
+                    [
+                        -99.0049312,
+                        49.0050714
+                    ],
+                    [
+                        -109.3699257,
+                        49.0050714
+                    ],
+                    [
+                        -109.3699257,
+                        49.0668231
+                    ],
+                    [
+                        -109.5058746,
+                        49.0668231
+                    ],
+                    [
+                        -109.5058746,
+                        49.0050714
+                    ],
+                    [
+                        -114.1830014,
+                        49.0050714
+                    ],
+                    [
+                        -114.1830014,
+                        49.0687317
+                    ],
+                    [
+                        -114.7578709,
+                        49.0687317
+                    ],
+                    [
+                        -114.7578709,
+                        49.0050714
+                    ],
+                    [
+                        -115.433731,
+                        49.0050714
+                    ],
+                    [
+                        -115.433731,
+                        49.0671412
+                    ],
+                    [
+                        -116.5062706,
+                        49.0671412
+                    ],
+                    [
+                        -116.5062706,
+                        49.0050714
+                    ],
+                    [
+                        -117.3089504,
+                        49.0050714
+                    ],
+                    [
+                        -117.3089504,
+                        49.0659803
+                    ],
+                    [
+                        -119.882945,
+                        49.0659803
+                    ],
+                    [
+                        -119.882945,
+                        49.0050714
+                    ],
+                    [
+                        -120.1208555,
+                        49.0050714
+                    ],
+                    [
+                        -120.1208555,
+                        49.0678367
+                    ],
+                    [
+                        -121.4451636,
+                        49.0678367
+                    ],
+                    [
+                        -121.4451636,
+                        49.0050714
+                    ],
+                    [
+                        -121.9311808,
+                        49.0050714
+                    ],
+                    [
+                        -121.9311808,
+                        49.0656099
+                    ],
+                    [
+                        -122.817484,
+                        49.0656099
+                    ],
+                    [
+                        -122.817484,
+                        49.0029143
+                    ],
+                    [
+                        -122.8795155,
+                        49.0029143
+                    ],
+                    [
+                        -122.8795155,
+                        48.9347018
+                    ],
+                    [
+                        -122.8174629,
+                        48.9347018
+                    ],
+                    [
+                        -122.8174629,
+                        48.8101998
+                    ],
+                    [
+                        -122.7538859,
+                        48.8101998
+                    ],
+                    [
+                        -122.7538859,
+                        48.7533758
+                    ],
+                    [
+                        -122.8712937,
+                        48.7533758
+                    ],
+                    [
+                        -122.8712937,
+                        48.8153948
+                    ],
+                    [
+                        -123.0055391,
+                        48.8153948
+                    ],
+                    [
+                        -123.0055391,
+                        48.7529529
+                    ],
+                    [
+                        -123.1296926,
+                        48.7529529
+                    ],
+                    [
+                        -123.1296926,
+                        48.6902201
+                    ],
+                    [
+                        -123.1838197,
+                        48.6902201
+                    ],
+                    [
+                        -123.1838197,
+                        48.7529029
+                    ]
+                ],
+                [
+                    [
+                        -122.9341743,
+                        37.7521547
+                    ],
+                    [
+                        -122.9347457,
+                        37.6842013
+                    ],
+                    [
+                        -123.0679013,
+                        37.6849023
+                    ],
+                    [
+                        -123.0673747,
+                        37.7475251
+                    ],
+                    [
+                        -123.1292603,
+                        37.7478506
+                    ],
+                    [
+                        -123.1286894,
+                        37.815685
+                    ],
+                    [
+                        -123.0590687,
+                        37.8153192
+                    ],
+                    [
+                        -123.0595947,
+                        37.7528143
+                    ]
+                ],
+                [
+                    [
+                        -71.6299464,
+                        41.2540893
+                    ],
+                    [
+                        -71.4966465,
+                        41.2541393
+                    ],
+                    [
+                        -71.4965596,
+                        41.122965
+                    ],
+                    [
+                        -71.6298594,
+                        41.1229149
+                    ]
+                ],
+                [
+                    [
+                        -70.3184265,
+                        41.3775196
+                    ],
+                    [
+                        -70.3183384,
+                        41.2448243
+                    ],
+                    [
+                        -70.1906612,
+                        41.2448722
+                    ],
+                    [
+                        -70.1906239,
+                        41.1886019
+                    ],
+                    [
+                        -69.9336025,
+                        41.1886984
+                    ],
+                    [
+                        -69.933729,
+                        41.3791941
+                    ],
+                    [
+                        -69.9950664,
+                        41.3791712
+                    ],
+                    [
+                        -69.995109,
+                        41.443159
+                    ],
+                    [
+                        -70.0707828,
+                        41.4431307
+                    ],
+                    [
+                        -70.0706972,
+                        41.3144915
+                    ],
+                    [
+                        -70.2461667,
+                        41.3144258
+                    ],
+                    [
+                        -70.2462087,
+                        41.3775467
+                    ]
+                ],
+                [
+                    [
+                        -68.9403374,
+                        43.9404062
+                    ],
+                    [
+                        -68.6856948,
+                        43.9404977
+                    ],
+                    [
+                        -68.6856475,
+                        43.8721797
+                    ],
+                    [
+                        -68.7465405,
+                        43.8721577
+                    ],
+                    [
+                        -68.7464976,
+                        43.8102529
+                    ],
+                    [
+                        -68.8090782,
+                        43.8102304
+                    ],
+                    [
+                        -68.8090343,
+                        43.746728
+                    ],
+                    [
+                        -68.8773094,
+                        43.7467034
+                    ],
+                    [
+                        -68.8773544,
+                        43.8117826
+                    ],
+                    [
+                        -68.9402483,
+                        43.8117599
+                    ]
+                ],
+                [
+                    [
+                        -123.1291466,
+                        49.0645144
+                    ],
+                    [
+                        -122.9954224,
+                        49.0645144
+                    ],
+                    [
+                        -122.9954224,
+                        48.9343243
+                    ],
+                    [
+                        -123.1291466,
+                        48.9343243
+                    ]
+                ],
+                [
+                    [
+                        -82.9407144,
+                        24.7535913
+                    ],
+                    [
+                        -82.8719398,
+                        24.7535913
+                    ],
+                    [
+                        -82.8719398,
+                        24.6905653
+                    ],
+                    [
+                        -82.7446233,
+                        24.6905653
+                    ],
+                    [
+                        -82.7446233,
+                        24.6214593
+                    ],
+                    [
+                        -82.8088038,
+                        24.6214593
+                    ],
+                    [
+                        -82.8088038,
+                        24.5594908
+                    ],
+                    [
+                        -82.9407144,
+                        24.5594908
+                    ]
+                ]
+            ]
+        },
+        {
+            "name": "USGS Topographic Maps",
+            "type": "tms",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.us/usgs_scanned_topos/{zoom}/{x}/{y}.png",
+            "polygon": [
+                [
+                    [
+                        -125.990173,
+                        48.9962416
+                    ],
+                    [
+                        -125.989419,
+                        47.9948396
+                    ],
+                    [
+                        -123.9929739,
+                        47.9955062
+                    ],
+                    [
+                        -123.9922429,
+                        47.0059202
+                    ],
+                    [
+                        -125.988688,
+                        47.0052409
+                    ],
+                    [
+                        -125.9879604,
+                        46.0015618
+                    ],
+                    [
+                        -123.9939396,
+                        46.0022529
+                    ],
+                    [
+                        -123.9925238,
+                        43.9961708
+                    ],
+                    [
+                        -124.9931832,
+                        43.9958116
+                    ],
+                    [
+                        -124.9918175,
+                        41.9942149
+                    ],
+                    [
+                        -125.9851789,
+                        41.9938465
+                    ],
+                    [
+                        -125.9838655,
+                        40.0076111
+                    ],
+                    [
+                        -123.9833285,
+                        40.0083757
+                    ],
+                    [
+                        -123.9814115,
+                        37.002615
+                    ],
+                    [
+                        -122.21903,
+                        37.0033173
+                    ],
+                    [
+                        -122.2184144,
+                        36.011671
+                    ],
+                    [
+                        -122.020087,
+                        36.011751
+                    ],
+                    [
+                        -122.0188591,
+                        33.9961766
+                    ],
+                    [
+                        -119.9787757,
+                        33.9970206
+                    ],
+                    [
+                        -119.9775867,
+                        31.9987658
+                    ],
+                    [
+                        -114.0122833,
+                        32.00129
+                    ],
+                    [
+                        -114.0116894,
+                        30.9862401
+                    ],
+                    [
+                        -105.998294,
+                        30.9896679
+                    ],
+                    [
+                        -105.9971419,
+                        28.9901065
+                    ],
+                    [
+                        -102.0210506,
+                        28.9918418
+                    ],
+                    [
+                        -102.0204916,
+                        28.00733
+                    ],
+                    [
+                        -100.0062436,
+                        28.0082173
+                    ],
+                    [
+                        -100.0051143,
+                        25.991909
+                    ],
+                    [
+                        -98.0109067,
+                        25.9928035
+                    ],
+                    [
+                        -98.0103613,
+                        25.0063461
+                    ],
+                    [
+                        -97.0161086,
+                        25.0067957
+                    ],
+                    [
+                        -97.016654,
+                        25.9932494
+                    ],
+                    [
+                        -95.9824825,
+                        25.9937132
+                    ],
+                    [
+                        -95.9835999,
+                        27.9891175
+                    ],
+                    [
+                        -94.0200898,
+                        27.9899826
+                    ],
+                    [
+                        -94.0206586,
+                        28.9918129
+                    ],
+                    [
+                        -88.0156706,
+                        28.9944338
+                    ],
+                    [
+                        -88.0162494,
+                        30.0038862
+                    ],
+                    [
+                        -86.0277506,
+                        30.0047454
+                    ],
+                    [
+                        -86.0271719,
+                        28.9953016
+                    ],
+                    [
+                        -84.0187909,
+                        28.9961781
+                    ],
+                    [
+                        -84.017095,
+                        25.9817708
+                    ],
+                    [
+                        -81.9971976,
+                        25.9826768
+                    ],
+                    [
+                        -81.9966618,
+                        25.0134917
+                    ],
+                    [
+                        -84.0165592,
+                        25.0125783
+                    ],
+                    [
+                        -84.0160068,
+                        24.0052745
+                    ],
+                    [
+                        -80.0199985,
+                        24.007096
+                    ],
+                    [
+                        -80.0245309,
+                        32.0161282
+                    ],
+                    [
+                        -78.0066484,
+                        32.0169819
+                    ],
+                    [
+                        -78.0072238,
+                        32.9894278
+                    ],
+                    [
+                        -77.8807233,
+                        32.9894807
+                    ],
+                    [
+                        -77.8813253,
+                        33.9955918
+                    ],
+                    [
+                        -76.0115411,
+                        33.9963653
+                    ],
+                    [
+                        -76.0121459,
+                        34.9952552
+                    ],
+                    [
+                        -74.0068449,
+                        34.9960749
+                    ],
+                    [
+                        -74.0099997,
+                        40.0084254
+                    ],
+                    [
+                        -72.0013745,
+                        40.0091931
+                    ],
+                    [
+                        -72.002019,
+                        40.9912464
+                    ],
+                    [
+                        -69.8797398,
+                        40.9920457
+                    ],
+                    [
+                        -69.8804173,
+                        42.00893
+                    ],
+                    [
+                        -69.9927682,
+                        42.0088883
+                    ],
+                    [
+                        -69.9934462,
+                        43.0105166
+                    ],
+                    [
+                        -67.9845366,
+                        43.0112496
+                    ],
+                    [
+                        -67.985224,
+                        44.0103812
+                    ],
+                    [
+                        -65.9892568,
+                        44.0110975
+                    ],
+                    [
+                        -65.9921237,
+                        47.9993584
+                    ],
+                    [
+                        -70.006442,
+                        47.9980181
+                    ],
+                    [
+                        -70.005708,
+                        47.0042007
+                    ],
+                    [
+                        -72.023686,
+                        47.003514
+                    ],
+                    [
+                        -72.0222508,
+                        45.0059846
+                    ],
+                    [
+                        -78.0146667,
+                        45.0038705
+                    ],
+                    [
+                        -78.0139662,
+                        44.0026998
+                    ],
+                    [
+                        -80.029686,
+                        44.0019763
+                    ],
+                    [
+                        -80.0290052,
+                        43.0122994
+                    ],
+                    [
+                        -81.995479,
+                        43.011582
+                    ],
+                    [
+                        -81.9982986,
+                        47.0042713
+                    ],
+                    [
+                        -87.505706,
+                        47.0023972
+                    ],
+                    [
+                        -87.5064535,
+                        48.0142702
+                    ],
+                    [
+                        -88.0260889,
+                        48.0140968
+                    ],
+                    [
+                        -88.026838,
+                        49.0086686
+                    ],
+                    [
+                        -93.9981078,
+                        49.0067142
+                    ],
+                    [
+                        -93.9988778,
+                        50.0086456
+                    ],
+                    [
+                        -96.0138899,
+                        50.0079995
+                    ],
+                    [
+                        -96.0131199,
+                        49.0060547
+                    ]
+                ],
+                [
+                    [
+                        -160.5787616,
+                        22.5062947
+                    ],
+                    [
+                        -160.5782192,
+                        21.4984647
+                    ],
+                    [
+                        -159.0030121,
+                        21.499196
+                    ],
+                    [
+                        -159.0027422,
+                        20.9951068
+                    ],
+                    [
+                        -157.5083185,
+                        20.995803
+                    ],
+                    [
+                        -157.5080519,
+                        20.4960241
+                    ],
+                    [
+                        -155.966889,
+                        20.4967444
+                    ],
+                    [
+                        -155.9674267,
+                        21.5028287
+                    ],
+                    [
+                        -157.5044717,
+                        21.5021151
+                    ],
+                    [
+                        -157.5047384,
+                        21.9984962
+                    ],
+                    [
+                        -159.0090946,
+                        21.9978002
+                    ],
+                    [
+                        -159.0093692,
+                        22.5070181
+                    ]
+                ],
+                [
+                    [
+                        -168.006102,
+                        68.9941463
+                    ],
+                    [
+                        -168.0047628,
+                        68.0107853
+                    ],
+                    [
+                        -165.4842481,
+                        68.0112562
+                    ],
+                    [
+                        -165.4829337,
+                        67.0037303
+                    ],
+                    [
+                        -168.0034485,
+                        67.0032389
+                    ],
+                    [
+                        -168.002195,
+                        66.0017503
+                    ],
+                    [
+                        -169.0087448,
+                        66.001546
+                    ],
+                    [
+                        -169.0075381,
+                        64.9987675
+                    ],
+                    [
+                        -168.0009882,
+                        64.9989798
+                    ],
+                    [
+                        -167.9998282,
+                        63.9982374
+                    ],
+                    [
+                        -164.9871288,
+                        63.9988964
+                    ],
+                    [
+                        -164.9860062,
+                        62.9950845
+                    ],
+                    [
+                        -167.9987057,
+                        62.9944019
+                    ],
+                    [
+                        -167.9946035,
+                        59.0153692
+                    ],
+                    [
+                        -162.5027857,
+                        59.0167799
+                    ],
+                    [
+                        -162.5018149,
+                        58.0005815
+                    ],
+                    [
+                        -160.0159024,
+                        58.0012389
+                    ],
+                    [
+                        -160.0149725,
+                        57.000035
+                    ],
+                    [
+                        -160.5054788,
+                        56.9999017
+                    ],
+                    [
+                        -160.5045719,
+                        55.9968161
+                    ],
+                    [
+                        -164.012195,
+                        55.9958373
+                    ],
+                    [
+                        -164.0113186,
+                        55.00107
+                    ],
+                    [
+                        -165.994782,
+                        55.0005023
+                    ],
+                    [
+                        -165.9941266,
+                        54.2400584
+                    ],
+                    [
+                        -168.0002944,
+                        54.2394734
+                    ],
+                    [
+                        -168.0000986,
+                        54.0094921
+                    ],
+                    [
+                        -170.0156134,
+                        54.0089011
+                    ],
+                    [
+                        -170.0147683,
+                        53.0016446
+                    ],
+                    [
+                        -171.9993636,
+                        53.0010487
+                    ],
+                    [
+                        -171.9989488,
+                        52.4977745
+                    ],
+                    [
+                        -176.0083239,
+                        52.4965566
+                    ],
+                    [
+                        -176.0081186,
+                        52.2452555
+                    ],
+                    [
+                        -178.000097,
+                        52.2446469
+                    ],
+                    [
+                        -177.9992996,
+                        51.2554252
+                    ],
+                    [
+                        -176.0073212,
+                        51.2560472
+                    ],
+                    [
+                        -176.0075146,
+                        51.4980163
+                    ],
+                    [
+                        -171.9981395,
+                        51.4992617
+                    ],
+                    [
+                        -171.9985419,
+                        51.9985373
+                    ],
+                    [
+                        -167.9984317,
+                        51.9997661
+                    ],
+                    [
+                        -167.9994645,
+                        53.2560877
+                    ],
+                    [
+                        -165.9932968,
+                        53.2566866
+                    ],
+                    [
+                        -165.9939308,
+                        54.0100804
+                    ],
+                    [
+                        -159.0067205,
+                        54.0121291
+                    ],
+                    [
+                        -159.0075717,
+                        55.002502
+                    ],
+                    [
+                        -158.0190709,
+                        55.0027849
+                    ],
+                    [
+                        -158.0199473,
+                        55.9975094
+                    ],
+                    [
+                        -151.9963213,
+                        55.9991902
+                    ],
+                    [
+                        -151.9981536,
+                        57.9986536
+                    ],
+                    [
+                        -151.500341,
+                        57.9987853
+                    ],
+                    [
+                        -151.5012894,
+                        58.9919816
+                    ],
+                    [
+                        -138.5159989,
+                        58.9953194
+                    ],
+                    [
+                        -138.5150471,
+                        57.9986434
+                    ],
+                    [
+                        -136.6872422,
+                        57.9991267
+                    ],
+                    [
+                        -136.6863158,
+                        57.0016688
+                    ],
+                    [
+                        -135.9973698,
+                        57.001856
+                    ],
+                    [
+                        -135.9964667,
+                        56.0030544
+                    ],
+                    [
+                        -134.6717732,
+                        56.003424
+                    ],
+                    [
+                        -134.6708865,
+                        54.9969623
+                    ],
+                    [
+                        -133.9956734,
+                        54.9971556
+                    ],
+                    [
+                        -133.9948193,
+                        54.0031685
+                    ],
+                    [
+                        -130.0044418,
+                        54.0043387
+                    ],
+                    [
+                        -130.0070826,
+                        57.0000507
+                    ],
+                    [
+                        -131.975877,
+                        56.9995156
+                    ],
+                    [
+                        -131.9787378,
+                        59.9933094
+                    ],
+                    [
+                        -138.0071813,
+                        59.991805
+                    ],
+                    [
+                        -138.0082158,
+                        61.0125755
+                    ],
+                    [
+                        -140.9874011,
+                        61.0118551
+                    ],
+                    [
+                        -140.99984,
+                        71.0039309
+                    ],
+                    [
+                        -154.5023956,
+                        71.0017377
+                    ],
+                    [
+                        -154.5039632,
+                        71.9983391
+                    ],
+                    [
+                        -157.499048,
+                        71.9978773
+                    ],
+                    [
+                        -157.4974758,
+                        70.9982877
+                    ],
+                    [
+                        -163.0233611,
+                        70.9973899
+                    ],
+                    [
+                        -163.0218273,
+                        69.9707435
+                    ],
+                    [
+                        -164.9730896,
+                        69.97041
+                    ],
+                    [
+                        -164.9717003,
+                        68.994689
+                    ]
+                ],
+                [
+                    [
+                        -168.5133204,
+                        62.8689586
+                    ],
+                    [
+                        -168.5144423,
+                        63.8765677
                     ],
                     [
-                        -66.865,
-                        49.386
+                        -172.0202755,
+                        63.8757975
+                    ],
+                    [
+                        -172.0191536,
+                        62.8681608
                     ]
                 ],
                 [
                     [
-                        -179.754,
-                        50.858
+                        -170.9947111,
+                        59.9954089
+                    ],
+                    [
+                        -170.995726,
+                        60.9969787
                     ],
                     [
-                        -129.899,
-                        71.463
+                        -174.0045311,
+                        60.9962508
+                    ],
+                    [
+                        -174.0035162,
+                        59.9946581
                     ]
                 ],
                 [
                     [
-                        -174.46,
-                        18.702
+                        -156.0717261,
+                        20.2854602
+                    ],
+                    [
+                        -154.7940471,
+                        20.2860582
                     ],
                     [
-                        -154.516,
-                        26.501
+                        -154.7933145,
+                        18.9029464
+                    ],
+                    [
+                        -156.0709936,
+                        18.9023432
                     ]
                 ]
             ]
         },
         {
-            "name": "USGS Topographic Maps",
-            "template": "http://{t}.tile.openstreetmap.us/usgs_scanned_topos/{z}/{x}/{y}.png",
-            "subdomains": [
-                "a",
-                "b",
-                "c"
+            "name": "Vejmidte (Denmark)",
+            "type": "tms",
+            "template": "http://{switch:a,b,c}.tile.openstreetmap.dk/danmark/vejmidte/{zoom}/{x}/{y}.png",
+            "scaleExtent": [
+                0,
+                20
             ],
-            "extents": [
+            "polygon": [
                 [
                     [
-                        -125.991,
-                        24.005
+                        8.3743941,
+                        54.9551655
                     ],
                     [
-                        -65.988,
-                        50.009
-                    ]
-                ],
-                [
+                        8.3683809,
+                        55.4042149
+                    ],
                     [
-                        -160.579,
-                        18.902
+                        8.2103997,
+                        55.4039795
                     ],
                     [
-                        -154.793,
-                        22.508
-                    ]
-                ],
-                [
+                        8.2087314,
+                        55.4937345
+                    ],
                     [
-                        -178.001,
-                        51.255
+                        8.0502655,
+                        55.4924731
                     ],
                     [
-                        -130.004,
-                        71.999
-                    ]
-                ]
-            ]
-        },
-        {
-            "name": "USGS Large Scale Aerial Imagery",
-            "template": "http://{t}.tile.openstreetmap.us/usgs_large_scale/{z}/{x}/{y}.jpg",
-            "subdomains": [
-                "a",
-                "b",
-                "c"
-            ],
-            "extents": [
-                [
+                        8.0185123,
+                        56.7501399
+                    ],
                     [
-                        -124.819,
-                        24.496
+                        8.1819161,
+                        56.7509948
                     ],
                     [
-                        -66.931,
-                        49.443
-                    ]
-                ]
-            ]
-        },
-        {
-            "name": "British Columbia bc_mosaic",
-            "template": "http://{t}.imagery.paulnorman.ca/tiles/bc_mosaic/{z}/{x}/{y}.png",
-            "subdomains": [
-                "a",
-                "b",
-                "c",
-                "d"
-            ],
-            "extents": [
-                [
+                        8.1763274,
+                        57.0208898
+                    ],
                     [
-                        -123.441,
-                        48.995
+                        8.3413329,
+                        57.0219872
                     ],
                     [
-                        -121.346,
-                        50.426
-                    ]
-                ]
-            ],
-            "sourcetag": "bc_mosaic",
-            "terms_url": "http://imagery.paulnorman.ca/tiles/about.html"
-        },
-        {
-            "name": "OS OpenData Streetview",
-            "template": "http://os.openstreetmap.org/sv/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        8.3392467,
+                        57.1119574
+                    ],
                     [
-                        -8.72,
-                        49.86
+                        8.5054433,
+                        57.1123212
                     ],
                     [
-                        1.84,
-                        60.92
-                    ]
-                ]
-            ],
-            "sourcetag": "OS_OpenData_StreetView"
-        },
-        {
-            "name": "OS OpenData Locator",
-            "template": "http://tiles.itoworld.com/os_locator/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        8.5033923,
+                        57.2020499
+                    ],
                     [
-                        -9,
-                        49.8
+                        9.3316304,
+                        57.2027636
                     ],
                     [
-                        1.9,
-                        61.1
-                    ]
-                ]
-            ],
-            "sourcetag": "OS_OpenData_Locator"
-        },
-        {
-            "name": "OS 1:25k historic (OSM)",
-            "template": "http://ooc.openstreetmap.org/os1/{z}/{x}/{y}.jpg",
-            "extents": [
-                [
+                        9.3319079,
+                        57.2924835
+                    ],
                     [
-                        -9,
-                        49.8
+                        9.4978864,
+                        57.2919578
                     ],
                     [
-                        1.9,
-                        61.1
-                    ]
-                ]
-            ],
-            "sourcetag": "OS 1:25k"
-        },
-        {
-            "name": "OS 1:25k historic (NLS)",
-            "template": "http://geo.nls.uk/mapdata2/os/25000/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        9.4988593,
+                        57.3820608
+                    ],
                     [
-                        -9,
-                        49.8
+                        9.6649749,
+                        57.3811615
                     ],
                     [
-                        1.9,
-                        61.1
-                    ]
-                ]
-            ],
-            "sourcetag": "OS 1:25k",
-            "logo": "icons/logo_nls70-nq8.png",
-            "logo_url": "http://geo.nls.uk/maps/"
-        },
-        {
-            "name": "OS 7th Series historic (OSM)",
-            "template": "http://ooc.openstreetmap.org/os7/{z}/{x}/{y}.jpg",
-            "extents": [
-                [
+                        9.6687295,
+                        57.5605591
+                    ],
                     [
-                        -9,
-                        49.8
+                        9.8351961,
+                        57.5596265
                     ],
                     [
-                        1.9,
-                        61.1
-                    ]
-                ]
-            ],
-            "sourcetag": "OS7"
-        },
-        {
-            "name": "OS 7th Series historic (NLS)",
-            "template": "http://geo.nls.uk/mapdata2/os/seventh/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        9.8374896,
+                        57.6493322
+                    ],
                     [
-                        -9,
-                        49.8
+                        10.1725726,
+                        57.6462818
                     ],
                     [
-                        1.9,
-                        61.1
-                    ]
-                ]
-            ],
-            "sourcetag": "OS7",
-            "logo": "icons/logo_nls70-nq8.png",
-            "logo_url": "http://geo.nls.uk/maps/"
-        },
-        {
-            "name": "OS New Popular Edition historic",
-            "template": "http://ooc.openstreetmap.org/npe/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        10.1754245,
+                        57.7367768
+                    ],
                     [
-                        -5.8,
-                        49.8
+                        10.5118282,
+                        57.7330269
                     ],
                     [
-                        1.9,
-                        55.8
-                    ]
-                ]
-            ],
-            "sourcetag": "NPE"
-        },
-        {
-            "name": "OS Scottish Popular historic",
-            "template": "http://ooc.openstreetmap.org/npescotland/tiles/{z}/{x}/{y}.jpg",
-            "extents": [
-                [
+                        10.5152095,
+                        57.8228945
+                    ],
                     [
-                        -7.8,
-                        54.5
+                        10.6834853,
+                        57.8207722
                     ],
                     [
-                        -1.1,
-                        61.1
-                    ]
-                ]
-            ],
-            "sourcetag": "NPE"
-        },
-        {
-            "name": "Surrey aerial",
-            "template": "http://gravitystorm.dev.openstreetmap.org/surrey/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        10.6751613,
+                        57.6412021
+                    ],
                     [
-                        -0.856,
-                        51.071
+                        10.5077045,
+                        57.6433097
                     ],
                     [
-                        0.062,
-                        51.473
-                    ]
-                ]
-            ],
-            "sourcetag": "Surrey aerial"
-        },
-        {
-            "name": "Port au Prince - GeoEye Jan 2010",
-            "template": "http://gravitystorm.dev.openstreetmap.org/imagery/haiti/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        10.5039992,
+                        57.5535088
+                    ],
                     [
-                        -72.43,
-                        18.5
+                        10.671038,
+                        57.5514113
                     ],
                     [
-                        -72.31,
-                        18.58
-                    ]
-                ]
-            ],
-            "sourcetag": "GeoEye, 2010-01"
-        },
-        {
-            "name": "Haiti - IOM Drone Imagery, 2012-13",
-            "template": "http://wms.openstreetmap.fr/tms/1.0.0/iomhaiti/{zoom}/{x}/{y}",
-            "extents": [
-                [
+                        10.6507805,
+                        57.1024538
+                    ],
                     [
-                        -74.5,
-                        17.95
+                        10.4857673,
+                        57.1045138
                     ],
                     [
-                        -71.58,
-                        20.12
-                    ]
-                ]
-            ],
-            "sourcetag": "iom_image2013"
-        },
-        {
-            "name": "NAIP",
-            "template": "http://cube.telascience.org/tilecache/tilecache.py/NAIP_ALL/{z}/{x}/{y}.png",
-            "description": "National Agriculture Imagery Program",
-            "extents": [
-                [
+                        10.4786236,
+                        56.9249051
+                    ],
+                    [
+                        10.3143981,
+                        56.9267573
+                    ],
+                    [
+                        10.3112341,
+                        56.8369269
+                    ],
+                    [
+                        10.4750295,
+                        56.83509
+                    ],
+                    [
+                        10.4649016,
+                        56.5656681
+                    ],
+                    [
+                        10.9524239,
+                        56.5589761
+                    ],
+                    [
+                        10.9479249,
+                        56.4692243
+                    ],
+                    [
+                        11.1099335,
+                        56.4664675
+                    ],
+                    [
+                        11.1052639,
+                        56.376833
+                    ],
+                    [
+                        10.9429901,
+                        56.3795284
+                    ],
+                    [
+                        10.9341235,
+                        56.1994768
+                    ],
+                    [
+                        10.7719685,
+                        56.2020244
+                    ],
+                    [
+                        10.7694751,
+                        56.1120103
+                    ],
+                    [
+                        10.6079695,
+                        56.1150259
+                    ],
+                    [
+                        10.4466742,
+                        56.116717
+                    ],
+                    [
+                        10.2865948,
+                        56.118675
+                    ],
+                    [
+                        10.2831527,
+                        56.0281851
+                    ],
+                    [
+                        10.4439274,
+                        56.0270388
+                    ],
+                    [
+                        10.4417713,
+                        55.7579243
+                    ],
+                    [
+                        10.4334961,
+                        55.6693533
+                    ],
+                    [
+                        10.743814,
+                        55.6646861
+                    ],
+                    [
+                        10.743814,
+                        55.5712253
+                    ],
+                    [
+                        10.8969041,
+                        55.5712253
+                    ],
+                    [
+                        10.9051793,
+                        55.3953852
+                    ],
+                    [
+                        11.0613726,
+                        55.3812841
+                    ],
+                    [
+                        11.0593038,
+                        55.1124061
+                    ],
+                    [
+                        11.0458567,
+                        55.0318621
+                    ],
+                    [
+                        11.2030844,
+                        55.0247474
+                    ],
+                    [
+                        11.2030844,
+                        55.117139
+                    ],
+                    [
+                        11.0593038,
+                        55.1124061
+                    ],
+                    [
+                        11.0613726,
+                        55.3812841
+                    ],
+                    [
+                        11.0789572,
+                        55.5712253
+                    ],
+                    [
+                        10.8969041,
+                        55.5712253
+                    ],
+                    [
+                        10.9258671,
+                        55.6670198
+                    ],
+                    [
+                        10.743814,
+                        55.6646861
+                    ],
+                    [
+                        10.7562267,
+                        55.7579243
+                    ],
+                    [
+                        10.4417713,
+                        55.7579243
+                    ],
+                    [
+                        10.4439274,
+                        56.0270388
+                    ],
+                    [
+                        10.4466742,
+                        56.116717
+                    ],
+                    [
+                        10.6079695,
+                        56.1150259
+                    ],
+                    [
+                        10.6052053,
+                        56.0247462
+                    ],
+                    [
+                        10.9258671,
+                        56.0201215
+                    ],
+                    [
+                        10.9197132,
+                        55.9309388
+                    ],
+                    [
+                        11.0802782,
+                        55.92792
+                    ],
+                    [
+                        11.0858066,
+                        56.0178284
+                    ],
+                    [
+                        11.7265047,
+                        56.005058
+                    ],
+                    [
+                        11.7319981,
+                        56.0952142
+                    ],
+                    [
+                        12.0540333,
+                        56.0871256
+                    ],
+                    [
+                        12.0608477,
+                        56.1762576
+                    ],
+                    [
+                        12.7023469,
+                        56.1594405
+                    ],
+                    [
+                        12.6611131,
+                        55.7114318
+                    ],
+                    [
+                        12.9792318,
+                        55.7014026
+                    ],
+                    [
+                        12.9612912,
+                        55.5217294
+                    ],
+                    [
+                        12.3268659,
+                        55.5412096
+                    ],
+                    [
+                        12.3206071,
+                        55.4513655
+                    ],
+                    [
+                        12.4778226,
+                        55.447067
+                    ],
+                    [
+                        12.4702432,
+                        55.3570479
+                    ],
+                    [
+                        12.6269738,
+                        55.3523837
+                    ],
+                    [
+                        12.6200898,
+                        55.2632576
+                    ],
+                    [
+                        12.4627339,
+                        55.26722
+                    ],
+                    [
+                        12.4552949,
+                        55.1778223
+                    ],
+                    [
+                        12.2987046,
+                        55.1822303
+                    ],
+                    [
+                        12.2897344,
+                        55.0923641
+                    ],
+                    [
+                        12.6048608,
+                        55.0832904
+                    ],
+                    [
+                        12.5872011,
+                        54.9036285
+                    ],
+                    [
+                        12.2766618,
+                        54.9119031
+                    ],
+                    [
+                        12.2610181,
+                        54.7331602
+                    ],
+                    [
+                        12.1070691,
+                        54.7378161
+                    ],
+                    [
+                        12.0858621,
+                        54.4681655
+                    ],
+                    [
+                        11.7794953,
+                        54.4753579
+                    ],
+                    [
+                        11.7837381,
+                        54.5654783
+                    ],
+                    [
+                        11.1658525,
+                        54.5782155
+                    ],
+                    [
+                        11.1706443,
+                        54.6686508
+                    ],
+                    [
+                        10.8617173,
+                        54.6733956
+                    ],
+                    [
+                        10.8651245,
+                        54.7634667
+                    ],
+                    [
+                        10.7713646,
+                        54.7643888
+                    ],
+                    [
+                        10.7707276,
+                        54.7372807
+                    ],
+                    [
+                        10.7551428,
+                        54.7375776
+                    ],
+                    [
+                        10.7544039,
+                        54.7195666
+                    ],
+                    [
+                        10.7389074,
+                        54.7197588
+                    ],
+                    [
+                        10.7384368,
+                        54.7108482
+                    ],
+                    [
+                        10.7074486,
+                        54.7113045
+                    ],
+                    [
+                        10.7041094,
+                        54.6756741
+                    ],
+                    [
+                        10.5510973,
+                        54.6781698
+                    ],
+                    [
+                        10.5547184,
+                        54.7670245
+                    ],
+                    [
+                        10.2423994,
+                        54.7705935
+                    ],
+                    [
+                        10.2459845,
+                        54.8604673
+                    ],
+                    [
+                        10.0902268,
+                        54.8622134
+                    ],
+                    [
+                        10.0873731,
+                        54.7723851
+                    ],
+                    [
+                        9.1555798,
+                        54.7769557
+                    ],
+                    [
+                        9.1562752,
+                        54.8675369
+                    ],
                     [
-                        -125.8,
-                        24.2
+                        8.5321973,
+                        54.8663765
                     ],
                     [
-                        -62.3,
-                        49.5
+                        8.531432,
+                        54.95516
                     ]
                 ],
                 [
                     [
-                        -168.5,
-                        55.3
+                        11.4577738,
+                        56.819554
                     ],
                     [
-                        -140,
-                        71.5
-                    ]
-                ]
-            ],
-            "sourcetag": "NAIP"
-        },
-        {
-            "name": "Ireland - NLS Historic Maps",
-            "template": "http://geo.nls.uk/maps/ireland/gsgs4136/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        11.7849181,
+                        56.8127385
+                    ],
                     [
-                        -10.71,
-                        51.32
+                        11.7716715,
+                        56.6332796
                     ],
                     [
-                        -5.37,
-                        55.46
+                        11.4459621,
+                        56.6401087
                     ]
-                ]
-            ],
-            "sourcetag": "NLS Historic Maps",
-            "logo": "icons/logo_nls70-nq8.png",
-            "logo_url": "http://geo.nls.uk/maps/"
-        },
-        {
-            "name": "Denmark - Fugro Aerial Imagery",
-            "template": "http://tile.openstreetmap.dk/fugro2005/{z}/{x}/{y}.jpg",
-            "extents": [
+                ],
                 [
                     [
-                        7.81,
-                        54.44
+                        11.3274736,
+                        57.3612962
                     ],
                     [
-                        15.49,
-                        57.86
-                    ]
-                ]
-            ],
-            "sourcetag": "Fugro (2005)"
-        },
-        {
-            "name": "Denmark - Stevns Kommune",
-            "template": "http://tile.openstreetmap.dk/stevns/2009/{z}/{x}/{y}.jpg",
-            "extents": [
-                [
+                        11.3161808,
+                        57.1818004
+                    ],
                     [
-                        12.09144,
-                        55.23403
+                        11.1508692,
+                        57.1847276
                     ],
                     [
-                        12.47712,
-                        55.43647
-                    ]
-                ]
-            ],
-            "sourcetag": "Stevns Kommune (2009)"
-        },
-        {
-            "name": "Austria - geoimage.at",
-            "template": "http://geoimage.openstreetmap.at/4d80de696cd562a63ce463a58a61488d/{z}/{x}/{y}.jpg",
-            "extents": [
-                [
+                        11.1456628,
+                        57.094962
+                    ],
                     [
-                        9.36,
-                        46.33
+                        10.8157703,
+                        57.1001693
                     ],
                     [
-                        17.28,
-                        49.09
+                        10.8290599,
+                        57.3695272
                     ]
-                ]
-            ],
-            "sourcetag": "geoimage.at"
-        },
-        {
-            "name": "Russia - Kosmosnimki.ru IRS Satellite",
-            "template": "http://irs.gis-lab.info/?layers=irs&request=GetTile&z={z}&x={x}&y={y}",
-            "extents": [
+                ],
                 [
                     [
-                        19.02,
-                        40.96
+                        11.5843266,
+                        56.2777928
                     ],
                     [
-                        77.34,
-                        70.48
-                    ]
-                ]
-            ],
-            "sourcetag": "Kosmosnimki.ru IRS"
-        },
-        {
-            "name": "Belarus - Kosmosnimki.ru SPOT4 Satellite",
-            "template": "http://irs.gis-lab.info/?layers=spot&request=GetTile&z={z}&x={x}&y={y}",
-            "extents": [
-                [
+                        11.5782882,
+                        56.1880397
+                    ],
                     [
-                        23.16,
-                        51.25
+                        11.7392309,
+                        56.1845765
                     ],
                     [
-                        32.83,
-                        56.19
+                        11.7456428,
+                        56.2743186
                     ]
-                ]
-            ],
-            "sourcetag": "Kosmosnimki.ru SPOT4"
-        },
-        {
-            "name": "Australia - Geographic Reference Image",
-            "template": "http://agri.openstreetmap.org/{z}/{x}/{y}.png",
-            "extents": [
+                ],
                 [
                     [
-                        96,
-                        -44
+                        14.6825922,
+                        55.3639405
                     ],
                     [
-                        168,
-                        -9
-                    ]
-                ]
-            ],
-            "sourcetag": "AGRI"
-        },
-        {
-            "name": "Switzerland - Canton Aargau - AGIS 25cm 2011",
-            "template": "http://tiles.poole.ch/AGIS/OF2011/{z}/{x}/{y}.png",
-            "extents": [
-                [
+                        14.8395247,
+                        55.3565231
+                    ],
                     [
-                        7.69,
-                        47.13
+                        14.8263755,
+                        55.2671261
                     ],
                     [
-                        8.48,
-                        47.63
-                    ]
-                ]
-            ],
-            "sourcetag": "AGIS OF2011"
-        },
-        {
-            "name": "Switzerland - Canton Solothurn - SOGIS 2007",
-            "template": "http://mapproxy.sosm.ch:8080/tiles/sogis2007/EPSG900913/{z}/{x}/{y}.png?origin=nw",
-            "extents": [
-                [
+                        15.1393406,
+                        55.2517359
+                    ],
+                    [
+                        15.1532015,
+                        55.3410836
+                    ],
+                    [
+                        15.309925,
+                        55.3330556
+                    ],
+                    [
+                        15.295719,
+                        55.2437356
+                    ],
+                    [
+                        15.1393406,
+                        55.2517359
+                    ],
+                    [
+                        15.1255631,
+                        55.1623802
+                    ],
+                    [
+                        15.2815819,
+                        55.1544167
+                    ],
                     [
-                        7.33,
-                        47.06
+                        15.2535578,
+                        54.9757646
                     ],
                     [
-                        8.04,
-                        47.5
+                        14.6317464,
+                        55.0062496
                     ]
                 ]
             ],
-            "sourcetag": "Orthofoto 2007 WMS Solothurn"
+            "terms_url": "http://wiki.openstreetmap.org/wiki/Vejmidte",
+            "terms_text": "Danish municipalities"
         },
         {
-            "name": "Poland - Media-Lab fleet GPS masstracks",
-            "template": "http://masstracks.media-lab.com.pl/{z}/{x}/{y}.png",
-            "extents": [
+            "name": "Vienna: Beschriftungen (annotations)",
+            "type": "tms",
+            "template": "http://www.wien.gv.at/wmts/beschriftung/normal/google3857/{zoom}/{y}/{x}.png",
+            "scaleExtent": [
+                0,
+                19
+            ],
+            "polygon": [
                 [
                     [
-                        14,
-                        48.9
+                        16.17,
+                        48.1
+                    ],
+                    [
+                        16.17,
+                        48.33
+                    ],
+                    [
+                        16.58,
+                        48.33
+                    ],
+                    [
+                        16.58,
+                        48.1
                     ],
                     [
-                        24.2,
-                        55
+                        16.17,
+                        48.1
                     ]
                 ]
             ],
-            "sourcetag": "masstracks"
+            "terms_url": "http://data.wien.gv.at/",
+            "terms_text": "Stadt Wien"
         },
         {
-            "name": "South Africa - CD:NGI Aerial",
-            "template": "http://{t}.aerial.openstreetmap.org.za/ngi-aerial/{z}/{x}/{y}.jpg",
-            "subdomains": [
-                "a",
-                "b",
-                "c"
-            ],
-            "extents": [
+            "name": "Vienna: Mehrzweckkarte (general purpose)",
+            "type": "tms",
+            "template": "http://www.wien.gv.at/wmts/fmzk/pastell/google3857/{zoom}/{y}/{x}.jpeg",
+            "scaleExtent": [
+                0,
+                19
+            ],
+            "polygon": [
                 [
                     [
-                        17.64,
-                        -34.95
+                        16.17,
+                        48.1
+                    ],
+                    [
+                        16.17,
+                        48.33
+                    ],
+                    [
+                        16.58,
+                        48.33
+                    ],
+                    [
+                        16.58,
+                        48.1
                     ],
                     [
-                        32.87,
-                        -22.05
+                        16.17,
+                        48.1
                     ]
                 ]
             ],
-            "sourcetag": "ngi-aerial"
+            "terms_url": "http://data.wien.gv.at/",
+            "terms_text": "Stadt Wien"
         },
         {
-            "name": "Lithuania - ORT10LT",
-            "template": "http://mapproxy.openmap.lt/ort10lt/g/{z}/{x}/{y}.jpeg",
-            "extents": [
+            "name": "Vienna: Orthofoto (aerial image)",
+            "type": "tms",
+            "template": "http://www.wien.gv.at/wmts/lb/farbe/google3857/{zoom}/{y}/{x}.jpeg",
+            "scaleExtent": [
+                0,
+                19
+            ],
+            "polygon": [
                 [
                     [
-                        21,
-                        53.88
+                        16.17,
+                        48.1
                     ],
                     [
-                        26.85,
-                        56.45
+                        16.17,
+                        48.33
+                    ],
+                    [
+                        16.58,
+                        48.33
+                    ],
+                    [
+                        16.58,
+                        48.1
+                    ],
+                    [
+                        16.17,
+                        48.1
                     ]
                 ]
             ],
-            "scaleExtent": [
-                4,
-                18
-            ],
-            "sourcetag": "NŽT ORT10LT"
+            "terms_url": "http://data.wien.gv.at/",
+            "terms_text": "Stadt Wien"
         }
     ],
     "wikipedia": [
@@ -31439,6 +55707,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "addr:housenumber": "*"
                 },
+                "addTags": {},
                 "matchScore": 0.2,
                 "name": "Address"
             },
@@ -31600,6 +55869,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Amenity"
             },
+            "amenity/arts_centre": {
+                "name": "Arts Center",
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "terms": [
+                    "arts",
+                    "arts centre"
+                ],
+                "tags": {
+                    "amenity": "arts_centre"
+                },
+                "icon": "theatre",
+                "fields": [
+                    "building_area",
+                    "address"
+                ]
+            },
             "amenity/atm": {
                 "icon": "bank",
                 "fields": [
@@ -31680,6 +55968,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "amenity": "bench"
                 },
+                "fields": [
+                    "backrest"
+                ],
                 "name": "Bench"
             },
             "amenity/bicycle_parking": {
@@ -31716,6 +56007,19 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Bicycle Rental"
             },
+            "amenity/boat_rental": {
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "amenity": "boat_rental"
+                },
+                "fields": [
+                    "operator"
+                ],
+                "name": "Boat Rental"
+            },
             "amenity/cafe": {
                 "icon": "cafe",
                 "fields": [
@@ -31954,6 +56258,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "petrol",
+                    "fuel",
+                    "propane",
+                    "diesel",
+                    "lng",
+                    "cng",
+                    "biodiesel"
+                ],
                 "tags": {
                     "amenity": "fuel"
                 },
@@ -32370,7 +56683,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "terms": [
                     "visitor center",
+                    "visitor centre",
                     "permit center",
+                    "permit centre",
                     "backcountry office"
                 ],
                 "tags": {
@@ -32406,6 +56721,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "eating house",
                     "eating place",
                     "fast-food place",
+                    "fish and chips",
                     "greasy spoon",
                     "grill",
                     "hamburger stand",
@@ -32532,7 +56848,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "toilets/disposal",
                     "operator",
                     "building_area",
-                    "access"
+                    "access_toilets"
                 ],
                 "geometry": [
                     "point",
@@ -32573,7 +56889,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "city government",
                     "courthouse",
                     "municipal building",
-                    "municipal center"
+                    "municipal center",
+                    "municipal centre"
                 ],
                 "tags": {
                     "amenity": "townhall"
@@ -32599,6 +56916,19 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "name": "University"
             },
+            "amenity/vending_machine": {
+                "fields": [
+                    "vending",
+                    "operator"
+                ],
+                "geometry": [
+                    "point"
+                ],
+                "tags": {
+                    "amenity": "vending_machine"
+                },
+                "name": "Vending Machine"
+            },
             "amenity/waste_basket": {
                 "icon": "waste-basket",
                 "geometry": [
@@ -32715,7 +57045,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "barrier": "entrance"
                 },
-                "name": "Entrance"
+                "name": "Entrance",
+                "searchable": false
             },
             "barrier/fence": {
                 "geometry": [
@@ -33006,7 +57337,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "entrance": "*"
                 },
                 "fields": [
-                    "entrance"
+                    "entrance",
+                    "address"
                 ],
                 "name": "Entrance"
             },
@@ -33082,10 +57414,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "highway/cycleway": {
                 "icon": "highway-cycleway",
                 "fields": [
-                    "oneway",
+                    "surface",
+                    "lit",
                     "structure",
                     "access",
-                    "surface"
+                    "oneway"
                 ],
                 "geometry": [
                     "line"
@@ -33142,9 +57475,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-living-street",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface"
                 ],
                 "geometry": [
@@ -33171,10 +57504,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-motorway",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
                     "lanes",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33203,9 +57536,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-motorway-link",
                 "fields": [
                     "oneway_yes",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33262,10 +57595,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-primary",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
                     "lanes",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33282,9 +57615,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-primary-link",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33305,9 +57638,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-residential",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface"
                 ],
                 "geometry": [
@@ -33323,9 +57656,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-road",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface"
                 ],
                 "geometry": [
@@ -33341,10 +57674,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-secondary",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
                     "lanes",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33361,9 +57694,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-secondary-link",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33385,9 +57718,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "fields": [
                     "service",
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface"
                 ],
                 "geometry": [
@@ -33497,14 +57830,26 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "name": "Steps"
             },
+            "highway/stop": {
+                "geometry": [
+                    "vertex"
+                ],
+                "tags": {
+                    "highway": "stop"
+                },
+                "terms": [
+                    "stop sign"
+                ],
+                "name": "Stop Sign"
+            },
             "highway/tertiary": {
                 "icon": "highway-tertiary",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
                     "lanes",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33521,9 +57866,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-tertiary-link",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33545,9 +57890,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "fields": [
                     "tracktype",
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface"
                 ],
                 "geometry": [
@@ -33577,10 +57922,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-trunk",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
                     "lanes",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33597,9 +57942,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-trunk-link",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface",
                     "ref"
                 ],
@@ -33631,9 +57976,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "highway-unclassified",
                 "fields": [
                     "oneway",
+                    "maxspeed",
                     "structure",
                     "access",
-                    "maxspeed",
                     "surface"
                 ],
                 "geometry": [
@@ -33843,7 +58188,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "landuse": "farmyard"
                 },
                 "terms": [],
-                "name": "Farmyard"
+                "name": "Farmyard",
+                "icon": "farm"
             },
             "landuse/forest": {
                 "fields": [
@@ -33964,6 +58310,19 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Leisure"
             },
+            "leisure/common": {
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "terms": [
+                    "open space"
+                ],
+                "tags": {
+                    "leisure": "common"
+                },
+                "name": "Common"
+            },
             "leisure/dog_park": {
                 "geometry": [
                     "point",
@@ -33973,7 +58332,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "leisure": "dog_park"
                 },
-                "name": "Dog Park"
+                "name": "Dog Park",
+                "icon": "dog-park"
             },
             "leisure/garden": {
                 "icon": "garden",
@@ -34109,6 +58469,22 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "terms": [],
                 "name": "Basketball Court"
             },
+            "leisure/pitch/skateboard": {
+                "icon": "pitch",
+                "fields": [
+                    "surface"
+                ],
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "leisure": "pitch",
+                    "sport": "skateboard"
+                },
+                "terms": [],
+                "name": "Skate Park"
+            },
             "leisure/pitch/soccer": {
                 "icon": "soccer",
                 "fields": [
@@ -34181,6 +58557,20 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Slipway"
             },
+            "leisure/sports_center": {
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "tags": {
+                    "leisure": "sports_centre"
+                },
+                "terms": [
+                    "gym"
+                ],
+                "icon": "sports",
+                "name": "Sports Center"
+            },
             "leisure/stadium": {
                 "geometry": [
                     "point",
@@ -34270,7 +58660,23 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "tags": {
                     "man_made": "lighthouse"
                 },
-                "name": "Lighthouse"
+                "name": "Lighthouse",
+                "icon": "lighthouse"
+            },
+            "man_made/observation": {
+                "geometry": [
+                    "point",
+                    "area"
+                ],
+                "terms": [
+                    "lookout tower",
+                    "fire tower"
+                ],
+                "tags": {
+                    "man_made": "tower",
+                    "tower:type": "observation"
+                },
+                "name": "Observation Tower"
             },
             "man_made/pier": {
                 "geometry": [
@@ -34436,6 +58842,16 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Coastline"
             },
+            "natural/fell": {
+                "geometry": [
+                    "area"
+                ],
+                "terms": [],
+                "tags": {
+                    "natural": "fell"
+                },
+                "name": "Fell"
+            },
             "natural/glacier": {
                 "geometry": [
                     "area"
@@ -34496,6 +58912,18 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 ],
                 "name": "Peak"
             },
+            "natural/scree": {
+                "geometry": [
+                    "area"
+                ],
+                "tags": {
+                    "natural": "scree"
+                },
+                "terms": [
+                    "loose rocks"
+                ],
+                "name": "Scree"
+            },
             "natural/scrub": {
                 "geometry": [
                     "area"
@@ -34871,6 +59299,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "terms": [],
                 "name": "Disused Railway"
             },
+            "railway/halt": {
+                "icon": "rail",
+                "geometry": [
+                    "point",
+                    "vertex"
+                ],
+                "tags": {
+                    "railway": "halt"
+                },
+                "name": "Railway Halt",
+                "terms": [
+                    "break",
+                    "interrupt",
+                    "rest",
+                    "wait",
+                    "interruption"
+                ]
+            },
             "railway/level_crossing": {
                 "icon": "cross",
                 "geometry": [
@@ -35042,7 +59488,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Liquor Store"
             },
             "shop/bakery": {
-                "icon": "shop",
+                "icon": "bakery",
                 "fields": [
                     "address",
                     "building_area",
@@ -35070,6 +59516,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "nail spa",
+                    "spa",
+                    "salon",
+                    "tanning"
+                ],
                 "tags": {
                     "shop": "beauty"
                 },
@@ -35164,7 +59616,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "shop",
                 "fields": [
                     "address",
-                    "building_area",
                     "opening_hours"
                 ],
                 "geometry": [
@@ -35229,7 +59680,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Chemist"
             },
             "shop/clothes": {
-                "icon": "shop",
+                "icon": "clothing-store",
                 "fields": [
                     "address",
                     "building_area",
@@ -35465,6 +59916,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "vertex",
                     "area"
                 ],
+                "terms": [
+                    "garden centre"
+                ],
                 "tags": {
                     "shop": "garden_centre"
                 },
@@ -35606,6 +60060,26 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Laundry"
             },
+            "shop/locksmith": {
+                "icon": "shop",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "vertex",
+                    "area"
+                ],
+                "terms": [
+                    "keys"
+                ],
+                "tags": {
+                    "shop": "locksmith"
+                },
+                "name": "Locksmith"
+            },
             "shop/mall": {
                 "icon": "shop",
                 "fields": [
@@ -35726,7 +60200,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "name": "Outdoor Store"
             },
             "shop/pet": {
-                "icon": "shop",
+                "icon": "dog-park",
                 "fields": [
                     "address",
                     "building_area",
@@ -35742,6 +60216,23 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "name": "Pet Store"
             },
+            "shop/photo": {
+                "icon": "camera",
+                "fields": [
+                    "address",
+                    "building_area",
+                    "opening_hours"
+                ],
+                "geometry": [
+                    "point",
+                    "vertex",
+                    "area"
+                ],
+                "tags": {
+                    "shop": "photo"
+                },
+                "name": "Photography Store"
+            },
             "shop/shoes": {
                 "icon": "shop",
                 "fields": [
@@ -35815,12 +60306,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "five-and-dime",
                     "flea market",
                     "galleria",
+                    "grocery store",
                     "mall",
                     "mart",
                     "outlet",
                     "outlet store",
                     "shop",
                     "shopping center",
+                    "shopping centre",
                     "shopping plaza",
                     "stand",
                     "store",
@@ -36374,6 +60867,22 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "network"
                 ]
             },
+            "type/route/hiking": {
+                "geometry": [
+                    "relation"
+                ],
+                "tags": {
+                    "type": "route",
+                    "route": "hiking"
+                },
+                "name": "Hiking Route",
+                "icon": "route-foot",
+                "fields": [
+                    "ref",
+                    "operator",
+                    "network"
+                ]
+            },
             "type/route/pipeline": {
                 "geometry": [
                     "relation"
@@ -36734,8 +61243,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "icon": "route",
                 "members": [
                     "type/route/road",
-                    "type/route/foot",
                     "type/route/bicycle",
+                    "type/route/foot",
+                    "type/route/hiking",
                     "type/route/bus",
                     "type/route/train",
                     "type/route/tram",
@@ -36807,6 +61317,17 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     }
                 }
             },
+            "access_toilets": {
+                "key": "access",
+                "type": "combo",
+                "label": "Access",
+                "options": [
+                    "public",
+                    "permissive",
+                    "private",
+                    "customers"
+                ]
+            },
             "address": {
                 "type": "address",
                 "keys": [
@@ -36836,12 +61357,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "aeroway": {
                 "key": "aeroway",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "amenity": {
                 "key": "amenity",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "artist": {
@@ -36859,9 +61380,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "type": "check",
                 "label": "ATM"
             },
+            "backrest": {
+                "key": "backrest",
+                "type": "check",
+                "label": "Backrest"
+            },
             "barrier": {
                 "key": "barrier",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "bicycle_parking": {
@@ -36876,7 +61402,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "building": {
                 "key": "building",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Building"
             },
             "building_area": {
@@ -36990,7 +61516,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "entrance": {
                 "key": "entrance",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "fax": {
@@ -37037,12 +61563,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "highway": {
                 "key": "highway",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "historic": {
                 "key": "historic",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "iata": {
@@ -37083,7 +61609,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "landuse": {
                 "key": "landuse",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "lanes": {
@@ -37099,7 +61625,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "leisure": {
                 "key": "leisure",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "levels": {
@@ -37108,6 +61634,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "label": "Levels",
                 "placeholder": "2, 4, 6..."
             },
+            "lit": {
+                "key": "lit",
+                "type": "check",
+                "label": "Lit"
+            },
             "location": {
                 "key": "location",
                 "type": "combo",
@@ -37115,7 +61646,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "man_made": {
                 "key": "man_made",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "maxspeed": {
@@ -37132,7 +61663,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "natural": {
                 "key": "natural",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Natural"
             },
             "network": {
@@ -37149,7 +61680,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "office": {
                 "key": "office",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "oneway": {
@@ -37202,17 +61733,17 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "place": {
                 "key": "place",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "power": {
                 "key": "power",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "railway": {
                 "key": "railway",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "ref": {
@@ -37289,7 +61820,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "shop": {
                 "key": "shop",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "source": {
@@ -37340,7 +61871,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "tourism": {
                 "key": "tourism",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "towertype": {
@@ -37358,6 +61889,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "type": "combo",
                 "label": "Trail Visibility"
             },
+            "vending": {
+                "key": "vending",
+                "type": "combo",
+                "label": "Type of Goods"
+            },
             "water": {
                 "key": "water",
                 "type": "combo",
@@ -37365,7 +61901,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "waterway": {
                 "key": "waterway",
-                "type": "combo",
+                "type": "typeCombo",
                 "label": "Type"
             },
             "website": {
@@ -47279,1310 +71815,1422 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         ]
     },
     "featureIcons": {
-        "airfield": {
+        "circle-stroked": {
             "12": [
-                0,
+                42,
                 0
             ],
             "18": [
-                0,
-                14
+                24,
+                0
             ],
             "24": [
                 0,
-                34
+                0
             ]
         },
-        "airport": {
+        "circle": {
             "12": [
-                0,
-                60
+                96,
+                0
             ],
             "18": [
-                0,
-                74
+                78,
+                0
             ],
             "24": [
-                0,
-                94
+                54,
+                0
             ]
         },
-        "alcohol-shop": {
+        "square-stroked": {
             "12": [
-                0,
-                120
+                150,
+                0
             ],
             "18": [
-                0,
-                134
+                132,
+                0
             ],
             "24": [
-                0,
-                154
+                108,
+                0
             ]
         },
-        "america-football": {
+        "square": {
             "12": [
+                204,
+                0
+            ],
+            "18": [
+                186,
+                0
+            ],
+            "24": [
+                162,
+                0
+            ]
+        },
+        "triangle-stroked": {
+            "12": [
+                258,
+                0
+            ],
+            "18": [
+                240,
+                0
+            ],
+            "24": [
+                216,
+                0
+            ]
+        },
+        "triangle": {
+            "12": [
+                42,
+                24
+            ],
+            "18": [
+                24,
+                24
+            ],
+            "24": [
                 0,
-                180
+                24
+            ]
+        },
+        "star-stroked": {
+            "12": [
+                96,
+                24
+            ],
+            "18": [
+                78,
+                24
+            ],
+            "24": [
+                54,
+                24
+            ]
+        },
+        "star": {
+            "12": [
+                150,
+                24
             ],
             "18": [
+                132,
+                24
+            ],
+            "24": [
+                108,
+                24
+            ]
+        },
+        "cross": {
+            "12": [
+                204,
+                24
+            ],
+            "18": [
+                186,
+                24
+            ],
+            "24": [
+                162,
+                24
+            ]
+        },
+        "marker-stroked": {
+            "12": [
+                258,
+                24
+            ],
+            "18": [
+                240,
+                24
+            ],
+            "24": [
+                216,
+                24
+            ]
+        },
+        "marker": {
+            "12": [
+                42,
+                48
+            ],
+            "18": [
+                24,
+                48
+            ],
+            "24": [
                 0,
-                194
+                48
+            ]
+        },
+        "religious-jewish": {
+            "12": [
+                96,
+                48
+            ],
+            "18": [
+                78,
+                48
             ],
             "24": [
-                0,
-                214
+                54,
+                48
             ]
         },
-        "art-gallery": {
+        "religious-christian": {
             "12": [
-                0,
-                240
+                150,
+                48
             ],
             "18": [
-                0,
-                254
+                132,
+                48
             ],
             "24": [
-                0,
-                274
+                108,
+                48
             ]
         },
-        "bank": {
+        "religious-muslim": {
             "12": [
-                0,
-                300
+                204,
+                48
             ],
             "18": [
-                0,
-                314
+                186,
+                48
             ],
             "24": [
-                0,
-                334
+                162,
+                48
             ]
         },
-        "bar": {
+        "cemetery": {
             "12": [
-                0,
-                360
+                258,
+                48
             ],
             "18": [
-                0,
-                374
+                240,
+                48
             ],
             "24": [
-                0,
-                394
+                216,
+                48
             ]
         },
-        "baseball": {
+        "rocket": {
             "12": [
-                0,
-                420
+                42,
+                72
             ],
             "18": [
-                0,
-                434
+                24,
+                72
             ],
             "24": [
                 0,
-                454
+                72
             ]
         },
-        "basketball": {
+        "airport": {
             "12": [
-                0,
-                480
+                96,
+                72
             ],
             "18": [
-                0,
-                494
+                78,
+                72
             ],
             "24": [
-                0,
-                514
+                54,
+                72
             ]
         },
-        "beer": {
+        "heliport": {
             "12": [
-                0,
-                540
+                150,
+                72
             ],
             "18": [
-                0,
-                554
+                132,
+                72
             ],
             "24": [
-                0,
-                574
+                108,
+                72
             ]
         },
-        "bicycle": {
+        "rail": {
             "12": [
-                0,
-                600
+                204,
+                72
             ],
             "18": [
-                0,
-                614
+                186,
+                72
             ],
             "24": [
-                0,
-                634
+                162,
+                72
             ]
         },
-        "building": {
+        "rail-underground": {
             "12": [
-                0,
-                660
+                258,
+                72
             ],
             "18": [
-                0,
-                674
+                240,
+                72
             ],
             "24": [
-                0,
-                694
+                216,
+                72
             ]
         },
-        "bus": {
+        "rail-above": {
             "12": [
-                0,
-                720
+                42,
+                96
             ],
             "18": [
-                0,
-                734
+                24,
+                96
             ],
             "24": [
                 0,
-                754
+                96
             ]
         },
-        "cafe": {
+        "bus": {
             "12": [
-                0,
-                780
+                96,
+                96
             ],
             "18": [
-                0,
-                794
+                78,
+                96
             ],
             "24": [
-                0,
-                814
+                54,
+                96
             ]
         },
-        "campsite": {
+        "fuel": {
             "12": [
-                0,
-                840
+                150,
+                96
             ],
             "18": [
-                0,
-                854
+                132,
+                96
             ],
             "24": [
-                0,
-                874
+                108,
+                96
             ]
         },
-        "cemetery": {
+        "parking": {
             "12": [
-                0,
-                900
+                204,
+                96
             ],
             "18": [
-                0,
-                914
+                186,
+                96
             ],
             "24": [
-                0,
-                934
+                162,
+                96
             ]
         },
-        "cinema": {
+        "parking-garage": {
             "12": [
-                0,
-                960
+                258,
+                96
             ],
             "18": [
-                0,
-                974
+                240,
+                96
             ],
             "24": [
-                0,
-                994
+                216,
+                96
             ]
         },
-        "circle": {
+        "airfield": {
             "12": [
-                0,
-                1020
+                42,
+                120
             ],
             "18": [
-                0,
-                1034
+                24,
+                120
             ],
             "24": [
                 0,
-                1054
+                120
             ]
         },
-        "circle-stroked": {
+        "roadblock": {
             "12": [
-                0,
-                1080
+                96,
+                120
             ],
             "18": [
-                0,
-                1094
+                78,
+                120
             ],
             "24": [
-                0,
-                1114
+                54,
+                120
             ]
         },
-        "city": {
+        "ferry": {
             "12": [
-                0,
-                1140
+                150,
+                120
             ],
             "18": [
-                0,
-                1154
+                132,
+                120
             ],
             "24": [
-                0,
-                1174
+                108,
+                120
+            ],
+            "line": [
+                2240,
+                25
             ]
         },
-        "college": {
+        "harbor": {
             "12": [
-                0,
-                1200
+                204,
+                120
             ],
             "18": [
-                0,
-                1214
+                186,
+                120
             ],
             "24": [
-                0,
-                1234
+                162,
+                120
             ]
         },
-        "commercial": {
+        "bicycle": {
             "12": [
-                0,
-                1260
+                258,
+                120
             ],
             "18": [
-                0,
-                1274
+                240,
+                120
             ],
             "24": [
-                0,
-                1294
+                216,
+                120
             ]
         },
-        "cricket": {
+        "park": {
             "12": [
-                0,
-                1320
+                42,
+                144
             ],
             "18": [
-                0,
-                1334
+                24,
+                144
             ],
             "24": [
                 0,
-                1354
+                144
             ]
         },
-        "cross": {
+        "park2": {
             "12": [
-                0,
-                1380
+                96,
+                144
             ],
             "18": [
-                0,
-                1394
+                78,
+                144
             ],
             "24": [
-                0,
-                1414
+                54,
+                144
             ]
         },
-        "dam": {
+        "museum": {
             "12": [
-                0,
-                1440
+                150,
+                144
             ],
             "18": [
-                0,
-                1454
+                132,
+                144
             ],
             "24": [
-                0,
-                1474
+                108,
+                144
             ]
         },
-        "danger": {
+        "lodging": {
             "12": [
-                0,
-                1500
+                204,
+                144
             ],
             "18": [
-                0,
-                1514
+                186,
+                144
             ],
             "24": [
-                0,
-                1534
+                162,
+                144
             ]
         },
-        "disability": {
+        "monument": {
             "12": [
-                0,
-                1560
+                258,
+                144
             ],
             "18": [
-                0,
-                1574
+                240,
+                144
             ],
             "24": [
-                0,
-                1594
+                216,
+                144
             ]
         },
-        "embassy": {
+        "zoo": {
             "12": [
-                0,
-                1620
+                42,
+                168
             ],
             "18": [
-                0,
-                1634
+                24,
+                168
             ],
             "24": [
                 0,
-                1654
+                168
             ]
         },
-        "emergency-telephone": {
+        "garden": {
             "12": [
-                0,
-                1680
+                96,
+                168
             ],
             "18": [
-                0,
-                1694
+                78,
+                168
             ],
             "24": [
-                0,
-                1714
+                54,
+                168
             ]
         },
-        "farm": {
+        "campsite": {
             "12": [
-                0,
-                1740
+                150,
+                168
             ],
             "18": [
-                0,
-                1754
+                132,
+                168
             ],
             "24": [
-                0,
-                1774
+                108,
+                168
             ]
         },
-        "fast-food": {
+        "theatre": {
             "12": [
-                0,
-                1800
+                204,
+                168
             ],
             "18": [
-                0,
-                1814
+                186,
+                168
             ],
             "24": [
-                0,
-                1834
+                162,
+                168
             ]
         },
-        "ferry": {
+        "art-gallery": {
             "12": [
-                0,
-                1860
+                258,
+                168
             ],
             "18": [
-                0,
-                1874
+                240,
+                168
             ],
             "24": [
-                0,
-                1894
-            ],
-            "line": [
-                2240,
-                25
+                216,
+                168
             ]
         },
-        "fire-station": {
+        "pitch": {
             "12": [
-                0,
-                1920
+                42,
+                192
             ],
             "18": [
-                0,
-                1934
+                24,
+                192
             ],
             "24": [
                 0,
-                1954
+                192
             ]
         },
-        "fuel": {
+        "soccer": {
             "12": [
-                0,
-                1980
+                96,
+                192
             ],
             "18": [
-                0,
-                1994
+                78,
+                192
             ],
             "24": [
-                0,
-                2014
+                54,
+                192
             ]
         },
-        "garden": {
+        "america-football": {
             "12": [
-                0,
-                2040
+                150,
+                192
             ],
             "18": [
-                0,
-                2054
+                132,
+                192
             ],
             "24": [
-                0,
-                2074
+                108,
+                192
             ]
         },
-        "golf": {
+        "tennis": {
             "12": [
-                0,
-                2100
+                204,
+                192
             ],
             "18": [
-                0,
-                2114
+                186,
+                192
             ],
             "24": [
-                0,
-                2134
+                162,
+                192
             ]
         },
-        "grocery": {
+        "basketball": {
             "12": [
-                0,
-                2160
+                258,
+                192
             ],
             "18": [
-                0,
-                2174
+                240,
+                192
             ],
             "24": [
-                0,
-                2194
+                216,
+                192
             ]
         },
-        "harbor": {
+        "baseball": {
             "12": [
-                0,
-                2220
+                42,
+                216
             ],
             "18": [
-                0,
-                2234
+                24,
+                216
             ],
             "24": [
                 0,
-                2254
+                216
             ]
         },
-        "heliport": {
+        "golf": {
             "12": [
-                0,
-                2280
+                96,
+                216
             ],
             "18": [
-                0,
-                2294
+                78,
+                216
             ],
             "24": [
-                0,
-                2314
+                54,
+                216
             ]
         },
-        "hospital": {
+        "swimming": {
             "12": [
-                0,
-                2340
+                150,
+                216
             ],
             "18": [
-                0,
-                2354
+                132,
+                216
             ],
             "24": [
-                0,
-                2374
+                108,
+                216
             ]
         },
-        "industrial": {
+        "cricket": {
             "12": [
-                0,
-                2400
+                204,
+                216
             ],
             "18": [
-                0,
-                2414
+                186,
+                216
             ],
             "24": [
-                0,
-                2434
+                162,
+                216
             ]
         },
-        "land-use": {
+        "skiing": {
             "12": [
-                0,
-                2460
+                258,
+                216
             ],
             "18": [
-                0,
-                2474
+                240,
+                216
             ],
             "24": [
-                0,
-                2494
+                216,
+                216
             ]
         },
-        "library": {
+        "school": {
             "12": [
-                0,
-                2520
+                42,
+                240
             ],
             "18": [
-                0,
-                2534
+                24,
+                240
             ],
             "24": [
                 0,
-                2554
+                240
             ]
         },
-        "lodging": {
+        "college": {
             "12": [
-                0,
-                2580
+                96,
+                240
             ],
             "18": [
-                0,
-                2594
+                78,
+                240
             ],
             "24": [
-                0,
-                2614
+                54,
+                240
             ]
         },
-        "logging": {
+        "library": {
             "12": [
-                0,
-                2640
+                150,
+                240
             ],
             "18": [
-                0,
-                2654
+                132,
+                240
             ],
             "24": [
-                0,
-                2674
+                108,
+                240
             ]
         },
-        "marker": {
+        "post": {
             "12": [
-                0,
-                2700
+                204,
+                240
             ],
             "18": [
-                0,
-                2714
+                186,
+                240
             ],
             "24": [
-                0,
-                2734
+                162,
+                240
             ]
         },
-        "marker-stroked": {
+        "fire-station": {
             "12": [
-                0,
-                2760
+                258,
+                240
             ],
             "18": [
-                0,
-                2774
+                240,
+                240
             ],
             "24": [
-                0,
-                2794
+                216,
+                240
             ]
         },
-        "monument": {
+        "town-hall": {
             "12": [
-                0,
-                2820
+                42,
+                264
             ],
             "18": [
-                0,
-                2834
+                24,
+                264
             ],
             "24": [
                 0,
-                2854
+                264
             ]
         },
-        "museum": {
+        "police": {
             "12": [
-                0,
-                2880
+                96,
+                264
             ],
             "18": [
-                0,
-                2894
+                78,
+                264
             ],
             "24": [
-                0,
-                2914
+                54,
+                264
             ]
         },
-        "music": {
+        "prison": {
             "12": [
-                0,
-                2940
+                150,
+                264
             ],
             "18": [
-                0,
-                2954
+                132,
+                264
             ],
             "24": [
-                0,
-                2974
+                108,
+                264
             ]
         },
-        "oil-well": {
+        "embassy": {
             "12": [
-                0,
-                3000
+                204,
+                264
             ],
             "18": [
-                0,
-                3014
+                186,
+                264
             ],
             "24": [
-                0,
-                3034
+                162,
+                264
             ]
         },
-        "park": {
+        "beer": {
             "12": [
-                0,
-                3060
+                258,
+                264
             ],
             "18": [
-                0,
-                3074
+                240,
+                264
             ],
             "24": [
-                0,
-                3094
+                216,
+                264
             ]
         },
-        "park2": {
+        "restaurant": {
             "12": [
-                0,
-                3120
+                42,
+                288
             ],
             "18": [
-                0,
-                3134
+                24,
+                288
             ],
             "24": [
                 0,
-                3154
+                288
             ]
         },
-        "parking": {
+        "cafe": {
             "12": [
-                0,
-                3180
+                96,
+                288
             ],
             "18": [
-                0,
-                3194
+                78,
+                288
             ],
             "24": [
-                0,
-                3214
+                54,
+                288
             ]
         },
-        "parking-garage": {
+        "shop": {
             "12": [
-                0,
-                3240
+                150,
+                288
             ],
             "18": [
-                0,
-                3254
+                132,
+                288
             ],
             "24": [
-                0,
-                3274
+                108,
+                288
             ]
         },
-        "pharmacy": {
+        "fast-food": {
             "12": [
-                0,
-                3300
+                204,
+                288
             ],
             "18": [
-                0,
-                3314
+                186,
+                288
             ],
             "24": [
-                0,
-                3334
+                162,
+                288
             ]
         },
-        "pitch": {
+        "bar": {
             "12": [
-                0,
-                3360
+                258,
+                288
             ],
             "18": [
-                0,
-                3374
+                240,
+                288
             ],
             "24": [
-                0,
-                3394
+                216,
+                288
             ]
         },
-        "place-of-worship": {
+        "bank": {
             "12": [
-                0,
-                3420
+                42,
+                312
             ],
             "18": [
-                0,
-                3434
+                24,
+                312
             ],
             "24": [
                 0,
-                3454
+                312
             ]
         },
-        "police": {
+        "grocery": {
             "12": [
-                0,
-                3480
+                96,
+                312
             ],
             "18": [
-                0,
-                3494
+                78,
+                312
             ],
             "24": [
-                0,
-                3514
+                54,
+                312
             ]
         },
-        "post": {
+        "cinema": {
             "12": [
-                0,
-                3540
+                150,
+                312
             ],
             "18": [
-                0,
-                3554
+                132,
+                312
             ],
             "24": [
-                0,
-                3574
+                108,
+                312
             ]
         },
-        "prison": {
+        "pharmacy": {
             "12": [
-                0,
-                3600
+                204,
+                312
             ],
             "18": [
-                0,
-                3614
+                186,
+                312
             ],
             "24": [
-                0,
-                3634
+                162,
+                312
             ]
         },
-        "rail": {
+        "hospital": {
             "12": [
-                0,
-                3660
+                258,
+                312
             ],
             "18": [
-                0,
-                3674
+                240,
+                312
             ],
             "24": [
-                0,
-                3694
+                216,
+                312
             ]
         },
-        "rail-above": {
+        "danger": {
             "12": [
-                0,
-                3720
+                42,
+                336
             ],
             "18": [
-                0,
-                3734
+                24,
+                336
             ],
             "24": [
                 0,
-                3754
+                336
             ]
         },
-        "rail-underground": {
+        "industrial": {
             "12": [
-                0,
-                3780
+                96,
+                336
             ],
             "18": [
-                0,
-                3794
+                78,
+                336
             ],
             "24": [
-                0,
-                3814
+                54,
+                336
             ]
         },
-        "religious-christian": {
+        "warehouse": {
             "12": [
-                0,
-                3840
+                150,
+                336
             ],
             "18": [
-                0,
-                3854
+                132,
+                336
             ],
             "24": [
-                0,
-                3874
+                108,
+                336
             ]
         },
-        "religious-jewish": {
+        "commercial": {
             "12": [
-                0,
-                3900
+                204,
+                336
             ],
             "18": [
-                0,
-                3914
+                186,
+                336
             ],
             "24": [
-                0,
-                3934
+                162,
+                336
             ]
         },
-        "religious-muslim": {
+        "building": {
             "12": [
-                0,
-                3960
+                258,
+                336
             ],
             "18": [
-                0,
-                3974
+                240,
+                336
             ],
             "24": [
-                0,
-                3994
+                216,
+                336
             ]
         },
-        "restaurant": {
+        "place-of-worship": {
             "12": [
-                0,
-                4020
+                42,
+                360
             ],
             "18": [
-                0,
-                4034
+                24,
+                360
             ],
             "24": [
                 0,
-                4054
+                360
             ]
         },
-        "roadblock": {
+        "alcohol-shop": {
             "12": [
-                0,
-                4080
+                96,
+                360
             ],
             "18": [
-                0,
-                4094
+                78,
+                360
             ],
             "24": [
-                0,
-                4114
+                54,
+                360
             ]
         },
-        "school": {
+        "logging": {
             "12": [
-                0,
-                4140
+                150,
+                360
             ],
             "18": [
-                0,
-                4154
+                132,
+                360
             ],
             "24": [
-                0,
-                4174
+                108,
+                360
             ]
         },
-        "shop": {
+        "oil-well": {
             "12": [
-                0,
-                4200
+                204,
+                360
             ],
             "18": [
-                0,
-                4214
+                186,
+                360
             ],
             "24": [
-                0,
-                4234
+                162,
+                360
             ]
         },
-        "skiing": {
+        "slaughterhouse": {
             "12": [
-                0,
-                4260
+                258,
+                360
             ],
             "18": [
-                0,
-                4274
+                240,
+                360
             ],
             "24": [
-                0,
-                4294
+                216,
+                360
             ]
         },
-        "slaughterhouse": {
+        "dam": {
             "12": [
-                0,
-                4320
+                42,
+                384
             ],
             "18": [
-                0,
-                4334
+                24,
+                384
             ],
             "24": [
                 0,
-                4354
+                384
             ]
         },
-        "soccer": {
+        "water": {
             "12": [
-                0,
-                4380
+                96,
+                384
             ],
             "18": [
-                0,
-                4394
+                78,
+                384
             ],
             "24": [
-                0,
-                4414
+                54,
+                384
             ]
         },
-        "square": {
+        "wetland": {
             "12": [
-                0,
-                4440
+                150,
+                384
             ],
             "18": [
-                0,
-                4454
+                132,
+                384
             ],
             "24": [
-                0,
-                4474
+                108,
+                384
             ]
         },
-        "square-stroked": {
+        "disability": {
             "12": [
-                0,
-                4500
+                204,
+                384
             ],
             "18": [
-                0,
-                4514
+                186,
+                384
             ],
             "24": [
-                0,
-                4534
+                162,
+                384
             ]
         },
-        "star": {
+        "telephone": {
             "12": [
-                0,
-                4560
+                258,
+                384
             ],
             "18": [
-                0,
-                4574
+                240,
+                384
             ],
             "24": [
-                0,
-                4594
+                216,
+                384
             ]
         },
-        "star-stroked": {
+        "emergency-telephone": {
             "12": [
-                0,
-                4620
+                42,
+                408
             ],
             "18": [
-                0,
-                4634
+                24,
+                408
             ],
             "24": [
                 0,
-                4654
+                408
             ]
         },
-        "swimming": {
+        "toilets": {
             "12": [
-                0,
-                4680
+                96,
+                408
             ],
             "18": [
-                0,
-                4694
+                78,
+                408
             ],
             "24": [
-                0,
-                4714
+                54,
+                408
             ]
         },
-        "telephone": {
+        "waste-basket": {
             "12": [
-                0,
-                4740
+                150,
+                408
             ],
             "18": [
-                0,
-                4754
+                132,
+                408
             ],
             "24": [
-                0,
-                4774
+                108,
+                408
             ]
         },
-        "tennis": {
+        "music": {
             "12": [
-                0,
-                4800
+                204,
+                408
             ],
             "18": [
-                0,
-                4814
+                186,
+                408
             ],
             "24": [
-                0,
-                4834
+                162,
+                408
             ]
         },
-        "theatre": {
+        "land-use": {
             "12": [
-                0,
-                4860
+                258,
+                408
             ],
             "18": [
-                0,
-                4874
+                240,
+                408
             ],
             "24": [
-                0,
-                4894
+                216,
+                408
             ]
         },
-        "toilets": {
+        "city": {
             "12": [
-                0,
-                4920
+                42,
+                432
             ],
             "18": [
-                0,
-                4934
+                24,
+                432
             ],
             "24": [
                 0,
-                4954
+                432
             ]
         },
         "town": {
             "12": [
-                0,
-                4980
+                96,
+                432
             ],
             "18": [
-                0,
-                4994
+                78,
+                432
             ],
             "24": [
-                0,
-                5014
+                54,
+                432
             ]
         },
-        "town-hall": {
+        "village": {
             "12": [
-                0,
-                5040
+                150,
+                432
             ],
             "18": [
-                0,
-                5054
+                132,
+                432
             ],
             "24": [
-                0,
-                5074
+                108,
+                432
             ]
         },
-        "triangle": {
+        "farm": {
             "12": [
-                0,
-                5100
+                204,
+                432
             ],
             "18": [
-                0,
-                5114
+                186,
+                432
             ],
             "24": [
-                0,
-                5134
+                162,
+                432
             ]
         },
-        "triangle-stroked": {
+        "bakery": {
             "12": [
-                0,
-                5160
+                258,
+                432
             ],
             "18": [
-                0,
-                5174
+                240,
+                432
             ],
             "24": [
-                0,
-                5194
+                216,
+                432
             ]
         },
-        "village": {
+        "dog-park": {
             "12": [
-                0,
-                5220
+                42,
+                456
             ],
             "18": [
-                0,
-                5234
+                24,
+                456
             ],
             "24": [
                 0,
-                5254
+                456
             ]
         },
-        "warehouse": {
+        "lighthouse": {
             "12": [
-                0,
-                5280
+                96,
+                456
             ],
             "18": [
-                0,
-                5294
+                78,
+                456
             ],
             "24": [
-                0,
-                5314
+                54,
+                456
             ]
         },
-        "waste-basket": {
+        "clothing-store": {
             "12": [
-                0,
-                5340
+                150,
+                456
             ],
             "18": [
-                0,
-                5354
+                132,
+                456
             ],
             "24": [
-                0,
-                5374
+                108,
+                456
             ]
         },
-        "water": {
+        "london-underground": {
             "12": [
-                0,
-                5400
+                204,
+                456
             ],
             "18": [
-                0,
-                5414
+                186,
+                456
             ],
             "24": [
-                0,
-                5434
+                162,
+                456
             ]
         },
-        "wetland": {
+        "minefield": {
             "12": [
-                0,
-                5460
+                258,
+                456
             ],
             "18": [
-                0,
-                5474
+                240,
+                456
             ],
             "24": [
-                0,
-                5494
+                216,
+                456
             ]
         },
-        "zoo": {
+        "camera": {
             "12": [
-                0,
-                5520
+                42,
+                480
             ],
             "18": [
-                0,
-                5534
+                24,
+                480
             ],
             "24": [
                 0,
-                5554
+                480
             ]
         },
         "highway-motorway": {
@@ -48955,6 +73603,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             200,
             140
         ],
+        "icon-operation-continue": [
+            220,
+            140
+        ],
         "icon-operation-disabled-delete": [
             0,
             160
@@ -48998,22 +73650,30 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         "icon-operation-disabled-simplify": [
             200,
             160
+        ],
+        "icon-operation-disabled-continue": [
+            220,
+            160
         ]
     },
     "locales": [
         "af",
         "ar",
+        "ar-AA",
         "ast",
+        "bn",
         "bs",
         "bg-BG",
         "ca",
         "zh",
         "zh-CN",
+        "zh-CN.GB2312",
         "zh-TW",
         "hr",
         "cs",
         "da",
         "nl",
+        "en-GB",
         "et",
         "fi",
         "fr",
@@ -49028,10 +73688,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         "lv",
         "lt",
         "no",
+        "nn",
+        "fa",
         "pl",
         "pt",
         "pt-BR",
         "ru",
+        "sc",
         "sr",
         "sr-RS",
         "sk",
@@ -49086,6 +73749,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 }
             },
             "continue": {
+                "key": "A",
+                "title": "Continue",
+                "description": "Continue this line.",
+                "not_eligible": "No line can be continued here.",
+                "multiple": "Several lines can be continued here. To choose a line, press the Shift key and click on it to select it.",
                 "annotation": {
                     "line": "Continued a line.",
                     "area": "Continued an area."
@@ -49114,14 +73782,24 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "not_closed": "This can't be made circular because it's not a loop."
             },
             "orthogonalize": {
-                "title": "Orthogonalize",
-                "description": "Square these corners.",
-                "key": "Q",
+                "title": "Square",
+                "description": {
+                    "line": "Square the corners of this line.",
+                    "area": "Square the corners of this area."
+                },
+                "key": "S",
                 "annotation": {
                     "line": "Squared the corners of a line.",
                     "area": "Squared the corners of an area."
                 },
-                "not_closed": "This can't be made square because it's not a loop."
+                "not_squarish": "This can't be made square because it is not squarish."
+            },
+            "straighten": {
+                "title": "Straighten",
+                "description": "Straighten this line.",
+                "key": "S",
+                "annotation": "Straightened a line.",
+                "too_bendy": "This can't be straightened because it bends too much."
             },
             "delete": {
                 "title": "Delete",
@@ -49181,7 +73859,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "rotate": {
                 "title": "Rotate",
-                "description": "Rotate this object around its centre point.",
+                "description": "Rotate this object around its center point.",
                 "key": "R",
                 "annotation": {
                     "line": "Rotated a line.",
@@ -49277,18 +73955,25 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "back_tooltip": "Change feature",
             "remove": "Remove",
             "search": "Search",
+            "multiselect": "Selected items",
             "unknown": "Unknown",
             "incomplete": "<not downloaded>",
             "feature_list": "Search features",
-            "edit": "Edit feature"
+            "edit": "Edit feature",
+            "check": {
+                "yes": "Yes",
+                "no": "No"
+            },
+            "none": "None"
         },
         "background": {
             "title": "Background",
             "description": "Background settings",
             "percent_brightness": "{opacity}% brightness",
+            "none": "None",
             "custom": "Custom",
             "custom_prompt": "Enter a tile template. Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.",
-            "fix_misalignment": "Fix misalignment",
+            "fix_misalignment": "Fix alignment",
             "reset": "reset"
         },
         "restore": {
@@ -49312,7 +73997,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             "facebook": "Share on Facebook",
             "twitter": "Share on Twitter",
             "google": "Share on Google+",
-            "help_html": "Your changes should appear in the \"Standard\" layer in a few minutes. Other layers, and certain features, may take longer\n(<a href='https://help.openstreetmap.org/questions/4705/why-havent-my-changes-appeared-on-the-map'>details</a>).\n"
+            "help_html": "Your changes should appear in the \"Standard\" layer in a few minutes. Other layers, and certain features, may take longer\n(<a href='https://help.openstreetmap.org/questions/4705/why-havent-my-changes-appeared-on-the-map' target='_blank'>details</a>).\n"
         },
         "confirm": {
             "okay": "Okay"
@@ -49348,17 +74033,19 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
         "cannot_zoom": "Cannot zoom out further in current mode.",
         "gpx": {
             "local_layer": "Local GPX file",
-            "drag_drop": "Drag and drop a .gpx file on the page"
+            "drag_drop": "Drag and drop a .gpx file on the page, or click the button to the right to browse",
+            "zoom": "Zoom to GPX track",
+            "browse": "Browse for a .gpx file"
         },
         "help": {
             "title": "Help",
             "help": "# Help\n\nThis is an editor for [OpenStreetMap](http://www.openstreetmap.org/), the\nfree and editable map of the world. You can use it to add and update\ndata in your area, making an open-source and open-data map of the world\nbetter for everyone.\n\nEdits that you make on this map will be visible to everyone who uses\nOpenStreetMap. In order to make an edit, you'll need a\n[free OpenStreetMap account](https://www.openstreetmap.org/user/new).\n\nThe [iD editor](http://ideditor.com/) is a collaborative project with [source\ncode available on GitHub](https://github.com/systemed/iD).\n",
-            "editing_saving": "# Editing & Saving\n\nThis editor is designed to work primarily online, and you're accessing\nit through a website right now.\n\n### Selecting Features\n\nTo select a map feature, like a road or point of interest, click\non it on the map. This will highlight the selected feature, open a panel with\ndetails about it, and show a menu of things you can do with the feature.\n\nMultiple features can be selected by holding the 'Shift' key, clicking,\nand dragging on the map. This will select all features within the box\nthat's drawn, allowing you to do things with several features at once.\n\n### Saving Edits\n\nWhen you make changes like editing roads, buildings, and places, these are\nstored locally until you save them to the server. Don't worry if you make\na mistake - you can undo changes by clicking the undo button, and redo\nchanges by clicking the redo button.\n\nClick 'Save' to finish a group of edits - for instance, if you've completed\nan area of town and would like to start on a new area. You'll have a chance\nto review what you've done, and the editor supplies helpful suggestions\nand warnings if something doesn't seem right about the changes.\n\nIf everything looks good, you can enter a short comment explaining the change\nyou made, and click 'Save' again to post the changes\nto [OpenStreetMap.org](http://www.openstreetmap.org/), where they are visible\nto all other users and available for others to build and improve upon.\n\nIf you can't finish your edits in one sitting, you can leave the editor\nwindow and come back (on the same browser and computer), and the\neditor application will offer to restore your work.\n",
+            "editing_saving": "# Editing & Saving\n\nThis editor is designed to work primarily online, and you're accessing\nit through a website right now.\n\n### Selecting Features\n\nTo select a map feature, like a road or point of interest, click\non it on the map. This will highlight the selected feature, open a panel with\ndetails about it, and show a menu of things you can do with the feature.\n\nTo select multiple features, hold down the 'Shift' key. Then either click\non the features you want to select, or drag on the map to draw a rectangle.\nThis will draw a box and select all the points within it.\n\n### Saving Edits\n\nWhen you make changes like editing roads, buildings, and places, these are\nstored locally until you save them to the server. Don't worry if you make\na mistake - you can undo changes by clicking the undo button, and redo\nchanges by clicking the redo button.\n\nClick 'Save' to finish a group of edits - for instance, if you've completed\nan area of town and would like to start on a new area. You'll have a chance\nto review what you've done, and the editor supplies helpful suggestions\nand warnings if something doesn't seem right about the changes.\n\nIf everything looks good, you can enter a short comment explaining the change\nyou made, and click 'Save' again to post the changes\nto [OpenStreetMap.org](http://www.openstreetmap.org/), where they are visible\nto all other users and available for others to build and improve upon.\n\nIf you can't finish your edits in one sitting, you can leave the editor\nwindow and come back (on the same browser and computer), and the\neditor application will offer to restore your work.\n",
             "roads": "# Roads\n\nYou can create, fix, and delete roads with this editor. Roads can be all\nkinds: paths, highways, trails, cycleways, and more - any often-crossed\nsegment should be mappable.\n\n### Selecting\n\nClick on a road to select it. An outline should become visible, along\nwith a small tools menu on the map and a sidebar showing more information\nabout the road.\n\n### Modifying\n\nOften you'll see roads that aren't aligned to the imagery behind them\nor to a GPS track. You can adjust these roads so they are in the correct\nplace.\n\nFirst click on the road you want to change. This will highlight it and show\ncontrol points along it that you can drag to better locations. If\nyou want to add new control points for more detail, double-click a part\nof the road without a node, and one will be added.\n\nIf the road connects to another road, but doesn't properly connect on\nthe map, you can drag one of its control points onto the other road in\norder to join them. Having roads connect is important for the map\nand essential for providing driving directions.\n\nYou can also click the 'Move' tool or press the `M` shortcut key to move the entire road at\none time, and then click again to save that movement.\n\n### Deleting\n\nIf a road is entirely incorrect - you can see that it doesn't exist in satellite\nimagery and ideally have confirmed locally that it's not present - you can delete\nit, which removes it from the map. Be cautious when deleting features -\nlike any other edit, the results are seen by everyone and satellite imagery\nis often out of date, so the road could simply be newly built.\n\nYou can delete a road by clicking on it to select it, then clicking the\ntrash can icon or pressing the 'Delete' key.\n\n### Creating\n\nFound somewhere there should be a road but there isn't? Click the 'Line'\nicon in the top-left of the editor or press the shortcut key `2` to start drawing\na line.\n\nClick on the start of the road on the map to start drawing. If the road\nbranches off from an existing road, start by clicking on the place where they connect.\n\nThen click on points along the road so that it follows the right path, according\nto satellite imagery or GPS. If the road you are drawing crosses another road, connect\nit by clicking on the intersection point. When you're done drawing, double-click\nor press 'Return' or 'Enter' on your keyboard.\n",
-            "gps": "# GPS\n\nGPS data is the most trusted source of data for OpenStreetMap. This editor\nsupports local traces - `.gpx` files on your local computer. You can collect\nthis kind of GPS trace with a number of smartphone applications as well as\npersonal GPS hardware.\n\nFor information on how to perform a GPS survey, read\n[Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/).\n\nTo use a GPX track for mapping, drag and drop the GPX file onto the map\neditor. If it's recognized, it will be added to the map as a bright green\nline. Click on the 'Background Settings' menu on the left side to enable,\ndisable, or zoom to this new GPX-powered layer.\n\nThe GPX track isn't directly uploaded to OpenStreetMap - the best way to\nuse it is to draw on the map, using it as a guide for the new features that\nyou add.\n",
-            "imagery": "# Imagery\n\nAerial imagery is an important resource for mapping. A combination of\nairplane flyovers, satellite views, and freely-compiled sources are available\nin the editor under the 'Background Settings' menu on the left.\n\nBy default a [Bing Maps](http://www.bing.com/maps/) satellite layer is\npresented in the editor, but as you pan and zoom the map to new geographical\nareas, new sources will become available. Some countries, like the United\nStates, France, and Denmark have very high-quality imagery available for some areas.\n\nImagery is sometimes offset from the map data because of a mistake on the\nimagery provider's side. If you see a lot of roads shifted from the background,\ndon't immediately move them all to match the background. Instead you can adjust\nthe imagery so that it matches the existing data by clicking 'Fix alignment' at\nthe bottom of the Background Settings UI.\n",
+            "gps": "# GPS\n\nGPS data is the most trusted source of data for OpenStreetMap. This editor\nsupports local traces - `.gpx` files on your local computer. You can collect\nthis kind of GPS trace with a number of smartphone applications as well as\npersonal GPS hardware.\n\nFor information on how to perform a GPS survey, read\n[Surveying with a GPS](http://learnosm.org/en/beginner/using-gps/).\n\nTo use a GPX track for mapping, drag and drop the GPX file onto the map\neditor. If it's recognized, it will be added to the map as a bright green\nline. Click on the 'Background Settings' menu on the right side to enable,\ndisable, or zoom to this new GPX-powered layer.\n\nThe GPX track isn't directly uploaded to OpenStreetMap - the best way to\nuse it is to draw on the map, using it as a guide for the new features that\nyou add, and also to [upload it to OpenStreetMap](http://www.openstreetmap.org/trace/create)\nfor other users to use.\n",
+            "imagery": "# Imagery\n\nAerial imagery is an important resource for mapping. A combination of\nairplane flyovers, satellite views, and freely-compiled sources are available\nin the editor under the 'Background Settings' menu on the right.\n\nBy default a [Bing Maps](http://www.bing.com/maps/) satellite layer is\npresented in the editor, but as you pan and zoom the map to new geographical\nareas, new sources will become available. Some countries, like the United\nStates, France, and Denmark have very high-quality imagery available for some areas.\n\nImagery is sometimes offset from the map data because of a mistake on the\nimagery provider's side. If you see a lot of roads shifted from the background,\ndon't immediately move them all to match the background. Instead you can adjust\nthe imagery so that it matches the existing data by clicking 'Fix alignment' at\nthe bottom of the Background Settings UI.\n",
             "addresses": "# Addresses\n\nAddresses are some of the most useful information for the map.\n\nAlthough addresses are often represented as parts of streets, in OpenStreetMap\nthey're recorded as attributes of buildings and places along streets.\n\nYou can add address information to places mapped as building outlines\nas well as those mapped as single points. The optimal source of address\ndata is from an on-the-ground survey or personal knowledge - as with any\nother feature, copying from commercial sources like Google Maps is strictly\nforbidden.\n",
-            "inspector": "# Using the Inspector\n\nThe inspector is the user interface element on the right-hand side of the\npage that appears when a feature is selected and allows you to edit its details.\n\n### Selecting a Feature Type\n\nAfter you add a point, line, or area, you can choose what type of feature it\nis, like whether it's a highway or residential road, supermarket or cafe.\nThe inspector will display buttons for common feature types, and you can\nfind others by typing what you're looking for in the search box.\n\nClick the 'i' in the bottom-right-hand corner of a feature type button to\nlearn more about it. Click a button to choose that type.\n\n### Using Forms and Editing Tags\n\nAfter you choose a feature type, or when you select a feature that already\nhas a type assigned, the inspector will display fields with details about\nthe feature like its name and address.\n\nBelow the fields you see, you can click icons to add other details,\nlike [Wikipedia](http://www.wikipedia.org/) information, wheelchair\naccess, and more.\n\nAt the bottom of the inspector, click 'Additional tags' to add arbitrary\nother tags to the element. [Taginfo](http://taginfo.openstreetmap.org/) is a\ngreat resource for learn more about popular tag combinations.\n\nChanges you make in the inspector are automatically applied to the map.\nYou can undo them at any time by clicking the 'Undo' button.\n\n### Closing the Inspector\n\nYou can close the inspector by clicking the close button in the top-right,\npressing the 'Escape' key, or clicking on the map.\n",
+            "inspector": "# Using the Inspector\n\nThe inspector is the section on the left side of the page that allows you to\nedit the details of the selected feature.\n\n### Selecting a Feature Type\n\nAfter you add a point, line, or area, you can choose what type of feature it\nis, like whether it's a highway or residential road, supermarket or cafe.\nThe inspector will display buttons for common feature types, and you can\nfind others by typing what you're looking for in the search box.\n\nClick the 'i' in the bottom-right-hand corner of a feature type button to\nlearn more about it. Click a button to choose that type.\n\n### Using Forms and Editing Tags\n\nAfter you choose a feature type, or when you select a feature that already\nhas a type assigned, the inspector will display fields with details about\nthe feature like its name and address.\n\nBelow the fields you see, you can click icons to add other details,\nlike [Wikipedia](http://www.wikipedia.org/) information, wheelchair\naccess, and more.\n\nAt the bottom of the inspector, click 'Additional tags' to add arbitrary\nother tags to the element. [Taginfo](http://taginfo.openstreetmap.org/) is a\ngreat resource for learn more about popular tag combinations.\n\nChanges you make in the inspector are automatically applied to the map.\nYou can undo them at any time by clicking the 'Undo' button.\n",
             "buildings": "# Buildings\n\nOpenStreetMap is the world's largest database of buildings. You can create\nand improve this database.\n\n### Selecting\n\nYou can select a building by clicking on its border. This will highlight the\nbuilding and open a small tools menu and a sidebar showing more information\nabout the building.\n\n### Modifying\n\nSometimes buildings are incorrectly placed or have incorrect tags.\n\nTo move an entire building, select it, then click the 'Move' tool. Move your\nmouse to shift the building, and click when it's correctly placed.\n\nTo fix the specific shape of a building, click and drag the nodes that form\nits border into better places.\n\n### Creating\n\nOne of the main questions around adding buildings to the map is that\nOpenStreetMap records buildings both as shapes and points. The rule of thumb\nis to _map a building as a shape whenever possible_, and map companies, homes,\namenities, and other things that operate out of buildings as points placed\nwithin the building shape.\n\nStart drawing a building as a shape by clicking the 'Area' button in the top\nleft of the interface, and end it either by pressing 'Return' on your keyboard\nor clicking on the first node drawn to close the shape.\n\n### Deleting\n\nIf a building is entirely incorrect - you can see that it doesn't exist in satellite\nimagery and ideally have confirmed locally that it's not present - you can delete\nit, which removes it from the map. Be cautious when deleting features -\nlike any other edit, the results are seen by everyone and satellite imagery\nis often out of date, so the building could simply be newly built.\n\nYou can delete a building by clicking on it to select it, then clicking the\ntrash can icon or pressing the 'Delete' key.\n",
             "relations": "# Relations\n\nA relation is a special type of feature in OpenStreetMap that groups together\nother features. For example, two common types of relations are *route relations*,\nwhich group together sections of road that belong to a specific freeway or\nhighway, and *multipolygons*, which group together several lines that define\na complex area (one with several pieces or holes in it like a donut).\n\nThe group of features in a relation are called *members*. In the sidebar, you can\nsee which relations a feature is a member of, and click on a relation there\nto select the it. When the relation is selected, you can see all of its\nmembers listed in the sidebar and highlighted on the map.\n\nFor the most part, iD will take care of maintaining relations automatically\nwhile you edit. The main thing you should be aware of is that if you delete a\nsection of road to redraw it more accurately, you should make sure that the\nnew section is a member of the same relations as the original.\n\n## Editing Relations\n\nIf you want to edit relations, here are the basics.\n\nTo add a feature to a relation, select the feature, click the \"+\" button in the\n\"All relations\" section of the sidebar, and select or type the name of the relation.\n\nTo create a new relation, select the first feature that should be a member,\nclick the \"+\" button in the \"All relations\" section, and select \"New relation...\".\n\nTo remove a feature from a relation, select the feature and click the trash\nbutton next to the relation you want to remove it from.\n\nYou can create multipolygons with holes using the \"Merge\" tool. Draw two areas (inner\nand outer), hold the Shift key and click on each of them to select them both, and then\nclick the \"Merge\" (+) button.\n"
         },
@@ -49394,14 +74081,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
             },
             "lines": {
                 "title": "Lines",
-                "add": "Lines are used to represent features such as roads, railways and rivers. **Click the Line button to add a new line.**",
+                "add": "Lines are used to represent features such as roads, railroads and rivers. **Click the Line button to add a new line.**",
                 "start": "**Start the line by clicking on the end of the road.**",
                 "intersect": "Click to add more nodes to the line. You can drag the map while drawing if necessary. Roads, and many other types of lines, are part of a larger network. It is important for these lines to be connected properly in order for routing applications to work. **Click on Flower Street, to create an intersection connecting the two lines.**",
                 "finish": "Lines can be finished by clicking on the last node again. **Finish drawing the road.**",
                 "road": "**Select Road from the list**",
                 "residential": "There are different types of roads, the most common of which is Residential. **Choose the Residential road type**",
                 "describe": "**Name the road and close the feature editor.**",
-                "restart": "The road needs to intersect Flower Street."
+                "restart": "The road needs to intersect Flower Street.",
+                "wrong_preset": "You didn't select the Residential road type. **Click here to choose again**"
             },
             "startediting": {
                 "title": "Start Editing",
@@ -49469,6 +74157,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                         }
                     }
                 },
+                "access_toilets": {
+                    "label": "Access"
+                },
                 "address": {
                     "label": "Address",
                     "placeholders": {
@@ -49497,6 +74188,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "atm": {
                     "label": "ATM"
                 },
+                "backrest": {
+                    "label": "Backrest"
+                },
                 "barrier": {
                     "label": "Type"
                 },
@@ -49626,6 +74320,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "label": "Levels",
                     "placeholder": "2, 4, 6..."
                 },
+                "lit": {
+                    "label": "Lit"
+                },
                 "location": {
                     "label": "Location"
                 },
@@ -49759,6 +74456,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 "trail_visibility": {
                     "label": "Trail Visibility"
                 },
+                "vending": {
+                    "label": "Type of Goods"
+                },
                 "water": {
                     "label": "Type"
                 },
@@ -49827,6 +74527,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Amenity",
                     "terms": ""
                 },
+                "amenity/arts_centre": {
+                    "name": "Arts Center",
+                    "terms": "arts,arts centre"
+                },
                 "amenity/atm": {
                     "name": "ATM",
                     "terms": ""
@@ -49851,6 +74555,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Bicycle Rental",
                     "terms": ""
                 },
+                "amenity/boat_rental": {
+                    "name": "Boat Rental",
+                    "terms": ""
+                },
                 "amenity/cafe": {
                     "name": "Cafe",
                     "terms": "coffee,tea,coffee shop"
@@ -49905,7 +74613,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "amenity/fuel": {
                     "name": "Gas Station",
-                    "terms": ""
+                    "terms": "petrol,fuel,propane,diesel,lng,cng,biodiesel"
                 },
                 "amenity/grave_yard": {
                     "name": "Graveyard",
@@ -49973,11 +74681,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "amenity/ranger_station": {
                     "name": "Ranger Station",
-                    "terms": "visitor center,permit center,backcountry office"
+                    "terms": "visitor center,visitor centre,permit center,permit centre,backcountry office"
                 },
                 "amenity/restaurant": {
                     "name": "Restaurant",
-                    "terms": "bar,cafeteria,café,canteen,chophouse,coffee shop,diner,dining room,dive*,doughtnut shop,drive-in,eatery,eating house,eating place,fast-food place,greasy spoon,grill,hamburger stand,hashery,hideaway,hotdog stand,inn,joint*,luncheonette,lunchroom,night club,outlet*,pizzeria,saloon,soda fountain,watering hole"
+                    "terms": "bar,cafeteria,café,canteen,chophouse,coffee shop,diner,dining room,dive*,doughtnut shop,drive-in,eatery,eating house,eating place,fast-food place,fish and chips,greasy spoon,grill,hamburger stand,hashery,hideaway,hotdog stand,inn,joint*,luncheonette,lunchroom,night club,outlet*,pizzeria,saloon,soda fountain,watering hole"
                 },
                 "amenity/school": {
                     "name": "School",
@@ -50005,12 +74713,16 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "amenity/townhall": {
                     "name": "Town Hall",
-                    "terms": "village hall,city government,courthouse,municipal building,municipal center"
+                    "terms": "village hall,city government,courthouse,municipal building,municipal center,municipal centre"
                 },
                 "amenity/university": {
                     "name": "University",
                     "terms": "college"
                 },
+                "amenity/vending_machine": {
+                    "name": "Vending Machine",
+                    "terms": ""
+                },
                 "amenity/waste_basket": {
                     "name": "Waste Basket",
                     "terms": "rubbish bin,litter bin,trash can,garbage can"
@@ -50247,6 +74959,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Steps",
                     "terms": "stairs,staircase"
                 },
+                "highway/stop": {
+                    "name": "Stop Sign",
+                    "terms": "stop sign"
+                },
                 "highway/tertiary": {
                     "name": "Tertiary Road",
                     "terms": ""
@@ -50387,6 +75103,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Leisure",
                     "terms": ""
                 },
+                "leisure/common": {
+                    "name": "Common",
+                    "terms": "open space"
+                },
                 "leisure/dog_park": {
                     "name": "Dog Park",
                     "terms": ""
@@ -50423,6 +75143,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Basketball Court",
                     "terms": ""
                 },
+                "leisure/pitch/skateboard": {
+                    "name": "Skate Park",
+                    "terms": ""
+                },
                 "leisure/pitch/soccer": {
                     "name": "Soccer Field",
                     "terms": ""
@@ -50443,6 +75167,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Slipway",
                     "terms": ""
                 },
+                "leisure/sports_center": {
+                    "name": "Sports Center",
+                    "terms": "gym"
+                },
                 "leisure/stadium": {
                     "name": "Stadium",
                     "terms": ""
@@ -50475,6 +75203,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Lighthouse",
                     "terms": ""
                 },
+                "man_made/observation": {
+                    "name": "Observation Tower",
+                    "terms": "lookout tower,fire tower"
+                },
                 "man_made/pier": {
                     "name": "Pier",
                     "terms": ""
@@ -50527,6 +75259,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Coastline",
                     "terms": "shore"
                 },
+                "natural/fell": {
+                    "name": "Fell",
+                    "terms": ""
+                },
                 "natural/glacier": {
                     "name": "Glacier",
                     "terms": ""
@@ -50543,6 +75279,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Peak",
                     "terms": "acme,aiguille,alp,climax,crest,crown,hill,mount,mountain,pinnacle,summit,tip,top"
                 },
+                "natural/scree": {
+                    "name": "Scree",
+                    "terms": "loose rocks"
+                },
                 "natural/scrub": {
                     "name": "Scrub",
                     "terms": ""
@@ -50659,6 +75399,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Disused Railway",
                     "terms": ""
                 },
+                "railway/halt": {
+                    "name": "Railway Halt",
+                    "terms": "break,interrupt,rest,wait,interruption"
+                },
                 "railway/level_crossing": {
                     "name": "Level Crossing",
                     "terms": "crossing,railroad crossing,railway crossing,grade crossing,road through railroad,train crossing"
@@ -50713,7 +75457,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "shop/beauty": {
                     "name": "Beauty Shop",
-                    "terms": ""
+                    "terms": "nail spa,spa,salon,tanning"
                 },
                 "shop/beverages": {
                     "name": "Beverage Store",
@@ -50805,7 +75549,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "shop/garden_centre": {
                     "name": "Garden Center",
-                    "terms": ""
+                    "terms": "garden centre"
                 },
                 "shop/gift": {
                     "name": "Gift Shop",
@@ -50839,6 +75583,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Laundry",
                     "terms": ""
                 },
+                "shop/locksmith": {
+                    "name": "Locksmith",
+                    "terms": "keys"
+                },
                 "shop/mall": {
                     "name": "Mall",
                     "terms": ""
@@ -50871,6 +75619,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Pet Store",
                     "terms": ""
                 },
+                "shop/photo": {
+                    "name": "Photography Store",
+                    "terms": ""
+                },
                 "shop/shoes": {
                     "name": "Shoe Store",
                     "terms": ""
@@ -50885,7 +75637,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                 },
                 "shop/supermarket": {
                     "name": "Supermarket",
-                    "terms": "bazaar,boutique,chain,co-op,cut-rate store,discount store,five-and-dime,flea market,galleria,mall,mart,outlet,outlet store,shop,shopping center,shopping plaza,stand,store,supermarket,thrift shop"
+                    "terms": "bazaar,boutique,chain,co-op,cut-rate store,discount store,five-and-dime,flea market,galleria,grocery store,mall,mart,outlet,outlet store,shop,shopping center,shopping centre,shopping plaza,stand,store,supermarket,thrift shop"
                 },
                 "shop/toys": {
                     "name": "Toy Store",
@@ -51019,6 +75771,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081],"
                     "name": "Foot Route",
                     "terms": ""
                 },
+                "type/route/hiking": {
+                    "name": "Hiking Route",
+                    "terms": ""
+                },
                 "type/route/pipeline": {
                     "name": "Pipeline Route",
                     "terms": ""