X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/25792ba304a7de2fe45a6a320bc97a6b47185535..3ba036045bc43031475eb29ca0663d33c80e1b32:/vendor/assets/iD/iD.js diff --git a/vendor/assets/iD/iD.js b/vendor/assets/iD/iD.js index 9abb7ed44..6c0845b7c 100644 --- a/vendor/assets/iD/iD.js +++ b/vendor/assets/iD/iD.js @@ -5665,7 +5665,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; @@ -5725,6 +5725,10 @@ d3.combobox = function() { position: 'absolute', display: 'block', left: '0px' + }) + .on('mousedown', function () { + // prevent moving focus out of the text field + d3.event.preventDefault(); }); d3.select(document.body) @@ -13766,64 +13770,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) + }); } } } @@ -13837,7 +13903,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; @@ -13855,28 +13921,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; } @@ -15024,16 +15131,28 @@ window.iD = function () { // https://github.com/systemed/iD/issues/772 // http://mathiasbynens.be/notes/localstorage-pattern#comment-9 try { storage = localStorage; } catch (e) {} - storage = storage || {}; + storage = storage || (function() { + var s = {}; + return { + getItem: function(k) { return s[k]; }, + setItem: function(k, v) { s[k] = v; }, + removeItem: function(k) { delete s[k]; } + }; + })(); context.storage = function(k, v) { - if (arguments.length === 1) return storage[k]; - else if (v === null) delete storage[k]; - else storage[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 + if (typeof console !== 'undefined') console.error('localStorage quota exceeded'); + } }; var history = iD.History(context), - dispatch = d3.dispatch('enter', 'exit', 'toggleFullscreen'), + dispatch = d3.dispatch('enter', 'exit'), mode, container, ui = iD.ui(context), @@ -15080,20 +15199,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); @@ -15192,6 +15337,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); @@ -15221,18 +15373,22 @@ window.iD = function () { return context; }; - context.imagePath = function(_) { - return assetPath + 'img/' + _; + var assetMap = {}; + context.assetMap = function(_) { + if (!arguments.length) return assetMap; + assetMap = _; + return context; }; - context.toggleFullscreen = function() { - dispatch.toggleFullscreen(); + context.imagePath = function(_) { + var asset = 'img/' + _; + return assetMap[asset] || assetPath + asset; }; return d3.rebind(context, dispatch, 'on'); }; -iD.version = '1.1.1'; +iD.version = '1.2.1'; (function() { var detected = {}; @@ -15323,7 +15479,7 @@ iD.taginfo = function() { } function popularValues() { - return function(d) { return parseFloat(d.fraction) > 0.01; }; + return function(d) { return parseFloat(d.fraction) > 0.01 || d.in_wiki; }; } function valKey(d) { return { value: d.key }; } @@ -15385,7 +15541,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); }; @@ -15606,6 +15767,13 @@ 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; +}; iD.geo = {}; iD.geo.roundCoords = function(c) { @@ -15618,17 +15786,23 @@ 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; +}; // 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; @@ -15746,6 +15920,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] && @@ -15909,6 +16093,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) { @@ -15959,6 +16205,10 @@ iD.actions.AddMidpoint = function(midpoint, node) { (way.nodes[i] === midpoint.edge[1] && way.nodes[i + 1] === midpoint.edge[0])) { 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; } } }); @@ -15995,63 +16245,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; }; @@ -16151,7 +16443,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); @@ -16176,7 +16473,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) { @@ -16211,7 +16513,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) { @@ -16630,20 +16937,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; } } @@ -16651,30 +16962,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); + } } } @@ -16684,79 +17015,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; @@ -16880,19 +17223,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 { @@ -16919,24 +17313,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: [ @@ -16962,12 +17355,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; } @@ -16996,6 +17393,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'), @@ -17267,8 +17738,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 @@ -18090,7 +18561,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) { @@ -18104,29 +18575,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() { @@ -18213,7 +18672,9 @@ iD.modes.Browse = function(context) { }); // Get focus on the body. - document.activeElement.blur(); + if (document.activeElement) { + document.activeElement.blur(); + } if (sidebar) { context.ui().sidebar.show(sidebar); @@ -18281,8 +18742,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) { @@ -18351,7 +18812,7 @@ iD.modes.DragNode = function(context) { context.replace( iD.actions.MoveNode(entity.id, loc), - t('operations.move.annotation.' + entity.geometry(context.graph()))); + moveAnnotation(entity)); } function end(entity) { @@ -18491,7 +18952,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' @@ -18501,8 +18962,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')); @@ -18537,81 +18998,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) @@ -18629,6 +19091,8 @@ iD.modes.Move = function(context, entityIDs) { }; mode.exit = function() { + stopNudge(); + context.uninstall(edit); context.surface() @@ -18682,12 +19146,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() { @@ -19049,16 +19515,65 @@ iD.operations.Circularize = function(selectedIDs, context) { 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); var operation = function() { var annotation, - mode; + nextSelectedID; if (selectedIDs.length > 1) { annotation = t('operations.delete.annotation.multiple', {n: selectedIDs.length}); - mode = iD.modes.Browse(context); + } else { var id = selectedIDs[0], entity = context.entity(id), @@ -19067,7 +19582,6 @@ iD.operations.Delete = function(selectedIDs, context) { parent = parents[0]; annotation = t('operations.delete.annotation.' + geometry); - mode = iD.modes.Browse(context); // Select the next closest node in the way. if (geometry === 'vertex' && parents.length === 1 && parent.nodes.length > 2) { @@ -19079,12 +19593,12 @@ 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; } - mode = iD.modes.Select(context, [nodes[i]]); + nextSelectedID = nodes[i]; } } @@ -19092,8 +19606,11 @@ iD.operations.Delete = function(selectedIDs, context) { action, annotation); - context.enter(mode); - + if (nextSelectedID && context.hasEntity(nextSelectedID)) { + context.enter(iD.modes.Select(context, [nextSelectedID])); + } else { + context.enter(iD.modes.Browse(context)); + } }; operation.available = function() { @@ -19112,7 +19629,7 @@ iD.operations.Delete = function(selectedIDs, context) { }; operation.id = "delete"; - operation.keys = [iD.ui.cmd('⌫'), iD.ui.cmd('⌦')]; + operation.keys = [iD.ui.cmd('⌘⌫'), iD.ui.cmd('⌘⌦')]; operation.title = t('operations.delete.title'); return operation; @@ -19236,17 +19753,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() { @@ -19257,13 +19777,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.keys = [t('operations.orthogonalize.key')]; operation.title = t('operations.orthogonalize.title'); - operation.description = t('operations.orthogonalize.description'); return operation; }; @@ -19376,6 +19895,40 @@ iD.operations.Split = function(selectedIDs, context) { 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'), @@ -19918,6 +20471,8 @@ iD.Entity = function(attrs) { // Create the appropriate subtype. if (attrs && attrs.type) { return iD.Entity[attrs.type].apply(this, arguments); + } else if (attrs && attrs.id) { + return iD.Entity[iD.Entity.id.type(attrs.id)].apply(this, arguments); } // Initialize a generic Entity (used only in tests). @@ -19944,14 +20499,9 @@ iD.Entity.id.type = function(id) { // A function suitable for use as the second argument to d3.selection#data(). iD.Entity.key = function(entity) { - return entity.id + ',' + entity.v; + 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: {}, @@ -20018,12 +20568,9 @@ 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)); }); }, @@ -20319,28 +20866,14 @@ iD.Graph.prototype = { // Obliterates any existing entities load: function(entities) { - - var base = this.base(), - i, entity, prefix; + var base = this.base(); this.entities = Object.create(base.entities); - for (i in entities) { - entity = entities[i]; - prefix = i[0]; - - if (entity === 'undefined') { - this.entities[i] = undefined; - } else if (prefix == 'n') { - this.entities[i] = new iD.Node(entity); - - } else if (prefix == 'w') { - this.entities[i] = new iD.Way(entity); - - } else if (prefix == 'r') { - this.entities[i] = new iD.Relation(entity); - } + for (var i in entities) { + this.entities[i] = entities[i]; this._updateCalculated(base.entities[i], this.entities[i]); } + return this; } }; @@ -20533,33 +21066,85 @@ iD.History = function(context) { toJSON: function() { if (stack.length <= 1) return; + var allEntities = {}; + var s = stack.map(function(i) { - var x = { entities: i.graph.entities }; + var modified = [], deleted = []; + + _.forEach(i.graph.entities, function(entity, id) { + if (entity) { + var key = iD.Entity.key(entity); + allEntities[key] = entity; + modified.push(key); + } else { + deleted.push(id); + } + }); + + var x = {}; + + if (modified.length) x.modified = modified; + if (deleted.length) x.deleted = deleted; if (i.imageryUsed) x.imageryUsed = i.imageryUsed; if (i.annotation) x.annotation = i.annotation; + return x; }); return JSON.stringify({ + version: 2, + entities: _.values(allEntities), stack: s, nextIDs: iD.Entity.id.next, index: index - }, function includeUndefined(key, value) { - if (typeof value === 'undefined') return 'undefined'; - return value; }); }, fromJSON: function(json) { - var h = JSON.parse(json); iD.Entity.id.next = h.nextIDs; index = h.index; - stack = h.stack.map(function(d) { - d.graph = iD.Graph(stack[0].graph).load(d.entities); - return d; - }); + + if (h.version === 2) { + var allEntities = {}; + + h.entities.forEach(function(entity) { + allEntities[iD.Entity.key(entity)] = iD.Entity(entity); + }); + + stack = h.stack.map(function(d) { + var entities = {}, entity; + + d.modified && d.modified.forEach(function(key) { + entity = allEntities[key]; + entities[entity.id] = entity; + }); + + d.deleted && d.deleted.forEach(function(id) { + entities[id] = undefined; + }); + + return { + graph: iD.Graph(stack[0].graph).load(entities), + annotation: d.annotation, + imageryUsed: d.imageryUsed + }; + }); + } else { // original version + stack = h.stack.map(function(d) { + var entities = {}; + + for (var i in d.entities) { + var entity = d.entities[i]; + entities[i] = entity === 'undefined' ? undefined : iD.Entity(entity); + } + + d.graph = iD.Graph(stack[0].graph).load(entities); + return d; + }); + } + stack[0].graph.inherited = false; dispatch.change(); @@ -20709,6 +21294,10 @@ _.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() { @@ -20812,24 +21401,26 @@ _.extend(iD.Relation.prototype, { }, asGeoJSON: function(resolver) { - if (this.isMultipolygon()) { - return { - type: 'Feature', - properties: this.tags, - geometry: { - 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)); - }) - }; - } + return resolver.transient(this, 'GeoJSON', function () { + if (this.isMultipolygon()) { + return { + type: 'Feature', + properties: this.tags, + geometry: { + 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)); + }) + }; + } + }); }, isMultipolygon: function() { @@ -20869,7 +21460,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; @@ -20888,6 +21483,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]); @@ -21045,6 +21646,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' || @@ -21150,31 +21756,41 @@ _.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]]); - } - - return { - type: 'Feature', - properties: this.tags, - geometry: { - type: 'Polygon', - coordinates: [_.pluck(nodes, 'loc')] + if (this.isArea() && polygon && nodes.length >= 4) { + if (!this.isClosed()) { + nodes = nodes.concat([nodes[0]]); } - }; - } else { - return { - type: 'Feature', - properties: this.tags, - geometry: { - type: 'LineString', - coordinates: _.pluck(nodes, 'loc') + + var json = { + type: 'Feature', + properties: this.tags, + geometry: { + 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.geometry.coordinates[0] = json.geometry.coordinates[0].reverse(); } - }; - } + + return json; + } else { + return { + type: 'Feature', + properties: this.tags, + geometry: { + type: 'LineString', + coordinates: _.pluck(nodes, 'loc') + } + }; + } + }); } }); @@ -21182,23 +21798,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'), @@ -21209,33 +21828,31 @@ 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.template(source); + return iD.BackgroundSource(source); } }); - backgroundSources.push(iD.BackgroundSource.Custom); - - function findSource(sourcetag) { + function findSource(id) { return _.find(backgroundSources, function(d) { - return d.data.sourcetag && d.data.sourcetag === sourcetag; + return d.id && d.id === id; }); } function updateImagery() { - var b = background.baseLayerSource().data, - o = overlayLayers.map(function (d) { return d.source().data.sourcetag; }).join(','), + var b = background.baseLayerSource(), + 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; } @@ -21252,11 +21869,14 @@ 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) { - imageryUsed.push(d.source().data.sourcetag || d.source().data.name); + var source = d.source(); + if (!source.isLocatorOverlay()) { + imageryUsed.push(source.id || source.name); + } }); if (background.showsGpxLayer()) { @@ -21284,7 +21904,7 @@ iD.Background = function(context) { gpx.call(gpxLayer); var overlays = selection.selectAll('.overlay-layer') - .data(overlayLayers, function(d) { return d.source().data.name }); + .data(overlayLayers, function(d) { return d.source().name }); overlays.enter().insert('div', '.layer-data') .attr('class', 'layer-layer overlay-layer'); @@ -21298,11 +21918,8 @@ iD.Background = function(context) { } background.sources = function(extent) { - return backgroundSources.filter(function(layer) { - return !layer.data.extents || - layer.data.extents.some(function(layerExtent) { - return iD.geo.Extent(layerExtent).intersects(extent); - }); + return backgroundSources.filter(function(source) { + return source.intersects(extent); }); }; @@ -21351,7 +21968,7 @@ iD.Background = function(context) { background.showsLayer = function(d) { return d === baseLayer.source() || - (d.data.name === 'Custom' && baseLayer.source().data.name === 'Custom') || + (d.name === 'Custom' && baseLayer.source().name === 'Custom') || overlayLayers.some(function(l) { return l.source() === d; }); }; @@ -21368,7 +21985,7 @@ iD.Background = function(context) { } } - layer = iD.TileLayer('overlay') + layer = iD.TileLayer() .source(d) .projection(context.projection) .dimensions(baseLayer.dimensions()); @@ -21379,14 +21996,14 @@ iD.Background = function(context) { }; background.nudge = function(d, zoom) { - baseLayer.nudge(d, zoom); + baseLayer.source().nudge(d, zoom); dispatch.change(); return background; }; background.offset = function(d) { - if (!arguments.length) return baseLayer.offset(); - baseLayer.offset(d); + if (!arguments.length) return baseLayer.source().offset(); + baseLayer.source().offset(d); dispatch.change(); return background; }; @@ -21395,7 +22012,7 @@ iD.Background = function(context) { chosen = q.background || q.layer; if (chosen && chosen.indexOf('custom:') === 0) { - background.baseLayerSource(iD.BackgroundSource.template({ + background.baseLayerSource(iD.BackgroundSource({ template: chosen.replace(/^custom:/, ''), name: 'Custom' })); @@ -21403,6 +22020,14 @@ iD.Background = function(context) { background.baseLayerSource(findSource(chosen) || findSource("Bing")); } + var locator = _.find(backgroundSources, function(d) { + return d.overlay && d.default; + }); + + if (locator) { + background.toggleOverlayLayer(locator); + } + var overlays = (q.overlays || '').split(','); overlays.forEach(function(overlay) { overlay = findSource(overlay); @@ -21411,49 +22036,63 @@ iD.Background = function(context) { return d3.rebind(background, dispatch, 'on'); }; -iD.BackgroundSource = {}; +iD.BackgroundSource = function(data) { + var source = _.clone(data), + offset = [0, 0]; -// derive the url of a 'quadkey' style tile from a coordinate object -iD.BackgroundSource.template = function(data) { + source.scaleExtent = data.scaleExtent || [0, 20]; - function generator(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(); - } + source.offset = function(_) { + if (!arguments.length) return offset; + offset = _; + return source; + }; + + source.nudge = function(_, zoomlevel) { + offset[0] += _[0] / Math.pow(2, zoomlevel); + offset[1] += _[1] / Math.pow(2, zoomlevel); + return source; + }; + source.url = function(coord) { 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]; }); - } + }; - generator.data = data; - generator.copyrightNotices = function() {}; + source.intersects = function(extent) { + extent = extent.polygon(); + return !data.polygon || data.polygon.some(function(polygon) { + return iD.geo.polygonIntersectsPolygon(polygon, extent); + }); + }; + + source.validZoom = function(z) { + return source.scaleExtent[0] <= z && + (!source.isLocatorOverlay() || source.scaleExtent[1] > z); + }; - return generator; + source.isLocatorOverlay = function() { + return source.name === 'Locator Overlay'; + }; + + source.copyrightNotices = function() {}; + + return source; }; iD.BackgroundSource.Bing = function(data, dispatch) { // http://msdn.microsoft.com/en-us/library/ff701716.aspx // http://msdn.microsoft.com/en-us/library/ff701701.aspx - var bing = iD.BackgroundSource.template(data), + var bing = iD.BackgroundSource(data), key = 'Arzdiw4nlOJzRwOz__qailc8NiR31Tt51dN2D7cm57NrnceZnCpgOkmJhNpGoppU', // Same as P2 and JOSM url = 'http://dev.virtualearth.net/REST/v1/Imagery/Metadata/Aerial?include=ImageryProviders&key=' + key + '&jsonp={callback}', @@ -21474,6 +22113,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) { @@ -21487,20 +22145,11 @@ iD.BackgroundSource.Bing = function(data, dispatch) { }).join(', '); }; - return bing; -}; + bing.logo = "bing_maps.png"; + bing.terms_url = "http://opengeodata.org/microsoft-imagery-details"; -iD.BackgroundSource.Custom = function() { - var template = window.prompt('Enter a tile template. ' + - 'Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.'); - if (!template) return null; - return iD.BackgroundSource.template({ - template: template, - name: 'Custom' - }); + return bing; }; - -iD.BackgroundSource.Custom.data = { 'name': 'Custom' }; iD.GpxLayer = function(context, dispatch) { var projection, gj = {}, @@ -21525,8 +22174,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); + + 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]; + }); + } } function toDom(x) { @@ -21610,7 +22286,8 @@ iD.Map = function(context) { midpoints = iD.svg.Midpoints(roundedProjection, context), labels = iD.svg.Labels(roundedProjection, context), supersurface, surface, - mouse; + mouse, + mousemove; function map(selection) { context.history() @@ -21642,6 +22319,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__; @@ -21673,7 +22354,6 @@ iD.Map = function(context) { map.dimensions(selection.dimensions()); labels.supersurface(supersurface); - mouse = iD.util.fastMouse(supersurface.node()); } function pxCenter() { return [dimensions[0] / 2, dimensions[1] / 2]; } @@ -21727,7 +22407,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); @@ -21840,7 +22520,7 @@ iD.Map = function(context) { } map.mouse = function() { - var e = d3.event, s; + var e = mousemove || d3.event, s; while (s = e.sourceEvent) e = s; return mouse(e); }; @@ -21903,6 +22583,7 @@ iD.Map = function(context) { surface.dimensions(dimensions); context.background().dimensions(dimensions); projection.clipExtent([[0, 0], dimensions]); + mouse = iD.util.fastMouse(supersurface.node()); setCenter(center); return redraw(); }; @@ -22006,16 +22687,11 @@ iD.Map = function(context) { return d3.rebind(map, dispatch, 'on'); }; -iD.TileLayer = function(backgroundType) { - - backgroundType = backgroundType || 'background'; - +iD.TileLayer = function() { var tileSize = 256, tile = d3.geo.tile(), projection, cache = {}, - offset = [0, 0], - offsets = {}, tileOrigin, z, transformProp = iD.util.prefixCSSProperty('Transform'), @@ -22036,7 +22712,7 @@ iD.TileLayer = function(backgroundType) { function lookUp(d) { for (var up = -1; up > -d[2]; up--) { var tile = atZoom(d, up); - if (cache[source(tile)] !== false) { + if (cache[source.url(tile)] !== false) { return tile; } } @@ -22054,7 +22730,7 @@ iD.TileLayer = function(backgroundType) { } function addSource(d) { - d.push(source(d)); + d.push(source.url(d)); return d; } @@ -22078,7 +22754,7 @@ iD.TileLayer = function(backgroundType) { function render(selection) { var requests = []; - if (tile.scaleExtent()[0] <= z) { + if (source.validZoom(z)) { tile().forEach(function(d) { addSource(d); requests.push(d); @@ -22094,8 +22770,8 @@ iD.TileLayer = function(backgroundType) { } var pixelOffset = [ - Math.round(offset[0] * Math.pow(2, z)), - Math.round(offset[1] * Math.pow(2, z)) + Math.round(source.offset()[0] * Math.pow(2, z)), + Math.round(source.offset()[1] * Math.pow(2, z)) ]; function load(d) { @@ -22152,19 +22828,6 @@ iD.TileLayer = function(backgroundType) { .classed('tile-removing', false); } - background.offset = function(_) { - if (!arguments.length) return offset; - offset = _; - if (source.data) offsets[source.data.name] = offset; - return background; - }; - - background.nudge = function(_, zoomlevel) { - offset[0] += _[0] / Math.pow(2, zoomlevel); - offset[1] += _[1] / Math.pow(2, zoomlevel); - return background; - }; - background.projection = function(_) { if (!arguments.length) return projection; projection = _; @@ -22180,13 +22843,8 @@ iD.TileLayer = function(backgroundType) { background.source = function(_) { if (!arguments.length) return source; source = _; - if (source.data) { - offset = offsets[source.data.name] = offsets[source.data.name] || [0, 0]; - } else { - offset = [0, 0]; - } cache = {}; - tile.scaleExtent((source.data && source.data.scaleExtent) || [1, 20]); + tile.scaleExtent(source.scaleExtent); return background; }; @@ -22257,7 +22915,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]), @@ -22366,13 +23024,25 @@ iD.svg.Areas = function(projection) { fill: areas }; + var bisect = d3.bisector(function(node) { + return -node.__data__.area(graph); + }).left; + + var fills = surface.selectAll('.layer-fill path.area')[0]; + + function sortedByArea(entity) { + if (this.__data__ === 'fill') { + return fills[bisect(fills, -entity.area(graph))]; + } + } + var paths = surface.selectAll('.layer-shadow, .layer-stroke, .layer-fill') .selectAll('path.area') .filter(filter) .data(function(layer) { return data[layer]; }, iD.Entity.key); paths.enter() - .append('path') + .insert('path', sortedByArea) .each(function(entity) { var layer = this.parentNode.__data__; @@ -22385,7 +23055,6 @@ iD.svg.Areas = function(projection) { .call(iD.svg.TagClasses()); paths - .order() .attr('d', path); paths.exit() @@ -22474,7 +23143,12 @@ 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); + } } } @@ -22657,18 +23331,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; } } } @@ -22954,7 +23633,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, @@ -23044,7 +23723,7 @@ iD.svg.Points = function(projection, context) { .remove(); } - drawPoints.points = function(entities) { + drawPoints.points = function(entities, limit) { var graph = context.graph(), points = []; @@ -23052,6 +23731,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; } } @@ -23060,6 +23740,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'); @@ -23492,8 +24247,7 @@ 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(); }; d3.select(window).on('resize.editor', function() { @@ -23514,8 +24268,7 @@ iD.ui = function(context) { .on('←', pan([pa, 0])) .on('↑', pan([0, pa])) .on('→', pan([-pa, 0])) - .on('↓', pan([0, -pa])) - .on('M', function() { context.toggleFullscreen(); }); + .on('↓', pan([0, -pa])); d3.select(document) .call(keybinding); @@ -23617,22 +24370,22 @@ iD.ui.Attribution = function(context) { } var attribution = selection.selectAll('.provided-by') - .data([context.background().baseLayerSource()], function(d) { return d.data.name; }); + .data([context.background().baseLayerSource()], function(d) { return d.name; }); attribution.enter() .append('span') .attr('class', 'provided-by') .each(function(d) { - var source = d.data.sourcetag || d.data.name; + var source = d.terms_text || d.id || d.name; - if (d.data.logo) { - source = ''; + if (d.logo) { + source = ''; } - if (d.data.terms_url) { + if (d.terms_url) { d3.select(this) .append('a') - .attr('href', d.data.terms_url) + .attr('href', d.terms_url) .attr('target', '_blank') .html(source); } else { @@ -23680,7 +24433,7 @@ iD.ui.Background = function(context) { ['top', [0, -1]], ['right', [-1, 0]], ['bottom', [0, 1]]], - opacityDefault = (context.storage('background-opacity') !== undefined) ? + opacityDefault = (context.storage('background-opacity') != undefined) ? (+context.storage('background-opacity')) : 0.5; function background(selection) { @@ -23702,7 +24455,7 @@ iD.ui.Background = function(context) { return context.background().showsLayer(d); } - content.selectAll('label.layer') + content.selectAll('label.layer, label.custom_layer') .classed('active', active) .selectAll('input') .property('checked', active); @@ -23710,18 +24463,24 @@ iD.ui.Background = function(context) { function clickSetSource(d) { d3.event.preventDefault(); - if (d.data.name === 'Custom') { - var configured = d(); - if (!configured) { - selectLayer(); - return; - } - d = configured; - } context.background().baseLayerSource(d); selectLayer(); } + function clickCustom() { + d3.event.preventDefault(); + var template = window.prompt(t('background.custom_prompt')); + if (!template) { + selectLayer(); + return; + } + context.background().baseLayerSource(iD.BackgroundSource({ + template: template, + name: 'Custom' + })); + selectLayer(); + } + function clickSetOverlay(d) { d3.event.preventDefault(); context.background().toggleOverlayLayer(d); @@ -23739,29 +24498,27 @@ iD.ui.Background = function(context) { .filter(filter); var layerLinks = layerList.selectAll('label.layer') - .data(sources, function(d) { return d.data.name; }); + .data(sources, function(d) { return d.name; }); var layerInner = layerLinks.enter() - .append('label') + .insert('label', '.custom_layer') .attr('class', 'layer'); // only set tooltips for layers with tooltips layerInner - .filter(function(d) { return d.data.description; }) + .filter(function(d) { return d.description; }) .call(bootstrap.tooltip() - .title(function(d) { return d.data.description; }) - .placement('left') - ); + .title(function(d) { return d.description; }) + .placement('left')); layerInner.append('input') .attr('type', type) .attr('name', 'layers') - .attr('value', function(d) { return d.data.name; }) + .attr('value', function(d) { return d.name; }) .on('change', change); - layerInner.insert('span').text(function(d) { - return d.data.name; - }); + layerInner.append('span') + .text(function(d) { return d.name; }); layerLinks.exit() .remove(); @@ -23770,13 +24527,8 @@ iD.ui.Background = function(context) { } function update() { - backgroundList.call(drawList, 'radio', clickSetSource, function(d) { - return !d.data.overlay; - }); - - overlayList.call(drawList, 'checkbox', clickSetOverlay, function(d) { - return d.data.overlay; - }); + backgroundList.call(drawList, 'radio', clickSetSource, function(d) { return !d.overlay; }); + overlayList.call(drawList, 'checkbox', clickSetOverlay, function(d) { return d.overlay; }); var hasGpx = context.background().hasGpxLayer(), showsGpx = context.background().showsGpxLayer(); @@ -23893,6 +24645,19 @@ iD.ui.Background = function(context) { .append('div') .attr('class', 'toggle-list layer-list'); + var custom = backgroundList + .append('label') + .attr('class', 'custom_layer') + .datum({name: 'Custom'}); + + custom.append('input') + .attr('type', 'radio') + .attr('name', 'layers') + .on('change', clickCustom); + + custom.append('span') + .text(t('background.custom')); + var overlayList = content .append('div') .attr('class', 'toggle-list layer-list'); @@ -24018,7 +24783,7 @@ iD.ui.Commit = function(context) { presets = context.presets(); function zipSame(d) { - var c = [], n = -1; + 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(), @@ -24026,15 +24791,15 @@ iD.ui.Commit = function(context) { count: 1, tagText: iD.util.tagText(d[i]) }; - if (c[n] && - c[n].name == desc.name && - c[n].tagText == desc.tagText) { - c[n].count++; + + var fingerprint = desc.name + desc.tagText; + if (c[fingerprint]) { + c[fingerprint].count++; } else { - c[++n] = desc; + c[fingerprint] = desc; } } - return c; + return _.values(c); } function commit(selection) { @@ -24047,9 +24812,9 @@ iD.ui.Commit = function(context) { header.append('button') .attr('class', 'fr') + .on('click', event.cancel) .append('span') - .attr('class', 'icon close') - .on('click', event.cancel); + .attr('class', 'icon close'); header.append('h3') .text(t('commit.title')); @@ -24067,7 +24832,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(); @@ -24104,10 +24872,8 @@ iD.ui.Commit = function(context) { var saveButton = saveSection.append('button') .attr('class', 'action col3 button') .on('click.save', function() { - var comment = commentField.node().value; - localStorage.comment = comment; event.save({ - comment: comment + comment: commentField.node().value }); }); @@ -24496,7 +25262,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; @@ -24515,9 +25281,10 @@ iD.ui.FeatureList = function(context) { .text(t('inspector.feature_list')); function keypress() { - var q = search.property('value'); - if (d3.event.keyCode === 13 && q.length) { - click(list.selectAll('.feature-list-item:first-child').datum().entity); + var q = search.property('value'), + items = list.selectAll('.feature-list-item'); + if (d3.event.keyCode === 13 && q.length && items.size()) { + click(items.datum().entity); } } @@ -24754,116 +25521,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']; - - 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); @@ -24873,8 +25564,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() @@ -24883,11 +25573,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) @@ -24901,14 +25627,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; @@ -25022,21 +25790,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); + + 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); @@ -25069,7 +25841,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); }); @@ -25109,7 +25881,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, @@ -25121,7 +25893,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, @@ -25474,10 +26246,10 @@ iD.ui.preset = function(context) { var shown = fields.filter(function(field) { return field.shown(); }), notShown = fields.filter(function(field) { return !field.shown(); }); - var $form = selection.selectAll('form') + var $form = selection.selectAll('.preset-form') .data([0]); - $form.enter().append('form') + $form.enter().append('div') .attr('class', 'preset-form inspector-inner fillL3'); var $fields = $form.selectAll('.form-field') @@ -25673,7 +26445,7 @@ iD.ui.PresetList = function(context) { var message = messagewrap.append('h3') .text(t('inspector.choose')); - if (currentPreset) { + if (context.entity(id).isUsed(context.graph())) { messagewrap.append('button') .attr('class', 'preset-choose') .on('click', function() { event.choose(currentPreset); }) @@ -25728,6 +26500,7 @@ iD.ui.PresetList = function(context) { list.call(drawList, results); } else { list.call(drawList, context.presets().defaults(geometry, 36)); + message.text(t('inspector.choose')); } } @@ -25869,7 +26642,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; } @@ -25883,6 +26656,7 @@ iD.ui.PresetList = function(context) { presetList.entityID = function(_) { if (!arguments.length) return id; id = _; + presetList.preset(context.presets().match(context.entity(id), context.graph())); return presetList; }; @@ -25930,7 +26704,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) @@ -25962,18 +26736,34 @@ iD.ui.RadialMenu = function(context, operations) { .attr('class', 'tooltip-inner radial-menu-tooltip'); 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() { @@ -26162,7 +26952,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(), @@ -26550,12 +27340,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'); @@ -26578,8 +27368,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(), @@ -26884,36 +27672,37 @@ iD.ui.Success = function(context) { .on('click', function() { event.cancel(success) }); header.append('h3') - .text(t('just_edited')); + .text(t('success.just_edited')); var body = selection.append('div') .attr('class', 'body save-success'); - body.append('a') - .attr('class', 'col12 osm') - .attr('target', '_blank') - .attr('href', function() { - return context.connection().changesetURL(changeset.id); - }) - .text(t('view_on_osm')); + body.append('p') + .html(t('success.help_html')); + + var changesetURL = context.connection().changesetURL(changeset.id); body.append('a') - .attr('class', 'col12 twitter') + .attr('class', 'button col12 osm') .attr('target', '_blank') - .attr('href', function() { - return 'https://twitter.com/intent/tweet?source=webclient&text=' + - encodeURIComponent(message); - }) - .text(t('success.tweet')); + .attr('href', changesetURL) + .text(t('success.view_on_osm')); - body.append('a') - .attr('class', 'col12 facebook') + var sharing = { + facebook: 'https://facebook.com/sharer/sharer.php?u=' + encodeURIComponent(changesetURL), + twitter: 'https://twitter.com/intent/tweet?source=webclient&text=' + encodeURIComponent(message), + google: 'https://plus.google.com/share?url=' + encodeURIComponent(changesetURL) + }; + + body.selectAll('.button.social') + .data(d3.entries(sharing)) + .enter().append('a') + .attr('class', function(d) { return 'button social col4 ' + d.key; }) .attr('target', '_blank') - .attr('href', function() { - return 'https://facebook.com/sharer/sharer.php?u=' + - encodeURIComponent(context.connection().changesetURL(changeset.id)); - }) - .text(t('success.facebook')); + .attr('href', function(d) { return d.value; }) + .call(bootstrap.tooltip() + .title(function(d) { return t('success.' + d.key); }) + .placement('bottom')); } success.changeset = function(_) { @@ -27108,7 +27897,9 @@ iD.ui.UndoRedo = function(context) { .placement('bottom') .html(true) .title(function (d) { - return iD.ui.tooltipHtml(d.annotation() || t('nothing_to_' + d.id), d.cmd); + return iD.ui.tooltipHtml(d.annotation() ? + t(d.id + '.tooltip', {action: d.annotation()}) : + t(d.id + '.nothing'), d.cmd); }); var buttons = selection.selectAll('button') @@ -27249,7 +28040,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) { @@ -27294,7 +28084,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() { @@ -27487,7 +28280,11 @@ iD.ui.preset.combo = function(field) { input.enter().append('input') .attr('type', 'text') - .attr('id', 'preset-input-' + field.id) + .attr('id', 'preset-input-' + field.id); + + input + .on('change', change) + .on('blur', change) .each(function() { if (field.options) { options(field.options); @@ -27498,11 +28295,7 @@ iD.ui.preset.combo = function(field) { if (!err) options(_.pluck(data, 'value')); }); } - }); - - input - .on('change', change) - .on('blur', change) + }) .call(combobox); function options(opts) { @@ -27696,7 +28489,9 @@ iD.ui.preset.localized = function(field, context) { if (language) value = language[2]; - t[key(d.lang)] = ''; + if (d.lang) { + t[key(d.lang)] = ''; + } if (d.value) { t[key(value)] = d.value; @@ -27735,8 +28530,8 @@ 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); @@ -27776,26 +28571,22 @@ iD.ui.preset.localized = function(field, context) { .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() @@ -28329,11 +29120,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); @@ -28371,7 +29162,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())); @@ -28405,6 +29196,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'); @@ -28417,9 +29212,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(mode) { + 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() { @@ -28465,7 +29271,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, @@ -29010,14 +29816,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; @@ -29039,7 +29848,11 @@ iD.presets.Preset = function(id, preset, fields) { tags = _.clone(tags); for (var k in applyTags) { - if (applyTags[k] !== '*') tags[k] = applyTags[k]; + if (applyTags[k] === '*') { + tags[k] = 'yes'; + } else { + tags[k] = applyTags[k]; + } } for (var f in preset.fields) { @@ -29263,6 +30076,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," ], "discarded": [ "created_by", + "odbl", + "odbl:note", "tiger:upload_uuid", "tiger:tlid", "tiger:source", @@ -29270,8 +30085,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", @@ -29282,620 +30119,23480 @@ 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": "yes", - "sourcetag": "Bing", - "logo": "bing_maps.png", - "logo_url": "http://www.bing.com/maps", - "terms_url": "http://opengeodata.org/microsoft-imagery-details" - }, - { - "name": "MapBox Satellite", - "template": "http://{t}.tiles.mapbox.com/v3/openstreetmap.map-4wvf9l0l/{z}/{x}/{y}.png", - "description": "Satellite and aerial imagery.", - "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 - ], - "subdomains": [ - "a", - "b", - "c" - ] - }, - { - "name": "TIGER 2012 Roads Overlay", - "template": "http://{t}.tile.openstreetmap.us/tiger2012_roads_expanded/{z}/{x}/{y}.png", - "sourcetag": "TIGER 2012", - "overlay": true, - "scaleExtent": [ - 16, - 19 - ], - "subdomains": [ - "a", - "b", - "c" - ], - "extents": [ + "name": "7th Series (OS7)", + "type": "tms", + "template": "http://ooc.openstreetmap.org/os7/{zoom}/{x}/{y}.jpg", + "polygon": [ [ [ - -124.81, - 24.055 + -9, + 49.8 ], [ - -66.865, - 49.386 - ] - ], - [ - [ - -179.754, - 50.858 + -9, + 61.1 ], [ - -129.899, - 71.463 - ] - ], - [ + 1.9, + 61.1 + ], [ - -174.46, - 18.702 + 1.9, + 49.8 ], [ - -154.516, - 26.501 + -9, + 49.8 ] ] ] }, { - "name": "USGS Topographic Maps", - "template": "http://{t}.tile.openstreetmap.us/usgs_scanned_topos/{z}/{x}/{y}.png", - "subdomains": [ - "a", - "b", - "c" - ], - "extents": [ + "name": "AGRI black-and-white 2.5m", + "type": "tms", + "template": "http://agri.openstreetmap.org/{zoom}/{x}/{y}.png", + "polygon": [ [ [ - -125.991, - 24.005 + 112.28778, + -28.784589 ], [ - -65.988, - 50.009 - ] - ], - [ + 112.71488, + -31.13894 + ], [ - -160.579, - 18.902 + 114.11263, + -34.178287 ], [ - -154.793, - 22.508 - ] - ], - [ + 113.60788, + -37.39012 + ], [ - -178.001, - 51.255 + 117.17992, + -37.451794 ], [ - -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": [ - [ + 119.31538, + -37.42096 + ], [ - -124.819, - 24.496 + 121.72262, + -36.708394 ], [ - -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": [ - [ + 123.81925, + -35.76893 + ], [ - -123.441, - 48.995 + 125.9547, + -34.3066 ], [ - -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": [ - [ + 127.97368, + -33.727398 + ], [ - -8.72, - 49.86 + 130.07031, + -33.24166 ], [ - 1.84, - 60.92 - ] - ] - ], - "sourcetag": "OS_OpenData_StreetView" - }, - { - "name": "OS OpenData Locator", - "template": "http://tiles.itoworld.com/os_locator/{z}/{x}/{y}.png", - "extents": [ - [ + 130.10913, + -33.888704 + ], [ - -9, - 49.8 + 131.00214, + -34.049705 ], [ - 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": [ - [ + 131.0798, + -34.72257 + ], [ - -9, - 49.8 + 132.28342, + -35.39 ], [ - 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": [ - [ + 134.18591, + -35.61126 + ], [ - -9, - 49.8 + 133.8753, + -37.1119 ], [ - 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": [ - [ + 134.8459, + -37.6365 + ], [ - -9, - 49.8 + 139.7769, + -37.82075 ], [ - 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": [ - [ + 139.93223, + -39.4283 + ], [ - -9, - 49.8 + 141.6017, + -39.8767 ], [ - 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": [ - [ + 142.3783, + -39.368294 + ], [ - -5.8, - 49.8 + 142.3783, + -40.64702 ], [ - 1.9, - 55.8 - ] - ] - ], - "sourcetag": "NPE" - }, - { - "name": "OS Scottish Popular historic", - "template": "http://ooc.openstreetmap.org/npescotland/tiles/{z}/{x}/{y}.jpg", - "extents": [ - [ + 142.49478, + -42.074874 + ], [ - -7.8, - 54.5 + 144.009, + -44.060127 ], [ - -1.1, - 61.1 - ] - ] - ], - "sourcetag": "NPE" - }, - { - "name": "Surrey aerial", - "template": "http://gravitystorm.dev.openstreetmap.org/surrey/{z}/{x}/{y}.png", - "extents": [ - [ + 147.23161, + -44.03222 + ], [ - -0.856, - 51.071 + 149.05645, + -42.534313 ], [ - 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": [ - [ + 149.52237, + -40.99959 + ], [ - -72.43, - 18.5 + 149.9494, + -40.852921 ], [ - -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": [ - [ + 150.8036, + -38.09627 + ], [ - -74.5, - 17.95 + 151.81313, + -38.12682 ], [ - -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": [ - [ + 156.20052, + -22.667706 + ], [ - -125.8, - 24.2 + 156.20052, + -20.10109 ], [ - -62.3, - 49.5 - ] - ], - [ + 156.62761, + -17.417627 + ], [ - -168.5, - 55.3 + 155.26869, + -17.19521 ], [ - -140, - 71.5 - ] - ] - ], - "sourcetag": "NAIP" - }, - { - "name": "Ireland - NLS Historic Maps", - "template": "http://geo.nls.uk/maps/ireland/gsgs4136/{z}/{x}/{y}.png", - "extents": [ - [ + 154.14272, + -19.51662 + ], [ - -10.71, - 51.32 + 153.5215, + -18.34139 ], [ - -5.37, - 55.46 - ] - ] - ], - "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": [ - [ + 153.05558, + -16.5636 + ], [ - 7.81, - 54.44 + 152.78379, + -15.256768 ], [ - 15.49, - 57.86 - ] - ] - ], - "sourcetag": "Fugro (2005)" - }, - { - "name": "Denmark - Stevns Kommune", - "template": "http://tile.openstreetmap.dk/stevns/2009/{z}/{x}/{y}.jpg", - "extents": [ - [ + 152.27905, + -13.4135 + ], [ - 12.09144, - 55.23403 + 151.3472, + -12.391767 ], [ - 12.47712, - 55.43647 - ] - ] - ], - "sourcetag": "Stevns Kommune (2009)" - }, - { - "name": "Austria - geoimage.at", - "template": "http://geoimage.openstreetmap.at/4d80de696cd562a63ce463a58a61488d/{z}/{x}/{y}.jpg", - "extents": [ - [ + 149.48354, + -12.05024 + ], [ - 9.36, - 46.33 + 146.9598, + -9.992408 ], [ - 17.28, - 49.09 - ] - ] - ], - "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": [ - [ + 135.9719, + -9.992408 + ], [ - 19.02, - 40.96 + 130.3032, + -10.33636 ], [ - 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": [ - [ + 128.09016, + -12.164136 + ], [ - 23.16, - 51.25 + 125.91588, + -12.315912 ], [ - 32.83, - 56.19 - ] - ] - ], - "sourcetag": "Kosmosnimki.ru SPOT4" - }, - { - "name": "Australia - Geographic Reference Image", - "template": "http://agri.openstreetmap.org/{z}/{x}/{y}.png", - "extents": [ - [ + 124.3239, + -11.860326 + ], [ - 96, - -44 + 122.03323, + -11.974295 ], [ - 168, - -9 - ] - ] - ], - "sourcetag": "AGRI" - }, - { - "name": "Switzerland - Canton Aargau - AGIS 25cm 2011", - "template": "http://tiles.poole.ch/AGIS/OF2011/{z}/{x}/{y}.png", - "extents": [ - [ + 118.26706, + -16.9353 + ], [ - 7.69, - 47.13 + 115.93747, + -19.11357 ], [ - 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": [ - [ + 114.0738, + -21.11863 + ], [ - 7.33, - 47.06 + 113.49141, + -22.596033 ], [ - 8.04, - 47.5 + 112.28778, + -28.784589 ] ] ], - "sourcetag": "Orthofoto 2007 WMS Solothurn" + "terms_text": "AGRI" }, { - "name": "Poland - Media-Lab fleet GPS masstracks", - "template": "http://masstracks.media-lab.com.pl/{z}/{x}/{y}.png", - "extents": [ - [ - [ - 14, - 48.9 - ], - [ - 24.2, - 55 - ] - ] + "name": "Bing aerial imagery", + "type": "bing", + "description": "Satellite and aerial imagery.", + "template": "http://www.bing.com/maps/", + "scaleExtent": [ + 0, + 22 ], - "sourcetag": "masstracks" + "id": "Bing", + "default": true }, { - "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": "British Columbia Mosaic", + "type": "tms", + "template": "http://{switch:a,b,c,d}.imagery.paulnorman.ca/tiles/bc_mosaic/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 9, + 20 + ], + "polygon": [ [ [ - 17.64, - -34.95 + -123.3176032, + 49.3272567 ], [ - 32.87, - -22.05 - ] - ] - ], - "sourcetag": "ngi-aerial" - }, - { - "name": "Lithuania - ORT10LT", - "template": "http://mapproxy.openmap.lt/ort10lt/g/{z}/{x}/{y}.jpeg", - "extents": [ - [ + -123.4405258, + 49.3268222 + ], [ - 21, - 53.88 + -123.440717, + 49.3384429 ], [ - 26.85, - 56.45 - ] - ] - ], - "scaleExtent": [ - 4, - 18 + -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", + "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 - 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": "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 + ], + [ + -172.0202755, + 63.8757975 + ], + [ + -172.0191536, + 62.8681608 + ] + ], + [ + [ + -170.9947111, + 59.9954089 + ], + [ + -170.995726, + 60.9969787 + ], + [ + -174.0045311, + 60.9962508 + ], + [ + -174.0035162, + 59.9946581 + ] + ], + [ + [ + -156.0717261, + 20.2854602 + ], + [ + -154.7940471, + 20.2860582 + ], + [ + -154.7933145, + 18.9029464 + ], + [ + -156.0709936, + 18.9023432 + ] + ] + ] + }, + { + "name": "Vejmidte (Denmark)", + "type": "tms", + "template": "http://{switch:a,b,c}.tile.openstreetmap.dk/danmark/vejmidte/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 0, + 20 + ], + "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/Vejmidte", + "terms_text": "Danish municipalities" + }, + { + "name": "Vienna: Beschriftungen (annotations)", + "type": "tms", + "template": "http://www.wien.gv.at/wmts/beschriftung/normal/google3857/{zoom}/{y}/{x}.png", + "scaleExtent": [ + 0, + 19 + ], + "polygon": [ + [ + [ + 16.17, + 48.1 + ], + [ + 16.17, + 48.33 + ], + [ + 16.58, + 48.33 + ], + [ + 16.58, + 48.1 + ], + [ + 16.17, + 48.1 + ] + ] + ], + "terms_url": "http://data.wien.gv.at/", + "terms_text": "Stadt Wien" + }, + { + "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": [ + [ + [ + 16.17, + 48.1 + ], + [ + 16.17, + 48.33 + ], + [ + 16.58, + 48.33 + ], + [ + 16.58, + 48.1 + ], + [ + 16.17, + 48.1 + ] + ] + ], + "terms_url": "http://data.wien.gv.at/", + "terms_text": "Stadt Wien" + }, + { + "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": [ + [ + [ + 16.17, + 48.1 + ], + [ + 16.17, + 48.33 + ], + [ + 16.58, + 48.33 + ], + [ + 16.58, + 48.1 + ], + [ + 16.17, + 48.1 + ] + ] ], - "sourcetag": "NŽT ORT10LT" + "terms_url": "http://data.wien.gv.at/", + "terms_text": "Stadt Wien" } ], "wikipedia": [ @@ -31498,6 +55195,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": [ @@ -31578,6 +55294,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "tags": { "amenity": "bench" }, + "fields": [ + "backrest" + ], "name": "Bench" }, "amenity/bicycle_parking": { @@ -31614,6 +55333,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": [ @@ -31852,6 +55584,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "vertex", "area" ], + "terms": [ + "petrol", + "fuel", + "propane", + "diesel", + "lng", + "cng", + "biodiesel" + ], "tags": { "amenity": "fuel" }, @@ -32255,6 +55996,29 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "terms": [], "name": "Pub" }, + "amenity/ranger_station": { + "fields": [ + "building_area", + "opening_hours", + "operator", + "phone" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "visitor center", + "visitor centre", + "permit center", + "permit centre", + "backcountry office" + ], + "tags": { + "amenity": "ranger_station" + }, + "name": "Ranger Station" + }, "amenity/restaurant": { "icon": "restaurant", "fields": [ @@ -32283,6 +56047,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", @@ -32406,8 +56171,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "amenity/toilets": { "fields": [ + "toilets/disposal", "operator", - "building_area" + "building_area", + "access_toilets" ], "geometry": [ "point", @@ -32416,7 +56183,15 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," ], "terms": [ "bathroom", - "restroom" + "restroom", + "outhouse", + "privy", + "head", + "lavatory", + "latrine", + "water closet", + "WC", + "W.C." ], "tags": { "amenity": "toilets" @@ -32440,7 +56215,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" @@ -32466,6 +56242,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": [ @@ -32485,7 +56274,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "area": { "name": "Area", - "tags": {}, + "tags": { + "area": "yes" + }, "geometry": [ "area" ] @@ -32580,7 +56371,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "tags": { "barrier": "entrance" }, - "name": "Entrance" + "name": "Entrance", + "searchable": false }, "barrier/fence": { "geometry": [ @@ -32836,6 +56628,19 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "name": "Ambulance Station" }, + "emergency/fire_hydrant": { + "fields": [ + "fire_hydrant/type" + ], + "geometry": [ + "point", + "vertex" + ], + "tags": { + "emergency": "fire_hydrant" + }, + "name": "Fire Hydrant" + }, "emergency/phone": { "icon": "emergency-telephone", "fields": [ @@ -32858,7 +56663,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "entrance": "*" }, "fields": [ - "entrance" + "entrance", + "address" ], "name": "Entrance" }, @@ -32934,10 +56740,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" @@ -32994,9 +56801,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-living-street", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface" ], "geometry": [ @@ -33023,10 +56830,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-motorway", "fields": [ "oneway", + "maxspeed", "structure", "access", "lanes", - "maxspeed", "surface", "ref" ], @@ -33055,9 +56862,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-motorway-link", "fields": [ "oneway_yes", + "maxspeed", "structure", "access", - "maxspeed", "surface", "ref" ], @@ -33114,10 +56921,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-primary", "fields": [ "oneway", + "maxspeed", "structure", "access", "lanes", - "maxspeed", "surface", "ref" ], @@ -33134,9 +56941,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-primary-link", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface", "ref" ], @@ -33157,9 +56964,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-residential", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface" ], "geometry": [ @@ -33175,9 +56982,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-road", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface" ], "geometry": [ @@ -33193,10 +57000,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-secondary", "fields": [ "oneway", + "maxspeed", "structure", "access", "lanes", - "maxspeed", "surface", "ref" ], @@ -33213,9 +57020,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-secondary-link", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface", "ref" ], @@ -33237,9 +57044,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "fields": [ "service", "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface" ], "geometry": [ @@ -33349,14 +57156,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" ], @@ -33373,9 +57192,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-tertiary-link", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface", "ref" ], @@ -33397,9 +57216,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "fields": [ "tracktype", "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface" ], "geometry": [ @@ -33429,10 +57248,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-trunk", "fields": [ "oneway", + "maxspeed", "structure", "access", "lanes", - "maxspeed", "surface", "ref" ], @@ -33449,9 +57268,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-trunk-link", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface", "ref" ], @@ -33483,9 +57302,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "highway-unclassified", "fields": [ "oneway", + "maxspeed", "structure", "access", - "maxspeed", "surface" ], "geometry": [ @@ -33961,6 +57780,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": [ @@ -34033,6 +57868,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", @@ -34058,6 +57907,21 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "swimming", "name": "Swimming Pool" }, + "leisure/track": { + "icon": "pitch", + "fields": [ + "surface" + ], + "geometry": [ + "point", + "line", + "area" + ], + "tags": { + "leisure": "track" + }, + "name": "Race Track" + }, "line": { "name": "Line", "tags": {}, @@ -34273,6 +58137,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" @@ -34333,6 +58207,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" @@ -34597,6 +58483,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Power" }, "power/generator": { + "name": "Power Generator", "geometry": [ "point", "vertex", @@ -34605,7 +58492,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "tags": { "power": "generator" }, - "name": "Power Plant" + "fields": [ + "generator/source", + "generator/method", + "generator/type" + ] }, "power/line": { "geometry": [ @@ -34703,6 +58594,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": [ @@ -34902,6 +58811,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "vertex", "area" ], + "terms": [ + "nail spa", + "spa", + "salon", + "tanning" + ], "tags": { "shop": "beauty" }, @@ -34996,7 +58911,6 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "icon": "shop", "fields": [ "address", - "building_area", "opening_hours" ], "geometry": [ @@ -35297,6 +59211,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "vertex", "area" ], + "terms": [ + "garden centre" + ], "tags": { "shop": "garden_centre" }, @@ -35653,6 +59570,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "outlet store", "shop", "shopping center", + "shopping centre", "shopping plaza", "stand", "store", @@ -35810,6 +59728,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "tags": { "tourism": "artwork" }, + "terms": [ + "mural", + "sculpture", + "statue" + ], "name": "Artwork" }, "tourism/attraction": { @@ -36201,6 +60124,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" @@ -36561,8 +60500,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", @@ -36634,6 +60574,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": [ @@ -36686,6 +60637,11 @@ 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", @@ -36831,11 +60787,37 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "type": "check", "label": "Fee" }, + "fire_hydrant/type": { + "key": "fire_hydrant:type", + "type": "combo", + "options": [ + "pillar", + "pond", + "underground", + "wall" + ], + "label": "Type" + }, "fixme": { "key": "fixme", "type": "textarea", "label": "Fix Me" }, + "generator/method": { + "key": "generator:method", + "type": "combo", + "label": "Method" + }, + "generator/source": { + "key": "generator:source", + "type": "combo", + "label": "Source" + }, + "generator/type": { + "key": "generator:type", + "type": "combo", + "label": "Type" + }, "highway": { "key": "highway", "type": "combo", @@ -36909,6 +60891,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", @@ -37134,6 +61121,11 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "type": "combo", "label": "Surface" }, + "toilets/disposal": { + "key": "toilets:disposal", + "type": "combo", + "label": "Disposal" + }, "tourism": { "key": "tourism", "type": "combo", @@ -37154,6 +61146,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", @@ -48751,6 +72748,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," 200, 140 ], + "icon-operation-continue": [ + 220, + 140 + ], "icon-operation-disabled-delete": [ 0, 160 @@ -48794,26 +72795,34 @@ 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", "ast", + "bn", "bs", "bg-BG", "ca", "zh", "zh-CN", + "zh-CN.GB2312", "zh-TW", "hr", "cs", "da", "nl", + "en-GB", "et", "fi", "fr", "de", + "el", "hu", "is", "id", @@ -48823,10 +72832,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "lv", "lt", "no", + "nn", "pl", "pt", "pt-BR", "ru", + "sc", "sr", "sr-RS", "sk", @@ -48881,6 +72892,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." @@ -48909,14 +72925,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", @@ -48976,7 +73002,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.", @@ -49006,12 +73032,16 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "multiple_ways": "There are too many lines here to split." } }, - "nothing_to_undo": "Nothing to undo.", - "nothing_to_redo": "Nothing to redo.", + "undo": { + "tooltip": "Undo: {action}", + "nothing": "Nothing to undo." + }, + "redo": { + "tooltip": "Redo: {action}", + "nothing": "Nothing to redo." + }, "tooltip_keyhint": "Shortcut:", - "just_edited": "You just edited OpenStreetMap!", "browser_notice": "This editor is supported in Firefox, Chrome, Safari, Opera, and Internet Explorer 9 and above. Please upgrade your browser or use Potlatch 2 to edit the map.", - "view_on_osm": "View on OSM", "translate": { "translate": "Translate", "localized_translation_label": "Multilingual name", @@ -49077,6 +73107,8 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "title": "Background", "description": "Background settings", "percent_brightness": "{opacity}% brightness", + "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", "reset": "reset" }, @@ -49096,9 +73128,12 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "success": { "edited_osm": "Edited OSM!", + "just_edited": "You just edited OpenStreetMap!", + "view_on_osm": "View on OSM", "facebook": "Share on Facebook", - "tweet": "Tweet", - "okay": "Okay" + "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(details).\n" }, "confirm": { "okay": "Okay" @@ -49139,13 +73174,14 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "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", + "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 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", "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", - "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" + "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" }, "intro": { "navigation": { @@ -49179,14 +73215,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", @@ -49254,6 +73291,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," } } }, + "access_toilets": { + "label": "Access" + }, "address": { "label": "Address", "placeholders": { @@ -49282,6 +73322,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "atm": { "label": "ATM" }, + "backrest": { + "label": "Backrest" + }, "barrier": { "label": "Type" }, @@ -49354,9 +73397,21 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "fee": { "label": "Fee" }, + "fire_hydrant/type": { + "label": "Type" + }, "fixme": { "label": "Fix Me" }, + "generator/method": { + "label": "Method" + }, + "generator/source": { + "label": "Source" + }, + "generator/type": { + "label": "Type" + }, "highway": { "label": "Type" }, @@ -49399,6 +73454,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "label": "Levels", "placeholder": "2, 4, 6..." }, + "lit": { + "label": "Lit" + }, "location": { "label": "Location" }, @@ -49517,6 +73575,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "surface": { "label": "Surface" }, + "toilets/disposal": { + "label": "Disposal" + }, "tourism": { "label": "Type" }, @@ -49529,6 +73590,9 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "trail_visibility": { "label": "Trail Visibility" }, + "vending": { + "label": "Type of Goods" + }, "water": { "label": "Type" }, @@ -49597,6 +73661,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": "" @@ -49621,6 +73689,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" @@ -49675,7 +73747,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", @@ -49741,9 +73813,13 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Pub", "terms": "" }, + "amenity/ranger_station": { + "name": "Ranger Station", + "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", @@ -49767,16 +73843,20 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "amenity/toilets": { "name": "Toilets", - "terms": "bathroom,restroom" + "terms": "bathroom,restroom,outhouse,privy,head,lavatory,latrine,water closet,WC,W.C." }, "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" @@ -49897,6 +73977,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Ambulance Station", "terms": "" }, + "emergency/fire_hydrant": { + "name": "Fire Hydrant", + "terms": "" + }, "emergency/phone": { "name": "Emergency Phone", "terms": "" @@ -50009,6 +74093,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": "" @@ -50185,6 +74273,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": "" @@ -50205,6 +74297,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": "" @@ -50213,6 +74309,10 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "name": "Swimming Pool", "terms": "" }, + "leisure/track": { + "name": "Race Track", + "terms": "" + }, "line": { "name": "Line", "terms": "" @@ -50285,6 +74385,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": "" @@ -50301,6 +74405,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": "" @@ -50382,7 +74490,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," "terms": "" }, "power/generator": { - "name": "Power Plant", + "name": "Power Generator", "terms": "" }, "power/line": { @@ -50417,6 +74525,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" @@ -50471,7 +74583,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", @@ -50563,7 +74675,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", @@ -50643,7 +74755,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,mall,mart,outlet,outlet store,shop,shopping center,shopping centre,shopping plaza,stand,store,supermarket,thrift shop" }, "shop/toys": { "name": "Toy Store", @@ -50679,7 +74791,7 @@ iD.introGraph = '{"n185954700":{"id":"n185954700","loc":[-85.642244,41.939081]," }, "tourism/artwork": { "name": "Artwork", - "terms": "" + "terms": "mural,sculpture,statue" }, "tourism/attraction": { "name": "Tourist Attraction", @@ -50777,6 +74889,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": ""