}).call(function() {
return this || (typeof window !== 'undefined' ? window : global);
}());
+/* jshint ignore:start */
(function () {
'use strict';
window.iD = function () {
else storage.setItem(k, v);
} catch(e) {
// localstorage quota exceeded
+ /* jshint devel:true */
if (typeof console !== 'undefined') console.error('localStorage quota exceeded');
+ /* jshint devel:false */
}
};
var result = fn.apply(history, arguments);
debouncedSave();
return result;
- }
+ };
}
context.perform = withDebouncedSave(history.perform);
return d3.rebind(context, dispatch, 'on');
};
-iD.version = '1.3.0';
+iD.version = '1.3.1';
(function() {
var detected = {};
var ua = navigator.userAgent,
- msie = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
+ msie = new RegExp('MSIE ([0-9]{1,}[\\.0-9]{0,})');
if (msie.exec(ua) !== null) {
var rv = parseFloat(RegExp.$1);
var entity = graph.hasEntity(id);
if (entity && entity.type === 'relation') {
entity.members.forEach(function(member) {
- s += ',.' + member.id
+ s += ',.' + member.id;
});
}
});
for (var j = 0; j <= a.length; j++) { matrix[0][j] = j; }
for (i = 1; i <= b.length; i++) {
for (j = 1; j <= a.length; j++) {
- if (b.charAt(i-1) == a.charAt(j-1)) {
+ if (b.charAt(i-1) === a.charAt(j-1)) {
matrix[i][j] = matrix[i-1][j-1];
} else {
matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, // substitution
};
};
+/* jshint -W103 */
iD.util.getPrototypeOf = Object.getPrototypeOf || function(obj) { return obj.__proto__; };
iD.util.asyncMap = function(inputs, func, callback) {
mutex.lock = function() {
if (intervalID) return true;
- var cookie = document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + name + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1");
+ var cookie = document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1');
if (cookie) return false;
renew();
intervalID = window.setInterval(renew, 4000);
var xi = polygon[i][0], yi = polygon[i][1];
var xj = polygon[j][0], yj = polygon[j][1];
- var intersect = ((yi > y) != (yj > y)) &&
+ var intersect = ((yi > y) !== (yj > y)) &&
(x < (xj - xi) * (y - yi) / (yj - yi) + xi);
if (intersect) inside = !inside;
}
[this[1][0], this[1][1]],
[this[1][0], this[0][1]],
[this[0][0], this[0][1]]
- ]
+ ];
},
intersects: function(obj) {
}
return graph.replace(relation.addMember(member, memberIndex));
- }
+ };
};
iD.actions.AddMidpoint = function(midpoint, node) {
return function(graph) {
iD.actions.ChangeMember = function(relationId, member, memberIndex) {
return function(graph) {
return graph.replace(graph.entity(relationId).updateMember(member, memberIndex));
- }
+ };
};
iD.actions.ChangePreset = function(entityId, oldPreset, newPreset) {
return function(graph) {
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; }),
+ 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(),
keyPoints = [points[0]];
}
- if (keyNodes.length == 1) {
+ if (keyNodes.length === 1) {
var index = nodes.indexOf(keyNodes[0]),
oppositeIndex = Math.floor((index + nodes.length / 2) % nodes.length);
for (var i = 0; i < nodeIds.length - 1; i++) {
var node = graph.entity(nodeIds[i]);
+ /*jshint -W083 */
graph.parentWays(node).forEach(function(parent) {
if (!parent.areAdjacent(node.id, survivor.id)) {
graph = graph.replace(parent.replaceNode(node.id, survivor.id));
graph.parentRelations(node).forEach(function(parent) {
graph = graph.replace(parent.replaceMember(node, survivor));
});
+ /*jshint +W083 */
survivor = survivor.mergeTags(node.tags);
graph = iD.actions.DeleteNode(node.id)(graph);
difference.created().forEach(discardTags);
return graph;
- }
+ };
};
// Disconect the ways at the given node.
//
return _.any(contained[i]);
}
- function filterContained(d, i) {
+ function filterContained(d) {
return d.filter(isContained);
}
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]) {
+ 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])));
}
for (i = 0; i < points.length; i++) {
var node = nodes[i];
- if (graph.parentWays(node).length > 1 ||
- graph.parentRelations(node).length ||
+ if (graph.parentWays(node).length > 1 ||
+ graph.parentRelations(node).length ||
node.hasInterestingTags()) {
continue;
}
function reverseValue(key, value) {
- if (key === "incline" && numeric.test(value)) {
+ if (key === 'incline' && numeric.test(value)) {
return value.replace(numeric, function(_, sign) { return sign === '-' ? '' : '-'; });
- } else if (key === "incline" || key === "direction") {
+ } else if (key === 'incline' || key === 'direction') {
return {up: 'down', down: 'up'}[value] || value;
} else {
return {left: 'right', right: 'left'}[value] || value;
// calculate lengths
length = 0;
- for (i = wrap(idxA+1); i != idxA; i = wrap(i+1)) {
+ 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)) {
+ 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;
i;
for (i = 1; i < points.length-1; i++) {
- var node = nodes[i],
+ var node = nodes[i],
point = points[i];
- if (graph.parentWays(node).length > 1 ||
- graph.parentRelations(node).length ||
+ 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]),
+ 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) {
+ if (toDelete.indexOf(node) === -1) {
toDelete.push(node);
}
}
i;
for (i = 1; i < points.length-1; i++) {
- var point = points[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]),
d3.event.preventDefault();
}
- var event = d3.dispatch("start", "move", "end"),
+ var event = d3.dispatch('start', 'move', 'end'),
origin = null,
selector = '',
filter = null,
event.of = function(thiz, argumentz) {
return function(e1) {
+ var e0 = e1.sourceEvent = d3.event;
+ e1.target = drag;
+ d3.event = e1;
try {
- var e0 = e1.sourceEvent = d3.event;
- e1.target = drag;
- d3.event = e1;
event[e1.type].apply(thiz, argumentz);
} finally {
d3.event = e0;
};
};
- var d3_event_userSelectProperty = iD.util.prefixCSSProperty("UserSelect"),
+ var d3_event_userSelectProperty = iD.util.prefixCSSProperty('UserSelect'),
d3_event_userSelectSuppress = d3_event_userSelectProperty ?
function () {
var selection = d3.selection(),
};
} :
function (type) {
- var w = d3.select(window).on("selectstart." + type, d3_eventCancel);
+ var w = d3.select(window).on('selectstart.' + type, d3_eventCancel);
return function () {
- w.on("selectstart." + type, null);
+ w.on('selectstart.' + type, null);
};
};
offset,
origin_ = point(),
started = false,
- selectEnable = d3_event_userSelectSuppress(touchId != null ? "drag-" + touchId : "drag");
+ selectEnable = d3_event_userSelectSuppress(touchId !== null ? 'drag-' + touchId : 'drag');
var w = d3.select(window)
- .on(touchId !== null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove)
- .on(touchId !== null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
+ .on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', dragmove)
+ .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', dragend, true);
if (origin) {
offset = origin.apply(target, arguments);
if (!started) {
started = true;
event_({
- type: "start"
+ type: 'start'
});
}
d3_eventCancel();
event_({
- type: "move",
+ type: 'move',
point: [p[0] + offset[0], p[1] + offset[1]],
delta: [dx, dy]
});
function dragend() {
if (started) {
event_({
- type: "end"
+ type: 'end'
});
d3_eventCancel();
- if (d3.event.target === eventTarget) w.on("click.drag", click, true);
+ if (d3.event.target === eventTarget) w.on('click.drag', click, true);
}
- w.on(touchId !== null ? "touchmove.drag-" + touchId : "mousemove.drag", null)
- .on(touchId !== null ? "touchend.drag-" + touchId : "mouseup.drag", null);
+ w.on(touchId !== null ? 'touchmove.drag-' + touchId : 'mousemove.drag', null)
+ .on(touchId !== null ? 'touchend.drag-' + touchId : 'mouseup.drag', null);
selectEnable();
}
function click() {
d3_eventCancel();
- w.on("click.drag", null);
+ w.on('click.drag', null);
}
}
};
}
- selection.on("mousedown.drag" + selector, delegate)
- .on("touchstart.drag" + selector, delegate);
+ selection.on('mousedown.drag' + selector, delegate)
+ .on('touchstart.drag' + selector, delegate);
}
drag.off = function(selection) {
- selection.on("mousedown.drag" + selector, null)
- .on("touchstart.drag" + selector, null);
+ selection.on('mousedown.drag' + selector, null)
+ .on('touchstart.drag' + selector, null);
};
drag.delegate = function(_) {
drag.cancel = function() {
d3.select(window)
- .on("mousemove.drag", null)
- .on("mouseup.drag", null);
+ .on('mousemove.drag', null)
+ .on('mouseup.drag', null);
return drag;
};
return drag;
};
- return d3.rebind(drag, event, "on");
+ return d3.rebind(drag, event, 'on');
};
iD.behavior.Draw = function(context) {
var event = d3.dispatch('move', 'click', 'clickWay',
})[0] : d3.mouse(p);
}
- var eventTarget = d3.event.target,
- element = d3.select(this),
+ var element = d3.select(this),
touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null,
time = +new Date(),
pos = point();
var parser = function(map, s) {
var q = iD.util.stringQs(s);
- var args = (q.map || '').split("/").map(Number);
+ var args = (q.map || '').split('/').map(Number);
if (args.length < 3 || args.some(isNaN)) {
return true; // replace bogus hash
} else if (s !== formatter(map).slice(1)) {
d3.select(window)
.on('hashchange.hash', null);
- location.hash = "";
+ location.hash = '';
};
return hash;
Only one of these elements can have the :hover pseudo-class, but all of them will
have the .hover class.
*/
-iD.behavior.Hover = function(context) {
+iD.behavior.Hover = function() {
var dispatch = d3.dispatch('hover'),
selection,
altDisables,
function mousedown() {
down = true;
d3.select(window)
- .on('mouseup.hover', mouseup)
+ .on('mouseup.hover', mouseup);
}
function mouseup() {
d3.select(window)
.on('keydown.hover', null)
.on('keyup.hover', null)
- .on('mouseup.hover', null)
+ .on('mouseup.hover', null);
};
hover.altDisables = function(_) {
var text,
container,
xmargin = 25,
- tooltip_size = [0, 0],
- selection_size = [0, 0],
+ tooltipSize = [0, 0],
+ selectionSize = [0, 0],
transformProp = iD.util.prefixCSSProperty('Transform');
function tail(selection) {
if (!text) return;
d3.select(window)
- .on('resize.tail', function() { selection_size = selection.dimensions(); });
+ .on('resize.tail', function() { selectionSize = selection.dimensions(); });
function show() {
container.style('display', 'block');
- tooltip_size = container.dimensions();
+ tooltipSize = container.dimensions();
}
function mousemove() {
if (container.style('display') === 'none') show();
- var xoffset = ((d3.event.clientX + tooltip_size[0] + xmargin) > selection_size[0]) ?
- -tooltip_size[0] - xmargin : xmargin;
+ var xoffset = ((d3.event.clientX + tooltipSize[0] + xmargin) > selectionSize[0]) ?
+ -tooltipSize[0] - xmargin : xmargin;
container.classed('left', xoffset > 0);
container.style(transformProp, 'translate(' +
(~~d3.event.clientX + xoffset) + 'px,' +
container
.on('mousemove.tail', mousemove);
- tooltip_size = container.dimensions();
- selection_size = selection.dimensions();
+ tooltipSize = container.dimensions();
+ selectionSize = selection.dimensions();
}
tail.off = function(selection) {
.newFeature(true));
}
- function addWay(loc, edge) {
+ function addWay(loc) {
add(loc);
}
});
// Get focus on the body.
- if (document.activeElement) {
+ if (document.activeElement && document.activeElement.blur) {
document.activeElement.blur();
}
}
var behavior = iD.behavior.drag()
- .delegate("g.node, g.point, g.midpoint")
+ .delegate('g.node, g.point, g.midpoint')
.surface(context.surface().node())
.origin(origin)
.on('start', start)
context.install(behavior);
});
- context.connection().authenticate(function(err) {
+ context.connection().authenticate(function() {
context.ui().sidebar.show(ui);
});
};
context.surface()
.call(radialMenu.close)
.on('dblclick.select', null)
- .selectAll(".selected")
+ .selectAll('.selected')
.classed('selected', false);
context.map().on('drawn.select', null);
t('operations.circularize.description.' + geometry);
};
- operation.id = "circularize";
+ operation.id = 'circularize';
operation.keys = [t('operations.circularize.key')];
operation.title = t('operations.circularize.title');
t('operations.continue.description');
};
- operation.id = "continue";
+ operation.id = 'continue';
operation.keys = [t('operations.continue.key')];
operation.title = t('operations.continue.title');
t('operations.delete.description');
};
- operation.id = "delete";
+ operation.id = 'delete';
operation.keys = [iD.ui.cmd('⌘⌫'), iD.ui.cmd('⌘⌦')];
operation.title = t('operations.delete.title');
t('operations.disconnect.description');
};
- operation.id = "disconnect";
+ operation.id = 'disconnect';
operation.keys = [t('operations.disconnect.key')];
operation.title = t('operations.disconnect.title');
return t('operations.merge.description');
};
- operation.id = "merge";
+ operation.id = 'merge';
operation.keys = [t('operations.merge.key')];
operation.title = t('operations.merge.title');
t('operations.move.description');
};
- operation.id = "move";
+ operation.id = 'move';
operation.keys = [t('operations.move.key')];
operation.title = t('operations.move.title');
t('operations.orthogonalize.description.' + geometry);
};
- operation.id = "orthogonalize";
+ operation.id = 'orthogonalize';
operation.keys = [t('operations.orthogonalize.key')];
operation.title = t('operations.orthogonalize.title');
return t('operations.reverse.description');
};
- operation.id = "reverse";
+ operation.id = 'reverse';
operation.keys = [t('operations.reverse.key')];
operation.title = t('operations.reverse.title');
return t('operations.rotate.description');
};
- operation.id = "rotate";
+ operation.id = 'rotate';
operation.keys = [t('operations.rotate.key')];
operation.title = t('operations.rotate.title');
}
};
- operation.id = "split";
+ operation.id = 'split';
operation.keys = [t('operations.split.key')];
operation.title = t('operations.split.title');
t('operations.straighten.description');
};
- operation.id = "straighten";
+ operation.id = 'straighten';
operation.keys = [t('operations.straighten.key')];
operation.title = t('operations.straighten.title');
};
connection.userURL = function(username) {
- return url + "/user/" + username;
+ return url + '/user/' + username;
};
connection.loadFromURL = function(url, callback) {
extent: iD.geo.Extent(
projection.invert([x, y + ts]),
projection.invert([x + ts, y]))
- }
+ };
});
function bboxUrl(tile) {
hasInterestingTags: function() {
return _.keys(this.tags).some(function(key) {
- return key != 'attribution' &&
- key != 'created_by' &&
- key != 'source' &&
- key != 'odbl' &&
+ return key !== 'attribution' &&
+ key !== 'created_by' &&
+ key !== 'source' &&
+ key !== 'odbl' &&
key.indexOf('tiger:') !== 0;
});
},
iD.data.deprecated.forEach(function(d) {
var match = _.pairs(d.old)[0];
tags.forEach(function(t) {
- if (t[0] == match[0] &&
- (t[1] == match[1] || match[1] == '*')) {
+ if (t[0] === match[0] &&
+ (t[1] === match[1] || match[1] === '*')) {
deprecated[t[0]] = t[1];
}
});
ways.push(entity.id);
parentWays[added[i]] = ways;
}
- } else if (type === 'node') {
} else if (type === 'relation') {
stack = h.stack.map(function(d) {
var entities = {}, entity;
- d.modified && d.modified.forEach(function(key) {
- entity = allEntities[key];
- entities[entity.id] = entity;
- });
+ if (d.modified) {
+ d.modified.forEach(function(key) {
+ entity = allEntities[key];
+ entities[entity.id] = entity;
+ });
+ }
- d.deleted && d.deleted.forEach(function(id) {
- entities[id] = undefined;
- });
+ if (d.deleted) {
+ d.deleted.forEach(function(id) {
+ entities[id] = undefined;
+ });
+ }
return {
graph: iD.Graph(stack[0].graph).load(entities),
iD.Node.prototype = Object.create(iD.Entity.prototype);
_.extend(iD.Node.prototype, {
- type: "node",
+ type: 'node',
extent: function() {
return new iD.geo.Extent(this.loc);
iD.Relation.prototype = Object.create(iD.Entity.prototype);
_.extend(iD.Relation.prototype, {
- type: "relation",
+ type: 'relation',
members: [],
extent: function(resolver) {
indexedMembers: function() {
var result = new Array(this.members.length);
for (var i = 0; i < this.members.length; i++) {
- result[i] = _.extend({}, this.members[i], {index: i})
+ result[i] = _.extend({}, this.members[i], {index: i});
}
return result;
},
iD.Way.prototype = Object.create(iD.Entity.prototype);
_.extend(iD.Way.prototype, {
- type: "way",
+ type: 'way',
nodes: [],
extent: function(resolver) {
for (var i = 0; i < this.nodes.length; i++) {
var node = this.nodes[i];
- if (node != id && nodes[nodes.length - 1] != node) {
+ if (node !== id && nodes[nodes.length - 1] !== node) {
nodes.push(node);
}
}
// Preserve circularity
- if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] != nodes[0]) {
+ if (this.nodes.length > 1 && this.first() === id && this.last() === id && nodes[nodes.length - 1] !== nodes[0]) {
nodes.push(nodes[0]);
}
gpx.call(gpxLayer);
var overlays = selection.selectAll('.overlay-layer')
- .data(overlayLayers, function(d) { return d.source().name });
+ .data(overlayLayers, function(d) { return d.source().name; });
overlays.enter().insert('div', '.layer-data')
.attr('class', 'layer-layer overlay-layer');
};
background.bing = function() {
- background.baseLayerSource(findSource("Bing"));
+ background.baseLayerSource(findSource('Bing'));
};
background.hasGpxLayer = function() {
name: 'Custom'
}));
} else {
- background.baseLayerSource(findSource(chosen) || findSource("Bing"));
+ background.baseLayerSource(findSource(chosen) || findSource('Bing'));
}
var locator = _.find(backgroundSources, function(d) {
dispatch.change();
});
- var template = "http://ecn.t{t}.tiles.virtualearth.net/tiles/a{u}.jpeg?g=587&mkt=en-gb&n=z",
+ 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) {
}).join(', ');
};
- bing.logo = "bing_maps.png";
- bing.terms_url = "http://opengeodata.org/microsoft-imagery-details";
+ bing.logo = 'bing_maps.png';
+ bing.terms_url = 'http://opengeodata.org/microsoft-imagery-details';
return bing;
};
iD.BackgroundSource.None = function() {
return iD.BackgroundSource({ name: t('background.none'), id: 'None', template: '' });
};
-iD.GpxLayer = function(context, dispatch) {
+iD.GpxLayer = function(context) {
var projection,
gj = {},
enable = true,
map.surface = surface = dataLayer.append('svg')
.on('mousedown.zoom', function() {
- if (d3.event.button == 2) {
+ if (d3.event.button === 2) {
d3.event.stopPropagation();
}
}, true)
map.mouse = function() {
var e = mousemove || d3.event, s;
- while (s = e.sourceEvent) e = s;
+ while ((s = e.sourceEvent)) e = s;
return mouse(e);
};
d3.timer(function() {
if (stop) return true;
map.center(iD.geo.interp(from, loc, (t += 1) / 10));
- return t == 10;
+ return t === 10;
}, 20);
return map;
};
if (entity.id in cache) {
return cache[entity.id];
} else {
- return cache[entity.id] = path(entity.asGeoJSON(graph, polygon));
+ return cache[entity.id] = path(entity.asGeoJSON(graph, polygon)); // jshint ignore:line
}
};
},
var entity = entities[i];
if (entity.geometry(graph) !== 'area') continue;
- if (multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph)) {
+ multipolygon = iD.geo.isSimpleMultipolygonOuterMember(entity, graph);
+ if (multipolygon) {
areas[multipolygon.id] = {
entity: multipolygon.mergeTags(entity.tags),
area: Math.abs(entity.area(graph))
var font_sizes = label_stack.map(function(d) {
var style = iD.util.getStyle('text.' + d[0] + '.tag-' + d[1]),
- m = style && style.cssText.match("font-size: ([0-9]{1,2})px;");
+ m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
if (m) return parseInt(m[1], 10);
style = iD.util.getStyle('text.' + d[0]);
- m = style && style.cssText.match("font-size: ([0-9]{1,2})px;");
+ m = style && style.cssText.match('font-size: ([0-9]{1,2})px;');
if (m) return parseInt(m[1], 10);
return default_size;
}
function drawLineLabels(group, entities, filter, classes, labels) {
-
var texts = group.selectAll('text.' + classes)
.filter(filter)
.data(entities, iD.Entity.key);
- var tp = texts.enter()
+ texts.enter()
.append('text')
.attr('class', function(d, i) { return classes + ' ' + labels[i].classes + ' ' + d.id; })
.append('textPath')
.attr('class', 'textpath');
- var tps = texts.selectAll('.textpath')
+ texts.selectAll('.textpath')
.filter(filter)
.data(entities, iD.Entity.key)
.attr({
.text(iD.util.displayName);
texts.exit().remove();
-
}
function drawLinePaths(group, entities, filter, classes, labels) {
-
var halos = group.selectAll('path')
.filter(filter)
.data(entities, iD.Entity.key);
}
drawRestrictions.turns = function (graph, selectedIDs) {
- if (selectedIDs.length != 1)
+ if (selectedIDs.length !== 1)
return [];
var from = graph.entity(selectedIDs[0]);
to: to,
restriction: restriction,
angle: Math.atan2(b[1] - a[1], b[0] - a[0])
- }
+ };
};
return drawRestrictions;
.data(data)
.enter().append('use')
.attr('id', function(d) { return d.key; })
- .attr('transform', function(d) { return "translate(-" + d.value[0] + ",-" + d.value[1] + ")"; })
+ .attr('transform', function(d) { return 'translate(-' + d.value[0] + ',-' + d.value[1] + ')'; })
.attr('xlink:href', '#' + id);
};
}
iD.svg.TagClasses = function() {
var primary = [
'highway', 'railway', 'waterway', 'aeroway', 'motorway',
- 'power', 'amenity', 'natural', 'landuse', 'building', 'leisure',
- 'place', 'boundary'
+ 'boundary', 'power', 'amenity', 'natural', 'landuse',
+ 'building', 'leisure', 'place'
],
secondary = [
'oneway', 'bridge', 'tunnel', 'construction'
var icons = {};
function icon(entity) {
if (entity.id in icons) return icons[entity.id];
- return icons[entity.id] = (zoom !== 0 &&
+ icons[entity.id] = zoom !== 0 &&
entity.hasInterestingTags() &&
- context.presets().match(entity, graph).icon);
+ context.presets().match(entity, graph).icon;
+ return icons[entity.id];
}
function circle(klass) {
this.setAttribute('cx', c);
this.setAttribute('cy', -c);
this.setAttribute('r', r);
- }
+ };
}
var enter = groups.enter().append('g')
if (entity.id in selected ||
entity.hasInterestingTags() ||
entity.isIntersection(graph)) {
- vertices.push(entity)
+ vertices.push(entity);
}
}
};
iD.ui = function(context) {
function render(container) {
- var history = context.history(),
- map = context.map();
+ var map = context.map();
if (iD.detect().opera) container.classed('opera', true);
.attr('id', 'map')
.call(map);
- var spacer = bar.append('div')
+ bar.append('div')
.attr('class', 'spacer col4');
var limiter = bar.append('div')
['top', [0, -1]],
['right', [-1, 0]],
['bottom', [0, 1]]],
- opacityDefault = (context.storage('background-opacity') !== undefined) ?
+ opacityDefault = (context.storage('background-opacity') !== null) ?
(+context.storage('background-opacity')) : 0.5;
function background(selection) {
return t('background.percent_brightness', { opacity: (d * 100) });
})
.on('click.set-opacity', setOpacity)
- .html("<div class='select-box'></div>")
+ .html('<div class="select-box"></div>')
.call(bootstrap.tooltip()
.placement('top'))
.append('div')
var section = modal.select('.content');
- var modalHeader = section.append('div')
+ section.append('div')
.attr('class', 'modal-section header');
- var description = section.append('div')
+ section.append('div')
.attr('class', 'modal-section message-text');
var buttonwrap = section.append('div')
.attr('class', 'modal-section buttons cf');
- var okbutton = buttonwrap.append('button')
+ buttonwrap.append('button')
.attr('class', 'col2 action')
.on('click.confirm', function() {
modal.remove();
.attr('class', 'modal fillL col6');
shaded.on('click.remove-modal', function() {
- if (d3.event.target == this && !blocking) shaded.close();
+ if (d3.event.target === this && !blocking) shaded.close();
});
modal.append('button')
context.on('enter.editor', function(entered) {
buttons.classed('active', function(mode) { return entered.button === mode.button; });
context.container()
- .classed("mode-" + entered.id, true);
+ .classed('mode-' + entered.id, true);
});
context.on('exit.editor', function(exited) {
context.container()
- .classed("mode-" + exited.id, false);
+ .classed('mode-' + exited.id, false);
});
var keybinding = d3.keybinding('mode-buttons');
function drawList(list, presets) {
var collection = presets.collection.map(function(preset) {
- return preset.members ? CategoryItem(preset) : PresetItem(preset)
+ return preset.members ? CategoryItem(preset) : PresetItem(preset);
});
var items = list.selectAll('.preset-list-item')
menu = selection.append('g')
.attr('class', 'radial-menu')
- .attr('transform', "translate(" + center + ")")
+ .attr('transform', 'translate(' + center + ')')
.attr('opacity', 0);
menu.transition()
if (member.id === entity.id) {
memberships.push({relation: relation, member: member, index: index});
}
- })
+ });
});
selection.call(iD.ui.Disclosure()
.attr('class', 'fr')
.append('span')
.attr('class', 'icon close')
- .on('click', function() { event.cancel(success) });
+ .on('click', function() { event.cancel(success); });
header.append('h3')
.text(t('success.just_edited'));
body
.append('img')
.attr('class', 'wiki-image')
- .attr('src', docs.image.thumb_url_prefix + "100" + docs.image.thumb_url_suffix)
+ .attr('src', docs.image.thumb_url_prefix + '100' + docs.image.thumb_url_suffix)
.on('load', function() { show(); })
.on('error', function() { d3.select(this).remove(); show(); });
} else {
.call(keybinding);
};
};
-iD.ui.preset.access = function(field, context) {
+iD.ui.preset.access = function(field) {
var event = d3.dispatch('change'),
entity,
items;
access.options = function(type) {
var options = ['no', 'permissive', 'private', 'designated', 'destination'];
- if (type != 'access') {
+ if (type !== 'access') {
options.unshift('yes');
}
.on('blur', change)
.on('change', change);
- if (field.type == 'number') {
+ if (field.type === 'number') {
input.attr('type', 'text');
var spinControl = selection.selectAll('.spin-control')
return d3.rebind(i, event, 'on');
};
-iD.ui.preset.localized = function(field, context) {
+iD.ui.preset.localized = function(field) {
var event = d3.dispatch('change'),
wikipedia = iD.wikipedia(),
};
i.focus = function() {
- title.node().focus();
+ input.node().focus();
};
return d3.rebind(i, event, 'on');
title: 'intro.lines.title'
};
- function one(target, e, f) {
- d3.selection.prototype.one.call(target, e, f);
- }
-
function timeout(f, t) {
timeouts.push(window.setTimeout(f, t));
}
}
// selected wrong road type
- function retryPreset(mode) {
+ function retryPreset() {
timeout(function() {
var preset = d3.select('.entity-editor-pane .preset-list-button');
reveal(preset.node(), t('intro.lines.wrong_preset'));
return warnings;
};
+/* jshint ignore:start */
})();
window.locale = { _current: 'en' };
"landuse": "farmyard"
},
"terms": [],
- "name": "Farmyard"
+ "name": "Farmyard",
+ "icon": "farm"
},
"landuse/forest": {
"fields": [
"tags": {
"leisure": "dog_park"
},
- "name": "Dog Park"
+ "name": "Dog Park",
+ "icon": "dog-park"
},
"leisure/garden": {
"icon": "garden",
"tags": {
"man_made": "lighthouse"
},
- "name": "Lighthouse"
+ "name": "Lighthouse",
+ "icon": "lighthouse"
},
"man_made/observation": {
"geometry": [
"name": "Liquor Store"
},
"shop/bakery": {
- "icon": "shop",
+ "icon": "bakery",
"fields": [
"address",
"building_area",
"name": "Chemist"
},
"shop/clothes": {
- "icon": "shop",
+ "icon": "clothing-store",
"fields": [
"address",
"building_area",
"name": "Outdoor Store"
},
"shop/pet": {
- "icon": "shop",
+ "icon": "dog-park",
"fields": [
"address",
"building_area",
},
"name": "Pet Store"
},
+ "shop/photo": {
+ "icon": "camera",
+ "fields": [
+ "address",
+ "building_area",
+ "opening_hours"
+ ],
+ "geometry": [
+ "point",
+ "vertex",
+ "area"
+ ],
+ "tags": {
+ "shop": "photo"
+ },
+ "name": "Photography Store"
+ },
"shop/shoes": {
"icon": "shop",
"fields": [
]
},
"featureIcons": {
- "airfield": {
+ "circle-stroked": {
"12": [
- 0,
+ 42,
0
],
"18": [
- 0,
- 14
+ 24,
+ 0
],
"24": [
0,
- 34
+ 0
]
},
- "airport": {
+ "circle": {
"12": [
- 0,
- 60
+ 96,
+ 0
],
"18": [
- 0,
- 74
+ 78,
+ 0
],
"24": [
- 0,
- 94
+ 54,
+ 0
]
},
- "alcohol-shop": {
+ "square-stroked": {
"12": [
- 0,
- 120
+ 150,
+ 0
],
"18": [
- 0,
- 134
+ 132,
+ 0
],
"24": [
- 0,
- 154
+ 108,
+ 0
]
},
- "america-football": {
+ "square": {
"12": [
- 0,
- 180
+ 204,
+ 0
],
"18": [
- 0,
- 194
+ 186,
+ 0
],
"24": [
- 0,
- 214
+ 162,
+ 0
]
},
- "art-gallery": {
+ "triangle-stroked": {
"12": [
- 0,
- 240
+ 258,
+ 0
],
"18": [
- 0,
- 254
+ 240,
+ 0
],
"24": [
- 0,
- 274
+ 216,
+ 0
]
},
- "bank": {
+ "triangle": {
"12": [
- 0,
- 300
+ 42,
+ 24
],
"18": [
- 0,
- 314
+ 24,
+ 24
],
"24": [
0,
- 334
+ 24
]
},
- "bar": {
+ "star-stroked": {
"12": [
- 0,
- 360
+ 96,
+ 24
],
"18": [
- 0,
- 374
+ 78,
+ 24
],
"24": [
- 0,
- 394
+ 54,
+ 24
]
},
- "baseball": {
+ "star": {
"12": [
- 0,
- 420
+ 150,
+ 24
],
"18": [
- 0,
- 434
+ 132,
+ 24
],
"24": [
- 0,
- 454
+ 108,
+ 24
]
},
- "basketball": {
+ "cross": {
"12": [
- 0,
- 480
+ 204,
+ 24
],
"18": [
- 0,
- 494
+ 186,
+ 24
],
"24": [
- 0,
- 514
+ 162,
+ 24
]
},
- "beer": {
+ "marker-stroked": {
"12": [
- 0,
- 540
+ 258,
+ 24
],
"18": [
- 0,
- 554
+ 240,
+ 24
],
"24": [
- 0,
- 574
+ 216,
+ 24
]
},
- "bicycle": {
+ "marker": {
"12": [
- 0,
- 600
+ 42,
+ 48
],
"18": [
- 0,
- 614
+ 24,
+ 48
],
"24": [
0,
- 634
+ 48
]
},
- "building": {
+ "religious-jewish": {
"12": [
- 0,
- 660
+ 96,
+ 48
],
"18": [
- 0,
- 674
+ 78,
+ 48
],
"24": [
- 0,
- 694
+ 54,
+ 48
]
},
- "bus": {
+ "religious-christian": {
"12": [
- 0,
- 720
+ 150,
+ 48
],
"18": [
- 0,
- 734
+ 132,
+ 48
],
"24": [
- 0,
- 754
+ 108,
+ 48
]
},
- "cafe": {
+ "religious-muslim": {
"12": [
- 0,
- 780
+ 204,
+ 48
],
"18": [
- 0,
- 794
+ 186,
+ 48
],
"24": [
- 0,
- 814
+ 162,
+ 48
]
},
- "campsite": {
+ "cemetery": {
"12": [
- 0,
- 840
+ 258,
+ 48
],
"18": [
- 0,
- 854
+ 240,
+ 48
],
"24": [
- 0,
- 874
+ 216,
+ 48
]
},
- "cemetery": {
+ "rocket": {
"12": [
- 0,
- 900
+ 42,
+ 72
],
"18": [
- 0,
- 914
+ 24,
+ 72
],
"24": [
0,
- 934
+ 72
]
},
- "cinema": {
+ "airport": {
"12": [
- 0,
- 960
+ 96,
+ 72
],
"18": [
- 0,
- 974
+ 78,
+ 72
],
"24": [
- 0,
- 994
+ 54,
+ 72
]
},
- "circle": {
+ "heliport": {
"12": [
- 0,
- 1020
+ 150,
+ 72
],
"18": [
- 0,
- 1034
+ 132,
+ 72
],
"24": [
- 0,
- 1054
+ 108,
+ 72
]
},
- "circle-stroked": {
+ "rail": {
"12": [
- 0,
- 1080
+ 204,
+ 72
],
"18": [
- 0,
- 1094
+ 186,
+ 72
],
"24": [
- 0,
- 1114
+ 162,
+ 72
]
},
- "city": {
+ "rail-underground": {
"12": [
- 0,
- 1140
+ 258,
+ 72
],
"18": [
- 0,
- 1154
+ 240,
+ 72
],
"24": [
- 0,
- 1174
+ 216,
+ 72
]
},
- "college": {
+ "rail-above": {
"12": [
- 0,
- 1200
+ 42,
+ 96
],
"18": [
- 0,
- 1214
+ 24,
+ 96
],
"24": [
0,
- 1234
+ 96
]
},
- "commercial": {
+ "bus": {
"12": [
- 0,
- 1260
+ 96,
+ 96
],
"18": [
- 0,
- 1274
+ 78,
+ 96
],
"24": [
- 0,
- 1294
+ 54,
+ 96
]
},
- "cricket": {
+ "fuel": {
"12": [
- 0,
- 1320
+ 150,
+ 96
],
"18": [
- 0,
- 1334
+ 132,
+ 96
],
"24": [
- 0,
- 1354
+ 108,
+ 96
]
},
- "cross": {
+ "parking": {
"12": [
- 0,
- 1380
+ 204,
+ 96
],
"18": [
- 0,
- 1394
+ 186,
+ 96
],
"24": [
- 0,
- 1414
+ 162,
+ 96
]
},
- "dam": {
+ "parking-garage": {
"12": [
- 0,
- 1440
+ 258,
+ 96
],
"18": [
- 0,
- 1454
+ 240,
+ 96
],
"24": [
- 0,
- 1474
+ 216,
+ 96
]
},
- "danger": {
+ "airfield": {
"12": [
- 0,
- 1500
+ 42,
+ 120
],
"18": [
- 0,
- 1514
+ 24,
+ 120
],
"24": [
0,
- 1534
+ 120
]
},
- "disability": {
+ "roadblock": {
"12": [
- 0,
- 1560
+ 96,
+ 120
],
"18": [
- 0,
- 1574
+ 78,
+ 120
],
"24": [
- 0,
- 1594
+ 54,
+ 120
]
},
- "embassy": {
+ "ferry": {
"12": [
- 0,
- 1620
+ 150,
+ 120
],
"18": [
- 0,
- 1634
+ 132,
+ 120
],
"24": [
- 0,
- 1654
+ 108,
+ 120
+ ],
+ "line": [
+ 2240,
+ 25
]
},
- "emergency-telephone": {
+ "harbor": {
"12": [
- 0,
- 1680
+ 204,
+ 120
],
"18": [
- 0,
- 1694
+ 186,
+ 120
],
"24": [
- 0,
- 1714
+ 162,
+ 120
]
},
- "farm": {
+ "bicycle": {
"12": [
- 0,
- 1740
+ 258,
+ 120
],
"18": [
- 0,
- 1754
+ 240,
+ 120
],
"24": [
- 0,
- 1774
+ 216,
+ 120
]
},
- "fast-food": {
+ "park": {
"12": [
- 0,
- 1800
+ 42,
+ 144
],
"18": [
- 0,
- 1814
+ 24,
+ 144
],
"24": [
0,
- 1834
+ 144
]
},
- "ferry": {
+ "park2": {
"12": [
- 0,
- 1860
+ 96,
+ 144
],
"18": [
- 0,
- 1874
+ 78,
+ 144
],
"24": [
- 0,
- 1894
+ 54,
+ 144
+ ]
+ },
+ "museum": {
+ "12": [
+ 150,
+ 144
],
- "line": [
- 2240,
- 25
+ "18": [
+ 132,
+ 144
+ ],
+ "24": [
+ 108,
+ 144
]
},
- "fire-station": {
+ "lodging": {
"12": [
- 0,
- 1920
+ 204,
+ 144
],
"18": [
- 0,
- 1934
+ 186,
+ 144
],
"24": [
- 0,
- 1954
+ 162,
+ 144
]
},
- "fuel": {
+ "monument": {
"12": [
- 0,
- 1980
+ 258,
+ 144
],
"18": [
- 0,
- 1994
+ 240,
+ 144
+ ],
+ "24": [
+ 216,
+ 144
+ ]
+ },
+ "zoo": {
+ "12": [
+ 42,
+ 168
+ ],
+ "18": [
+ 24,
+ 168
],
"24": [
0,
- 2014
+ 168
]
},
"garden": {
"12": [
- 0,
- 2040
+ 96,
+ 168
],
"18": [
- 0,
- 2054
+ 78,
+ 168
],
"24": [
- 0,
- 2074
+ 54,
+ 168
]
},
- "golf": {
+ "campsite": {
"12": [
- 0,
- 2100
+ 150,
+ 168
],
"18": [
- 0,
- 2114
+ 132,
+ 168
],
"24": [
- 0,
- 2134
+ 108,
+ 168
]
},
- "grocery": {
+ "theatre": {
"12": [
- 0,
- 2160
+ 204,
+ 168
],
"18": [
- 0,
- 2174
+ 186,
+ 168
],
"24": [
- 0,
- 2194
+ 162,
+ 168
]
},
- "harbor": {
+ "art-gallery": {
"12": [
- 0,
- 2220
+ 258,
+ 168
],
"18": [
- 0,
- 2234
+ 240,
+ 168
],
"24": [
- 0,
- 2254
+ 216,
+ 168
]
},
- "heliport": {
+ "pitch": {
"12": [
- 0,
- 2280
+ 42,
+ 192
],
"18": [
- 0,
- 2294
+ 24,
+ 192
],
"24": [
0,
- 2314
+ 192
]
},
- "hospital": {
+ "soccer": {
"12": [
- 0,
- 2340
+ 96,
+ 192
],
"18": [
- 0,
- 2354
+ 78,
+ 192
],
"24": [
- 0,
- 2374
+ 54,
+ 192
]
},
- "industrial": {
+ "america-football": {
"12": [
- 0,
- 2400
+ 150,
+ 192
],
"18": [
- 0,
- 2414
+ 132,
+ 192
],
"24": [
- 0,
- 2434
+ 108,
+ 192
]
},
- "land-use": {
+ "tennis": {
"12": [
- 0,
- 2460
+ 204,
+ 192
],
"18": [
- 0,
- 2474
+ 186,
+ 192
],
"24": [
- 0,
- 2494
+ 162,
+ 192
]
},
- "library": {
+ "basketball": {
"12": [
- 0,
- 2520
+ 258,
+ 192
],
"18": [
- 0,
- 2534
+ 240,
+ 192
],
"24": [
- 0,
- 2554
+ 216,
+ 192
]
},
- "lodging": {
+ "baseball": {
"12": [
- 0,
- 2580
+ 42,
+ 216
],
"18": [
- 0,
- 2594
+ 24,
+ 216
],
"24": [
0,
- 2614
+ 216
]
},
- "logging": {
+ "golf": {
"12": [
- 0,
- 2640
+ 96,
+ 216
],
"18": [
- 0,
- 2654
+ 78,
+ 216
],
"24": [
- 0,
- 2674
+ 54,
+ 216
]
},
- "marker": {
+ "swimming": {
"12": [
- 0,
- 2700
+ 150,
+ 216
],
"18": [
- 0,
- 2714
+ 132,
+ 216
],
"24": [
- 0,
- 2734
+ 108,
+ 216
]
},
- "marker-stroked": {
+ "cricket": {
"12": [
- 0,
- 2760
+ 204,
+ 216
],
"18": [
- 0,
- 2774
+ 186,
+ 216
],
"24": [
- 0,
- 2794
+ 162,
+ 216
]
},
- "monument": {
+ "skiing": {
"12": [
- 0,
- 2820
+ 258,
+ 216
],
"18": [
- 0,
- 2834
+ 240,
+ 216
],
"24": [
- 0,
- 2854
+ 216,
+ 216
]
},
- "museum": {
+ "school": {
"12": [
- 0,
- 2880
+ 42,
+ 240
],
"18": [
- 0,
- 2894
+ 24,
+ 240
],
"24": [
0,
- 2914
+ 240
]
},
- "music": {
+ "college": {
"12": [
- 0,
- 2940
+ 96,
+ 240
],
"18": [
- 0,
- 2954
+ 78,
+ 240
],
"24": [
- 0,
- 2974
+ 54,
+ 240
]
},
- "oil-well": {
+ "library": {
"12": [
- 0,
- 3000
+ 150,
+ 240
],
"18": [
- 0,
- 3014
+ 132,
+ 240
],
"24": [
- 0,
- 3034
+ 108,
+ 240
]
},
- "park": {
+ "post": {
"12": [
- 0,
- 3060
+ 204,
+ 240
],
"18": [
- 0,
- 3074
+ 186,
+ 240
],
"24": [
- 0,
- 3094
+ 162,
+ 240
]
},
- "park2": {
+ "fire-station": {
"12": [
- 0,
- 3120
+ 258,
+ 240
],
"18": [
- 0,
- 3134
+ 240,
+ 240
],
"24": [
- 0,
- 3154
+ 216,
+ 240
]
},
- "parking": {
+ "town-hall": {
"12": [
- 0,
- 3180
+ 42,
+ 264
],
"18": [
- 0,
- 3194
+ 24,
+ 264
],
"24": [
0,
- 3214
+ 264
]
},
- "parking-garage": {
+ "police": {
"12": [
- 0,
- 3240
+ 96,
+ 264
],
"18": [
- 0,
- 3254
+ 78,
+ 264
],
"24": [
- 0,
- 3274
+ 54,
+ 264
]
},
- "pharmacy": {
+ "prison": {
"12": [
- 0,
- 3300
+ 150,
+ 264
],
"18": [
- 0,
- 3314
+ 132,
+ 264
],
"24": [
- 0,
- 3334
+ 108,
+ 264
]
},
- "pitch": {
+ "embassy": {
"12": [
- 0,
- 3360
+ 204,
+ 264
],
"18": [
- 0,
- 3374
+ 186,
+ 264
],
"24": [
- 0,
- 3394
+ 162,
+ 264
]
},
- "place-of-worship": {
+ "beer": {
"12": [
- 0,
- 3420
+ 258,
+ 264
],
"18": [
- 0,
- 3434
+ 240,
+ 264
],
"24": [
- 0,
- 3454
+ 216,
+ 264
]
},
- "police": {
+ "restaurant": {
"12": [
- 0,
- 3480
+ 42,
+ 288
],
"18": [
- 0,
- 3494
+ 24,
+ 288
],
"24": [
0,
- 3514
+ 288
]
},
- "post": {
+ "cafe": {
"12": [
- 0,
- 3540
+ 96,
+ 288
],
"18": [
- 0,
- 3554
+ 78,
+ 288
],
"24": [
- 0,
- 3574
+ 54,
+ 288
]
},
- "prison": {
+ "shop": {
"12": [
- 0,
- 3600
+ 150,
+ 288
],
"18": [
- 0,
- 3614
+ 132,
+ 288
],
"24": [
- 0,
- 3634
+ 108,
+ 288
]
},
- "rail": {
+ "fast-food": {
"12": [
- 0,
- 3660
+ 204,
+ 288
],
"18": [
- 0,
- 3674
+ 186,
+ 288
],
"24": [
- 0,
- 3694
+ 162,
+ 288
]
},
- "rail-above": {
+ "bar": {
"12": [
- 0,
- 3720
+ 258,
+ 288
],
"18": [
- 0,
- 3734
+ 240,
+ 288
],
"24": [
- 0,
- 3754
+ 216,
+ 288
]
},
- "rail-underground": {
+ "bank": {
"12": [
- 0,
- 3780
+ 42,
+ 312
],
"18": [
- 0,
- 3794
+ 24,
+ 312
],
"24": [
0,
- 3814
+ 312
]
},
- "religious-christian": {
+ "grocery": {
"12": [
- 0,
- 3840
+ 96,
+ 312
],
"18": [
- 0,
- 3854
+ 78,
+ 312
],
"24": [
- 0,
- 3874
+ 54,
+ 312
]
},
- "religious-jewish": {
+ "cinema": {
"12": [
- 0,
- 3900
+ 150,
+ 312
],
"18": [
- 0,
- 3914
+ 132,
+ 312
],
"24": [
- 0,
- 3934
+ 108,
+ 312
]
},
- "religious-muslim": {
+ "pharmacy": {
"12": [
- 0,
- 3960
+ 204,
+ 312
],
"18": [
- 0,
- 3974
+ 186,
+ 312
],
"24": [
- 0,
- 3994
+ 162,
+ 312
]
},
- "restaurant": {
+ "hospital": {
"12": [
- 0,
- 4020
+ 258,
+ 312
],
"18": [
- 0,
- 4034
+ 240,
+ 312
],
"24": [
- 0,
- 4054
+ 216,
+ 312
]
},
- "roadblock": {
+ "danger": {
"12": [
- 0,
- 4080
+ 42,
+ 336
],
"18": [
- 0,
- 4094
+ 24,
+ 336
],
"24": [
0,
- 4114
+ 336
]
},
- "school": {
+ "industrial": {
"12": [
- 0,
- 4140
+ 96,
+ 336
],
"18": [
- 0,
- 4154
+ 78,
+ 336
],
"24": [
- 0,
- 4174
+ 54,
+ 336
]
},
- "shop": {
+ "warehouse": {
"12": [
- 0,
- 4200
+ 150,
+ 336
],
"18": [
- 0,
- 4214
+ 132,
+ 336
],
"24": [
- 0,
- 4234
+ 108,
+ 336
]
},
- "skiing": {
+ "commercial": {
"12": [
- 0,
- 4260
+ 204,
+ 336
],
"18": [
- 0,
- 4274
+ 186,
+ 336
],
"24": [
- 0,
- 4294
+ 162,
+ 336
]
},
- "slaughterhouse": {
+ "building": {
"12": [
- 0,
- 4320
+ 258,
+ 336
],
"18": [
- 0,
- 4334
+ 240,
+ 336
],
"24": [
- 0,
- 4354
+ 216,
+ 336
]
},
- "soccer": {
+ "place-of-worship": {
"12": [
- 0,
- 4380
+ 42,
+ 360
],
"18": [
- 0,
- 4394
+ 24,
+ 360
],
"24": [
0,
- 4414
+ 360
]
},
- "square": {
+ "alcohol-shop": {
"12": [
- 0,
- 4440
+ 96,
+ 360
],
"18": [
- 0,
- 4454
+ 78,
+ 360
],
"24": [
- 0,
- 4474
+ 54,
+ 360
]
},
- "square-stroked": {
+ "logging": {
"12": [
- 0,
- 4500
+ 150,
+ 360
],
"18": [
- 0,
- 4514
+ 132,
+ 360
],
"24": [
- 0,
- 4534
+ 108,
+ 360
]
},
- "star": {
+ "oil-well": {
"12": [
- 0,
- 4560
+ 204,
+ 360
],
"18": [
- 0,
- 4574
+ 186,
+ 360
],
"24": [
- 0,
- 4594
+ 162,
+ 360
]
},
- "star-stroked": {
+ "slaughterhouse": {
"12": [
- 0,
- 4620
+ 258,
+ 360
],
"18": [
- 0,
- 4634
+ 240,
+ 360
],
"24": [
- 0,
- 4654
+ 216,
+ 360
]
},
- "swimming": {
+ "dam": {
"12": [
- 0,
- 4680
+ 42,
+ 384
],
"18": [
- 0,
- 4694
+ 24,
+ 384
],
"24": [
0,
- 4714
+ 384
]
},
- "telephone": {
+ "water": {
"12": [
- 0,
- 4740
+ 96,
+ 384
],
"18": [
- 0,
- 4754
+ 78,
+ 384
],
"24": [
- 0,
- 4774
+ 54,
+ 384
]
},
- "tennis": {
+ "wetland": {
"12": [
- 0,
- 4800
+ 150,
+ 384
],
"18": [
- 0,
- 4814
+ 132,
+ 384
],
"24": [
- 0,
- 4834
+ 108,
+ 384
]
},
- "theatre": {
+ "disability": {
"12": [
- 0,
- 4860
+ 204,
+ 384
],
"18": [
- 0,
- 4874
+ 186,
+ 384
+ ],
+ "24": [
+ 162,
+ 384
+ ]
+ },
+ "telephone": {
+ "12": [
+ 258,
+ 384
+ ],
+ "18": [
+ 240,
+ 384
+ ],
+ "24": [
+ 216,
+ 384
+ ]
+ },
+ "emergency-telephone": {
+ "12": [
+ 42,
+ 408
+ ],
+ "18": [
+ 24,
+ 408
],
"24": [
0,
- 4894
+ 408
]
},
"toilets": {
"12": [
- 0,
- 4920
+ 96,
+ 408
],
"18": [
- 0,
- 4934
+ 78,
+ 408
],
"24": [
- 0,
- 4954
+ 54,
+ 408
]
},
- "town": {
+ "waste-basket": {
"12": [
- 0,
- 4980
+ 150,
+ 408
],
"18": [
- 0,
- 4994
+ 132,
+ 408
],
"24": [
- 0,
- 5014
+ 108,
+ 408
]
},
- "town-hall": {
+ "music": {
"12": [
- 0,
- 5040
+ 204,
+ 408
],
"18": [
- 0,
- 5054
+ 186,
+ 408
],
"24": [
- 0,
- 5074
+ 162,
+ 408
]
},
- "triangle": {
+ "land-use": {
"12": [
- 0,
- 5100
+ 258,
+ 408
],
"18": [
- 0,
- 5114
+ 240,
+ 408
],
"24": [
- 0,
- 5134
+ 216,
+ 408
]
},
- "triangle-stroked": {
+ "city": {
"12": [
- 0,
- 5160
+ 42,
+ 432
],
"18": [
- 0,
- 5174
+ 24,
+ 432
],
"24": [
0,
- 5194
+ 432
+ ]
+ },
+ "town": {
+ "12": [
+ 96,
+ 432
+ ],
+ "18": [
+ 78,
+ 432
+ ],
+ "24": [
+ 54,
+ 432
]
},
"village": {
"12": [
- 0,
- 5220
+ 150,
+ 432
],
"18": [
- 0,
- 5234
+ 132,
+ 432
],
"24": [
- 0,
- 5254
+ 108,
+ 432
]
},
- "warehouse": {
+ "farm": {
"12": [
- 0,
- 5280
+ 204,
+ 432
],
"18": [
- 0,
- 5294
+ 186,
+ 432
],
"24": [
- 0,
- 5314
+ 162,
+ 432
]
},
- "waste-basket": {
+ "bakery": {
"12": [
- 0,
- 5340
+ 258,
+ 432
],
"18": [
- 0,
- 5354
+ 240,
+ 432
],
"24": [
- 0,
- 5374
+ 216,
+ 432
]
},
- "water": {
+ "dog-park": {
"12": [
- 0,
- 5400
+ 42,
+ 456
],
"18": [
- 0,
- 5414
+ 24,
+ 456
],
"24": [
0,
- 5434
+ 456
]
},
- "wetland": {
+ "lighthouse": {
"12": [
- 0,
- 5460
+ 96,
+ 456
],
"18": [
- 0,
- 5474
+ 78,
+ 456
],
"24": [
- 0,
- 5494
+ 54,
+ 456
]
},
- "zoo": {
+ "clothing-store": {
"12": [
- 0,
- 5520
+ 150,
+ 456
],
"18": [
- 0,
- 5534
+ 132,
+ 456
+ ],
+ "24": [
+ 108,
+ 456
+ ]
+ },
+ "london-underground": {
+ "12": [
+ 204,
+ 456
+ ],
+ "18": [
+ 186,
+ 456
+ ],
+ "24": [
+ 162,
+ 456
+ ]
+ },
+ "minefield": {
+ "12": [
+ 258,
+ 456
+ ],
+ "18": [
+ 240,
+ 456
+ ],
+ "24": [
+ 216,
+ 456
+ ]
+ },
+ "camera": {
+ "12": [
+ 42,
+ 480
+ ],
+ "18": [
+ 24,
+ 480
],
"24": [
0,
- 5554
+ 480
]
},
"highway-motorway": {
"none": "None",
"custom": "Custom",
"custom_prompt": "Enter a tile template. Valid tokens are {z}, {x}, {y} for Z/X/Y scheme and {u} for quadtile scheme.",
- "fix_misalignment": "Fix misalignment",
+ "fix_misalignment": "Fix alignment",
"reset": "reset"
},
"restore": {
"name": "Pet Store",
"terms": ""
},
+ "shop/photo": {
+ "name": "Photography Store",
+ "terms": ""
+ },
"shop/shoes": {
"name": "Shoe Store",
"terms": ""