From 3c79f9147a3f98f89d916bba2a468d34b2029518 Mon Sep 17 00:00:00 2001 From: Benoit Costamagna Date: Tue, 30 Jan 2018 10:38:18 +0100 Subject: [PATCH 001/157] Parking preset: Removed address from default fields --- data/presets/presets.json | 3 +-- data/presets/presets/amenity/parking.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index e2bbfd3be..eb6c0f2e1 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -2040,8 +2040,7 @@ "supervised", "park_ride", "surface", - "maxstay", - "address" + "maxstay" ], "geometry": [ "point", diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index b83a01f12..dd5ed3c0a 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -9,8 +9,7 @@ "supervised", "park_ride", "surface", - "maxstay", - "address" + "maxstay" ], "geometry": [ "point", From 96c8243e651fdb4eca8bf83f9b53684bb0b0b5c9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 31 Jan 2018 13:58:41 -0500 Subject: [PATCH 002/157] Remove brfs dependency (not using) --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index b2781e9da..20e5a740b 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "devDependencies": { "@mapbox/maki": "^4.0.0", "@std/esm": "^0.20.0", - "brfs": "1.4.3", "chai": "^4.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", From 8f76c32b52564567d1757313cb24a3d6aecd5ef4 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Feb 2018 11:17:23 -0500 Subject: [PATCH 003/157] 2.6.1 changelog --- CHANGELOG.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14b2d6b4d..90fd2c778 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,93 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, [@xxxx]: https://github.com/xxxx --> +# 2.6.1 +##### February 1, 2018 + +#### :tada: New Features +* Add Esri World Imagery (Clarity) layer ([editor-layer-index#391], thanks [@jgravois]) +* Support multiple semicolon delimited direction values ([#4755]) +* No longer imply `oneway=yes` for `highway=motorway_link` without a `oneway` tag ([#4727]) + +[editor-layer-index#391]: https://github.com/osmlab/editor-layer-index/pull/391 +[#4755]: https://github.com/openstreetmap/iD/issues/4755 +[#4727]: https://github.com/openstreetmap/iD/issues/4727 +[@jgravois]: https://github.com/jgravois + +#### :sparkles: Usability +* Replace help icon ([#4650]) +* Improve details of delete summary warning ([#4666], [#4751], thanks [@bencostamagna]) +* Support fallback mode for Mapillary viewer when WebGL disabled ([#3804]) +* Hide the active vertex while drawing in wireframe mode ([#4739]) +* Describe relation in tooltip in add membership list ([#4694], thanks [@1ec5]) +* Persist more user preferences to browser storage ([#2864], [#4720], [#4738], thanks [@bagage]) + * wireframe area fill + * recently used background imagery + * selected feature filters +* Increase GPX labels readability ([#4617], [#4678], thanks [@nnodot]) +* Draw covered/underground lines beneath areas ([#4718]) + +[#4751]: https://github.com/openstreetmap/iD/issues/4751 +[#4739]: https://github.com/openstreetmap/iD/issues/4739 +[#4738]: https://github.com/openstreetmap/iD/issues/4738 +[#4720]: https://github.com/openstreetmap/iD/issues/4720 +[#4718]: https://github.com/openstreetmap/iD/issues/4718 +[#4694]: https://github.com/openstreetmap/iD/issues/4694 +[#4678]: https://github.com/openstreetmap/iD/issues/4678 +[#4666]: https://github.com/openstreetmap/iD/issues/4666 +[#4650]: https://github.com/openstreetmap/iD/issues/4650 +[#4617]: https://github.com/openstreetmap/iD/issues/4617 +[#3804]: https://github.com/openstreetmap/iD/issues/3804 +[#2864]: https://github.com/openstreetmap/iD/issues/2864 +[@bencostamagna]: https://github.com/bencostamagna +[@1ec5]: https://github.com/1ec5 +[@bagage]: https://github.com/bagage +[@nnodot]: https://github.com/nnodot + +#### :bug: Bugfixes +* Remove any duplicate vertex created when moving a way ([#4433], [#3797]) +* Fix way shape deformation when moving ([#4146]) +* Stop sequence from playing when the Mapillary viewer is hidden ([#4707]) +* Graceful fallback when clicking on a Mapillary marker along a sequence not yet processed ([#4536]) +* Fix bug making nodes undraggable along a degenerate multipolygon ([#4741]) +* Fix ⌘S/Ctrl+S keybinding ([#4728]) + +[#4741]: https://github.com/openstreetmap/iD/issues/4741 +[#4728]: https://github.com/openstreetmap/iD/issues/4728 +[#4707]: https://github.com/openstreetmap/iD/issues/4707 +[#4536]: https://github.com/openstreetmap/iD/issues/4536 +[#4433]: https://github.com/openstreetmap/iD/issues/4433 +[#4146]: https://github.com/openstreetmap/iD/issues/4146 +[#3797]: https://github.com/openstreetmap/iD/issues/3797 + +#### :earth_asia: Localization +* Localize nominatim search results ([#4725]) +* Localize numbers, units in scale, info panels ([#4672], thanks [@1ec5]) + +[#4725]: https://github.com/openstreetmap/iD/issues/4725 +[#4672]: https://github.com/openstreetmap/iD/issues/4672 +[@1ec5]: https://github.com/1ec5 + +#### :rocket: Presets +* Remove address field from parking preset ([#4748], [#4756], thanks [@bencostamagna]) +* Add preset for `barrier=kerb` ([#4702], [#4715], thanks [@jay-manday]) +* Add preset for `amenity=smoking_area` ([#4701], [#4737], thanks [@bencostamagna]) +* Add preset for `emergency=water_tank` ([#4736], thanks [@bencostamagna]) +* Add religion, denomination fields to school preset ([#4722]) +* Add religion, denomination fields to religious landuse preset ([#4721]) + +[#4756]: https://github.com/openstreetmap/iD/issues/4756 +[#4748]: https://github.com/openstreetmap/iD/issues/4748 +[#4737]: https://github.com/openstreetmap/iD/issues/4737 +[#4736]: https://github.com/openstreetmap/iD/issues/4736 +[#4722]: https://github.com/openstreetmap/iD/issues/4722 +[#4721]: https://github.com/openstreetmap/iD/issues/4721 +[#4715]: https://github.com/openstreetmap/iD/issues/4715 +[#4702]: https://github.com/openstreetmap/iD/issues/4702 +[#4701]: https://github.com/openstreetmap/iD/issues/4701 +[@bencostamagna]: https://github.com/bencostamagna +[@jay-manday]: https://github.com/jay-manday + # 2.6.0 ##### January 21, 2018 From 9d55cfb70f0fe05e0a8be87c52fee4035ce316bc Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Feb 2018 11:36:20 -0500 Subject: [PATCH 004/157] Treat both EsriWorldImagery layers the same (support vintage, etc) --- modules/renderer/background.js | 2 +- modules/renderer/tile_layer.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/renderer/background.js b/modules/renderer/background.js index 89eabc335..2cfc25d09 100644 --- a/modules/renderer/background.js +++ b/modules/renderer/background.js @@ -356,7 +356,7 @@ export function rendererBackground(context) { _backgroundSources = dataImagery.map(function(source) { if (source.type === 'bing') { return rendererBackgroundSource.Bing(source, dispatch); - } else if (source.id === 'EsriWorldImagery') { + } else if (/^EsriWorldImagery/.test(source.id)) { return rendererBackgroundSource.Esri(source); } else { return rendererBackgroundSource(source); diff --git a/modules/renderer/tile_layer.js b/modules/renderer/tile_layer.js index b0fb42aa3..475147e43 100644 --- a/modules/renderer/tile_layer.js +++ b/modules/renderer/tile_layer.js @@ -257,7 +257,7 @@ export function rendererTileLayer(context) { .selectAll('.tile-label-debug-vintage') .each(function(d) { var span = d3_select(this); - var center = context._projection.invert(tileCenter(d)); + var center = context.projection.invert(tileCenter(d)); _source.getMetadata(center, d, function(err, result) { span.text((result && result.vintage && result.vintage.range) || t('info_panels.background.vintage') + ': ' + t('info_panels.background.unknown') From 19b87c07add722c1df271af3199fcd16913d2a12 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Feb 2018 11:37:27 -0500 Subject: [PATCH 005/157] npm run imagery --- data/imagery.json | 514 ++++++++++++++++++++++++++++++++++++++++++- dist/locales/en.json | 7 + 2 files changed, 517 insertions(+), 4 deletions(-) diff --git a/data/imagery.json b/data/imagery.json index fa4316e54..d6d598278 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -14298,13 +14298,28 @@ "terms_text": "Terms & Feedback", "default": true, "description": "Esri world imagery.", - "icon": "data:image/png;base64,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" + "icon": "data:image/png;base64,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" + }, + { + "id": "EsriWorldImageryClarity", + "name": "Esri World Imagery (Clarity) Beta", + "type": "tms", + "template": "https://clarity.maptiles.arcgis.com/arcgis/rest/services/World_Imagery/MapServer/tile/{zoom}/{y}/{x}", + "scaleExtent": [ + 0, + 22 + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/Esri", + "terms_text": "Terms & Feedback", + "default": true, + "description": "Esri archive imagery that may be clearer and more accurate than the default layer.", + "icon": "data:image/png;base64,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" }, { "id": "maaamet.ee-orto", "name": "Estonia Ortho (Maaamet)", "type": "tms", - "template": "http://kaart.maakaart.ee/orto/{zoom}/{x}/{y}.jpeg", + "template": "http://tiles.maaamet.ee/tm/tms/1.0.0/foto@GMC/{zoom}/{x}/{-y}.png", "scaleExtent": [ 14, 18 @@ -26436,9 +26451,57 @@ "description": "For more accurate coastline and glacier mapping (true color)", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" }, + { + "id": "osmim-imagicode-S2A_R017_S67_20170223T022551", + "name": "imagico.de: Bunger Hills", + "type": "tms", + "template": "http://imagico.de/map/osmim_tiles.php?layer=S2A_R017_S67_20170223T022551&z={zoom}&x={x}&y={-y}", + "endDate": "2017-02-23T00:00:00.000Z", + "startDate": "2017-02-23T00:00:00.000Z", + "scaleExtent": [ + 0, + 13 + ], + "polygon": [ + [ + [ + 96.1197, + -67.6542 + ], + [ + 96.1201, + -67.1899 + ], + [ + 98.7331, + -65.044 + ], + [ + 105.1028, + -65.044 + ], + [ + 105.1028, + -65.7224 + ], + [ + 103.3017, + -67.6542 + ], + [ + 96.1197, + -67.6542 + ] + ] + ], + "terms_url": "http://maps.imagico.de/#osmim", + "terms_text": "imagico.de OSM images for mapping", + "description": "Largest ice free area at the East Antarctic coast - shows considerable amounts of non-permanent ice. (true color)", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" + }, { "id": "osmim-imagicode-S2A_R065_N47_20160929T102022", - "name": "imagico.de: Cental Alps in late September 2016", + "name": "imagico.de: Central Alps in late September 2016", "type": "tms", "template": "http://imagico.de/map/osmim_tiles.php?layer=S2A_R065_N47_20160929T102022&z={zoom}&x={x}&y={-y}", "endDate": "2016-09-29T00:00:00.000Z", @@ -27936,6 +27999,62 @@ "description": "Latest images north of the regular Landsat limit (true color)", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" }, + { + "id": "osmim-imagicode-larsen_2018", + "name": "imagico.de: Larsen C ice shelf after calving", + "type": "tms", + "template": "http://imagico.de/map/osmim_tiles.php?layer=larsen_2018&z={zoom}&x={x}&y={-y}", + "endDate": "2018-01-06T00:00:00.000Z", + "startDate": "2018-01-06T00:00:00.000Z", + "scaleExtent": [ + 0, + 12 + ], + "polygon": [ + [ + [ + -62.7282, + -68.9652 + ], + [ + -64.0489, + -68.7318 + ], + [ + -64.0486, + -68.5373 + ], + [ + -60.8845, + -65.9399 + ], + [ + -59.9187, + -65.9389 + ], + [ + -59.1088, + -66.0775 + ], + [ + -59.1088, + -68.8359 + ], + [ + -59.2544, + -68.9652 + ], + [ + -62.7282, + -68.9652 + ] + ] + ], + "terms_url": "http://maps.imagico.de/#osmim", + "terms_text": "imagico.de OSM images for mapping", + "description": "For updating the ice edge after the 2017 iceberg calving (true color)", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" + }, { "id": "osmim-imagicode-AST_L1T_00311162013112731_20150618142416_109190", "name": "imagico.de: Leskov Island ASTER", @@ -28092,6 +28211,58 @@ "description": "First available image north of the regular Landsat limit, mostly with seasonal snow cover so difficult to interpret (true color)", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" }, + { + "id": "osmim-imagicode-S2A_R042_S78_20170214T202521", + "name": "imagico.de: McMurdo Sound and Dry Valleys ", + "type": "tms", + "template": "http://imagico.de/map/osmim_tiles.php?layer=S2A_R042_S78_20170214T202521&z={zoom}&x={x}&y={-y}", + "endDate": "2017-02-14T00:00:00.000Z", + "startDate": "2017-02-14T00:00:00.000Z", + "scaleExtent": [ + 0, + 12 + ], + "polygon": [ + [ + [ + 162.9125, + -78.4514 + ], + [ + 162.6595, + -78.4257 + ], + [ + 159.2712, + -77.6013 + ], + [ + 159.2712, + -77.4108 + ], + [ + 164.157, + -76.477 + ], + [ + 169.7813, + -76.4764 + ], + [ + 169.7813, + -78.4514 + ], + [ + 162.9125, + -78.4514 + ] + ] + ], + "terms_url": "http://maps.imagico.de/#osmim", + "terms_text": "imagico.de OSM images for mapping", + "description": "Up-to-date late season image - not ice minimum, be careful with distinguishing sea ice from ice shelves. (true color)", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" + }, { "id": "osmim-imagicode-S2A_R092_S02_20160613T075613", "name": "imagico.de: Mount Kenya 2016", @@ -29892,6 +30063,74 @@ "description": "Recent image showing newest features (true color)", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" }, + { + "id": "osmim-imagicode-walps_autumn_2017", + "name": "imagico.de: Western Alps autumn colors 2017", + "type": "tms", + "template": "http://imagico.de/map/osmim_tiles.php?layer=walps_autumn_2017&z={zoom}&x={x}&y={-y}", + "endDate": "2017-10-17T00:00:00.000Z", + "startDate": "2017-10-17T00:00:00.000Z", + "scaleExtent": [ + 0, + 13 + ], + "polygon": [ + [ + [ + 4.6412, + 43.2493 + ], + [ + 4.3118, + 43.2653 + ], + [ + 4.3118, + 44.2167 + ], + [ + 5.2562, + 46.965 + ], + [ + 5.9151, + 48.7177 + ], + [ + 7.3866, + 48.7467 + ], + [ + 10.088, + 48.7467 + ], + [ + 10.088, + 48.7032 + ], + [ + 7.7819, + 43.2813 + ], + [ + 7.76, + 43.2653 + ], + [ + 7.3646, + 43.2493 + ], + [ + 4.6412, + 43.2493 + ] + ] + ], + "terms_url": "http://maps.imagico.de/#osmim", + "terms_text": "imagico.de OSM images for mapping", + "description": "Autumn colors in the Alps, Jura and southwestern Germany (true color)", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAADWElEQVQ4y13TS2gcdQDH8e/szGQ372Tz2irGpoS0KSapoqjRQ4knD0WweLRCCXiQXuJFMR6EYMVC0IsPyKVFsJpWbQ0KQmL14KPWirGmZjdmk+w7mX1kZ2d2dv7/mfFUsX5Pv8Pv+lH4X6/NvTPc239gOlXyp7ZzlaEg8EGYyVaZWY7dc+/CuTde+fu/f+XOeP3iLT2bTMxN9NVm1PZhbfKBGC/OXsDzHJr1EEf6ilSMLZFrxObHJk/OfvDqCQmgArz3TUJfXZm/3K53nZ4YPRw69czjXPrqR+LJHJ4rUFXA3qG33Va3cpknU2vxY1pz9yWzlPZVgL6xobNGXp7u6T9Geq/O+U+usHRtE6du0aJncSyXtnCOcqVC0ZTIhnM44itNhpFeVs5+kRxe//OP22VDar4ncRwHz85TKtY40H2D4n6KwNMRgUPIC9ES0mj2NNwK4rfE2qhWyBnT1YrUQkqA3hwmpIYw63law4JcaR/hR9GVAh2tOmEUHunpwKkJVm10VdOntbptP+VJiaIoKIDv7zPQbVDxJIPRPkRkh8CN0KFrjHdGiXW3kkuXSRYEakid0qQrDkrhEgQ+tZpNtVTmoQdNrGgB6XjUpEJzSxvCgnhOZ+RQFKtcZV8IpO8NhXxfIoWLY9tUS0XePxXHMNrY3BxkOx+lXVX54dc+VjdaiHabXPg6RcMSWFULT3poEGxJ0eit1Wq06w4FMURPl8NObo9MvgnTaOGF402M399DrDNEPJHnl99rZIoWvudvaeGwtux53sOPjffy9pn7CHdKnn5WJ/5XnudnrjF2tJ/F61mGBiIc7fe4mXT5ds0lu1tE8f1lbSDWu5DZyb98fMLVwp0dgINv5Bjpcfj50yloUsAo8Ob8T/iVBociLrtlC9+tCwgW1O8++7A09dxLbUvfrzzRpV7nSCyK0qRDOEwjlUYr7iH2DPx6hXevpLi5YXNjfRsCcQ4aiwrAlxuB/tHCx5fTyaUTg/1pJke6eHR0GF9AKZtnv1BlYSWFWYBEepdyuXwV5EmQ8l9Mn9929asXF+c21xMz5b1NreHewvNcHAc0qRGpQyqfFZZZnQc5C1LepfFOZ946P5xJbkybRmbKzm8f3C3b2GZlyzYLy9WqteD5jbs4/wOHuM2qT5aWEQAAAABJRU5ErkJggg==" + }, { "id": "osmim-imagicode-LC81490352013282LGN00", "name": "imagico.de: Western Karakoram", @@ -35831,7 +36070,7 @@ "id": "lu.geoportail.opendata.ortholatest", "name": "Latest available ortho geoportail.lu", "type": "tms", - "template": "https://{switch:wmts3,wmts4}.geoportail.lu/opendata/wmts/ortho_latest/GLOBAL_WEBMERCATOR_4_V3/{zoom}/{x}/{y}.jpeg", + "template": "http://{switch:wmts1,wmts2}.geoportail.lu/opendata/wmts/ortho_latest/GLOBAL_WEBMERCATOR_4_V3/{zoom}/{x}/{y}.jpeg", "scaleExtent": [ 0, 20 @@ -72564,6 +72803,273 @@ ], "terms_text": "Stadt Zürich Open Government Data" }, + { + "id": "UrbISOrtho2017", + "name": "UrbIS-Ortho 2017", + "type": "tms", + "template": "http://whoots.mapwarper.net/tms/{zoom}/{x}/{y}/Urbis:Ortho2017/https://geoservices-urbis.irisnet.be/geoserver/ows", + "endDate": "2018-01-01T00:00:00.000Z", + "startDate": "2017-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 4.3797288, + 50.7638205 + ], + [ + 4.3891701, + 50.7637662 + ], + [ + 4.430283, + 50.7751656 + ], + [ + 4.4350037, + 50.7750028 + ], + [ + 4.464272, + 50.7864537 + ], + [ + 4.4816956, + 50.7913372 + ], + [ + 4.4823823, + 50.7961658 + ], + [ + 4.459208, + 50.8062556 + ], + [ + 4.4594655, + 50.8166144 + ], + [ + 4.4797215, + 50.8203559 + ], + [ + 4.4695935, + 50.8353735 + ], + [ + 4.4689927, + 50.8457258 + ], + [ + 4.4623837, + 50.8539626 + ], + [ + 4.4496808, + 50.8559133 + ], + [ + 4.4459901, + 50.8599226 + ], + [ + 4.4253049, + 50.8661526 + ], + [ + 4.431828, + 50.8762815 + ], + [ + 4.4400677, + 50.8784478 + ], + [ + 4.4310555, + 50.8901441 + ], + [ + 4.4359479, + 50.8950167 + ], + [ + 4.4295964, + 50.9010255 + ], + [ + 4.4165501, + 50.9075748 + ], + [ + 4.4154343, + 50.9134197 + ], + [ + 4.3957791, + 50.914069 + ], + [ + 4.3846211, + 50.9109303 + ], + [ + 4.3811879, + 50.9031907 + ], + [ + 4.3726048, + 50.9003218 + ], + [ + 4.3621335, + 50.9032989 + ], + [ + 4.3485722, + 50.9034072 + ], + [ + 4.3402467, + 50.9041108 + ], + [ + 4.328917, + 50.902487 + ], + [ + 4.3164716, + 50.8960453 + ], + [ + 4.3063435, + 50.8927429 + ], + [ + 4.2900357, + 50.8898192 + ], + [ + 4.2914948, + 50.8849461 + ], + [ + 4.2955289, + 50.8826176 + ], + [ + 4.2956147, + 50.8809389 + ], + [ + 4.2827401, + 50.8722735 + ], + [ + 4.2769894, + 50.8671277 + ], + [ + 4.2780194, + 50.8591099 + ], + [ + 4.2804227, + 50.8572136 + ], + [ + 4.2809376, + 50.8421489 + ], + [ + 4.2719254, + 50.8403603 + ], + [ + 4.2546735, + 50.8369455 + ], + [ + 4.2510686, + 50.83288 + ], + [ + 4.2522702, + 50.8269708 + ], + [ + 4.2434296, + 50.82182 + ], + [ + 4.2440305, + 50.8154755 + ], + [ + 4.2551884, + 50.8150959 + ], + [ + 4.2580209, + 50.8093472 + ], + [ + 4.2721829, + 50.8101065 + ], + [ + 4.2757878, + 50.8069607 + ], + [ + 4.2854008, + 50.8050623 + ], + [ + 4.2890057, + 50.8069065 + ], + [ + 4.298018, + 50.8059302 + ], + [ + 4.3028245, + 50.7970881 + ], + [ + 4.3145833, + 50.7945382 + ], + [ + 4.3162141, + 50.7862367 + ], + [ + 4.3295178, + 50.7738087 + ], + [ + 4.3420491, + 50.7716375 + ], + [ + 4.3452248, + 50.7733745 + ], + [ + 4.3785271, + 50.7681092 + ], + [ + 4.3797288, + 50.7638205 + ] + ] + ], + "terms_text": "Realized by means of Brussels UrbIS®© - Distribution & Copyright CIRB", + "best": true, + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAACnUlEQVQoz11SXUiTYRh93ndz06YMNWcpRmWRSpgO+0EUDYwQ6sZ+oAyti8y6yCyKxOimILqQsLKbukmHSpFFLYlMqSkUmi3/pjZ/Zmv+Tec2bU237z1dfFHSc/HcPOc5HM45DAAREREgGOM217BpzDjs7PEHfNGa2PT47KxN+RFqrYDgjBMRE0JijBMRAKOlzmgxhChDN0cla1ThM0uTE65vsRFxRRkXk3TpMiMBkEQQQFPvw0LDnoYvVStBNwAhBIApj+X6m5OlT/dbnX0AJCHxkbl+zhTWub6XA4ZDqcd3JJTl1to7HV7G2E3TxOU2zaWcKm1YZKO5RlaliNknBma6Bqe7V6SVc5mVrmVFxSvLu1G3bSlwy2jVaXE6IzE0JLzV+jxJlxYTvp5X5j3Qx2ePzPcn6VJVysiUaHXX+d2zy8HqlrE8/bq3xXoiStalr1Fpxl1DRMQ547s27NWGRikVKtmuju9e34pEYcrhWV/f7E8iUinDQrjaH/AREQfAmSJGEzc6P0Qkvbd5ymt7DqfEmEr0Tre/4PFXInK4R7z+hXjtRiIi2aKPtpbi+qxue6vHj5ou+8KvAIBPP7yG3mkAd9sry18ULPrdAAgQAIJS4EZLacXrwqVlDwBJiKAkJCEB+Gz/UNyQ1TxY/8dWIiYgFFx5JPXM7JLjWe8jIgKBM3DGXT5no7lmy9rteVsLiIjJGXPGBcQ2XdqBlKJWa1PHeLOCcRAEhKH7zuKy+4T+QohCDQhGjLBqJBGsNl0teZI3OGMG0GiuKarPNI0aZTEyhq0qHxhjXv/C7bYyASkjIddoqctPOnY07ezf5hHRvwcikg+TXtv9jmsOjy0n8eCpnVeIESMiecnE/6kC0D/Vea+90h/wARAQqwG/AaEjsUbwLtXdAAAAAElFTkSuQmCC" + }, { "id": "USGS-Large_Scale", "name": "USGS Large Scale Imagery", diff --git a/dist/locales/en.json b/dist/locales/en.json index 99d7fdb52..7b2314259 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -6369,6 +6369,13 @@ "description": "Esri world imagery.", "name": "Esri World Imagery" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Terms & Feedback" + }, + "description": "Esri archive imagery that may be clearer and more accurate than the default layer.", + "name": "Esri World Imagery (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap contributors, CC-BY-SA" From 68a4c1c7b831ac36f12ed518b426f9d3e06c1dbe Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Feb 2018 11:37:51 -0500 Subject: [PATCH 006/157] npm run translations --- data/locales.json | 3 + dist/locales/ar.json | 1 - dist/locales/ast.json | 2 - dist/locales/ca.json | 2 - dist/locales/cs.json | 2 - dist/locales/cy.json | 151 ++++++++ dist/locales/da.json | 85 ++++- dist/locales/de.json | 238 +++++++----- dist/locales/en-GB.json | 15 +- dist/locales/eo.json | 56 ++- dist/locales/es.json | 5 +- dist/locales/et.json | 1 - dist/locales/fa.json | 14 +- dist/locales/fi.json | 2 - dist/locales/fr.json | 18 +- dist/locales/gl.json | 67 +++- dist/locales/he.json | 34 +- dist/locales/hr.json | 1 - dist/locales/hu.json | 326 ++++++++++++++++- dist/locales/it.json | 775 ++++++++++++++++++++++++++++++++++------ dist/locales/ja.json | 138 ++++--- dist/locales/kn.json | 37 +- dist/locales/ko.json | 129 ++++++- dist/locales/lt.json | 1 - dist/locales/ms.json | 3 - dist/locales/nl.json | 187 +++++----- dist/locales/no.json | 3 - dist/locales/pl.json | 3 - dist/locales/pt-BR.json | 31 +- dist/locales/pt.json | 64 +++- dist/locales/ro.json | 1 - dist/locales/ru.json | 7 +- dist/locales/sk.json | 5 +- dist/locales/sl.json | 3 - dist/locales/sr.json | 2 - dist/locales/sv.json | 6 +- dist/locales/tr.json | 3 - dist/locales/uk.json | 81 ++++- dist/locales/vi.json | 44 ++- dist/locales/zh-CN.json | 114 ++++-- dist/locales/zh-HK.json | 3 - dist/locales/zh-TW.json | 48 ++- 42 files changed, 2180 insertions(+), 531 deletions(-) create mode 100644 dist/locales/cy.json diff --git a/data/locales.json b/data/locales.json index 380eea819..5bfac1cd3 100644 --- a/data/locales.json +++ b/data/locales.json @@ -33,6 +33,9 @@ "cs": { "rtl": false }, + "cy": { + "rtl": false + }, "da": { "rtl": false }, diff --git a/dist/locales/ar.json b/dist/locales/ar.json index 4c53834b7..93c05fb8f 100644 --- a/dist/locales/ar.json +++ b/dist/locales/ar.json @@ -624,7 +624,6 @@ "untagged_area_tooltip": "اختر نوع العنصر التي يصف هذه المساحة.", "untagged_relation": "علاقة غير موسومة", "untagged_relation_tooltip": "اختر نوع العنصر الذي يصف ما هية هذه العلاقة.", - "many_deletions": "أنت على وشك حذف {n} من العناصر. هل أنت متأكد من ذلك؟ ستُحذف تلك البيانات من الخريطة التي يمكن للجميع أن يراها على openstreetmap.org.", "tag_suggests_area": "الوسم {tag} يقترح بأن الخط يجب أن يكون منطقة، ولكنها حاليا ليست منطقة", "deprecated_tags": "وسوم مهجورة: {tags}" }, diff --git a/dist/locales/ast.json b/dist/locales/ast.json index a781bfbac..0a56d31b5 100644 --- a/dist/locales/ast.json +++ b/dist/locales/ast.json @@ -389,7 +389,6 @@ "title": "Midíes", "selected": "{n} seleicionaos", "geometry": "Xeometría", - "closed": "zarráu", "center": "Centru", "perimeter": "Perímetru", "length": "Llonxitú", @@ -468,7 +467,6 @@ "switch": "Volver a esti fondu", "custom": "Personalizáu", "custom_button": "Editar fondu personalizáu", - "custom_prompt": "Escribir una plantía d'URL de mosaicu. Los tokens válidos son:\n - {zoom}/{z}, {x}, {y} pal esquema de mosaicu Z/X/Y\n - {ty} pa coordenaes Y invertíes estilu TMS\n - {u} pal esquema quadtile\n - {switch:a,b,c} pal multiplexáu de sirvidores DNS\n\nExemplu:\n{example}", "reset": "reaniciar", "minimap": { "tooltip": "Amuesa un mapa alloñáu p'ayudar a alcontrar l'área que se ve actualmente.", diff --git a/dist/locales/ca.json b/dist/locales/ca.json index 12f238306..d21582fac 100644 --- a/dist/locales/ca.json +++ b/dist/locales/ca.json @@ -389,7 +389,6 @@ "title": "Mesurament", "selected": "{n} seleccionat", "geometry": "Geometria", - "closed": "tancat", "center": "Center", "perimeter": "Perímetre", "length": "Longitud", @@ -642,7 +641,6 @@ "untagged_area_tooltip": "Seleccioneu un tipus d'objecte que descrigui el que és aquesta àrea.", "untagged_relation": "Relació sense etiquetar", "untagged_relation_tooltip": "Seleccioneu un tipus d'objecte que descrigui com és aquesta relació.", - "many_deletions": "Esteu eliminant {n} objectes. Segur que ho voleu fer? Això els eliminarà del mapa que tothom veu a openstreetmap.org", "tag_suggests_area": "L'etiqueta {tag} suggereix que la línia hauria de ser una àrea, però no és una àrea", "deprecated_tags": "Etiquetes obsoletes : {tags}" }, diff --git a/dist/locales/cs.json b/dist/locales/cs.json index 01673e4f6..ae938f51c 100644 --- a/dist/locales/cs.json +++ b/dist/locales/cs.json @@ -383,7 +383,6 @@ "title": "Měřítko", "selected": "{n} vybráno", "geometry": "Geometrie", - "closed": "zavřeno", "center": "Střed", "perimeter": "Perimetr", "length": "Délka", @@ -635,7 +634,6 @@ "untagged_area_tooltip": "Zvolte typ vlastnosti popisující, co je tato plocha zač.", "untagged_relation": "Neoznačená relace", "untagged_relation_tooltip": "Vyber typ prvku, který popisuje, čím je tato relace", - "many_deletions": "Snažíte se smazat {n} objektů. Jste si jisti, že to opravdu chcete udělat? Tím je smažete z mapy, která je pro každého zobrazena na stránce openstreetmap.org.", "tag_suggests_area": "Vlastnost {tag} obvykle označuje plochu, ale zvolený objekt není plocha", "deprecated_tags": "Zastaralé vlastnosti: {tag}" }, diff --git a/dist/locales/cy.json b/dist/locales/cy.json new file mode 100644 index 000000000..037275e91 --- /dev/null +++ b/dist/locales/cy.json @@ -0,0 +1,151 @@ +{ + "cy": { + "modes": { + "add_area": { + "title": "Ardal", + "description": "Ychwanegu parciau, adeiladau, llynnoedd neu ardaloedd eraill i'r map.", + "tail": "Cliciwch ar y map i ddechrau llunio ardal, fel parc, llyn, neu adeilad." + }, + "add_line": { + "title": "Llinell", + "description": "Ychwanegu prif-ffyrdd, strydoedd, llwybrau troed, camlas, neu llinelloedd eraill i'r map.", + "tail": "Cliciwch ar y map i ddechrau llunio ffordd neu llwybr." + }, + "add_point": { + "title": "Pwynt", + "description": "Ychwanegu bwytai, henebion, blychau post neu pwyntiau eraill i'r map.", + "tail": "Cliciwch ar y map i ychwanegu pwynt." + }, + "browse": { + "title": "Pori" + } + }, + "operations": { + "add": { + "annotation": { + "point": "Wedi ychwanegu pwynt." + } + }, + "start": { + "annotation": { + "line": "Wedi dechrau llinell.", + "area": "Wedi dechrau ardal." + } + }, + "straighten": { + "title": "Sythu", + "description": "Sythu'r llinell yma", + "annotation": "Wedi sythu llinell." + }, + "delete": { + "title": "Dileu", + "annotation": { + "point": "Wedi dileu pwynt.", + "line": "Wedi dileu llinell.", + "area": "Wedi dileu ardal." + } + }, + "disconnect": { + "title": "Dad-gysylltu", + "description": "Dad-gysylltu'r llinelloedd/ardaloedd yma o'u gilydd.", + "annotation": "Llinelloedd/ardaloedd wedi'u ddad-gysylltu." + }, + "move": { + "title": "Symyd", + "annotation": { + "point": "Wedi symyd pwynt.", + "line": "Wedi symyd llinell.", + "area": "Wedi symyd ardal." + } + } + }, + "success": { + "help_link_text": "Manylion" + }, + "tag_reference": { + "description": "Disgrifiad" + }, + "shortcuts": { + "editing": { + "commands": { + "undo": "Dad-wneud gweithred diwethaf", + "redo": "Ail-wneud gweithred diwethaf", + "save": "Cadw newidiadau" + } + }, + "tools": { + "title": "Teclynnau", + "info": { + "title": "Gwybodaeth" + } + } + }, + "units": { + "north": "G", + "south": "D", + "east": "Dw", + "west": "Gr" + }, + "presets": { + "categories": { + "category-barrier": { + "name": "Nodweddion Rhwystr" + }, + "category-building": { + "name": "Nodweddion Adeilad" + }, + "category-golf": { + "name": "Nodweddion Golff" + }, + "category-landuse": { + "name": "Nodweddion Defnydd Tir" + }, + "category-natural-area": { + "name": "Nodweddion Naturiol" + }, + "category-natural-line": { + "name": "Nodweddion Naturiol" + }, + "category-natural-point": { + "name": "Nodweddion Naturiol" + }, + "category-path": { + "name": "Nodweddion Llwybr" + }, + "category-rail": { + "name": "Nodweddion Rheilffordd" + }, + "category-restriction": { + "name": "Nodweddion Cyfyngiad" + }, + "category-road": { + "name": "Nodweddion Ffordd" + }, + "category-water-area": { + "name": "Nodweddion Dŵr" + }, + "category-water-line": { + "name": "Nodweddion Dŵr" + } + }, + "fields": { + "access": { + "label": "Yn Caniatau Mynediad", + "options": { + "designated": { + "description": "Yn caniatau mynediad yn ôl arwyddion neu is-ddeddfau lleol", + "title": "Dynodedig" + }, + "destination": { + "description": "Yn caniatau mynediad ond i gyrraedd cyrchfan", + "title": "Cyrchfan" + }, + "no": { + "description": "Dim caniatad mynediad i'r cyhoedd" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/dist/locales/da.json b/dist/locales/da.json index ac6fd0456..e444b3a41 100644 --- a/dist/locales/da.json +++ b/dist/locales/da.json @@ -25,6 +25,9 @@ }, "draw_line": { "tail": "Klik for at tilføje flere punkter til linjen. Klik på andre linjer for at forbinde til dem og dobbeltklik for at afslutte linjen." + }, + "drag_node": { + "connected_to_hidden": "Kan ikke redigeres da den er forbundet til et skjult kortobjekt." } }, "operations": { @@ -386,7 +389,8 @@ "title": "Målinger", "selected": "{n} markeret", "geometry": "Geometri", - "closed": "lukket", + "closed_line": "lukket linje", + "closed_area": "lukket område", "center": "Centrum", "perimeter": "Omkreds", "length": "Længde", @@ -394,7 +398,8 @@ "centroid": "Geometrisk centrum", "location": "Lokation", "metric": "Metrisk", - "imperial": "Imperial" + "imperial": "Imperial", + "node_count": "Antal noder" } }, "geometry": { @@ -460,21 +465,28 @@ "title": "Baggrund", "description": "Baggrundsindstillinger", "key": "B", + "backgrounds": "Baggrunde", "none": "Ingen", "best_imagery": "Bedst kendte luftfotokilde for denne her lokalitet", "switch": "Skift tilbage til denne baggrund", "custom": "Brugerdefineret", "custom_button": "Rediger brugerdefineret baggrund", - "custom_prompt": "Indtast en URL-skabelon for kort-fliser. Gyldige formater er:\n - {zoom}/{z}, {x}, {y} til Z/X/Y flise-skemaer\n - {ty} til omvendte Y-koordinater i TMS-stil\n - {u} til quad-flise-skemaer\n - {switch:a,b,c} til multipleksning af DNS-server\n\nEksempel:\n{example}", + "custom_prompt": "Indtast en URL-skabelon for kort-fliser. Gyldige formater er:\n - {zoom} eller {z}, {x}, {y} for Z/X/Y flise-skemaer\n - {-y} eller {ty} for omvendte Y-koordinater i TMS-stil\n - {u} for quad-flise-skemaer\n - {switch:a,b,c} for multipleksning af DNS-opslag\n\nEksempel:\n{example}", + "overlays": "Overlægninger", + "imagery_source_faq": "Information / rapportér problem angående luftfoto", "reset": "nulstil", + "display_options": "Visningsindstillinger", + "brightness": "Lysstyrke", "contrast": "Kontrast", + "saturation": "Mætning", "sharpness": "Skarphed", "minimap": { + "description": "Vis minikort", "tooltip": "Vis et udzommet kort for at hjælpe med at lokalisere det viste område.", "key": "/" }, - "fix_misalignment": "Juster billedets offset", - "offset": "Træk et hvert sted i det grå område nedenfor for at justere billedets offset eller indtast offset-værdien i meter." + "fix_misalignment": "Juster luftfoto-offset", + "offset": "Træk et vilkårligt i det grå område nedenfor for at justere luftfotoets offset eller indtast offset-værdien i meter." }, "map_data": { "title": "Kortdata", @@ -545,7 +557,7 @@ "area_fill": { "wireframe": { "description": "Ingen fyld (trådnet)", - "tooltip": "At slå visning med trådnet til gør det let at se baggrundsbilledet.", + "tooltip": "Aktivering af trådnetsvisning tydeliggør luftfotoet i baggrunden.", "key": "W" }, "partial": { @@ -571,6 +583,7 @@ "status_code": "Serveren returnerede følgende statuskode {code}", "unknown_error_details": "Kontrollér om du har forbindelse til internettet.", "uploading": "Uploader ændringer til OpenStreetMap...", + "conflict_progress": "Kontrollerer konflikter: {num} ud af {total}", "unsaved_changes": "Du har ændringer, der endnu ikke er gemt", "conflict": { "header": "Løs konfliktredigeringer", @@ -642,7 +655,6 @@ "untagged_area_tooltip": "Vælg en objekttype der beskriver hvad slags område dette er.", "untagged_relation": "Ej tagget relation", "untagged_relation_tooltip": "Vælg en objekttype der beskriver hvad slags relation dette er.", - "many_deletions": "Du er ved at slette {n} objekter. Er du sikker på du vil dette? Dette vil slette dem fra kortet som alle andre ser på openstreetmap.org.", "tag_suggests_area": "Tagget {tag} antyder at linjen skulle være et område, men den er ikke et område", "deprecated_tags": "Frarådede tags: {tags}" }, @@ -660,18 +672,18 @@ }, "mapillary_images": { "tooltip": "Gadeniveau-billeder fra Mapillary", - "title": "Billedelag (Mapillary)" + "title": "Fotooverlægning (Mapillary)" }, "mapillary_signs": { - "tooltip": "Trafikskilte fra Mapillary (fotolag skal være slået til)", - "title": "Trafikskiltelag (Mapillary)" + "tooltip": "Trafikskilte fra Mapillary (fotooverlægning skal være slået til)", + "title": "Trafikskilteoverlægning (Mapillary)" }, "mapillary": { "view_on_mapillary": "Vis dette billede på Mapillary" }, "openstreetcam_images": { "tooltip": "Gadeniveau-billeder fra OpenStreetCam", - "title": "Billedelag (OpenStreetCam)" + "title": "Fotooverlægning (OpenStreetCam)" }, "openstreetcam": { "view_on_openstreetcam": "Vis dette billede på OpenStreetCam" @@ -681,12 +693,36 @@ "key": "H", "help": { "title": "Hjælp", + "welcome": "Velkommen til iD - et redigeringsværktøj til [OpenStreetMap](https://www.openstreetmap.org/). Med dette værktøj kan du opdatere OpenStreetMap direkte fra din web-browser.", "open_data_h": "Open Data", - "before_start_h": "Før du starter" + "open_data": "Ændringer du laver i dette kort vil være synlige for alle der anvender OpenStreetMap. Dine redigeringer kan basere sig på personligt kendskab, opmåling og udforskning på stedet eller fotos fra luften eller gadeniveau. Kopiering fra enhver kommerciel kilde, såsom Google Maps, er [strengt forbudt](https://www.openstreetmap.org/copyright).", + "before_start_h": "Før du starter", + "before_start": "Du bør gøre dig bekendt med OpenStreetMap og dette redigeringsværktøj før du begynder med egentlig redigering af kortet. iD indeholder en såkaldt Gennemgang som lærer dig de basale ting omkring redigering af OpenStreetMap. Klik på \"Start Gennemgang\" på denne side for at starte vejledningen - det tager kun omkring et kvarter.", + "open_source_h": "Open Source - Åben kildekode", + "open_source": "Dette iD-redigeringsværktøj udvikles i et fællesskabsdrevet open source-projekt og du anvender lige nu version {version}. Kildekoden er tilgængelig [på GitHub](https://github.com/openstreetmap/iD).", + "open_source_help": "Du kan hjælpe iD ved at [oversætte](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) eller [rapportere fejl](https://github.com/openstreetmap/iD/issues)." + }, + "overview": { + "title": "Overblik", + "navigation_h": "Navigation", + "features_h": "Kortobjekter", + "features": "Vi bruger ordet *kortobjekt* til at beskrive ting der optræder på kortet såsom veje, bygninger, eller interessepunkter. Enhver fysisk ting i den virkelige verden kan indtegnes som et kortobjekt på OpenStreetMap. Kortobjekter repræsenteres på kortet som *punkter*, *linjer* eller *områder*.", + "nodes_ways": "I OpenStreetMap kaldes punkter sommetider *noder*, og linjer og områder sommetider *veje*." }, "editing": { + "title": "Rediger & gem", "select_h": "Vælg", "save_h": "Gem" + }, + "imagery": { + "title": "Luftfoto i baggrunden", + "intro": "Luftfotoet der vises i baggrunden bagved kortet er en vigtig ressource under redigering af kortet. Dette kan bestå af ortografiske fotos opsamlet fra satellitter, fly eller droner, eller det kan være indskannede historiske kort eller andre frit tilgængelige kildedata.", + "sources_h": "Luftfoto-kilder", + "choosing": "For at se hvilke kilder til luftfoto der er tilgængelige i området, skal du klikke på knappen {layers} **Baggrundsindstillinger** i kortets side.", + "sources": "Som standard vises et satellit-lag fra [Bing Maps](https://www.bing.com/maps/) som baggrundsbillede. Afhængigt af hvor i verden du redigerer, kan der være andre luftfoto-kilder tilgængelige. Nogle kan være af nyere dato eller have højere opløsning end Bing, så det er altid smart at se efter hvilket lag der er bedst at bruge til at redigere kortet ud fra.", + "offsets_h": "Justering af luftfoto-offset", + "offset": "Den registrerede position for et luftfoto er nogle gange ikke helt korrekt i forhold til kortet. Hvis du ser at bygninger og veje generelt er forskudt mellem kort og luftfoto, kan det være luftfotoet der er unøjagtigt, så i stedet for at flytte alle kortobjekter kan du justere baggrunden så den er samstemmende med kortets data ved at åbne \"Juster luftfoto-offset\" i bunden af Baggrundsindstillinger-fanen.", + "offset_change": "Klik på de små trekanter for at justere offset i små intervaller, eller hold venstre musetast nede og træk indenfor den grå firkant for at trække luftfotoet på plads." } }, "intro": { @@ -993,7 +1029,8 @@ "title": "Markering af kortobjekter", "select_one": "Marker et enkelt kortobjekt", "select_multi": "Marker flere kortobjekter", - "lasso": "Tegn en markerings-lasso om kortobjekter" + "lasso": "Tegn en markerings-lasso om kortobjekter", + "search": "Find kortobjekter der indeholder tekst" }, "with_selected": { "title": "Ved markeret kortobjekt", @@ -1055,6 +1092,28 @@ } } }, + "units": { + "feet": "{quantity} fod", + "miles": "{quantity} mil", + "square_feet": "{quantity} kvadratfod", + "square_miles": "{quantity} kvadratmil", + "acres": "{quantity} ager", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "Ø", + "west": "V", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { diff --git a/dist/locales/de.json b/dist/locales/de.json index eaa14e120..5100b22c5 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -75,7 +75,7 @@ "line": "Eine Linie kreisförmig gemacht.", "area": "Eine Fläche kreisförmig gemacht." }, - "not_closed": "Dieses Objekt kann nicht kreisförmig gemacht werden, da es keine Schleife ist.", + "not_closed": "Dieses Objekt kann nicht kreisförmig gemacht werden, da es nicht geschlossen ist.", "too_large": "Dieses Objekt kann nicht kreisförmig gemacht werden, da zu wenig davon sichtbar ist.", "connected_to_hidden": "Dieses Objekt kann nicht kreisförmig gemacht werden, da es mit einem versteckten Objekt verbunden ist." }, @@ -92,13 +92,13 @@ }, "not_squarish": "Dieses Objekt kann nicht rechtwinklig gemacht werden, da es nicht annähernd rechtwinklig ist.", "too_large": "Dieses Objekt kann nicht quadratisch werden, da zu wenig davon sichtbar ist.", - "connected_to_hidden": "Dieses Objekt kann nicht quadratisch gemacht werden, weil es mit einem versteckten Objekt verbunden ist." + "connected_to_hidden": "Dieses Objekt kann nicht rechtwinklig gemacht werden, weil es mit einem versteckten Objekt verbunden ist." }, "straighten": { - "title": "Gerade ausrichten", - "description": "Diese Linie gerade ausrichten.", + "title": "Begradigen", + "description": "Diese Linie begradigen.", "key": "S", - "annotation": "Linie gerade ausgerichtet.", + "annotation": "Linie begradigt.", "too_bendy": "Dieses Objekt kann nicht begradigt werden, da es zu kurvig ist.", "connected_to_hidden": "Dieses Objekt kann nicht begradigt werden, da es mit einem versteckten Objekt verbunden ist." }, @@ -150,7 +150,7 @@ "disconnect": { "title": "Trennen", "description": "Trenne diese Wege/Flächen voneinander.", - "key": "T", + "key": "D", "annotation": "Linien/Flächen getrennt.", "not_connected": "Es gibt hier nicht genug Linien/Flächen, um diese zu trennen.", "connected_to_hidden": "Dieses Objekt kann nicht getrennt werden, da es mit einem versteckten Objekt verbunden ist.", @@ -262,10 +262,10 @@ } }, "reverse": { - "title": "Umkehren", + "title": "Richtung umdrehen", "description": "Richtung dieser Linie umkehren.", "key": "V", - "annotation": "Linienrichtung umgekehrt." + "annotation": "Richtung der Linie umgedreht." }, "split": { "title": "Teilen", @@ -389,7 +389,8 @@ "title": "Maße", "selected": "{n} ausgewählt", "geometry": "Geometrie", - "closed": "geschlossene", + "closed_line": "geschlossene Linie", + "closed_area": "geschlossene Fläche", "center": "Zentrum", "perimeter": "Umfang", "length": "Länge", @@ -420,7 +421,7 @@ "inspector": { "no_documentation_combination": "Für diese Eigenschaftenkombination ist keine Dokumentation verfügbar.", "no_documentation_key": "Für dieses Schlüsselwort ist keine Dokumentation verfügbar.", - "documentation_redirect": "Diese Dokumentation wurde auf eine neue Webpage weitergeleitet.", + "documentation_redirect": "Diese Dokumentation wurde auf eine neue Webseite weitergeleitet.", "show_more": "Mehr zeigen", "view_on_osm": "Auf openstreetmap.org ansehen", "all_fields": "Alle Felder", @@ -464,17 +465,17 @@ "title": "Hintergrund", "description": "Hintergrundeinstellungen", "key": "B", - "backgrounds": "Bildmaterial", + "backgrounds": "Bildmaterial-Quelle", "none": "Leer", - "best_imagery": "Beste bekannte Bildmaterialquelle für diese Lage", + "best_imagery": "Beste bekannte Bildmaterial-Quelle für diese Lage", "switch": "Zu diesem Hintergrund zurückschalten", "custom": "Benutzerdefiniert", "custom_button": "Benutzerdefinierten Hintergrund bearbeiten", - "custom_prompt": "Gib eine Kachel-URL-Vorlage ein. Gültige Variablen sind:\n - {zoom}/{z}, {x}, {y} für das Z/X/Y Kachel-Schema\n - {ty} für umgedrehte TMS-Stil Y-Koordinaten\n - {u} für das Quadtile Schema\n - {switch:a,b,c} für DNS-Server Multiplexing\n\nBeispiel:\n{example}", + "custom_prompt": "Gib eine Kachel-URL-Vorlage ein. Gültige Variablen sind:\n - {zoom} oder {z}, {x}, {y} für das Z/X/Y Kachel-Schema\n - {-y} oder {ty} für umgedrehte TMS-Stil Y-Koordinaten\n - {u} für das Quadtile Schema\n - {switch:a,b,c} für DNS-Server Multiplexing\n\nBeispiel:\n{example}", "overlays": "Überlagerungen", "imagery_source_faq": "Bildmaterialinformation / Problem melden", "reset": "Zurücksetzen", - "display_options": "Anzeigeoptionen", + "display_options": "Bildmaterial-Optionen", "brightness": "Helligkeit", "contrast": "Kontrast", "saturation": "Sättigung", @@ -510,23 +511,23 @@ }, "traffic_roads": { "description": "Hauptstraßen", - "tooltip": "Autobahnen, Straßen, etc." + "tooltip": "Autobahnen, Straßen usw." }, "service_roads": { "description": "Erschließungsstraßen", - "tooltip": "Erschließungsstraßen, Zufahrtsstraßen, Parkplatzstraßen, Waldwege, Feldwege, etc." + "tooltip": "Erschließungsstraßen, Zufahrtsstraßen, Parkplatzstraßen, Waldwege, Feldwege usw." }, "paths": { "description": "Wege", - "tooltip": "Bürgersteige, Gehsteige, Fußwege, Radwege, etc." + "tooltip": "Bürgersteige, Gehsteige, Fußwege, Radwege usw." }, "buildings": { "description": "Gebäude", - "tooltip": "Gebäude, Unterstände, Garagen, etc." + "tooltip": "Gebäude, Unterstände, Garagen usw." }, "landuse": { "description": "Flächennutzungen", - "tooltip": "Wälder, Äcker, Parks, Wohngebiete, Industriegebiete, etc." + "tooltip": "Wälder, Äcker, Parks, Wohngebiete, Industriegebiete usw." }, "boundaries": { "description": "Grenzen", @@ -534,7 +535,7 @@ }, "water": { "description": "Gewässer", - "tooltip": "Flüsse, Seen, Teiche, Weiher, Flussbecken etc." + "tooltip": "Flüsse, Seen, Teiche, Weiher, Flussbecken usw." }, "rail": { "description": "Eisenbahnen", @@ -542,11 +543,11 @@ }, "power": { "description": "Stromleitungen", - "tooltip": "Stromleitungen, Kraftwerke, Umspannwerke, etc." + "tooltip": "Stromleitungen, Kraftwerke, Umspannwerke usw." }, "past_future": { "description": "Vergangen/Zukünftig", - "tooltip": "Geplant, in Bau, aufgegeben, abgerissen, etc." + "tooltip": "Geplant, in Bau, aufgegeben, abgerissen usw." }, "others": { "description": "Andere", @@ -570,7 +571,7 @@ }, "restore": { "heading": "Ungesicherte Änderungen vorhanden", - "description": "Willst Du die ungesicherten Änderungen aus einer früheren Bearbeitungs-Sitzung wiederherstellen?", + "description": "Willst du die ungesicherten Änderungen aus einer früheren Bearbeitungs-Sitzung wiederherstellen?", "restore": "Wiederherstellen meiner Änderungen", "reset": "Verwerfen meiner Änderungen" }, @@ -654,7 +655,7 @@ "untagged_area_tooltip": "Wähle einen Objekttyp aus, der diese Fläche beschreibt.", "untagged_relation": "Relation ohne Eigenschaft", "untagged_relation_tooltip": "Wähle einen Objekttyp aus, der diese Relation beschreibt.", - "many_deletions": "Du willst {n} Objekte löschen. Bist du sicher, dass du das möchtest? Damit werden die Objekte aus der Karte entfernt, die jeder andere auf openstreetmap.org sieht.", + "many_deletions": "Du willst {n} Objekte löschen: {p} Knoten, {l} Linien, {a} Fächen und {r} Relationen. Bist du sicher, dass du das möchtest? Damit werden alle diese Objekte aus der Karte entfernt, die alle anderen auf openstreetmap.org sehen.", "tag_suggests_area": "Die Eigenschaft {tag} legt nahe, dass die Linie eine Fläche sein sollte, es ist aber keine Fläche", "deprecated_tags": "Veraltete Eigenschaften: {tags}" }, @@ -693,7 +694,7 @@ "key": "H", "help": { "title": "Hilfe", - "welcome": "Willkommen beim iD Editor für [OpenStreetMap](https://www.openstreetmap.org/). Mit diesem Editor kannst Du OpenStreetMap gleich mit deinem Browser verbessern.", + "welcome": "Willkommen beim iD Editor für [OpenStreetMap](https://www.openstreetmap.org/). Mit diesem Editor kannst du OpenStreetMap gleich mit deinem Browser verbessern.", "open_data_h": "Open Data", "open_data": "Deine Änderungen auf dieser Karte werden für alle Nutzer von OpenStreetMap sichtbar. Du kannst Ortskenntnis, Vor-Ort-Erhebung oder Bildmaterial von Luftaufnahmen und Straßenfotos als Grundlage für deine Bearbeitungen verwenden. Kopieren von kommerziellen Quellen wie Google [ist streng verboten](https://www.openstreetmap.org/copyright).", "before_start_h": "Bevor du anfängst", @@ -734,16 +735,16 @@ "feature_editor": { "title": "Objekteditor", "intro": "Der *Objekteditor* erscheint links neben der Karte und ermöglicht dir alle Informationen des ausgewählten Objekts zu sehen und zu bearbeiten.", - "definitions": "Im oberen Teil wird der Objekttyp angezeigt. Der mittlere Teil enthält die *Felder* mit den Eigenschaften des Objektes wie Name oder Adresse.", + "definitions": "Im oberen Bereich wird der Objekttyp angezeigt. Der mittlere Bereich enthält die *Felder* mit den Merkmalen des Objektes wie Name oder Adresse.", "type_h": "Objekttyp", "type": "Du kannst auf den Objekttyp klicken um dem Objekt einem anderen Typ zu geben. Alles in der echten Welt kann als ein Objekt in OpenStreetMap abgebildet werden, daher kannst du aus tausenden Objekttypen wählen.", "type_picker": "Die Typauswahl zeigt die am häufigsten genutzten Objekttypen wie Park, Spital, Restaurant, Straße oder Gebäude. Du kannst durch Tippen in dem Suchfeld nach dem gewünschten Objekttyp suchen oder das {inspect} **Info** Symbol neben dem Objekttyp anklicken um nähere Informationen zu bekommen.", "fields_h": "Felder", - "fields_all_fields": "Der Abschnitt \"Alle Felder\" enthält alle Objektdetails die du bearbeiten kannst. In OpenStreetMap sind alle Felder optional und es ist okay ein Feld leer zu lassen, wenn du unsicher bist.", + "fields_all_fields": "Der Bereich \"Alle Felder\" enthält alle Objektdetails die du bearbeiten kannst. In OpenStreetMap sind alle Felder optional und es ist okay ein Feld leer zu lassen, wenn du unsicher bist.", "fields_example": "Für jeden Objekttyp werden unterschiedliche Felder angezeigt. So können für eine Straße Felder für Oberfläche und Geschwindigkeitsbeschränkung und für ein Restaurant Felder für die angebotene Küche und die Öffnungszeiten angezeigt werden.", "fields_add_field": "Du kannst auch \"Feld hinzufügen\" anklicken und weitere Felder aus der Dropdown-Liste hinzufügen, beispielsweise Beschreibung, Wikipedia Link, Rollstuhlzugänglichkeit und viele mehr.", "tags_h": "Eigenschaften", - "tags_all_tags": "Unter den Feldern kannst du den Abschnitt \"Alle Eigenschaften\" aufklappen und alle OpenStreetMap *Eigenschaften* des ausgewählten Objekts bearbeiten. Jede Eigenschaft besteht aus einem *Schlüssel* und einem *Wert*, damit werden alle in OpenStreetMap gespeicherten Objekte beschrieben.", + "tags_all_tags": "Unter den Feldern kannst du den Bereich \"Alle Eigenschaften\" aufklappen und alle OpenStreetMap *Eigenschaften* des ausgewählten Objekts bearbeiten. Jede Eigenschaft besteht aus einem *Schlüssel* und einem *Wert*, damit werden alle in OpenStreetMap gespeicherten Objekte beschrieben.", "tags_resources": "Das Bearbeiten der Eigenschaften von Objekten erfordert detailliertes Wissen über OpenStreetMap. Um mehr über akzeptierte Eigenschaften zu erfahren solltest du dich im [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page) oder bei [Taginfo](https://taginfo.openstreetmap.org/) informieren." }, "points": { @@ -760,7 +761,7 @@ }, "lines": { "title": "Linien", - "intro": "*Linien* werden benutzt um Objekte wie Straßen, Eisenbahnschienen oder Flüsse darzustellen. Linien sollen entlang der Mitte des Objekts gezeichnet werden.", + "intro": "*Linien* werden benutzt um Objekte wie Straßen, Eisenbahnschienen oder Flüsse darzustellen. Linien sollen in der Mitte des dargestellten Objekts gezeichnet werden.", "add_line_h": "Linien hinzufügen", "add_line": "Um eine Linie hinzuzufügen klicke den {line} **Linie** Knopf auf der Werkzeugleiste über der Karte oder drücke die Taste `2`. Dadurch wird der Mauszeiger zu einem Kreuz.", "add_line_draw": "Dann bewege den Mauszeiger dorthin, wo die Linie beginnen soll und {leftclick} linksklicke oder drücke die `Leertaste` um den ersten Knoten der Linie zu platzieren. Zeichne weitere Knoten durch Klicken oder Drücken der `Leertaste`. Während des Zeichnens kannst du die Karte verschieben oder hinein zoomen, um mehr Details hinzuzufügen.", @@ -792,7 +793,7 @@ "add_area_draw": "Dann positioniere den Mauszeiger auf eine Ecke des Objekts und {leftclick} linksklicke oder drücke die `Leertaste` um den ersten Knoten am äußeren Rand der Fläche zu platzieren. Platziere weitere Knoten durch Klicken oder Drücken der `Leertaste`. Während des Zeichens kannst du die Karte zoomen oder schieben um mehr Details zu zeichnen.", "add_area_finish": "Um eine Fläche zu beenden drücke `{return}` oder klicke nochmals auf den ersten oder letzten Knoten.", "square_area_h": "Ecken rechtwinklig machen", - "square_area_command": "Viele Flächenobjekte wie beispielsweise Gebäude haben rechtwinklige Ecken. Um die Ecken rechtwinklig zu machen, {rightclick} rechtsklicke auf den Rand der Fläche um sie auszuwählen und das Bearbeitungsmenü anzuzeigen und benutze den {orthogonalize} **Rechtwinklig machen** Befehl.", + "square_area_command": "Viele Gebäude und andere Flächen haben rechtwinklige Ecken. Um die Ecken rechtwinklig zu machen, {rightclick} rechtsklicke auf den Rand der Fläche um sie auszuwählen und das Bearbeitungsmenü anzuzeigen und benutze den {orthogonalize} **Rechtwinklig machen** Befehl.", "modify_area_h": "Flächen verändern", "modify_area_dragnode": "Häufig siehst du Flächen die nicht genau gezeichnet sind, beispielweise ein Gebäude, das nicht mit dem Hintergrund-Bildmaterial zusammenpasst. Um die Form der Fläche azupassen wählst du sie mit {leftclick} linksklick aus. Alle Knoten der Fläche werden als kleine Kreise gezeichnet. Du kannst die Knoten an die richtigen Stellen verschieben.", "modify_area_addnode": "Du kannst neue Knoten in einer Fläche auch durch {leftclick}**x2** Doppelklicken am Rand der Fläche oder durch Ziehen der kleinen Dreiecke in der Mitte zwischen zwei Knoten erzeugen.", @@ -804,11 +805,11 @@ "title": "Relationen", "intro": "Eine *Relation* ist ein spezieller Objekttyp in OpenStreetMap, der andere Objekte zusammenfasst. Die Objekte, die zu einer Relation gehören werden *Mitglieder* genannt und jedes Mitglied kann eine *Rolle* in der Relation haben.", "edit_relation_h": "Relationen bearbeiten", - "edit_relation": "Unten im Objekteditor kannst du den Abschnitt \"Alle Relationen\" aufklappen und sehen, ob das ausgewählte Objekt Mitglied in einer oder mehrere Relationen ist. Du kannst auf eine Relation klicken, um sie auszuwählen und zu bearbeiten.", - "edit_relation_add": "Um ein Objekt zu einer Relation hinzuzufügen wählst du das Objekt aus, dann klickst du den {plus} Knopf im Abschnitt \"Alle Relationen\" im Objekteditor. Du kannst in der Liste eine Relation in der Nähe oder \"Neue Relation ...\" auswählen.", + "edit_relation": "Unten im Objekteditor kannst du den Bereich \"Alle Relationen\" aufklappen und sehen, ob das ausgewählte Objekt Mitglied in einer oder mehrere Relationen ist. Du kannst auf eine Relation klicken, um sie auszuwählen und zu bearbeiten.", + "edit_relation_add": "Um ein Objekt zu einer Relation hinzuzufügen wählst du das Objekt aus, dann klickst du den {plus} Knopf im Bereich \"Alle Relationen\" im Objekteditor. Du kannst in der Liste eine Relation in der Nähe oder \"Neue Relation ...\" auswählen.", "edit_relation_delete": "Du kannst auch den {delete} **Löschen** Knopf klicken, um das ausgewählte Objekt aus der Relationen zu entfernen. Wenn du alle Mitglieder einer Relation entfernst, wird die Relation automatisch gelöscht.", "maintain_relation_h": "Relationen erhalten", - "maintain_relation": "Normalerweise kümmert sich iD während der Bearbeitung automatisch um die Pflege der Relationen. Du solltest aufpassen, wenn du Objekte austauscht, die Mitglieder von Relationen sein können. Wenn du beispielsweise einen Abschnitt eines Weges löschst und einen neuen Abschnitt der Straße als Ersatz zeichnest, solltest du dem neuen Abschnitt denselben Relationen (Routen, Abbiegebeschränkungen, etc.) zuweisen, in denen der gelöschte Abschnitt war.", + "maintain_relation": "Normalerweise kümmert sich iD während der Bearbeitung automatisch um die Pflege der Relationen. Du solltest aufpassen, wenn du Objekte austauscht, die Mitglieder von Relationen sein können. Wenn du beispielsweise einen Straßenabschnitt löschst und einen neuen Straßenabschnitt zeichnest, um ihn zu ersetzen, solltest du den neuen Straßenabschnitt denselben Relationen (Routen, Abbiegebeschränkungen usw.) zuweisen, in denen der gelöschte Straßenabschnitt war.", "relation_types_h": "Typen von Relationen", "multipolygon_h": "Multipolygone", "multipolygon": "Eine Relation vom Typ *Multipolygon* ist eine Gruppe von einem oder mehreren *äußeren* Objekten und einem oder mehreren *inneren* Objekten. Die äußeren Objekte beschreiben den äußeren Rand des Multipolygons, die inneren Objekte beschreiben Teilflächen oder Löcher, die aus dem Multipolygon herausgeschnitten sind.", @@ -820,26 +821,26 @@ "turn_restriction_editing": "Im Feld \"Abbiegebeschränkungen\" wähle eine \"von\" Straße durch Klicken aus, dann siehst du ob Abbiegen zu allen \"nach\" Straßen erlaubt oder verboten ist. Du kannst das Abbiege-Symbol anklicken um zwischen erlaubt und verboten umzuschalten. iD wird die Relationen automatisch erzeugen und die Rollen \"von\", \"via\" und \"nach\" entsprechend deiner Auswahl vergeben.", "route_h": "Routen", "route": "Eine Relation des Typ *Route* fasst eine oder mehrere Linien zusammen, die gemeinsam ein Streckennetz wie eine Busstrecke, eine Zugstrecke oder eine Autobahnstrecke bilden.", - "route_add": "Um ein Objekt zu einer Route hinzuzufügen, wähle das Objekt aus und gehe im Objekteditor nach unten zum Abschnitt \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen.", + "route_add": "Um ein Objekt zu einer Route hinzuzufügen, wähle das Objekt aus und gehe im Objekteditor nach unten zum Bereich \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen.", "boundary_h": "Grenzen", - "boundary": "Eine Relation vom Typ *Grenze* fasst eine oder mehrere Linien zusammen, die gemeinsam eine administrative Grenze bilden.", - "boundary_add": "Um ein Objekt zu einer Grenze hinzuzufügen, wähle das Objekt aus und gehe im Objekteditor nach unten zum Abschnitt \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen." + "boundary": "Eine Relation vom Typ *Grenze* fasst eine oder mehrere Linien zusammen, die gemeinsam eine Verwaltungsgrenze bilden.", + "boundary_add": "Um ein Objekt zu einer Grenze hinzuzufügen, wähle das Objekt aus und gehe im Objekteditor nach unten zum Bereich \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen." }, "imagery": { "title": "Hintergrund-Bildmaterial", "intro": "Das Hintergrund-Bildmaterial welches unter den Kartendaten erscheint ist eine wichtige Quelle zum Bearbeiten. Dieses Bildmaterial kann aus Luftbildern bestehen, die von Satelliten, Flugzeugen oder Drohnen gesammelt wurde, oder es können eingescannte historische Karten oder andere frei erhältliche Quelldaten sein.", "sources_h": "Bildmaterial-Quellen", "choosing": "Um zu sehen, welche Bildmaterial-Quellen zum Bearbeiten verfügbar sind klicke den {layers} **Hintergrundeinstellungen** Knopf auf der rechten Seite der Karte. ", - "sources": "Als Standard sind die [Bing](https://www.bing.com/maps/) Satellitenbilder als Hintergrund-Bildmaterial ausgewählt. Abhängig von der Gegend sind auch andere Bildmaterial-Quellen verfügbar. Sie können neuer sein oder eine höhere Auflösung haben, daher ist es immer sinnvoll zu prüfen, welches Bildmaterial die beste Referenz zum Bearbeiten ist.", + "sources": "Als Standard sind die [Bing](https://www.bing.com/maps/) Satellitenbilder als Hintergrundbild ausgewählt. Abhängig von der Gegend sind auch andere Bildmaterial-Quellen verfügbar. Sie können neuer sein oder eine höhere Auflösung haben, daher ist es immer sinnvoll zu prüfen, welches Bildmaterial die beste Referenz zum Bearbeiten ist.", "offsets_h": "Bildmaterial-Versatz anpassen", - "offset": "Bildmaterial ist manchmal geringfügig zu genauen Kartendaten versetzt. Wenn du feststellst, dass viele Wege oder Gebäude gegenüber dem Hintergrund-Bildmaterial versetzt sind, dann kann es sein, dass das Bildmaterial versetzt ist, also verschiebe nicht alle Objekte damit sie zum Hintergrund passen. Stattdessen kannst du den Hintergrund anpassen, damit es zu den bestehenden Daten passt indem du den Abschnitt „Bildmaterial-Versatz anpassen“ unten in den Hintergrundeinstellungen aufklappst.", + "offset": "Bildmaterial ist manchmal geringfügig zu genauen Kartendaten versetzt. Wenn du feststellst, dass viele Wege oder Gebäude gegenüber dem Hintergrund-Bildmaterial versetzt sind, dann kann es sein, dass das Bildmaterial versetzt ist, also verschiebe nicht alle Objekte damit sie zum Hintergrund passen. Stattdessen kannst du den Hintergrund anpassen, damit es zu den bestehenden Daten passt indem du den Bereich „Bildmaterial-Versatz anpassen“ unten in den Hintergrundeinstellungen aufklappst.", "offset_change": "Klicke auf die kleinen Dreiecke um den Bildmaterial-Versatz in kleinen Schritten anzupassen oder halte den linken Mausknopf gedrückt und ziehe innerhalb des grauen Rechtecks um das Bildmaterial zurechtzurücken." }, "streetlevel": { "title": "Straßenfotos", "intro": "Straßenfotos sind nützlich um Verkehrszeichen, Geschäfte oder andere Details die auf Satellitenbilder und Luftbildern nicht sichtbar sind zu bearbeiten. Der iD Editor unterstützt Straßenfotos von [Mapillary](https://www.mapillary.com) und [OpenStreetCam](https://www.openstreetcam.org).", "using_h": "Straßenfotos benutzen", - "using": "Um Straßenfotos beim Bearbeiten zu benutzen klicke das {data} **Kartendaten** Menü auf der rechten Seite der Karte zum Einschalten oder Ausschalten der verfügbaren Bildquellen.", + "using": "Um Straßenfotos beim Bearbeiten zu benutzen klicke den {data} **Kartendaten** Knopf auf der rechten Seite der Karte zum Einschalten oder Ausschalten der verfügbaren Bildquellen.", "photos": "Wenn die Straßenfotos eingeschaltet sind, wird eine Linie entlang der Fotosequenz angezeigt. Bei höheren Zoomstufen zeigt ein Kreis jede Fotoposition an und bei noch höheren Zoomstufen zeigt ein Kegel die Richtung der Kamera während der Aufnahme an.", "viewer": "Wenn du auf eine Fotoposition klickst erscheint die Fotoanzeige in der linken unteren Ecke der Karte. Die Fotoanzeige enthalt Kontroll-Knöpfe um vorwärts und rückwärts springen zu können. Es zeigt auch den Benutzernanen der Person, die das Foto erstellt hat, wann das Foto erstellt wurde und einen Link, um das Foto auf der Originalseite zu sehen." }, @@ -848,7 +849,7 @@ "intro": "GPS Tracks sind eine wertvolle Datenquelle für OpenStreetMap. Dieser Editor unterstützt lokale *.gpx*, *.geojson*, and *.kml* Dateien auf deinem Computer. Du kannst GPS Tracks mit einem Smartphone, einer Sportuhr oder mit anderen GPS-Geräten aufnehmen.", "survey": "Für Informationen über das Aufzeichnen von GPS-Daten kannst du dir folgende Anleitung zur [Kartierung mit Smartphone, GPS oder Field Paper](http://learnosm.org/de/mobile-mapping/) durchlesen.", "using_h": "GPS Tracks verwenden", - "using": "Um einen GPS Track zum Bearbeiten zu verwenden, ziehe ihn einfach auf die Karte. Wenn er erkannt wurde, wird er als helle lila Linie auf der Karte dargestellt. Klicke auf das {data} **Kartendaten** Menü rechts, um die neue Ebene mit dem Track zu aktivieren/deaktivieren oder den GPS-Track auf der Karte anzuzeigen.", + "using": "Um einen GPS Track zum Bearbeiten zu verwenden, ziehe ihn einfach auf die Karte. Wenn er erkannt wurde, wird er als helle lila Linie auf der Karte dargestellt. Klicke auf den {data} **Kartendaten** Knopf rechts, um die neue Ebene mit dem Track zu aktivieren/deaktivieren oder den GPS-Track auf der Karte anzuzeigen.", "tracing": "Der GPS Track wird nicht zu OpenStreetMap hochgeladen. Am besten verwendest du ihn als Orientierung um neue Objekte zu zeichnen.", "upload": "Du kannst auch [deine GPS Tracks zu OpenStreetMap hochladen](https://www.openstreetmap.org/trace/create) damit sie von anderen Benutzern verwendet werden können." } @@ -881,8 +882,8 @@ "8th-avenue": "Achte Allee", "9th-avenue": "Neunte Allee", "10th-avenue": "Zehnte Allee", - "11th-avenue": "Elfte Straße", - "12th-avenue": "Zwölfte Straße", + "11th-avenue": "Elfte Allee", + "12th-avenue": "Zwölfte Allee", "access-point-employment": "Arbeitsmarktservice", "adams-street": "Amselweg", "andrews-elementary-school": "Grundschule St. Anon", @@ -890,7 +891,7 @@ "armitage-street": "Am Sportplatz", "barrows-school": "Bischöfliches Gymnasium", "battle-street": "Birkenweg", - "bennett-street": "Bergstraße", + "bennett-street": "Brunngasse", "bowman-park": "Bayernpark", "collins-drive": "Kiefernweg", "conrail-railroad": "Chiemseebahn", @@ -899,15 +900,15 @@ "cushman-street": "Kiefernweg", "dollar-tree": "Vintys Second Hand", "douglas-avenue": "Dorfallee", - "east-street": "Oststraße", + "east-street": "Osserweg", "elm-street": "Eichenweg", "flower-street": "Blumenstraße", - "foster-street": "Forststraße", - "french-street": "Frankenstraße", + "foster-street": "Forchheimerstraße", + "french-street": "Frauengasse", "garden-street": "Gartenstraße", "gem-pawnbroker": "Dorotheum", "golden-finch-framing": "Preiner", - "grant-avenue": "Göthestraße", + "grant-avenue": "Glockenstraße", "hoffman-pond": "Hilmteich", "hoffman-street": "Heideweg", "hook-avenue": "Hollunderweg", @@ -921,44 +922,44 @@ "main-street-barbell": "Bodyfit", "main-street-cafe": "Café Simon", "main-street-fitness": "fitinn", - "main-street": "Ludwigstraße", + "main-street": "Neuburger Straße", "maple-street": "Mühlenweg", "marina-park": "Marina Park", - "market-street": "Markstraße", + "market-street": "Marktgasse", "memory-isle-park": "Donauinsel Park", "memory-isle": "Donauinsel", "michigan-avenue": "Regensburger Straße", - "middle-street": "Mittelstraße", + "middle-street": "Milchgasse", "millard-street": "Meisenweg", - "moore-street": "Mühlenstraße", + "moore-street": "Mozartstraße", "morris-avenue": "Meisenweg", "mural-mall": "Franziskanergasse", "paisanos-bar-and-grill": "Altes Bräuhaus", "paisley-emporium": "Stadtgalerie", "paparazzi-tattoo": "Ink of Hell Tattoo", - "pealer-street": "Parkstraße", + "pealer-street": "Pionierstraße", "pine-street": "Pappelweg", "pizza-hut": "Pizzeria Gallo Nero", - "portage-avenue": "Alte Poststraße", + "portage-avenue": "Donaustraße", "portage-river": "Inn", "preferred-insurance-services": "Zürich Versicherungs-AG", "railroad-drive": "Bahnhofstraße", "river-city-appliance": "Himmel", - "river-drive": "Flussstraße", + "river-drive": "Innbrückgasse", "river-road": "Flussweg", - "river-street": "Ringstraße", + "river-street": "Innkai", "riverside-cemetery": "Innstadt Friedhof", "riverwalk-trail": "Bachweg", "riviera-theatre": "Schauspielhaus", "rocky-river": "Ilz", "saint-joseph-river": "Inn", - "scidmore-park-petting-zoo": "Klostergarten Streichelzoo", - "scidmore-park": "Klostergarten", + "scidmore-park-petting-zoo": "Bschuettpark Streichelzoo", + "scidmore-park": "Bschuettpark", "scouter-park": "Skatepar", "sherwin-williams": "PROSOL Lacke+Farben", - "south-street": "Südstraße", + "south-street": "Südtirolerstraße", "southern-michigan-bank": "Stadtsparkasse", - "spring-street": "Gartenstraße", + "spring-street": "Frühlingstraße", "sturgeon-river-road": "Ilzbachweg", "three-rivers-city-hall": "Rathaus", "three-rivers-elementary-school": "Volksschule", @@ -970,13 +971,13 @@ "three-rivers-public-library": "Stadtbibliothek", "three-rivers": "Drei-Flüsse-Stadt", "unique-jewelry": "CHRIST Juweliere", - "walnut-street": "Waldstraße", + "walnut-street": "Volgerweiderstraße", "washington-street": "Schillerstraße", - "water-street": "Bachstraße", - "west-street": "Weststraße", - "wheeler-street": "Wilhelmstraße", + "water-street": "Badhausgasse", + "west-street": "Weißstraße", + "wheeler-street": "Wolf-Huber-Straße", "william-towing": "Autowerkstatt", - "willow-drive": "Wilhelmstraße", + "willow-drive": "Innpromenade", "wood-street": "Weidenweg", "world-fare": "Orange and Green" } @@ -1002,22 +1003,22 @@ "selected_townhall": "Super! Der Punkt ist jetzt ausgewählt. Ausgewählte Objekte werden mit einem pulsierenden Schimmer gezeichnet.", "editor_townhall": "Wenn ein Objekt ausgewählt ist wird der *Objekteditor* neben der Karte angezeigt.", "preset_townhall": "Der obere Teil des Objekteditors zeigt den Typ des Objekts. Dieser Punkt ist ein {preset}.", - "fields_townhall": "Der mittlere Teil des Objekteditors enthält *Felder* mit den Eigenschaften des Objektes wie Name oder Adresse", + "fields_townhall": "Der mittlere Bereich des Objekteditors enthält *Felder* mit den Merkmalen des Objektes wie Name oder Adresse", "close_townhall": "**Schließe den Objekteditor durch Drücken von Escape oder durch Klicken auf {button} Knopf in der oberen Ecke.**", "search_street": "Du kannst Objekte in der aktuellen Kartenansicht oder weltweit suchen. **Suche nach '{name}'.**", "choose_street": "**Wähle {name} aus der Liste.**", "selected_street": "Super! Die {name} ist jetzt ausgewählt.", - "editor_street": "Die angezeigten Felder für die Straße unterscheiden sich von denen für das Rathaus.{br}Für diese ausgewählte Straße zeigt der Objekteditor Felder wie {field1} oder {field2}. **Schließe den Objekteditor durch Drücken von Escape oder Klicken auf {button} Knopf.**", - "play": "Versuche die Karte zu verschieben und auf andere Objekte zu klicken, damit du siehst welche Dinge zu OpenStreetMap hinzugefügt werden können. **Wenn du zum nächsten Kapitel willst klicke '{next}'.**" + "editor_street": "Für die Straße werden andere Felder als für das Rathaus angezeigt.{br}Für diese ausgewählte Straße zeigt der Objekteditor Felder wie {field1} oder {field2}. **Schließe den Objekteditor durch Drücken von Escape oder Klicken auf {button} Knopf.**", + "play": "Versuche die Karte zu verschieben und auf andere Objekte zu klicken, damit du siehst welche Dinge zu OpenStreetMap hinzugefügt werden können. **Wenn du zum nächsten Kapitel willst, klicke '{next}'.**" }, "points": { "title": "Punkte", - "add_point": "*Punkte* können benutzt werden um Objekte wie Geschäfte, Restaurants und Denkmäler dazustellen.{br}Sie kennzeichnen eine konkrete Lage und beschreiben was dort ist. **Klicke auf {button} Punkt um einen neuen Punkt zu zeichnen.**", + "add_point": "*Punkte* können benutzt werden um Objekte wie Geschäfte, Restaurants oder Denkmäler darzustellen.{br}Sie kennzeichnen eine konkrete Lage und beschreiben was dort ist. **Klicke auf {button} Punkt um einen neuen Punkt zu zeichnen.**", "place_point": "Um den neuen Punkt auf der Karte zu positionieren bewege den Mauszeiger auf die gewünschte Position des Punktes und klicke oder drücke die Leertaste. **Bewege den Mauszeiger über dieses Gebäude und klicke oder drücke die Leertaste.**", "search_cafe": "Es gibt viele verschiedene Objekte die als Punkte dargestellt werden können. Der gerade hinzugefügte Punkt ist ein Café. **Suche nach '{preset}'.**", "choose_cafe": "**Wähle {preset} aus der Liste.**", "feature_editor": "Der Punkt ist nun ein Café. Mit dem Objekteditor kannst du mehr Information über das Café eingeben.", - "add_name": "In OpenStreetMap sind alle Felder optional und es ist okay Felder frei zu lassen wenn du unsicher bist.{br}Nehmen wir an du hättest lokales Wissen und kennst den Namen dieses Cafés. **Gib einen Namen für das Café ein.**", + "add_name": "In OpenStreetMap sind alle Felder optional und es ist okay Felder frei zu lassen, wenn du unsicher bist.{br}Nehmen wir an du hättest lokales Wissen und kennst den Namen dieses Cafés. **Gib einen Namen für das Café ein.**", "add_close": "Der Objekteditor merkt sich alle deine Änderungen automatisch. **Wenn du den Namen fertig eingegeben hast, drücke Escape oder Enter oder klicke den {button} Knopf um den Objekteditor zu schließen.**", "reselect": "Oft gibt es Punkte die fehlerhaft oder unvollständig sind. Du kannst bestehende Punkte bearbeiten. **Klicke auf das gerade erzeugte Café um es auszuwählen.**", "update": "Gib mehr Details über dieses Café ein. Du kannst seinen Namen ändern, angeben welche Küche dort angeboten wird oder die Adresse eingeben. **Ändere die Details des Café.**", @@ -1025,11 +1026,11 @@ "rightclick": "Du kannst jedes Objekt rechtsklicken um das *Bearbeitungs-Menü* zu sehen, welches dir die Bearbeitungs-Möglichkeiten zeigt. **Wähle den erzeugten Punkt durch Rechtsklicken aus und zeige das Bearbeitungs-Menü.**", "delete": "Du kannst Objekte löschen, die es in der echten Welt nicht gibt.{br}Löschen eines Objekts aus OpenStreetMap entfernt es von der Karte, die alle benutzen. Daher solltest du dir sicher sein, dass es das Objekt wirklich nicht gibt, bevor du es löschst. **Klicke auf {button} Knopf um den Punkt zu löschen.**", "undo": "Du kannst alle Änderungen rückgängig machen, bis du deine Bearbeitungen zu OpenStreetMap hochgeladen hast. **Klicke auf {button} Knopf um das Löschen rückgängig zu machen und den Punkt wiederherzustellen.**", - "play": "Nachdem du jetzt Punkte erzeugen und bearbeiten kannst, versuche zur Übung ein paar Punkte zu erzeugen! **Wenn du zum nächsten Kapitel willst klicke '{next}'.**" + "play": "Nachdem du jetzt Punkte erzeugen und bearbeiten kannst, versuche zur Übung ein paar Punkte zu erzeugen! **Wenn du zum nächsten Kapitel willst, klicke '{next}'.**" }, "areas": { "title": "Flächen", - "add_playground": "*Flächen* werden benutzt um die Grenzen von Objekten wie Seen, Gebäuden und Wohngebieten zu zeigen.{br}Sie können auch benutzt werden um Objekte, die normalerweise als Punkte gezeichnet werden, genauer abzubilden. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", + "add_playground": "*Flächen* werden benutzt um die Grenzen von Objekten wie Seen, Gebäuden oder Wohngebieten darzustellen.{br}Sie können auch benutzt werden um Objekte, die normalerweise als Punkte gezeichnet werden, genauer darzustellen. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", "start_playground": "Zeichne diesen Spielplatz als Fläche auf der Karte ein. Flächen werden gezeichnet indem *Knoten* entlang des äußeren Randes des Objekte gezeichnet werden. **Klicke oder drücke die Leertaste um den ersten Knoten an einer Ecke des Spielplatzes zu zeichnen.**", "continue_playground": "Setze das Zeichnen der Fläche fort, indem du Knoten entlang des Randes des Spielplatzes setzt. Es ist okay, wenn du die Fläche mit bestehenden Fußwegen verbindest.{br}Tip: Wenn du die '{alt}' Taste gedrückt hältst, kannst du verhindern, dass die Knoten sich mit anderen Objekten verbinden. **Setze das Zeichnen der Fläche für den Spielplatz fort.**", "finish_playground": "Beende die Fläche durch Drücken von Enter oder nochmal Klicken auf den ersten oder letzten Knoten. **Beende das Zeichnen der Fläche für den Spielplatz.**", @@ -1039,11 +1040,11 @@ "choose_field": "**Wähle {field} aus der Liste.**", "retry_add_field": "Du hast das Feld {field} nicht ausgewählt. Versuche es nochmals.", "describe_playground": "**Füge eine Beschreibung ein, dann klicke auf {button} Knopf um den Objekteditor zu schließen.**", - "play": "Gut gemacht! Versuche einige weitere Flächen zu zeichnen und schaue welche anderen Flächentypen du zu OpenStreetMap hinzufügen kannst. **Wenn du zum nächsten Kapitel willst klicke '{next}'.**" + "play": "Gut gemacht! Versuche mehr Flächen zu zeichnen und suche nach anderen Flächentypen du zu OpenStreetMap hinzufügen kannst. **Wenn du zum nächsten Kapitel willst, klicke '{next}'.**" }, "lines": { "title": "Linien", - "add_line": "*Linien* werden benutzt um Objekt wie Straßen, Eisenbahnschienen und Flüsse darzustellen. **Klicke auf {button} Linie um eine neue Linie zu zeichnen.**", + "add_line": "*Linien* werden benutzt um Objekt wie Straßen, Eisenbahnschienen oder Flüsse darzustellen. **Klicke auf {button} Linie um eine neue Linie zu zeichnen.**", "start_line": "Hier gibt es eine Straße die in OpenStreetMap fehlt.{br}Zeichne sie ein! In OpenStreetMap soll die Linie in der Mitte der Straße gezeichnet werden. Du kannst die Karte während des Zeichnen verschieben, wenn das notwendig ist. **Beginne die neue Linie durch Klicken auf das obere Ende der fehlenden Straße.**", "intersect": "Du kannst neue Knoten durch Klicken oder Drücken der Leertaste erzeugen.{br} Straßen und viele andere Typen von Linien sind Teil eines größeren Netzwerks. Es ist wichtig dass diese Linien verbunden sind, damit Routing-Anwendungen funktionieren. **Klicke auf {name} um eine Verbindung zwischen den beiden Linien zu erzeugen.**", "retry_intersect": "Diese Straße soll {name} kreuzen. Versuch es nochmals!", @@ -1052,15 +1053,15 @@ "choose_preset_residential": "Es gibt viele verschiedene Typen von Straßen, diese ist eine Anliegerstraße. **Wähle {preset}.**", "retry_preset_residential": "Du hast nicht {preset} ausgewählt. **Klicke hier um erneut zu wählen.**", "name_road": "**Gib dieser Straße einen Namen, dann drücke Escape oder Enter oder klicke den {button} Knopf um den Objekteditor zu schließen.**", - "did_name_road": "Schaut gut aus! Jetzt wirst du lernen, wie die den Zustand einer Linie verbessern kannst.", - "update_line": "Manchmal musst du den Zustand einer bestehenden Linie ändern. Hier ist eine Straße die nicht ganz richtig ausschaut.", + "did_name_road": "Sieht gut aus! Jetzt wirst du lernen, wie die den Zustand einer Linie verbessern kannst.", + "update_line": "Manchmal musst du den Zustand einer bestehenden Linie ändern. Hier ist eine Straße die nicht ganz richtig aussieht.", "add_node": "Du kannst weitere Knoten zu einer Linie hinzufügen, um den Zustand einer Linie zu verbessern. Eine Möglichkeit um neue Knoten zu zeichnen ist ein Doppelklick auf die Stelle der Linie, wo der neue Knoten entstehen soll. **Doppelklicke auf die Linie um einen neuen Knoten zu erzeugen.**", - "start_drag_endpoint": "Wenn eine Linie ausgewählt ist, kannst du jeden Knoten dieser Linie durch Klicken und Festhalten des linken Mausknopfs verschieben, **Schiebe den letzen Knoten der Linie dorthin wo sich diese Straßen kreuzen sollen.**", - "finish_drag_endpoint": "Hier schaut es gut aus. **Lass den Mausknopf aus um das Verschieben zu beenden.**", + "start_drag_endpoint": "Wenn eine Linie ausgewählt ist, kannst du jeden Knoten dieser Linie durch Klicken und Festhalten des linken Mausknopfs verschieben. **Schieb den letzen Knoten der Linie dorthinm wo sich diese Straßen kreuzen sollen.**", + "finish_drag_endpoint": "Hier sieht es gut aus. **Lass den Mausknopf aus um das Verschieben zu beenden.**", "start_drag_midpoint": "Kleine Dreiecke werden am *Mittelpunkt* zwischen zwei Knoten angezeigt. Eine weitere Möglichkeit um einen neuen Knoten zu erzeugen ist das Verschieben dieses Mittelpunkts zu einer neuen Lage. **Schiebe den Mittelpunkt und erzeuge damit einen neuen Knoten in der Straßenkurve.**", - "continue_drag_midpoint": "Diese Linie schaut viel besser aus! Setze das Anpassen der Linie durch Doppelklicken oder Verschieben von Mittelpunkten fort, bis die Kurve dem Straßenverlauf folgt. **Wenn Dir die Linie gefällt, klicke OK.**", + "continue_drag_midpoint": "Diese Linie sieht viel besser aus! Setze das Anpassen der Linie durch Doppelklicken oder Verschieben von Mittelpunkten fort, bis die Kurve dem Straßenverlauf folgt. **Wenn Dir die Linie gefällt, klicke OK.**", "delete_lines": "Wenn es Straßen in der echten Welt nicht gibt, kannst du die zugehörigen Linien löschen.{br}Hier hat die Stadt eine {street} geplant, aber nie gebaut. Du kannst diesen Teil der Karte verbessern, wenn du die zusätzlichen Linien löschst.", - "rightclick_intersection": "Die letzte bestehende Straße ist {street1}, daher wirst du die {street2} an dieser Kreuzung teilen und alle darüber löschen. **Rechtsklicke auf den Kreuzungs-Knoten:**", + "rightclick_intersection": "Die letzte bestehende Straße ist {street1}, daher wirst du die {street2} an dieser Kreuzung teilen und alles darüber löschen. **Rechtsklicke auf den Kreuzungs-Knoten:**", "split_intersection": "**Klicke auf {button} Knopf um die {street} zu teilen.**", "retry_split": "Du hast den Teilen-Knopf nicht gedrückt. Versuch es nochmals.", "did_split_multi": "Gut gemacht! Die {street1} ist jetzt in zwei Teile geteilt, der obere Teil kann gelöscht werden. **Klicke den oberen Teil der {street2} zum Auswählen an.**", @@ -1069,34 +1070,34 @@ "multi_rightclick": "Gut! Beide zu löschenden Linien sind jetzt ausgewählt. **Rechtsklicke auf eine der beiden Linien um das Bearbeitungs-Menü zu zeigen.**", "multi_delete": "**Klicke auf {button} Knopf um die zusätzlichen Linien zu löschen.**", "retry_delete": "Du hast den Löschen-Knopf nicht geklickt. Versuche es nochmals.", - "play": "Großartig! Du kannst jetzt das Gelernte verwenden und das Bearbeiten von Linien üben. **Wenn du zum nächsten Kapitel willst klicke '{next}'.**" + "play": "Großartig! Verwende das Gelernte um das Bearbeiten von Linien zu üben. **Wenn du zum nächsten Kapitel willst, klicke '{next}'.**" }, "buildings": { "title": "Gebäude", - "add_building": "OpenStreetMap ist die größte Gebäude-Datenbank der Welt.{br}Du kannst helfen diese Datenbank zu verbessern indem du Gebäude einzeichnest, die in der Karte noch fehlen. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", + "add_building": "OpenStreetMap ist die größte Gebäude-Datenbank der Welt.{br}Du kannst helfen diese Datenbank zu verbessern, indem du Gebäude einzeichnest, die in der Karte noch fehlen. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", "start_building": "Zeichne dieses Gebäude in der Karte ein, indem du seinen Umriss nachzeichnest.{br}Gebäude sollten entlang ihrer Grundfläche so genau wie möglich gezeichnet werden. **Klick oder drücke die Leertaste um den Startknoten auf einer Ecke des Gebäudes zu zeichnen.**", - "continue_building": "Erstelle weitere Knoten um den Umriss des Gebäudes nachzuzeichnen. Du kannst hinein zoomen wenn du mehr Details zeichnen willst.{br}Beende das Gebäude durch Drücken von Enter oder nochmal Klicken auf den ersten oder letzten Knoten.**Beende den Umriss des Gebäudes.**", - "retry_building": "Es schaut so aus als hättest du die Knoten nicht auf die Ecken des Gebäudes gesetzt. Versuche es noch einmal!", + "continue_building": "Erstelle weitere Knoten um den Umriss des Gebäudes nachzuzeichnen. Du kannst hinein zoomen, wenn du mehr Details zeichnen willst.{br}Beende das Gebäude durch Drücken von Enter oder nochmal Klicken auf den ersten oder letzten Knoten.**Beende den Umriss des Gebäudes.**", + "retry_building": "Es sieht so aus als hättest du die Knoten nicht auf die Ecken des Gebäudes gesetzt. Versuche es noch einmal!", "choose_category_building": "**Wähle {category} aus der Liste.**", "choose_preset_house": "Es gibt viele verschiedene Typen von Gebäuden, dieses ist eindeutig ein Einfamilienhaus.{br}Wenn du beim Gebäudetyp unsicher bist, wähle einfach Gebäude. **Wähle {preset}.**", "close": "**Drücke Escape oder klicke auf {button} Knopf um dem Objekteditor zu schließen.**", "rightclick_building": "**Rechtsklicke das gerade erzeugte Gebäude um es auszuwählen und zeige das Bearbeitungs-Menü.**", - "square_building": "Das gerade gezeichnete Haus schaut besser aus, wenn es perfekt rechtwinklige Ecken hat. **Klicke auf {button} Knopf um die Gebäudeecken rechtwinklig zu machen.**", + "square_building": "Das gerade gezeichnete Haus sieht besser aus, wenn es perfekt rechtwinklige Ecken hat. **Klicke auf {button} Knopf um die Gebäudeecken rechtwinklig zu machen.**", "retry_square": "Du hast nicht den Rechtwinklig-Machen-Knopf geklickt. Versuch es noch einmal.", - "done_square": "Siehst du wie die Ecken des Gebäude auf die richtige Stelle rücken? Schaut Dir noch einen anderen nützlichen Trick an.", + "done_square": "Siehst du wie die Ecken des Gebäude auf die richtige Stelle rücken? Lass uns einen weiteren nützlichen Trick lernen.", "add_tank": "Als Nächstes wirst du einen kreisrunden Tank zeichnen. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", - "start_tank": "Du musst keinen perfekten Kreis zeichnen. Zeichne einfach eine Fläche innerhalb des Tanks die seinen Rand berührt. **Klicke oder drücke die Leertaste um den ersten Knoten an Rand des Lagertanks zu zeichnen.**", + "start_tank": "Du musst keinen perfekten Kreis zeichnen. Zeichne einfach eine Fläche innerhalb des Tanks die seinen Rand berührt. **Klicke oder drücke die Leertaste um den ersten Knoten an Rand des Tanks zu zeichnen.**", "continue_tank": "Zeichne noch zwei weitere Knoten am Rand. Der Kreis wird außerhalb der gezeichneten Knoten erzeugt.{br}Beende die Fläche durch Drücken von Enter oder nochmal Klicken auf den ersten oder letzten Knoten.**Zeichne den Tank fertig.**", "search_tank": "**Suche nach '{preset}'.**", "choose_tank": "**Wähle {preset} von der Liste.**", "rightclick_tank": "**Wähle den gezeichneten Tank durch Rechtsklicken aus und zeige das Bearbeitungs-Menü.**", "circle_tank": "**Klicke auf {button} Knopf um den Tank kreisförmig zu machen.**", "retry_circle": "**Du hast nicht den Kreisförmig-machen Knopf gedrückt. Versuche es noch einmal.", - "play": "Super Arbeit! Zeichne zur Übung weitere Gebäude und probiere dabei andere Befehle im Bearbeitungs-Menü. **Wenn du zum nächsten Kapitel willst klicke '{next}'.**" + "play": "Gut gemacht! Zeichne zur Übung weitere Gebäude und probiere dabei andere Befehle im Bearbeitungs-Menü aus. **Wenn du zum nächsten Kapitel willst, klicke '{next}'.**" }, "startediting": { "title": "Bearbeiten beginnen", - "help": "Du bist nun bereit OpenStreetMap zu bearbeiten!{br}Du kannst mit dem {button} Hilfe-Knopf oder der '{key}'-Taste diesen Rundgang wieder aufrufen oder mehr Dokumentation ansehen.", + "help": "Du bist nun bereit OpenStreetMap zu bearbeiten!{br}Du kannst mit dem {button} Hilfe-Knopf oder der '{key}'-Taste mehr Dokumentation ansehen und diesen Rundgang wieder aufrufen.", "shortcuts": "Du kannst eine Liste der Befehle zusammen mit ihren Tastenkürzeln durch Drücken der '{key}'-Taste ansehen.", "save": "Vergiss nicht, regelmäßig zu speichern, um die Änderungen zu OpenStreetMap hochzuladen!", "start": "Beginne mit dem Bearbeiten!" @@ -1191,10 +1192,10 @@ "merge": "Vereinige die ausgewählten Objekte", "disconnect": "Objekte am ausgewählten Knoten trennen", "split": "Linie am ausgewählten Knoten in zwei Linien teilen", - "reverse": "Richtung der Linie umkehren", + "reverse": "Richtung der Linie umdrehen", "move": "Ausgewählte Objekte verschieben", "rotate": "Ausgewählte Objekte drehen", - "orthogonalize": "Linie gerade biegen / Ecken rechtwinklig machen", + "orthogonalize": "Linie begradigen / Ecken rechtwinklig machen", "circularize": "Geschlossene Linie/Fläche kreisförmig machen", "reflect_long": "Objekte an der lange Achse spiegeln", "reflect_short": "Objekte an der kurzen Achse spiegeln", @@ -1221,6 +1222,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "O", + "west": "W", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -3102,6 +3125,10 @@ "name": "Dusche", "terms": "Dusche" }, + "amenity/smoking_area": { + "name": "Raucherbereich", + "terms": "Raucherbereich" + }, "amenity/social_facility": { "name": "Sozialeinrichtung", "terms": "Sozialeinrichtung, Sozialhilfeeinrichtung" @@ -3335,6 +3362,10 @@ "name": "Hecke", "terms": "Hecke" }, + "barrier/kerb": { + "name": "Bordstein", + "terms": "Bordstein, Randstein" + }, "barrier/kissing_gate": { "name": "Schwinggatter", "terms": "Tor, Gatter" @@ -3419,7 +3450,7 @@ "terms": "Gebäude im Bau" }, "building/detached": { - "name": "Freistehendes Einfamiliehaus", + "name": "Freistehendes Einfamilienhaus", "terms": "alleinstehendes Haus, freistehendes Haus, Einfamilienhaus" }, "building/dormitory": { @@ -3786,6 +3817,10 @@ "emergency/private": { "name": "private Notzufahrt" }, + "emergency/water_tank": { + "name": "Löschwasser", + "terms": "Löschwasser, Löschteich, Löschreservoir" + }, "emergency/yes": { "name": "Notzufahrt erlaubt" }, @@ -3898,7 +3933,7 @@ "terms": "Optiker, Brillenoptiker" }, "healthcare/physiotherapist": { - "name": "Physiotherapeutin", + "name": "Physiotherapeut/in", "terms": "Physiotherapeutin, Krankengymnast, Physiotherapeut, Krankengymnastin" }, "healthcare/podiatrist": { @@ -4013,7 +4048,7 @@ }, "highway/residential": { "name": "Anliegerstraße", - "terms": "Anliegerstraße,Wohngebietsstraße, Siedlungsstraße, Ortsstraße" + "terms": "Anliegerstraße,Wohngebietsstraße,Siedlungsstraße,Ortsstraße" }, "highway/rest_area": { "name": "Rastplatz ohne Tankstelle/Restaurant", @@ -4164,8 +4199,8 @@ "terms": "Flächennutzung, Raumnutzung, Bodennutzung, Landnutzung" }, "landuse/allotments": { - "name": "Gemeinschaftsgarten", - "terms": "Gemeinsamer Garten" + "name": "Kleingartenanlage", + "terms": "Kleingärten, Schrebergärten, Schrebergarten, Gartensparte" }, "landuse/aquaculture": { "name": "Aquakultur", @@ -4324,7 +4359,7 @@ }, "landuse/residential": { "name": "Wohngebiet", - "terms": "Wohngebiet, Wohnanlage, Wohngegend, Wohnregion, Wohnhäuser, Siedlungsfläche" + "terms": "Wohngebiet,Wohnanlage,Wohngegend,Wohnregion,Wohnhäuser,Siedlungsfläche" }, "landuse/retail": { "name": "Geschäftsgebiet", @@ -5242,8 +5277,8 @@ "terms": "Lift-/Seilbahn-Haltestelle" }, "public_transport/station_bus": { - "name": "Bushaltestelle", - "terms": "Bushaltestelle" + "name": "Busbahnhof", + "terms": "Busbahnhof, Busterminal, Bushaltestelle" }, "public_transport/station_ferry": { "name": "Fähranleger", @@ -6284,6 +6319,13 @@ "description": "Esri World Bildmaterial.", "name": "Esri World Bildmaterial" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Bedingungen & Feedback" + }, + "description": "Esri Archiv-Bildmaterial (kann klarer und genauer sein)", + "name": "Esri World Bildmaterial (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap-Mitwirkende, CC BY-SA" diff --git a/dist/locales/en-GB.json b/dist/locales/en-GB.json index 8a9ae582a..0a5dc286f 100644 --- a/dist/locales/en-GB.json +++ b/dist/locales/en-GB.json @@ -386,7 +386,6 @@ "title": "Measurement", "selected": "{n} selected", "geometry": "Geometry", - "closed": "closed", "center": "Centre", "perimeter": "Perimeter", "length": "Length", @@ -465,7 +464,6 @@ "switch": "Switch back to this background", "custom": "Custom", "custom_button": "Edit custom background", - "custom_prompt": "Enter a tile URL template. Valid tokens are:\n - {zoom}/{z}, {x}, {y} for Z/X/Y tile scheme\n - {ty} for flipped TMS-style Y coordinates\n - {u} for quadtile scheme\n - {switch:a,b,c} for DNS server multiplexing\n\nExample:\n{example}", "reset": "reset", "minimap": { "tooltip": "Show a zoomed out map to help locate the area currently displayed.", @@ -640,7 +638,6 @@ "untagged_area_tooltip": "Select a feature type that describes what this area is.", "untagged_relation": "Untagged relation", "untagged_relation_tooltip": "Select a feature type that describes what this relation is.", - "many_deletions": "You're deleting {n} features. Are you sure you want to do this? This will delete them from the map that everyone else sees on openstreetmap.org.", "tag_suggests_area": "The tag {tag} suggests line should be area, but it is not an area", "deprecated_tags": "Deprecated tags: {tags}" }, @@ -3402,10 +3399,10 @@ "name": "Raised Street Crossing" }, "footway/crosswalk": { - "name": "Pedestrian Crosswalk" + "name": "Zebra Crossing" }, "footway/crosswalk-raised": { - "name": "Raised Pedestrian Crosswalk" + "name": "Raised Zebra Crossing" }, "footway/sidewalk": { "name": "Pavement", @@ -3505,10 +3502,10 @@ "name": "Raised Street Crossing" }, "highway/crosswalk": { - "name": "Pedestrian Crosswalk" + "name": "Zebra Crossing" }, "highway/crosswalk-raised": { - "name": "Raised Pedestrian Crosswalk" + "name": "Raised Zebra Crossing" }, "highway/cycleway": { "name": "Cycle Path" @@ -4417,7 +4414,7 @@ "name": "Buffer Stop" }, "railway/crossing": { - "name": "Railway Crossing (Path)" + "name": "Level Crossing (Path)" }, "railway/derail": { "name": "Railway Derailer" @@ -4429,7 +4426,7 @@ "name": "Funicular" }, "railway/level_crossing": { - "name": "Railway Crossing (Road)" + "name": "Level Crossing (Road)" }, "railway/milestone": { "name": "Railway Milestone" diff --git a/dist/locales/eo.json b/dist/locales/eo.json index cf07642ee..53a605605 100644 --- a/dist/locales/eo.json +++ b/dist/locales/eo.json @@ -388,7 +388,8 @@ "title": "Mezuro", "selected": "{n} elektitaj", "geometry": "Geometrio", - "closed": "fermita", + "closed_line": "fermita linio", + "closed_area": "fermita areo", "center": "Centro", "perimeter": "Ĉirkaŭmezuro", "length": "Longo", @@ -461,7 +462,7 @@ }, "background": { "title": "Fono", - "description": "Fonaj agordoj", + "description": "Agordoj de fono", "key": "B", "backgrounds": "Fonoj", "none": "Neniu", @@ -469,7 +470,7 @@ "switch": "Baskuli reen al ĉi tiu fono", "custom": "Propra", "custom_button": "Redakti propran fonon", - "custom_prompt": "Entajpu URL-skemon de kaheloj. Ĝustaj ĵetonoj estas:\n - {zoom}/{z}, {x}, {y} por Z/X/Y kahela skemo\n - {ty} por renversaj TMS-stilaj Y-koordinatoj\n - {u} por kvarkahela (quadtile) skemo\n - {switch:a,b,c} por DNS-servila kunigado (multiplexing)\n\nEkzemplo:\n{example}", + "custom_prompt": "Entajpu URL-skemon de kaheloj. Ĝustaj ĵetonoj estas:\n - {zoom}/{z}, {x}, {y} por Z/X/Y kahela skemo\n - {-y} aŭ {ty} por renversaj TMS-stilaj Y-koordinatoj\n - {u} por kvarkahela (quadtile) skemo\n - {switch:a,b,c} por DNS-servila kunigado (multiplexing)\n\nEkzemplo:\n{example}", "overlays": "Surtavoloj", "imagery_source_faq": "Pri fotaro / Raporti problemon", "reset": "restarigi", @@ -652,7 +653,7 @@ "untagged_area_tooltip": "Elektu specon de objekto, kiu priskribas ĉi tiun areon.", "untagged_relation": "Senetikeda rilato", "untagged_relation_tooltip": "Elektu specon de objekto, kiu priskribas ĉi tiun rilaton.", - "many_deletions": "Vi forigas {n} elementojn. Ĉu vi certe volas fari ĉi tion? Ĉi tio forigos ilin el la mapo, kiun ĉiuj vidas je openstreetmap.org.", + "many_deletions": "Vi forigas {n} elementojn: {p} nodo(j)n, {l} linio(j)n, {a} areo(j)n kaj {r} rilato(j)n. Ĉu vi certe volas fari tion. Tio ĉi forigos ilin el la mapo, kiun ĉiuj vidas ĉe openstreetmap.org.", "tag_suggests_area": "La etikedo {tag} indikas, ke linio estu areo, sed ĝi ne estas areo", "deprecated_tags": "Evitindaj etikedoj: {tags}" }, @@ -827,10 +828,10 @@ "title": "Fona fotaro", "intro": "Fona fotaro videbla malantaŭ map-datumoj estas grava fonto por mapigi. Tiu ĉi fotaro povas esti kolektita per satelitoj, aviadiloj aŭ flugrobotoj, aŭ ĝi povas esti skanita historia mapo aŭ aliaj libere disponeblaj datumoj.", "sources_h": "Fontoj de fotaro", - "choosing": "Por vidigi disponeblajn fontojn de fotaro por mapigi, klaku la butonon {layers} **fonaj agordoj** flanke de la mapo.", + "choosing": "Por vidigi disponeblajn fontojn de fotaro por mapigi, klaku la butonon {layers} **agordoj de fono** flanke de la mapo.", "sources": "Implicite satelita fotaro de [Bing Mapoj](https://www.bing.com/maps/) estas elektita kiel fono. Depende de kie vi mapigas, aliaj fontoj de fotaro povas esti elekteblaj. Iuj povas esti pli aktualaj aŭ pli akurataj, do ĉiam indas kontroli kiu tavolo estas plej taŭga por uzi kiel map-referencon.", "offsets_h": "Ĝustigi fotaran deŝovon", - "offset": "Fotaro estas iomete deŝovita rilate al akurataj map-datumoj. Se vi vidas multe da vojoj kaj konstruaĵoj deŝovitaj rilate al la fona fotaro, probable la fotaro estas malĝusta, do ne movu ilin por kongrui al la fono. Anstataŭ tio, vi povas ĝustigi la fonon tiel, kiel ĝi kongruos kun ekzistantaj datumoj per etendi la sekcion “ĝustigi fotaran deŝovon” sube ĉe la panelo “fonaj agordoj”.", + "offset": "Fotaro estas iomete deŝovita rilate al akurataj map-datumoj. Se vi vidas multe da vojoj kaj konstruaĵoj deŝovitaj rilate al la fona fotaro, probable la fotaro estas malĝusta, do ne movu ilin por kongrui al la fono. Anstataŭ tio, vi povas ĝustigi la fonon tiel, kiel ĝi kongruos kun ekzistantaj datumoj per etendi la sekcion “ĝustigi fotaran deŝovon” sube ĉe la panelo “agordoj de fono”.", "offset_change": "Klaku trianguletojn por ĝustigi fotaran deŝovon je etaj paŝoj, aŭ premu la maldekstran mus-butonon kaj trenu ene griza kvadrato por ŝovi la fotaron al datumoj." }, "streetlevel": { @@ -1219,6 +1220,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} ft²", + "square_miles": "{quantity} mi²", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "W", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -2683,7 +2706,7 @@ }, "aerialway/pylon": { "name": "Kablovoja fosto", - "terms": "apogilo,apogstango,fosto,paliso,stango" + "terms": "apogilo,apogstango,fosto,paliso,stango,kolono" }, "aerialway/rope_tow": { "name": "Skitelfero ŝnur-tira", @@ -3100,6 +3123,10 @@ "name": "Duŝejo", "terms": "duŝo,dushejo,dusxejo,banado" }, + "amenity/smoking_area": { + "name": "Fumejo", + "terms": "cigaredfumejo" + }, "amenity/social_facility": { "name": "Socia servejo", "terms": "socia servo,socia helpo" @@ -3333,6 +3360,10 @@ "name": "Kreskaĵbarilo", "terms": "kreskajhbarilo,kreskajxbarilo,heĝo,hegho,hegxo,plektobarilo" }, + "barrier/kerb": { + "name": "Trotuar-randaĵo", + "terms": "trotuarrandaĵo,randaĵo,randŝtono" + }, "barrier/kissing_gate": { "name": "Nurhoma pordego", "terms": "kontraŭbruta,kontraubruta,kontrauxbruta" @@ -3784,6 +3815,10 @@ "emergency/private": { "name": "Vivsav-serva aliro: privata" }, + "emergency/water_tank": { + "name": "Kontraŭbrulega akvujo", + "terms": "akvujo,rezervujo,kriokaza akvujo,fajrobrigada akvujo" + }, "emergency/yes": { "name": "Vivsav-serva aliro: jes" }, @@ -6282,6 +6317,13 @@ "description": "Tutmonda fotaro de Esri.", "name": "Tutmonda fotaro de Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Kondiĉoj kaj rimarkoj" + }, + "description": "Arĥivita fotaro de Esri, kiu povas esti pli klara kaj akurata ol la norma tavolo.", + "name": "Tutmonda fotaro de Esri (pli klara) Beta" + }, "MAPNIK": { "attribution": { "text": "© kontribuintoj de OpenStreetMap, CC-BY-SA" diff --git a/dist/locales/es.json b/dist/locales/es.json index a80abb10f..21f5dfbb9 100644 --- a/dist/locales/es.json +++ b/dist/locales/es.json @@ -389,7 +389,6 @@ "title": "Medición", "selected": "{n} seleccionado", "geometry": "Geometría", - "closed": "cerrada", "center": "Centro", "perimeter": "Perímetro", "length": "Longitud", @@ -470,7 +469,6 @@ "switch": "Volver a este fondo", "custom": "Personalizado", "custom_button": "Editar fondo personalizado", - "custom_prompt": "Introduzca una plantilla URL de tesela. Los tokens válidos son:\n  - {zoom}/{z}, {x}, {y} para el esquema de tesela Z/X/Y\n  - {ty} para coordenadas Y invertidas del estilo TMS\n  - {u} para el esquema quadtile\n  - {switch:a,b,c} para la multiplexación del servidor DNS\n\nEjemplo:\n{example}", "overlays": "Superposiciones", "imagery_source_faq": "Información de imágenes / Informar un problema", "reset": "reiniciar", @@ -654,7 +652,6 @@ "untagged_area_tooltip": "Seleccione un tipo de elemento que describa lo que es esta área.", "untagged_relation": "Relación no etiquetada", "untagged_relation_tooltip": "Seleccione un tipo de elemento que describa qué es esta relación.", - "many_deletions": "Está eliminando {n} elementos. ¿Está seguro que quiere hacer esto? Esto los eliminará del mapa que todo el mundo ve en openstreetmap.org.", "tag_suggests_area": "La etiqueta {tag} sugiere que esta línea debería ser una área, pero no es un área", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, @@ -4082,7 +4079,7 @@ }, "highway/traffic_signals": { "name": "Semáforos", - "terms": "semáforo, señal de tráfico, luces de tráfico, luces de señalización, luces de parado, señal, tráfico, tránsito, control" + "terms": "semáforo, semaforo, señal de tráfico, luces de tráfico, luces de señalización, luces de parado, señal, tráfico, tránsito, control" }, "highway/trunk": { "name": "Carretera principal", diff --git a/dist/locales/et.json b/dist/locales/et.json index efc0a082e..138909328 100644 --- a/dist/locales/et.json +++ b/dist/locales/et.json @@ -559,7 +559,6 @@ "untagged_line": "Sildistamata joon", "untagged_area": "Sildistamata ala", "untagged_relation": "Sildistamata relatsioon", - "many_deletions": "Oled kustutamas {n} objekti. Kas oled sa kindel, et soovid seda teha? See kustutab need kaardilt, mida kõik näevad aadressil openstreetmap.org.", "tag_suggests_area": "Silt {tag} viitab, et joon peaks olema ala, kuid see pole ala.", "deprecated_tags": "Iganenud sildid: {tags}" }, diff --git a/dist/locales/fa.json b/dist/locales/fa.json index 27f209183..c538a7b84 100644 --- a/dist/locales/fa.json +++ b/dist/locales/fa.json @@ -379,7 +379,7 @@ "measurement": { "key": "M", "title": "اندازه", - "closed": "بسته شده", + "geometry": "هندسه", "center": "مرکز", "perimeter": "محیط", "length": "درازا", @@ -387,7 +387,8 @@ "centroid": "مرکز", "location": "مکان", "metric": "متریک", - "imperial": "امپراتوری" + "imperial": "امپراتوری", + "node_count": "تعداد گره ­ها" } }, "geometry": { @@ -459,6 +460,8 @@ "switch": "بازگشت به این پس‌زمینه", "custom": "سفارشی", "custom_button": "ویرایش پشت زمینه سفارشی", + "overlays": "پوشش ها", + "imagery_source_faq": "اطلاعات تصویر / گزارش یک مشکل", "reset": "باز نشاندن", "brightness": "روشنایی", "minimap": { @@ -545,7 +548,8 @@ "restore": { "heading": "شما تغییرات ذخیره نشده دارید", "description": "آیا مایلید تغییرات ذخیره نشده جلسه قبل را بازیابی کنید؟", - "restore": " بازگردانی تغییرات من" + "restore": " بازگردانی تغییرات من", + "reset": "لغو تغییرات من" }, "save": { "title": "ذخیره", @@ -614,7 +618,6 @@ "untagged_line_tooltip": "یک نوع عنصر را برای توصیف موجودیت این خط انتخاب کنید.", "untagged_area": "فضای برچسب گذاری نشده", "untagged_area_tooltip": "یک نوع عنصر را برای توصیف موجودیت این محدوده انتخاب کنید.", - "many_deletions": "شما در حال حذف {n} شئ هستید. مطمئنید میخواهید این کار را انجام دهید؟ این کار آنها را از نقشه ای که دیگران در openstreetmap.org میبینند حذف می کند.", "tag_suggests_area": "برچسب {tag} پیشنهاد میکند خط باید یک فضا باشد، اما این یک فضا نیست", "deprecated_tags": "برچسب های توصیه شده: {tags}" }, @@ -647,7 +650,8 @@ "open_source_h": "سورس باز" }, "overview": { - "navigation_h": "مسیریابی" + "navigation_h": "مسیریابی", + "features_h": "ویژگی‌های نقشه" }, "editing": { "select_h": "انتخاب", diff --git a/dist/locales/fi.json b/dist/locales/fi.json index 02778cb5f..eff72a35e 100644 --- a/dist/locales/fi.json +++ b/dist/locales/fi.json @@ -353,7 +353,6 @@ "title": "Mittaus", "selected": "{n} valittu", "geometry": "Muoto", - "closed": "umpinainen", "perimeter": "Piiri", "length": "Pituus", "area": "Pinta-ala", @@ -586,7 +585,6 @@ "untagged_area": "Ominaisuustiedoton alue", "untagged_area_tooltip": "Valitse ominaisuustyyppi, joka kuvaa tämän alueen tarkoitusta.", "untagged_relation": "Ominaisuustiedoton relaatio", - "many_deletions": "Olet poistamassa {n} karttakohdetta. Haluatko varmasti poistaa ne kaikkien julkisesti käyttämältä OpenStreetMap.org-kartalta?", "tag_suggests_area": "Ominaisuustiedon {tag} mukaan viiva on alue, vaikka se ei sitä ole.", "deprecated_tags": "Vanhentuneet ominaisuustiedot: {tags}" }, diff --git a/dist/locales/fr.json b/dist/locales/fr.json index b29d0c9e8..7e702e613 100644 --- a/dist/locales/fr.json +++ b/dist/locales/fr.json @@ -389,7 +389,6 @@ "title": "Mesures", "selected": "{n} dans la sélection", "geometry": "Geométrie", - "closed": "fermé", "center": "Centre", "perimeter": "Périmètre", "length": "Longueur", @@ -470,7 +469,6 @@ "switch": "Revenir à cet arrière-plan", "custom": "Personnalisé", "custom_button": "Modifier le fond personnalisé", - "custom_prompt": "Entrez un modèle URL de tuile. Les symboles valide sont : \n - {zoom}/{z}, {x}, {y} pour schéma de tuile Z/X/Y\n- {ty} pour basculer vers le style de coordonées TMS Y\n- {u} pour le schéma quadri-tuiles\n- {switch:a,b,c} pour le multiplexage de serveur DNS\n\nExemple:\n{example}", "overlays": "Calques", "imagery_source_faq": "Info imagerie / Signaler un problème", "reset": "réinitialiser", @@ -654,7 +652,6 @@ "untagged_area_tooltip": "Sélectionnez un type d'élément pour décrire cette surface.", "untagged_relation": "Relation sans attributs", "untagged_relation_tooltip": "Sélectionnez un type d’entité décrivant ce qu’est cette relation.", - "many_deletions": "Vous êtes en train de supprimer {n} éléments. En êtes-vous sûr ? Ils seront supprimés de la carte que tout le monde voit sur openstreetmap.org.", "tag_suggests_area": "Cet attribut {tag} suppose que cette ligne devrait être un polygone, or ce n'est pas le cas", "deprecated_tags": "Attributs obsolètes : {tags}" }, @@ -715,8 +712,11 @@ "title": "Modifier et sauvegarder", "select_h": "Selectionner", "select_left_click": "{clic gauche} Cliquez avec le bouton gauche de la souris sur une fonctionnalité pour la sélectionner. Ceci le mettra en surbrillance, et la barre latérale affichera des détails de cette fonctionnalité, tels que son nom ou son adresse.", + "select_right_click": "{rightclick} Le click droit sur un élément affiche le menu d'édition, qui permet d'effectuer certaines opérations sur cet élément comme le tourner, le déplacer ou le supprimer.", "multiselect_h": "Sélection multiple", + "multiselect_shift_click": "`{shift}`+{leftclick} permet de sélectionner plusieurs éléments en même temps. Cela permet de déplacer ou de supprimer plusieurs objets d'un coup.", "undo_redo_h": "Annuler & Rétablir", + "undo_redo": "Vos modifications sont enregistrées localement dans votre navigateur tant que vous ne les envoyez pas sur les serveurs d'OpenStreetMap. Vous pouvez annuler vos action en appuyant sur le bouton {undo} **Annuler** et les refaire en appuyant sur le bouton {redo} **Refaire**.", "save_h": "Sauvegarder", "save": "Cliquez sur {save} **Enregistrer** pour envoyer vos modifications à OpenStreetMap. Enregistrez fréquemment !", "upload_h": "Téléverser", @@ -734,6 +734,7 @@ "type_picker": "Le sélectionneur de type affiche les types d'éléments les plus fréquents, tels que les parcs, hôpitaux, restaurants, routes et bâtiments. Vous pouvez tout cherchez en tapant ce que vous voulez dans le champs de recherche. Vous pouvez aussi cliquer sur l'icône {inspect} **Info** à côté du type de l'élément pour en apprendre plus.", "fields_h": "Champs", "fields_all_fields": "La section *Tous les champs* contient toutes les informations qui peuvent être éditées. Dans OpenStreetMap, tous les champs sont facultatifs. Vous pouvez toujours les laisser vides en cas de doute.", + "fields_add_field": "Vous pouvez aussi cliquer sur le menu déroulant \"Ajouter un champ\" pour ajouter plus d'informations, comme une description, un lien Wikipédia, un accès handicapé, et cetera...", "tags_h": "Tags" }, "points": { @@ -775,7 +776,9 @@ "gps": { "title": "Traces GPS", "using_h": "Utilisation des traces GPS", - "tracing": "La trace GPS n'est pas envoyée à OpenStreetMap. Le meilleur moyen de l'utiliser est de dessiner sur la carte en s'en servant de modèle." + "using": "Pour utiliser une trace GPS, faites la glisser dans l'éditeur. Si elle est reconnue, elle apparaîtra en violet sur la carte. Cliquez sur {data} **Données Carte** pour montrer, cacher ou zoomer sur la trace GPS.", + "tracing": "La trace GPS n'est pas envoyée à OpenStreetMap. Le meilleur moyen de l'utiliser est de dessiner sur la carte en s'en servant de modèle.", + "upload": "Vous pouvez aussi [uploader vos données GPS sur OpenStreetMap](https://www.openstreetmap.org/trace/create) pour que d'autres utilisateurs puissent les utiliser." } }, "intro": { @@ -1858,7 +1861,7 @@ "label": "Niveau" }, "levels": { - "label": "Étages", + "label": "Nombre de niveaux", "placeholder": "2, 4, 6..." }, "lit": { @@ -2987,11 +2990,12 @@ "terms": "Services publics des parcs nationaux" }, "amenity/recycling": { - "name": "Conteneur de recyclage" + "name": "Conteneur de recyclage", + "terms": "bulle à verre,bulles à verre,container de recyclage,benne de recyclage,point de collecte" }, "amenity/recycling_centre": { "name": "Déchetterie", - "terms": "centre de recyclage" + "terms": "centre de recyclage,déchèterie,déchetterie,recyparc,parc à conteneurs,écocentre" }, "amenity/register_office": { "name": "Bureau d'état-civil" diff --git a/dist/locales/gl.json b/dist/locales/gl.json index 37fef71df..6d78ff894 100644 --- a/dist/locales/gl.json +++ b/dist/locales/gl.json @@ -25,6 +25,9 @@ }, "draw_line": { "tail": "Fai clic para engadir máis vértices á liña. Fai clic noutras liñas para conectalas, e fai dobre clic para rematar a liña." + }, + "drag_node": { + "connected_to_hidden": "Isto non se pode editar xa que está conectado cun elemento oculto." } }, "operations": { @@ -111,7 +114,7 @@ "line": "Liña borrada", "area": "Área borrada.", "relation": "Relación borrada.", - "multiple": "Borrados {n} recursos." + "multiple": "Borrados {n} elementos." }, "too_large": { "single": "Este elemento non pode ser borrado porque non é totalmente visible.", @@ -119,15 +122,15 @@ }, "incomplete_relation": { "single": "Este elemento non pode ser eliminado porque aínda non foi completamente baixado.", - "multiple": "Estes recursos non poden ser eliminados por non estar totalmente baixados." + "multiple": "Estes elementos non poden ser eliminados por non estar totalmente baixados." }, "part_of_relation": { - "single": "Este recurso non pode ser eliminado porque é parte dunha relación maior. Debe primeiro eliminarlo da relación.", - "multiple": "Estes recursos non poden ser eliminados porque son parte de relacións maiores. Debe en primeiro lugar eliminalos das relacións." + "single": "Este elemento non pode ser eliminado porque é parte dunha relación maior. Debes primeiro eliminalo da relación.", + "multiple": "Estes elementos non poden ser eliminados porque son parte de relacións maiores. Debes en primeiro lugar eliminalos das relacións." }, "connected_to_hidden": { - "single": "Este recurso non poden ser borrado porque conecta cun recurso agochado.", - "multiple": "Estes recursos non poden ser borrados porque conectan con recursos agochados." + "single": "Este elemento non poden ser borrado porque está conectado cun elemento agochado.", + "multiple": "Estes elementos non poden ser borrados porque conectan con elementos agochados." } }, "add_member": { @@ -160,7 +163,7 @@ "annotation": "Unidos {n} elementos.", "not_eligible": "Estes elementos non se poden unir.", "not_adjacent": "Estos elementos non se poden fusionar porque os seus extremos non están ligados.", - "restriction": "Estos elementos non ponden ser unidos porque polo menos un é membro dunha \"{relation}\" relación.", + "restriction": "Estes elementos non se poden unir porque polo menos un delees é un membro dunha relación \"{relation}\".", "incomplete_relation": "Estes elementos non se poden unir porque cando menos un deles non se descargou completamente.", "conflicting_tags": "Estes elementos non se poden unir porque algunhas das súas etiquetas teñen valores contraditorios." }, @@ -184,7 +187,7 @@ }, "too_large": { "single": "Este elemento non pode ser movido porque actualmente non é completamente visible.", - "multiple": "Estes elementos non ponden ser movidos porque actualmente non son completamente visibles." + "multiple": "Estes elementos non poden ser movidos porque actualmente non son completamente visibles." }, "connected_to_hidden": { "single": "Este elemento non pode ser movido proque está ligado a un elemento agochado.", @@ -193,8 +196,8 @@ }, "reflect": { "title": { - "long": "Reflexar ao Longo", - "short": "Reflexar ao Curto" + "long": "Reflexar ao longo", + "short": "Reflexar ao curto" }, "description": { "long": { @@ -310,6 +313,7 @@ "localized_translation_language": "Escoller idioma", "localized_translation_name": "Nome" }, + "zoom_in_edit": "Fai zoom para editar", "login": "loguear", "logout": "saír", "loading_auth": "Conectando con OpenStreetMap...", @@ -340,7 +344,8 @@ "created": "Creado", "about_changeset_comments": "Acerca dos comentarios dos conxuntos de cambios", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", - "google_warning": "Mencionaches Google neste comentario: lembra que a copia de Google Maps está estrictamente prohibida." + "google_warning": "Mencionaches Google neste comentario: lembra que a copia de Google Maps está estrictamente prohibida.", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "Edicións de {users}", @@ -359,7 +364,9 @@ "accuracy": "Precisión", "unknown": "Descoñecido", "show_tiles": "Amosar teselas", - "hide_tiles": "Ocultar teselas" + "hide_tiles": "Ocultar teselas", + "show_vintage": "Mostrar antigüidade", + "hide_vintage": "Ocultar antigüidade" }, "history": { "key": "H", @@ -382,7 +389,8 @@ "title": "Medidas", "selected": "{n} seleccionados", "geometry": "Xeometría", - "closed": "pechado", + "closed_line": "liña pechada", + "closed_area": "área pechada", "center": "Centro", "perimeter": "Perímetro", "length": "Lonxitude", @@ -390,7 +398,8 @@ "centroid": "Centroide", "location": "Localización", "metric": "Métrico", - "imperial": "Imperial" + "imperial": "Imperial", + "node_count": "Número de nodos" } }, "geometry": { @@ -456,14 +465,22 @@ "title": "Fondo", "description": "Axustes do fondo", "key": "B", + "backgrounds": "Fondos", "none": "Ningún", "best_imagery": "Mellor fonte de imaxes coñecida deste sitio", "switch": "Voltar a este fondo", "custom": "Personalizado", "custom_button": "Editar fondo personalizado", - "custom_prompt": "Introducir unha plantilla URL de mosaico. Os tokens válidos son:\n - {zoom}/{z}, {x}, {y} para o esquema de mosaico Z/X/Y\n - {ty} para coordenadas Y invertidas estilo TMS\n - {u} para o esquema quadtile\n - {switch:a,b,c} para multiplexado de servidores DNS\n\nExemplo:\n{example}", + "overlays": "Superposicións", + "imagery_source_faq": "Información das imaxes/Informar dun problema", "reset": "reiniciar", + "display_options": "Opcións de visualización", + "brightness": "Brillo", + "contrast": "Contraste", + "saturation": "Saturación", + "sharpness": "Enfoque", "minimap": { + "description": "Mostrar minimapa", "tooltip": "Mostrar un mapa reducido para facilitar a localización da área que se estea a mostrar. ", "key": "/" }, @@ -565,6 +582,7 @@ "status_code": "O servidor devolveu a referencia de estado {code}", "unknown_error_details": "Asegúrate de que estás conectado a internet.", "uploading": "Subindo trocos a OpenStreetMap...", + "conflict_progress": "Comprobando conflitos: {num} de {total}", "unsaved_changes": "Tes cambios sen gardar", "conflict": { "header": "Resolvendo os conflitos de edición", @@ -596,7 +614,7 @@ "facebook": "Compartir no Facebook", "twitter": "Compartir no Twitter", "google": "Compartir no Google+", - "help_html": "Os cambios deben aparecer na capa \"Standard\" en poucos minutos. Outras capas, e certas características, pode levar máis tempo.", + "help_html": "Os teus cambios deberían aparecer na capa \"Estándar\" nuns minutos. Outras capas, e determinados elementos, poden tardar máis tempo.", "help_link_text": "Detalles", "help_link_url": "https://wiki.openstreetmap.org/wiki/FAQ#I_have_just_made_some_changes_to_the_map._How_do_I_get_to_see_my_changes.3F" }, @@ -607,7 +625,8 @@ "splash": { "welcome": "Benvido ao editor de OpenStreetMap iD", "text": "iD é unha amigable pero potente ferramenta para contribuir ao mellor mapa libre do mundo. Esta é a versión {version}. Para obter máis información visita {website} e informa de erros en {github}.", - "walkthrough": "Comezar o titorial" + "walkthrough": "Comezar o titorial", + "start": "Editar agora" }, "source_switch": { "live": "en liña", @@ -635,7 +654,6 @@ "untagged_area_tooltip": "Escolle un tipo de elemento que describa o que é esta área.", "untagged_relation": "Relación sen etiquetar", "untagged_relation_tooltip": "Escolle un tipo de elemento que describa o que é esta relación.", - "many_deletions": "Ti estás a borrar {n} elementos. Estás seguro de que queres facer isto? Isto o borrará do mapa e ninguén o verá en openstreetmap.org.", "tag_suggests_area": "A etiqueta {tag} suxire que a liña debería ser unha área, pero non é unha área.", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, @@ -658,9 +676,19 @@ "mapillary": { "view_on_mapillary": "Ver esta imaxe en Mapillary" }, + "openstreetcam_images": { + "tooltip": "Fotos ao nivel da rúa de OpenStreetCam", + "title": "Superposición de fotos (OpenStreetCam)" + }, + "openstreetcam": { + "view_on_openstreetcam": "Ver esta imaxe en OpenStreetCam" + }, "help": { "title": "Axuda", - "key": "H" + "key": "H", + "help": { + "title": "Axuda" + } }, "intro": { "done": "feito", @@ -838,6 +866,7 @@ }, "areas": { "title": "Áreas", + "add_playground": "As *áreas* son usadas para amosar límites de elementos tales como lagoas, edificios e zonas residenciais.{br}Tamén poden ser empregadas para cartografar con maior detalle moitos dos elementos que normalmente cartografarías como puntos. **Fai clic no botón {button} Área para engadir unha nova área.**", "start_playground": "Engadamos este parque infantil ao mapa debuxando unha área. As áreas debúxanse colocando *nodos* ao longo do bordo exterior do elemento. **Fai clic ou preme a barra espaciadora para poñer un nodo inicial nunha das esquinas do parque infantil.**", "continue_playground": "Continúa debuxando a área colocando máis nodos ao longo do bordo do parque infantil. Está ben conectar a área cos camiños peonís existentes.{br}Consello: podes manter presa a tecla '{alt}' para evitar que os nodos se conecten nos elemetos próximos. **Continúa a debuxar a área do parque infantil.**", "finish_playground": "Remata a área premendo enter, ou facendo clic outra vez no último ou no primeiro nodo. **Remata de debuxar a área para o parque infantil.**", diff --git a/dist/locales/he.json b/dist/locales/he.json index 0d607fcd6..35a7df336 100644 --- a/dist/locales/he.json +++ b/dist/locales/he.json @@ -344,7 +344,6 @@ "title": "מדידה", "selected": "{n} נבחרו", "geometry": "צורה", - "closed": "סגורה", "center": "מרכז", "perimeter": "היקף", "length": "אורך", @@ -419,14 +418,21 @@ "title": "רקע", "description": "הגדרות רקע", "key": "ר", + "backgrounds": "רקעים", "none": "אין", "best_imagery": "מקור התמונה המוכר והטוב ביותר למיקום זה", "switch": "חזרה לרקע זה", "custom": "התאמה אישית", "custom_button": "עריכת רקע בהתאמה אישית", - "custom_prompt": "נא להקליד כתובת תבנית. האסימונים התקניים הם:\n - {zoom}/{z}, {x}, {y} לסכימת אריחים מסוג Z/X/Y\n - {ty} לנקודות ציון בציר Y בסגנון TMS\n - {u} לסכימת אריחים מרובעת (QuadTile)\n - {switch:a,b,c} למעבר בין DNS של שרתים\n\nדוגמה:\n{example}", + "overlays": "שכבות על", "reset": "איפוס", + "display_options": "אפשרויות תצוגה", + "brightness": "בהירות", + "contrast": "ניגוד", + "saturation": "רוויה", + "sharpness": "חדות", "minimap": { + "description": "הצגת מפה ממוזערת", "tooltip": "הצגת מפה מרוחקת כדי לסייע באיתור האיזור שמוצג כרגע.", "key": "/" }, @@ -528,6 +534,7 @@ "status_code": "השרת החזיר קוד מצב {code}", "unknown_error_details": "נא לוודא שיש לך חיבור לאינטרנט", "uploading": "השינויים נשלחים אל OpenStreetMap…", + "conflict_progress": "בדיקת סתירות: {num} מתוך {total}", "unsaved_changes": "יש לך שינויים שלא נשמרו", "conflict": { "header": "פתרון עריכות סותרות", @@ -597,7 +604,7 @@ "untagged_area_tooltip": "נא לבחור בסוג תכונה שמתאר מה השטח הזה.", "untagged_relation": "יחס בלתי מתויג", "untagged_relation_tooltip": "נא לבחור סוג תכונה שמתארת מה היחס הזה.", - "many_deletions": "בחירתך תמחק {n} תכונות. להמשיך בפעולה? אם כן, התכונות תימחקנה מהמפה לכל מי שרואה את openstreetmap.org.", + "many_deletions": "פעולה זו תוביל למחיקת {n} תכונות: {p} מפרקים, {l} קווים, {a} שטחים, {r} קשרים. להמשיך בפעולה? כמו כן, הם יימחקו מהמפה שכולם רואים בכתובת openstreetmap.org.", "tag_suggests_area": "התגית {tag} רומזת שהקו אמור להיות שטח, אך זה לא שטח", "deprecated_tags": "תגיות שנזנחו: {tags}" }, @@ -648,15 +655,19 @@ "overview": { "title": "סקירה", "navigation_h": "ניווט", + "navigation_drag": "ניתן לגרור את המפה על ידי לחיצה והחזקה של {leftclick} כפתור העכבר השמאלי והזזת העכבר. ניתן גם להשתמש במקשי החצים `↑`, `↓`, `→` , `←` במקלדת שלך.", "navigation_zoom": "ניתן להתקרב או להתרחק על ידי גלילת העכבר או משטח המעקב, לחלופין, על ידי לחיצה על הכפתורים {plus} / {minus} שבצד המפה. ניתן גם להשתמש במקשים ‚+’ או ‚-’ שבמקלדת שלך.", - "features_h": "תכונות המפה" + "features_h": "תכונות המפה", + "nodes_ways": "ב־OpenStreetmap, נקודות נקראות לעתים *מפרקים* וקווים ושטחים נקראים לפעמים *דרכים*." }, "editing": { "title": "עריכה ושמירה", "select_h": "בחירה", "multiselect_h": "בחירה במגוון", + "multiselect_shift_click": "`{shift}`+{leftclick} לחיצה שמאלית כדי לבחור כמה תכונות יחדיו. אפשרות זו מקלה על העברה או מחיקה של מגוון פריטים.", "undo_redo_h": "ביטול ושחזור ביטול", "save_h": "שמירה", + "save": "יש ללחוץ על {save} **שמירה** כדי לסיים את העריכות שלך ולשלוח אותן ל־OpenStreetMap. מומלץ לזכור לשמור את עבודתך לעתים תכופות!", "upload_h": "העלאה", "backups_h": "גיבויים אוטומטיים", "keyboard_h": "קיצורי מקלדת", @@ -1062,6 +1073,21 @@ } } }, + "units": { + "feet": "{quantity} רגל", + "miles": "{quantity} מיל", + "meters": "{quantity} מ׳", + "kilometers": "{quantity} ק״מ", + "square_meters": "{quantity} מ׳²", + "square_kilometers": "{quantity} ק״מ²", + "arcdegrees": "{quantity}°", + "north": "צפ׳", + "south": "דר׳", + "east": "מז׳", + "west": "מע׳", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { diff --git a/dist/locales/hr.json b/dist/locales/hr.json index 9b07df0f6..74394a50f 100644 --- a/dist/locales/hr.json +++ b/dist/locales/hr.json @@ -571,7 +571,6 @@ "untagged_area_tooltip": "Odaberi element karte koji opisuje što ovo područje predstavlja.", "untagged_relation": "Neoznačena relacija", "untagged_relation_tooltip": "Odaberi element karte koji opisuje što ova relacija predstavlja.", - "many_deletions": "Brišeš {n} elemenata. Jesi li siguran/na da to želiš učiniti? Ovo će ih obrisati sa karte koju svi vide na openstreetmap.org.", "tag_suggests_area": "Oznaka {tag} ukazuje da bi linija trebala biti područje, ali nije područje", "deprecated_tags": "Zastarjele oznake: {tags}" }, diff --git a/dist/locales/hu.json b/dist/locales/hu.json index 18cca0a2c..396364939 100644 --- a/dist/locales/hu.json +++ b/dist/locales/hu.json @@ -25,6 +25,9 @@ }, "draw_line": { "tail": "Kattints, hogy új pontokat adj a vonalhoz. Kattints egy másik vonalra, hogy összekösd őket, dupla kattintással pedig be tudod fejezni a vonalat." + }, + "drag_node": { + "connected_to_hidden": "Nem szerkeszthető, mert egy rejtett elemhez csatlakozik." } }, "operations": { @@ -386,7 +389,6 @@ "title": "Mérés", "selected": "{n} kiválasztott", "geometry": "Geometria", - "closed": "zárt", "center": "Középpont", "perimeter": "Kerület", "length": "Hossz", @@ -394,7 +396,8 @@ "centroid": "Súlypont", "location": "Helyszín", "metric": "Metrikus", - "imperial": "Angolszász" + "imperial": "Angolszász", + "node_count": "Csomópontok száma" } }, "geometry": { @@ -460,14 +463,22 @@ "title": "Háttér", "description": "Háttérbeállítások", "key": "B", + "backgrounds": "Háttérek", "none": "Nincs", "best_imagery": "Legjobb ismert légifeltétel ehhez a helyszínhez", "switch": "Visszaváltás erre a háttérre", "custom": "Egyéni", "custom_button": "Egyedi háttér szerkesztése", - "custom_prompt": "Adj meg egy csempe URL sablont. Érvényes tokenek:\n - {zoom}/{z}, {x}, {y} a Z/X/Y csempe sémához\n - {ty} a tükrözött TMS stílusú Y koordinátákhoz\n - {u} a quadtile sémához\n - {switch:a,b,c} a DNS szerver multiplexeléshez\n\nPéldául:\n{example}", + "overlays": "Előterek", + "imagery_source_faq": "Információ a légiképről / Probléma jelentése", "reset": "visszavonás", + "display_options": "Megjelenítési beállítások", + "brightness": "Világosság", + "contrast": "Kontraszt", + "saturation": "Telítettség", + "sharpness": "Élesség", "minimap": { + "description": "Minitérkép bekapcsolása", "tooltip": "Áttekintő térkép mutatása a megjelenített terület meghatározásához.", "key": "/" }, @@ -569,6 +580,7 @@ "status_code": "A kiszolgáló a(z) {code} státuszkóddal válaszolt", "unknown_error_details": "Győződj meg arról, hogy csatlakozol-e az internethez.", "uploading": "Változtatások feltöltése az OpenStreetMapre…", + "conflict_progress": "Ütközések ellenőrzése: {num}. a {total}-ból", "unsaved_changes": "Elmentetlen változtatásaid vannak", "conflict": { "header": "Ütköző módosítások feloldása", @@ -640,7 +652,6 @@ "untagged_area_tooltip": "Jelöld ki azt az elemtípust, amely leírja, hogy mi ez a terület.", "untagged_relation": "Címkézetlen kapcsolat", "untagged_relation_tooltip": "Jelölj ki egy elemtípust, amely leírja, hogy mi ez a kapcsolat.", - "many_deletions": "{n} elem törlésére készülsz. Biztosan ezt szeretnéd? Ez törli őket arról a térképről, amelyet mindenki más is lát az openstreetmap.org oldalon.", "tag_suggests_area": "A(z) {tag} címke alapján a vonal terület kéne legyen, de ez nem terület", "deprecated_tags": "Elavult címkék: {tags}" }, @@ -687,7 +698,71 @@ }, "overview": { "title": "Áttekintő", - "navigation_h": "Navigáció" + "navigation_h": "Navigáció", + "features_h": "Térképszolgáltatások", + "nodes_ways": "Az OpenStreetMapben a pontokat angolul *node*-nak („csomópont”), a vonalakat *way*-nek („út”) mondjuk." + }, + "editing": { + "title": "Szerkesztés és mentés", + "select_h": "Kijelölés", + "multiselect_h": "Többszörös kijelölés", + "undo_redo_h": "Visszavonás és helyrehozás", + "save_h": "Mentés", + "upload_h": "Feltöltés", + "backups_h": "Autómatikus bisztonsági mentés", + "keyboard_h": "Gyorsbillentyűk" + }, + "feature_editor": { + "title": "Elemszerkesztő", + "type_h": "Elemtípus", + "fields_h": "Mezők", + "tags_h": "Címkék" + }, + "points": { + "title": "Pontok", + "add_point_h": "Pontok hozzáadása", + "move_point_h": "Pontok mozgatása", + "delete_point_h": "Pontok törlése" + }, + "lines": { + "title": "Vonalok", + "add_line_h": "Vonalok hozzáadása", + "modify_line_h": "Vonalok módosítása", + "connect_line_h": "Vonalok összekötése", + "disconnect_line_h": "Vonalok szétkapcsolása", + "move_line_h": "Vonalok mozgatása", + "delete_line_h": "Vonalok törlése" + }, + "areas": { + "title": "Területek", + "point_or_area_h": "Pontok vagy Területek?", + "add_area_h": "Területek hozzáadása", + "square_area_h": "Derékszöges sarkok", + "modify_area_h": "Területek módosítása", + "delete_area_h": "Területek törlése" + }, + "relations": { + "title": "Kapcsolatok", + "edit_relation_h": "Kapcsolatok szerkesztése", + "maintain_relation_h": "Kapcsolatok fenntartása", + "relation_types_h": "Kapcsolattípusok", + "multipolygon_h": "Multipoligonok", + "turn_restriction_h": "Kanyarodási korlátozások", + "route_h": "Útvonalak", + "boundary_h": "Határok" + }, + "imagery": { + "title": "Légifelvétel-háttér", + "sources_h": "Légifelvételforrások", + "offsets_h": "Légifelvétel elcsúszásának korrigálása" + }, + "streetlevel": { + "title": "Utcafotók", + "using_h": "Utcafotók használata" + }, + "gps": { + "title": "GPS nyomvonalok", + "using_h": "GPS nyomvonal használata" } }, "intro": { @@ -994,7 +1069,8 @@ "title": "Elemek kiválasztása", "select_one": "Egyetlen elem kiválasztása", "select_multi": "Több elem kiválasztása", - "lasso": "Kiválasztási lasszó rajzolása az elemek köré" + "lasso": "Kiválasztási lasszó rajzolása az elemek köré", + "search": "Szolgáltatások keresése" }, "with_selected": { "title": "A kiválasztott elemmel", @@ -1454,12 +1530,14 @@ "label": "Leírás" }, "devices": { + "label": "Eszközök", "placeholder": "1, 2, 3..." }, "diaper": { "label": "Pelenkázó van" }, "direction": { + "label": "Irány (fok, az óra járása szerint)", "placeholder": "45, 90, 180, 270" }, "direction_cardinal": { @@ -1575,6 +1653,9 @@ "label": "Típus", "placeholder": "Alapértelmezett" }, + "frequency": { + "label": "Működési frekvencia" + }, "fuel": { "label": "Üzemanyag" }, @@ -1620,6 +1701,7 @@ "label": "Korlát" }, "hashtags": { + "label": "Javasolt hashtagok", "placeholder": "#példa" }, "healthcare": { @@ -1792,6 +1874,9 @@ "memorial": { "label": "Típus" }, + "monitoring_multi": { + "label": "Figyelés" + }, "mtb/scale": { "label": "Mountainbike nehézség", "options": { @@ -1880,7 +1965,9 @@ "oneway": { "label": "Egyirányú", "options": { + "alternating": "Váltakozó", "no": "Nem", + "reversible": "Fordítható", "undefined": "Feltehetően nem egyirányú", "yes": "Igen" } @@ -1888,7 +1975,9 @@ "oneway_yes": { "label": "Egyirányú", "options": { + "alternating": "Váltakozó", "no": "Nem", + "reversible": "Fordítható", "undefined": "Feltehetően egyirányú", "yes": "Igen" } @@ -2007,6 +2096,16 @@ "railway": { "label": "Típus" }, + "railway/position": { + "label": "Mérföldkő pozíció", + "placeholder": "Távolság egy tizedesig (123.4)" + }, + "railway/signal/direction": { + "label": "Irány", + "options": { + "backward": "Hátra" + } + }, "rating": { "label": "Generátorteljesítmény" }, @@ -2016,6 +2115,9 @@ "ref": { "label": "Referencia kód" }, + "ref/isil": { + "label": "ISIL kód" + }, "ref_aeroway_gate": { "label": "Kapu szám" }, @@ -2307,6 +2409,13 @@ "traffic_signals": { "label": "Típus" }, + "traffic_signals/direction": { + "label": "Irány", + "options": { + "backward": "Hátra", + "forward": "Előre" + } + }, "trail_visibility": { "label": "Ösvény láthatósága", "options": { @@ -2322,8 +2431,12 @@ "transformer": { "label": "Típus", "options": { + "auto": "Automatikus transzformátor", + "auxiliary": "Segédtranszformátor", "converter": "Átalakító", + "distribution": "Elosztó transzformátor", "generator": "Áramfejlesztő", + "phase_angle_regulator": "Fázisszög szabályozó", "yes": "Ismeretlen" } }, @@ -2364,6 +2477,15 @@ "voltage": { "label": "Feszültség" }, + "voltage/primary": { + "label": "Primer feszültség" + }, + "voltage/secondary": { + "label": "Szekunder feszültség" + }, + "voltage/tertiary": { + "label": "Tertiár Feszültség" + }, "wall": { "label": "Típus" }, @@ -2393,6 +2515,7 @@ "label": "Wikipédia" }, "windings": { + "label": "Tekercsek", "placeholder": "1, 2, 3..." } }, @@ -2553,6 +2676,9 @@ "name": "Pénzváltó", "terms": "Valutaváltás, valuta váltó, pénzváltás, exchange" }, + "amenity/bus_station": { + "name": "Buszpályaudvar" + }, "amenity/cafe": { "name": "Kávézó", "terms": "kávéház, presszó, cukrászda" @@ -2811,6 +2937,9 @@ "name": "Nemzeti park látogatóközpontja", "terms": "látogatóközpont, vadőr, vadászat, természetjárás, táborozás" }, + "amenity/recycling": { + "name": "Szelektív hulladékgyűjtő konténer" + }, "amenity/recycling_centre": { "name": "Hulladékudvar", "terms": "hulladék, szelektív hulladék, szeméttelep, szemétlerakó, veszélyes hulladék" @@ -3114,6 +3243,12 @@ "name": "Pajta", "terms": "csűr, melléképület, mezőgazdasági épület" }, + "building/boathouse": { + "name": "Csónakház" + }, + "building/bungalow": { + "name": "Bungaló" + }, "building/bunker": { "name": "Bunker" }, @@ -3133,6 +3268,9 @@ "name": "Templom", "terms": "templomépület" }, + "building/civic": { + "name": "Polgári Épület" + }, "building/college": { "name": "Főiskolai épület", "terms": "felsőoktatási intézmény, egyetem" @@ -3208,6 +3346,10 @@ "name": "Tető", "terms": "Tető, fedél, esőbeállló" }, + "building/ruins": { + "name": "Épület romjai", + "terms": "romok,rom" + }, "building/school": { "name": "Iskolaépület", "terms": "Iskolaépület, általános iskola, szakközépiskola, gimnázium" @@ -3216,6 +3358,9 @@ "name": "Ikerház", "terms": "ikerház" }, + "building/service": { + "name": "Szolgáltató épület" + }, "building/shed": { "name": "Fészer", "terms": "Kunyhó, Fészer, Pajta,csűr,raktár,viskó, sufni" @@ -3224,10 +3369,16 @@ "name": "Lóistálló", "terms": "Istálló" }, + "building/stadium": { + "name": "Stadion épület" + }, "building/static_caravan": { "name": "Telepített lakókocsi", "terms": "Rögzített lakókocsi, telepített lakókocsi" }, + "building/temple": { + "name": "Templomépület" + }, "building/terrace": { "name": "Sorház", "terms": "házsor" @@ -3235,6 +3386,9 @@ "building/train_station": { "name": "Vasútállomás-épület" }, + "building/transportation": { + "name": "Közlekedési épület" + }, "building/university": { "name": "Egyetemi épület", "terms": "egyetem, főiskola, felsőoktatás" @@ -3247,6 +3401,9 @@ "name": "Sátor- vagy lakókocsihely", "terms": "sátorhely, táborhely, kempinghely" }, + "circular": { + "name": "Körforgalom" + }, "club": { "name": "Klub", "terms": "Club" @@ -3291,6 +3448,9 @@ "name": "Partyszerviz", "terms": "Catering, Partyszerviz, Rendezvényszervező " }, + "craft/chimney_sweeper": { + "name": "Kéményseprő" + }, "craft/clockmaker": { "name": "Órás (falióra)", "terms": "Órás" @@ -3616,6 +3776,12 @@ "name": "Lovaglóút", "terms": "Lovas út" }, + "highway/bus_guideway": { + "name": "Buszsín" + }, + "highway/bus_stop": { + "name": "Buszmegálló peron" + }, "highway/corridor": { "name": "Beltéri folyosó", "terms": "beltéri folyosó" @@ -3903,6 +4069,9 @@ "name": "Zöldmezős terület", "terms": "mező, szántó, zöld" }, + "landuse/greenhouse_horticulture": { + "name": "Üvegházi kertészet" + }, "landuse/harbour": { "name": "Kikötő", "terms": "kikötő, hajó" @@ -4056,12 +4225,15 @@ "terms": "fitnesz,sport, edzőhely" }, "leisure/fitness_station/balance_beam": { + "name": "Gyakorlati egyensúlyozó gerenda", "terms": "" }, "leisure/fitness_station/box": { + "name": "Gyakorlai doboz", "terms": "" }, "leisure/fitness_station/horizontal_bar": { + "name": "Gyakorlati nyújtó", "terms": "" }, "leisure/fitness_station/horizontal_ladder": { @@ -4086,6 +4258,7 @@ "terms": "" }, "leisure/fitness_station/stairs": { + "name": "Gyakorlati lépcső", "terms": "" }, "leisure/garden": { @@ -4290,6 +4463,9 @@ "name": "Pózna", "terms": "pózna, mobiltorony, mobilcella, rádióadó" }, + "man_made/monitoring_station": { + "name": "Megfigyelőállomás" + }, "man_made/observation": { "name": "Kilátótorony", "terms": "kilátó, megfigyelőtorony" @@ -4491,26 +4667,35 @@ "terms": "Iroda" }, "office/accountant": { + "name": "Könyvelő iroda", "terms": "" }, "office/administrative": { "name": "Közigazgatási hivatal" }, "office/adoption_agency": { + "name": "Örökbefogadási ügynökség", "terms": "" }, "office/advertising_agency": { + "name": "Reklámügynökség", "terms": "" }, "office/architect": { + "name": "Építészi iroda", "terms": "" }, "office/association": { + "name": "Nonprofit szervezet iroda", "terms": "" }, "office/charity": { + "name": "Jótékonysági iroda", "terms": "" }, + "office/company": { + "name": "Vállalati iroda" + }, "office/coworking": { "name": "Közösségi iroda", "terms": "közösségi munkatér, coworking" @@ -4524,6 +4709,7 @@ "terms": "munkaügyi hivatal" }, "office/energy_supplier": { + "name": "Energiaszolgáltató hivatal", "terms": "" }, "office/estate_agent": { @@ -4535,6 +4721,7 @@ "terms": "pénzügy, hitelezés, kölcsön, befektetés, biztosítás" }, "office/forestry": { + "name": "Erdészeti hivatal", "terms": "" }, "office/foundation": { @@ -4559,6 +4746,7 @@ "terms": "Biztosító" }, "office/it": { + "name": "Informatikai iroda", "terms": "" }, "office/lawyer": { @@ -4569,9 +4757,11 @@ "name": "Közjegyzői iroda" }, "office/moving_company": { + "name": "Költözőcég iroda", "terms": "" }, "office/newspaper": { + "name": "Újságírói iroda", "terms": "" }, "office/ngo": { @@ -4786,6 +4976,75 @@ "name": "Transzformátor", "terms": "transzformátor, trafó, áramátalakító" }, + "public_transport/linear_platform_bus": { + "name": "Buszmegálló peron" + }, + "public_transport/platform_ferry": { + "name": "Kompmegállo peron" + }, + "public_transport/platform_light_rail": { + "name": "HÉV-megállo peron" + }, + "public_transport/platform_monorail": { + "name": "Egysínű vasúti megállo peron" + }, + "public_transport/platform_subway": { + "name": "Metrómegálló peron" + }, + "public_transport/platform_train": { + "name": "Vasútmegálló peron" + }, + "public_transport/platform_tram": { + "name": "Villamosmegálló peron" + }, + "public_transport/platform_trolleybus": { + "name": "Trolibusz megálló peron" + }, + "public_transport/station_aerialway": { + "name": "Felvonóállomás" + }, + "public_transport/station_bus": { + "name": "Buszállomás / pályaudvar" + }, + "public_transport/station_ferry": { + "name": "Kompállomás / pályaudvar" + }, + "public_transport/station_light_rail": { + "name": "HÉV állomás" + }, + "public_transport/station_monorail": { + "name": "Egysínű vasúti állomás" + }, + "public_transport/station_subway": { + "name": "Metróállomás" + }, + "public_transport/station_train": { + "name": "Vasútállomás" + }, + "public_transport/station_train_halt": { + "name": "Vasútállomás (kérésre megáll)" + }, + "public_transport/station_tram": { + "name": "Villamosállomás" + }, + "public_transport/station_trolleybus": { + "name": "Trolibuszpályaudvar" + }, + "public_transport/stop_area": { + "name": "Tranzitmegállási terület" + }, + "public_transport/stop_position_aerialway": { + "name": "Felvonó megállási pont" + }, + "public_transport/stop_position_train": { + "name": "Vasút megállási hely" + }, + "public_transport/stop_position_tram": { + "name": "Villamos megállási hely" + }, + "public_transport/stop_position_trolleybus": { + "name": "Trolibusz megállási hely" + }, "railway": { "name": "Vasút" }, @@ -4813,14 +5072,23 @@ "name": "Sikló", "terms": "Siklóvasút, kötélvasút" }, + "railway/halt": { + "name": "Vasútállomás (kérésre megáll)" + }, "railway/level_crossing": { "name": "Vasúti átjáró (közút)", "terms": "vasúti kereszteződés,átkelő,átjáró" }, + "railway/light_rail": { + "name": "HÉV" + }, "railway/milestone": { "name": "Vasúti mérföldkő", "terms": "mérföldkő, vasút, kilométerkő" }, + "railway/miniature": { + "name": "Miniatűrvasút" + }, "railway/monorail": { "name": "Egysínű vasút", "terms": " nyeregvasút, mágnesvasút " @@ -4829,6 +5097,9 @@ "name": "Kisvasút", "terms": "Keskeny nyomtávú vasút" }, + "railway/platform": { + "name": "Vasútmegálló peron" + }, "railway/rail": { "name": "Vasúti pálya", "terms": "Vasútvonal" @@ -4837,6 +5108,9 @@ "name": "Vasúti jelző", "terms": "jelző, jelzés, vasút" }, + "railway/station": { + "name": "Vasútállomás" + }, "railway/subway": { "name": "Metró", "terms": "földalatti" @@ -4857,6 +5131,9 @@ "name": "Villamos", "terms": "Villamos" }, + "railway/tram_stop": { + "name": "Villamosmegállási pont" + }, "relation": { "name": "Kapcsolat", "terms": "Kapcsolat" @@ -4872,6 +5149,9 @@ "name": "Üzlet", "terms": "bolt, kereskedés, kiskereskedés" }, + "shop/agrarian": { + "name": "Mezőgazdasági bolt" + }, "shop/alcohol": { "name": "Alkoholüzlet", "terms": "unikum,pálinka,baileys,konyak,tokaji,vodka,wiszki,whiskey,kosher szilvapálinka,zwack" @@ -5134,6 +5414,9 @@ "name": "Ékszerbolt", "terms": "ékszerüzlet,arany, ezüst, gyémánt, briliáns, ékszer,bijou,bizsu,fülbevaló, nyakék,karkötő,divatékszer,jegygyűrű, gyűrű, ékszerész, ötvös, aranyműves" }, + "shop/kiosk": { + "name": "Trafik" + }, "shop/kitchen": { "name": "Konyhabútorbolt", "terms": "konyhabútor, konyhatervezés, konyhadesign" @@ -5446,6 +5729,7 @@ "terms": "Kilátópont" }, "tourism/wilderness_hut": { + "name": "Menedékház (személyzet nélkül)", "terms": "" }, "tourism/zoo": { @@ -5567,10 +5851,16 @@ "name": "Lovaglóút", "terms": "lovagló út, lovagló útvonal, lovas út, lovas útvonal" }, + "type/route/light_rail": { + "name": "HÉV-vonal" + }, "type/route/pipeline": { "name": "Csővezeték nyomvonala", "terms": "Csővezeték, gázvezeték, kőolajvezeték" }, + "type/route/piste": { + "name": "Sípálya/Síútvonal" + }, "type/route/power": { "name": "Távvezeték nyomvonala", "terms": "Elektromos vezeték útvonala, távvezeték, nagyfeszültségű vezeték" @@ -5579,6 +5869,9 @@ "name": "Közút", "terms": "út, főút, közút, autóút, autópálya" }, + "type/route/subway": { + "name": "Metróvonal" + }, "type/route/train": { "name": "Vasútvonal", "terms": "Vonat útvonal" @@ -5683,7 +5976,8 @@ "DigitalGlobe-Premium-vintage": { "attribution": { "text": "Feltételek és visszajelzés" - } + }, + "name": "DigitalGlobe Premium hiszórikus felvételek" }, "DigitalGlobe-Standard": { "attribution": { @@ -5695,7 +5989,8 @@ "DigitalGlobe-Standard-vintage": { "attribution": { "text": "Feltételek és visszajelzés" - } + }, + "name": "DigitalGlobe Standard hiszórikus felvételek" }, "EsriWorldImagery": { "attribution": { @@ -5770,18 +6065,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap-közreműködők, CC by-SA 3.0" + }, "name": "Jelzett turistautak: kerékpározás" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap-közreműködők, CC by-SA 3.0" + }, "name": "Jelzett turistautak: túrázás" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap-közreműködők, CC by-SA 3.0" + }, "name": "Jelzett turistautak: moutain bike" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap-közreműködők, CC by-SA 3.0" + }, "name": "Jelzett turistautak: korcsolya" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap-közreműködők, CC by-SA 3.0" + }, "name": "Jelzett turistautak: téli sportok" }, "basemap.at": { diff --git a/dist/locales/it.json b/dist/locales/it.json index d7fb2c709..3fc862e5c 100644 --- a/dist/locales/it.json +++ b/dist/locales/it.json @@ -389,7 +389,8 @@ "title": "Misurazione", "selected": "{n} selezionato/i", "geometry": "Geometria", - "closed": "chiuso", + "closed_line": "Linea chiusa", + "closed_area": "Area chiusa", "center": "Centro", "perimeter": "Perimetro", "length": "Lunghezza", @@ -470,13 +471,14 @@ "switch": "Ritorna a questo sfondo", "custom": "Personalizzato", "custom_button": "Modifica sfondo personalizzato", - "custom_prompt": "Inserire un template per l'URL delle mattonelle (tiles). Le variabili disponibili sono:\n - {zoom}/{z}, {x}, {y} per le coordinate Z/X/Y\n - {ty} per avere la coordinata Y rovesciata in stile TMS\n - {u} per lo schema quadtile\n - {switch:a,b,c} per il multiplexing del server DNS\n\nEsempio:\n{example}", + "overlays": "Livelli sovrapposti", "imagery_source_faq": "Informazioni sulle immagini satellitari / Segnala un problema", "reset": "reset", "display_options": "Mostra opzioni", "brightness": "Luminosità", "contrast": "Contrasto", "saturation": "Saturazione", + "sharpness": "Nitidezza", "minimap": { "description": "Mostra miniatura", "tooltip": "Mostra una mappa più vasta per localizzare meglio l'area corrente.", @@ -580,6 +582,7 @@ "status_code": "Il server ha risposto con codice {code}", "unknown_error_details": "Assicurati di essere connesso ad internet.", "uploading": "Caricamento delle modifiche su OpenStreetMap...", + "conflict_progress": "Sto controllando i conflitti: {num} di {total}", "unsaved_changes": "Hai modifiche non salvate", "conflict": { "header": "Risolvi conflitti di modifica", @@ -651,7 +654,7 @@ "untagged_area_tooltip": "Seleziona un tipo di elemento che descriva cos'è quest'area.", "untagged_relation": "Relazione senza tag", "untagged_relation_tooltip": "Seleziona un tipo di elemento che descriva di che relazione si tratta.", - "many_deletions": "Stai per cancellare {n} elementi. Sei sicuro di volerlo fare? Questo li cancellerà dalla mappa che chiunque altro vede su openstreetmap.org.", + "many_deletions": "Stai cancellando {n} elementi: {p} nodi, {l} linee, {a} aree, {r} relazioni. Sei sicuro di volerlo fare? Questo cancellerà gli elementi dalla mappa che può vedere chiunque su openstreetmap.org.", "tag_suggests_area": "Il tag {tag} fa pensare che la linea sia un'area, ma non rappresenta un'area", "deprecated_tags": "Tag deprecati: {tags}" }, @@ -731,53 +734,123 @@ "feature_editor": { "title": "Editor degli Elementi", "intro": "L'*editor degli elementi* si trova a lato della mappa e ti permette di modificare tutte le informazioni dell'elemento selezionato.", + "definitions": "La sezione più in alto mostra la tipologia dell'elemento. La sezione in mezzo contiene i *campi* che mostrano gli attributi dell'elemento, come il suo nome o l'indirizzo.", "type_h": "Tipo di oggetto", + "type": "Puoi cliccare sul tipo dell'elemento per cambiarlo in un tipo differente. Tutto ciò che esiste nel mondo reale può essere aggiunto ad OpenStreetMap, pertanto ci sono migliaia di tipologie tra le quali scegliere.", + "type_picker": "Il raccoglitore dei tipi mostra i tipi di elementi più comuni, come ad esempio i parchi pubblici, gli ospedali, i ristoranti, le strade e gli edifici. Cerca qualsiasi oggetto scrivendo nel riquadro di ricerca. Per conoscere i dettagli del tipo di elemento clicca l'icona {inspect} **Informazioni** a fianco.", "fields_h": "Campi", + "fields_all_fields": "La sezione \"Tutti i campi\" contiene i dettagli dell'elemento che puoi modificare. In OpenStreetMap, tutti i campi sono opzionali, puoi lasciarne uno vuoto se non sei sicuro.", + "fields_example": "Ogni elemento mostrerà campi differenti. Per esempio, per una una strada sarà possibile impostare la sua superficie e il limite di velocità, mentre per un ristorante saranno mostrati campi del cibo servito e degli orari di apertura.", "fields_add_field": "Per aggiungere delle informazioni puoi cliccare \"Aggiungi campo\"", - "tags_h": "Etichette" + "tags_h": "Etichette", + "tags_all_tags": "Sotto la sezione dei campi, puoi espandere la sezione \"Tutti i tag\" per modificare un qualsiasi *tag* di OpenStreetMap per l'elemento selezionato. Ogni tag è formato da una *chiave* ed un *valore* che definiscono ciascuno degli elementi presenti in OpenStreetMap.", + "tags_resources": "La modifica dei tag di un elemento richiede una conoscenza intermedia di OpenStreetMap. Dovresti consultare la [wiki di OpenStreetMap](https://wiki.openstreetmap.org/wiki/Main_Page) o [Taginfo](https://taginfo.openstreetmap.org/) per imparare quali usare di volta in volta." }, "points": { "title": "Punti", "intro": "I punti sono utilizzati per indicare oggetti come negozi, ristoranti, monumenti,... Indicano la posizione precisa e descrivono cosa c'è lì.", "add_point_h": "Aggiungere punti", + "add_point": "Per aggiungere un punto, clicca il pulsante {point} **Punto** sulla barra degli strumenti sopra la mappa, oppure premi la scorciatoia da tastiera `1`. Il cursore del mouse diverrà a forma di croce.", + "add_point_finish": "Per aggiungere un nuovo punto sulla mappa, posiziona il cursore del mouse dove vorresti metterlo, quindi clicca il {leftclick} pulsante sinistro del mouse oppure premi `spazio`.", "move_point_h": "Spostare punti", - "delete_point_h": "Cancellare punti" + "move_point": "Per spostare un punto, posiziona il cursore del mouse sul punto, quindi tieni premuto il {leftclick} pulsante sinistro del mouse mentre sposti il punto verso la sua nuova posizione.", + "delete_point_h": "Cancellare punti", + "delete_point": "Non è errato rimuovere un elemento che non esiste nel mondo reale. Quando cancelli qualcosa da OpenStreetMap nessun potrà più vedere quell'oggetto sulla mappa, quindi prima di rimuoverlo verifica accuratamente che quell'elemento non sia più presente nella realtà.", + "delete_point_command": "Per eliminare un punto, clicca col {rightclick} tasto destro del mouse su di esso per selezionarlo e mostrare il menù di modifica, quindi usa il comando {delete} **Cancella**." }, "lines": { "title": "Linee", + "intro": "Le *linee* sono utilizzate per rappresentare elementi quali strade, ferrovie e fiumi. Le linee dovrebbero essere tracciate lungo il centro dell'elemento che vogliono rappresentare.", "add_line_h": "Aggiungere linee", + "add_line": "Per aggiungere una linea, clicca il pulsante {line} **Linea** sulla barra degli strumenti sopra la mappa oppure premi la scorciatoia da tastiera `2`. Il cursore del mouse diverrà una croce.", + "add_line_draw": "Adesso posiziona il cursore del mouse dove vuoi che linea inizi e clicca con il {leftclick} pulsante sinistro del mouse o premi `spazio` per iniziare a disegnare i nodi lungo la linea. Continua a disegnare i nodi cliccando con il mouse o premendo `spazio`. Mentre disegni, puoi ingrandire o spostare la mappa così da poter avere maggiori dettagli.", "add_line_finish": "Per completare una linea, premi `{return}` oppure clicca nuovamente sull'ultimo punto", "modify_line_h": "Modificare linee", + "modify_line_dragnode": "Spesso vedrai delle linee che non sono disegnate correttamente, per esempio una strada che non corrisponde granché alle immagini di sfondo. Per migliorare l'aspetto di una linea, per prima cosa clicca col {leftclick} tasto sinistro del mouse per selezionarla. Tutti i nodi della linea diverranno dei piccoli cerchi. Adesso puoi spostare ogni nodo in una posizione più corretta.", + "modify_line_addnode": "Puoi anche aggiungere dei nodi ad una linea sia cliccando due volte col {lefclick}**x2** tasto sinistro del mouse sulla linea oppure trascinando i piccoli triangoli situati a metà strada tra i vari nodi già presenti.", "connect_line_h": "Connettere linee", + "connect_line": "È importante per la mappa ed essenziale per fornire le indicazioni che le strade sia collegate tra loro nel modo giusto.", + "connect_line_display": "Le connessioni tra le strade sono mostrate mediante dei piccoli cerchi grigi. Se non sono collegati a nient'altro, gli estremi di una linea sono disegnati con dei cerchi bianchi più grandi.", + "connect_line_drag": "Per collegare una linea ad un altro elemento, sposta uno dei suoi nodi sull'altro fino a che entrambi gli elementi non si attaccano fra loro. Suggerimento: puoi tenere premuto il tasto `{alt}` per evitare che un nodo venga collegato ad altri elementi.", + "connect_line_tag": "Se sai che ad un incrocio è presente un semaforo o degli attraversamenti pedonali, puoi aggiungerlo selezionando il nodo di collegamento delle strade e utilizzando l'editor dell'elemento per impostare il valore corretto.", "disconnect_line_h": "Disconnettere linee", + "disconnect_line_command": "Per separare una strada da un altro elemento, clicca col {rightclick} tasto destro del mouse sul nodo di connessione e seleziona il comando {disconnect} **Disconnetti** dal menù di modifica.", "move_line_h": "Spostare linee", - "delete_line_h": "Cancellare linee" + "move_line_command": "Per spostare tutta la linea, clicca col {rightclick} tasto destro del mouse e seleziona il comando {move} **Muovi* dal menù di modifica. Adesso sposta il mouse e clicca col tasto sinistro per posizionare la linea nel punto prescelto.", + "move_line_connected": "Se sposti la linea in un altro punto, i collegamenti con gli altri elementi non verranno intaccati. In certi casi iD potrebbe impedirti di spostare una linea oltre un'altra con la quale è connessa.", + "delete_line_h": "Cancellare linee", + "delete_line": "Se una linea è completamente sbagliata, per esempio una strada che non esiste in realtà, è corretto eliminarla. Fai attenzione quando rimuovi un elemento: le immagini di sfondo che vedi potrebbero essere vecchie e la strada che sembra sbagliata potrebbe in realtà essere stata costruita più recentemente.", + "delete_line_command": "Per eliminare una linea, clicca col {rightclick} tasto destro del mouse per mostrare il menù di modifica, poi usa il comando {delete} **Cancella**." }, "areas": { "title": "Aree", + "intro": "Le *aree* sono utilizzate per mostrare i confini di elementi quali laghi, edifici e aree residenziali. Le aree dovrebbero essere tracciate lungo i bordi degli elementi che esse rappresentano, per esempio la base di un edificio.", "point_or_area_h": "Punti o aree?", + "point_or_area": "Molti oggetti possono essere rappresentati come punti o aree. Se possibile, dovresti sempre mappare gli edifici e i contorni di una proprietà come aree. Inserisci punti dentro l'area di un edificio per rappresentare attività commerciali, servizi e altri elementi presenti al suo interno.", "add_area_h": "Aggiungere aree", + "add_area_command": "Per aggiungere un'area, clicca il pulsante {area} **Area** sulla barra degli strumenti sopra la mappa, oppure premi la scorciatoia da tastiera `3`. Il cursore del mouse diverrà una croce.", + "add_area_draw": "Adesso, posiziona il cursore del mouse su di un angolo dell'elemento e clicca col {leftclick} tasto sinistro del mouse oppure premi `spazio` per iniziare a posizionare i nodi attorno al bordo esterno dell'area. Continua ad aggiungere i nodi cliccando o premendo `spazio`. Mentre disegni, puoi ingrandire o trascinare la mappa così da poter avere maggiori dettagli.", + "add_area_finish": "Per completare un'area, premi `{return}` o clicca nuovamente sul primo oppure sull'ultimo nodo.", "square_area_h": "Rendere retti gli angoli", + "square_area_command": "Molti oggetti di tipo area come gli edifici hanno solo angoli interni retti. Per ortogonalizzare un'area, clicca col {rightclick} tasto destro del mouse un'area e seleziona il comando *{orthogonalize} **Ortogonalizza** dal menù di modifica.", "modify_area_h": "Modificare aree", - "delete_area_h": "Cancellare aree" + "modify_area_dragnode": "Spesso vedrai aree che non sono disegnate correttamente, per esempio un edificio che non corrisponde alle immagini di sfondo. Per migliorare l'aspetto di un'area, per prima cosa clicca col {leftclick} tasto sinistro del mouse per selezionarla. Tutti i nodi dell'area appariranno come piccoli cerchi. Adesso puoi trascinare i nodi nelle posizioni più opportune.", + "modify_area_addnode": "Puoi anche aggiungere nuovi nodi ad un'area cliccando due volte col {leftclick}**x2** tasto sinistro del mouse sul bordo dell'area oppure trascinando i piccoli triangoli a metà strada tra i nodi già presenti", + "delete_area_h": "Cancellare aree", + "delete_area": "Non è sbagliato rimuovere un'area se questa è completamente errata, come per esempio nel caso di un edificio che non esiste in realtà. Fai però attenzione quando elimini degli elementi: le immagini di sfondo che vedi potrebbero essere vecchie mentre l'edificio che sembra sbagliato potrebbe in realtà essere stato costruito più di recente.", + "delete_area_command": "Per eliminare un'area, clicca col {rightclick} tasto destro del mouse su di essa per selezionarla e mostrare il menù di modifica, quindi usa il comando {delete} **Cancella**." }, "relations": { "title": "Relazioni", + "intro": "Una *relazione* è un tipo speciale di elemento di OpenStreetMap che serve a raggruppare insieme altri elementi. Gli elementi appartenenti ad una relazione sono chiamati *membri* e ogni membro può avere un *ruolo* nella relazione.", "edit_relation_h": "Modificare le relazioni", + "edit_relation": "In fondo all'editor dell'elemento è presente la sezione \"Tutte le relazioni\" che puoi espandere per verificare se l'elemento selezionato è membro di qualche relazione. Puoi cliccare sulla relazione per selezionarla e quindi modificarla.", + "edit_relation_add": "Per aggiungere un elemento ad una relazione, seleziona prima l'elemento, quindi premi il pulsante {plus} aggiungi nella sezione \"Tutte le relazioni\" dell'editor dell'elemento. Puoi scegliere tra una lista di relazioni vicine oppure selezionare l'opzione \"Nuova relazione...\".", + "edit_relation_delete": "Puoi anche cliccare il pulsante {delete} **Cancella** per rimuovere l'elemento selezionato dalla relazione. Se rimuovi tutti i membri di una relazione, questa verrà eliminata a sua volta.", "maintain_relation_h": "Manutenere le relazioni", + "maintain_relation": "Nella maggior parte dei casi, iD si occuperà automaticamente delle relazioni mentre fai le tue modifiche. Dovresti comunque prestare attenzione quando rimpiazzi elementi che potrebbero essere membri di una relazione. Per esempio, se elimini una parte di strada e tracci un altro pezzo al suo posto, dovresti poi aggiungere anche la nuova strada alle stesse relazioni (percorsi, divieti di svolta, etc.) dell'originale.", "relation_types_h": "Tipi di relazione", "multipolygon_h": "Multipoligoni", + "multipolygon": "Una relazione *multipoligono* consiste in un gruppo di uno o più elementi esterni e di uno o più elementi interni. Quelli esterni definiscono i bordi di confine del multipoligono mentre quelli interni tracciano le sub-aree o buchi presenti all'interno del multipoligono.", + "multipolygon_create": "Per creare un multipoligono, come per esempio un edificio con un cortile interno, traccia il bordo esterno come area e quello interno come una linea o come un'altra area. A questo punto seleziona i due elementi creati premendo `{shift}`+{leftclick} tasto sinistro del mouse su entrambi, poi clicca sul {rightclick} tasto destro del mouse per mostrare il menù di modifica, quindi seleziona il comando {merge} **Unisci**.", + "multipolygon_merge": "Quando si uniscono più linee o aree, viene creata una nuova relazione multipoligono avente come membri gli elementi selezionati. iD aggiungerà automaticamente i ruoli outer e inner, determinando quali elementi sono contenuti all'interno degli altri.", "turn_restriction_h": "Restrizione di svolta", - "route_h": "Percorsi" + "turn_restriction": "Una relazione *Obbligo di svolta* è formata da un gruppo di segmenti di strade ad una intersezione. Gli obblighi di svolta contengono una strada *da*, un nodo *via* e una strada *verso*.", + "turn_restriction_field": "Per modificare un obbligo di svolta, seleziona il nodo di giunzione dove due o più strade s'incontrano. L'editor dell'elemento mostrerà un campo speciale \"Obblighi di svolta' contenente un modello dell'intersezione.", + "turn_restriction_editing": "Nel campo \"Obblighi di svolta\", clicca per selezionare una strada \"da\" e decidi se le svolte sono consentite oppure vietate per ogni strada \"verso\". Clicca nelle icone di svolta per alternare lo stato tra consentito e vietato. iD creerà automaticamente le relazione e imposterà i ruoli \"da\", \"via\" e \"verso\" basandosi sulle tue scelte.", + "route_h": "Percorsi", + "route": "Una relazione *percorso* consiste in un gruppo di uno o più elementi linea che formano insieme una rete di percorsi, come per esempio la linea di un autobus, quella di un treno oppure un percorso stradale.", + "route_add": "Per aggiungere un elemento ad una relazione percorso, seleziona l'elemento e scorri verso il basso fino alla sezione \"Tutte le relazioni\" dell'editor dell'elemento, poi clicca il pulsante {plus} aggiungi per aggiungere questo elemento ad una relazione vicina già esistente oppure per crearne una nuova.", + "boundary_h": "Confini", + "boundary": "Una relazione *Confine\" consiste in un gruppo di uno o più elementi linea che insieme formano un confine amministrativo.", + "boundary_add": "Per aggiungere un elemento ad una relazione confine, seleziona l'elemento e scorri verso il basso fino alla sezione \"Tutte le relazioni\" dell'editor dell'elemento, poi clicca sul pulsante {plus} aggiungi per aggiungere l'elemento ad una relazione vicina già esistente o per crearne una nuova." }, "imagery": { "title": "Immagini di sfondo", + "intro": "Le immagini di sfondo che appaiono dietro i dati della mappa sono una risorsa importante per il mappatore. Queste immagini possono essere foto aeree scattate da satelliti, aeroplani o droni oppure ancora mappe antiche digitalizzate o dati fruibili liberamente.", "sources_h": "Provenienza delle immagini", - "offsets_h": "Aggiustare l'allineamento delle immagini" + "choosing": "Per vedere quali fonti per le immagini sono disponibili durante la modifica, clicca il pulsante {layers} **Impostazioni dello sfondo** a lato della mappa.", + "sources": "Inizialmente, vengono mostrate come sfondo le immagini satellitari di [Bing Maps](https://www.bing.com/maps/). A seconda di dove stai modificando, saranno disponibili altre fonti per le immagini di sfondo. Alcune potrebbero essere più nuove oppure avere una risoluzione maggiore, quindi è sempre utile dare un'occhiata agli strati disponibili e verificare qual è il migliore da usare come riferimento.", + "offsets_h": "Aggiustare l'allineamento delle immagini", + "offset": "Le immagini di sfondo sono talvolta leggermente fuori asse rispetto agli accurati dati della mappa. Se ti capita di vedere molte strade ed edifici che sono disallineati rispetto alle immagini di sfondo, è probabile che siano quest'ultime ad essere sbagliate, quindi sarebbe sbagliato spostare tutti gli oggetti per farlo corrispondere allo sfondo. Al contrario, puoi allineare lo sfondo ai dati della mappa andando nella sezione \"Correggi spostamento immagini\" in fondo al pannello \"Impostazioni dello sfondo\".", + "offset_change": "Clicca sui piccoli triangoli per correggere l'allineamento delle immagini a piccoli passi, oppure tieni premuto il pulsante sinistro del mouse e trascina all'interno del quadrato grigio per allineare più finemente le immagini di sfondo." + }, + "streetlevel": { + "title": "Foto a livello stradale", + "intro": "Le foto a livello stradale sono utile per mappare segnali stradali, attività commerciali e altri dettagli che non si possono vedere da foto satellitari o aeree. L'editor iD è compatibile con le foto a livello stradale di [Mapillary](https://www.mapillary.com) e [OpenStreetCam](https://www.openstreetcam.org).", + "using_h": "Utilizzo delle foto a livello stradale", + "using": "Per usare le foto a livello stradale, clicca sul pannello {data} **Dati mappa** a lato della mappa per abilitare o disabilitare i livelli di foto disponibili.", + "photos": "Quando abilitato, il livello delle foto mostra una linea lungo la sequenza di foto. A livelli di ingrandimento maggiori, un cerchio indica il punto in cui ogni foto è stata scattata, mentre a livelli di ingrandimento ancora più grandi, un cono mostra la direzione della fotocamera al momento dello scatto.", + "viewer": "Se clicchi sulla posizione di una foto, essa viene mostrata in un angolo della mappa. Il visualizzatore contiene i controlli per andare avanti e indietro nella sequenza delle immagini. Sono mostrati inoltre il nome utente della persona che ha scattato la foto, la data di scatto e il link per vedere la foto nel sito originale." }, "gps": { "title": "Tracce GPS", - "using_h": "Utilizzare tracce GPS" + "intro": "Le tracce GPS degli utenti sono un'importante risorsa dati per OpenStreetMap. Questo editor è compatibile con i file *.gpx*, *.geojson*, and *.kml* presenti nel tuo computer locale. Puoi raccogliere tracce GPS con uno smartphone, un orologio sportivo o con altri dispositivi GPS.", + "survey": "Per ulteriori informazioni su come effettuare una ricognizione con un GPS, leggi [Creare una mappa con smartphone, GPS o carte stampate](http://learnosm.org/it/mobile-mapping/).", + "using_h": "Utilizzare tracce GPS", + "using": "Per usare una traccia GPS durante la mappatura, trascina e rilascia il file dei dati sull'editor della mappa. Se riconosciuto, il file verrà automaticamente mostrato sulla mappa con un linea viola. Clicca il pannello {data} **Dati mappa** a lato della mappa per abilitare, disabilitare o ingrandire i tuoi dati GPS.", + "tracing": "La traccia GPS non viene inviata ad OpenStreetMap: il modo migliore di procedere è di disegnare sulla mappa, usandola come riferimento per i nuovi elementi da aggiungere.", + "upload": "Puoi anche [caricare i tuoi dati GPS su OpenStreetMap](https://www.openstreetmap.org/trace/create) affinché anche gli altri utenti possano usarli." } }, "intro": { @@ -1139,10 +1212,37 @@ "tools": { "title": "Strumenti", "info": { - "title": "Informazioni" + "title": "Informazioni", + "all": "Commuta tutti i pannelli informazioni", + "background": "Commuta pannello di sfondo", + "history": "Commuta pannello cronologia", + "location": "Commuta pannello posizione", + "measurement": "Commuta pannello misurazione" } } }, + "units": { + "feet": "{quantità} piedi", + "miles": "{quantità} miglia", + "square_feet": "{quantità} piedi quadrati", + "square_miles": "{quantità} miglia quadrate", + "acres": "{quantità} acri", + "meters": "{quantità} metri", + "kilometers": "{quantità} chilometri", + "square_meters": "{quantità} m²", + "square_kilometers": "{quantità} km²", + "hectares": "{quantity} acri", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantità}°", + "arcminutes": "{quantità}′", + "arcseconds": "{quantità}″", + "north": "Nord", + "south": "Sud", + "east": "Est", + "west": "Ovest", + "coordinate": "{coordinata}{direzione}", + "coordinate_pair": "{latitudine}, {longitudine}" + }, "presets": { "categories": { "category-barrier": { @@ -1470,7 +1570,11 @@ "label": "Tipo" }, "crane/type": { - "label": "Tipo di gru" + "label": "Tipo di gru", + "options": { + "floor-mounted_crane": "Gru ancorata a terra", + "portal_crane": "Gru portuale" + } }, "crop": { "label": "Colture" @@ -1666,7 +1770,7 @@ "label": "Tipo di equipaggiamento" }, "fixme": { - "label": "Sistemare" + "label": "Da correggere" }, "ford": { "label": "Tipo", @@ -1984,7 +2088,9 @@ "oneway": { "label": "Senso unico", "options": { + "alternating": "Senso unico alternato", "no": "No", + "reversible": "Invertibile", "undefined": "No (ipotesi)", "yes": "Sì" } @@ -1992,6 +2098,7 @@ "oneway_yes": { "label": "Senso unico", "options": { + "alternating": "Senso unico alternato", "no": "No", "undefined": "Si (ipotesi)", "yes": "Sì" @@ -2084,6 +2191,9 @@ "label": "Potenza in uscita", "placeholder": "500 MW, 1000 MW, 2000 MW..." }, + "playground/baby": { + "label": "Seggiolino" + }, "playground/max_age": { "label": "Età massima" }, @@ -2128,6 +2238,9 @@ "ref": { "label": "Numero di matricola" }, + "ref/isil": { + "label": "Codice ISIL" + }, "ref_aeroway_gate": { "label": "Numero del cancello" }, @@ -2486,6 +2599,15 @@ "voltage": { "label": "Tensione" }, + "voltage/primary": { + "label": "Voltaggio primario" + }, + "voltage/secondary": { + "label": "Voltaggio sencondario" + }, + "voltage/tertiary": { + "label": "Voltaggio terziario" + }, "wall": { "label": "Tipo" }, @@ -2687,6 +2809,10 @@ "name": "Caffè", "terms": "caffè,te,bar" }, + "amenity/car_pooling": { + "name": "Condivisione automobile", + "terms": "" + }, "amenity/car_rental": { "name": "Noleggio auto", "terms": "Noleggio automobili" @@ -2720,7 +2846,12 @@ "terms": "clinica,poliambulatori,policlinica" }, "amenity/clinic/abortion": { - "name": "Clinica per aborti" + "name": "Clinica per aborti", + "terms": "" + }, + "amenity/clinic/fertility": { + "name": "Centro fecondazione assistita", + "terms": "" }, "amenity/clock": { "name": "Orologio", @@ -2828,6 +2959,10 @@ "name": "Biblioteca", "terms": "Libreria" }, + "amenity/love_hotel": { + "name": "Love Hotel", + "terms": "" + }, "amenity/marketplace": { "name": "Mercato", "terms": "Mercato" @@ -2837,7 +2972,8 @@ "terms": "parcheggio scooter,moto,scooter" }, "amenity/music_school": { - "name": "Scuola di musica" + "name": "Scuola di musica", + "terms": "" }, "amenity/nightclub": { "name": "Discoteca", @@ -2879,7 +3015,8 @@ "terms": "cristiano,abbazia,basilica,cattedrale,presbiterio,cappella,chiesa,casa di Dio,luogo di preghiera,luogo di culto,missione,oratorio,parrocchia,sacello,edicola votiva,tabernacolo,tempio" }, "amenity/place_of_worship/hindu": { - "name": "Tempio Hindu" + "name": "Tempio Hindu", + "terms": "" }, "amenity/place_of_worship/jewish": { "name": "Sinagoga", @@ -2890,13 +3027,16 @@ "terms": "musulmana,islamismo,moschea,islam" }, "amenity/place_of_worship/shinto": { - "name": "Tempio Shintoista" + "name": "Tempio Shintoista", + "terms": "" }, "amenity/place_of_worship/sikh": { - "name": "Tempio Sikh" + "name": "Tempio Sikh", + "terms": "" }, "amenity/place_of_worship/taoist": { - "name": "Tempio Taoista" + "name": "Tempio Taoista", + "terms": "" }, "amenity/planetarium": { "name": "Planetario", @@ -2935,7 +3075,8 @@ "terms": "Stazione guardia forestale" }, "amenity/recycling": { - "name": "Cassonetto per raccolta differenziata" + "name": "Cassonetto per raccolta differenziata", + "terms": "" }, "amenity/recycling_centre": { "name": "Centro di riciclaggio", @@ -2964,7 +3105,12 @@ "terms": "ricovero,rifugio,tettoia,pensilina,bivacco,grotta" }, "amenity/shower": { - "name": "Doccia" + "name": "Doccia", + "terms": "" + }, + "amenity/smoking_area": { + "name": "Area fumatori", + "terms": "" }, "amenity/social_facility": { "name": "Centro socio-assistenziale", @@ -3037,6 +3183,10 @@ "name": "Distributore automatico di sacchetti per escrementi", "terms": "distributore automatico,macchinetta,cacca,cane" }, + "amenity/vending_machine/feminine_hygiene": { + "name": "Distributore automatico di prodotti per l'igiene femminile", + "terms": "" + }, "amenity/vending_machine/news_papers": { "name": "Distributore automatico di giornali" }, @@ -3065,7 +3215,8 @@ "terms": "animali,dottore,medicina,farmacia" }, "amenity/waste/dog_excrement": { - "name": "Cestino per escrementi animali" + "name": "Cestino per escrementi animali", + "terms": "" }, "amenity/waste_basket": { "name": "Cestino della spazzatura", @@ -3096,37 +3247,55 @@ "terms": "superficie,manto stradale,materiale" }, "attraction/amusement_ride": { - "name": "Parco divertimenti" + "name": "Parco divertimenti", + "terms": "" }, "attraction/animal": { - "name": "Animale" + "name": "Animale", + "terms": "" }, "attraction/big_wheel": { - "name": "Ruota panoramica" + "name": "Ruota panoramica", + "terms": "" }, "attraction/bumper_car": { - "name": "Autoscontro" + "name": "Autoscontro", + "terms": "" }, "attraction/bungee_jumping": { - "name": "Bungee Jumping" + "name": "Bungee Jumping", + "terms": "" }, "attraction/carousel": { - "name": "Carosello" + "name": "Carosello", + "terms": "" + }, + "attraction/dark_ride": { + "name": "Percorso al buio", + "terms": "" + }, + "attraction/drop_tower": { + "terms": "" }, "attraction/pirate_ship": { - "name": "Nave dei pirati" + "name": "Nave dei pirati", + "terms": "" }, "attraction/river_rafting": { - "name": "Rafting" + "name": "Rafting", + "terms": "" }, "attraction/roller_coaster": { - "name": "Montagne russe" + "name": "Montagne russe", + "terms": "" }, "attraction/train": { - "name": "Trenino turistico" + "name": "Trenino turistico", + "terms": "" }, "attraction/water_slide": { - "name": "Scivolo" + "name": "Scivolo", + "terms": "" }, "barrier": { "name": "Barriera", @@ -3175,6 +3344,10 @@ "name": "Siepe", "terms": "Siepe" }, + "barrier/kerb": { + "name": "Cordolo", + "terms": "" + }, "barrier/kissing_gate": { "name": "Cancello che non fa passare il bestiame", "terms": "Kissing Gate" @@ -3215,8 +3388,13 @@ "name": "Fienile", "terms": "granaio,basso servizio,tesa" }, + "building/boathouse": { + "name": "Rimessa per barche", + "terms": "" + }, "building/bungalow": { - "name": "Bungalow" + "name": "Bungalow", + "terms": "" }, "building/bunker": { "name": "Bunker" @@ -3238,7 +3416,8 @@ "terms": "cristiano,abbazia,basilica,cattedrale,presbiterio,cappella,chiesa,casa di Dio,luogo di preghiera,luogo di culto,missione,oratorio,parrocchia,sacello,edicola votiva,tabernacolo,tempio" }, "building/civic": { - "name": "Edificio comunale" + "name": "Edificio comunale", + "terms": "" }, "building/college": { "name": "Edificio di un College", @@ -3263,6 +3442,10 @@ "building/entrance": { "name": "Entrata/Uscita" }, + "building/farm": { + "name": "Cascina (residenza)", + "terms": "" + }, "building/garage": { "name": "Garage", "terms": "Garage" @@ -3300,7 +3483,8 @@ "terms": "asilo nido,primavera" }, "building/mosque": { - "name": "Moschea (edificio)" + "name": "Moschea (edificio)", + "terms": "" }, "building/public": { "name": "Edificio pubblico", @@ -3319,7 +3503,8 @@ "terms": "tetto,pensilina" }, "building/ruins": { - "name": "Edificio in rovina" + "name": "Edificio in rovina", + "terms": "" }, "building/school": { "name": "Edificio scolastico", @@ -3330,7 +3515,8 @@ "terms": "semi-indipendente,semiindipendente,semindipendente, abitazione semi indipendente" }, "building/service": { - "name": "Edificio di servizio" + "name": "Edificio di servizio", + "terms": "" }, "building/shed": { "name": "Capanno", @@ -3341,14 +3527,16 @@ "terms": "stalla,ricovero,scuderia" }, "building/stadium": { - "name": "Stadio" + "name": "Stadio", + "terms": "" }, "building/static_caravan": { "name": "Roulotte stazionaria", "terms": "Casa mobile,container,casa prefabbricata" }, "building/temple": { - "name": "Tempio" + "name": "Tempio", + "terms": "" }, "building/terrace": { "name": "Villette a schiera", @@ -3357,6 +3545,10 @@ "building/train_station": { "name": "Stazione ferroviaria" }, + "building/transportation": { + "name": "Stazione (mezzi di trasporto)", + "terms": "" + }, "building/university": { "name": "Edificio universitario", "terms": "college,alma" @@ -3414,14 +3606,16 @@ "terms": "Addetto al catering,Azienda di catering" }, "craft/chimney_sweeper": { - "name": "Spazzacamino" + "name": "Spazzacamino", + "terms": "" }, "craft/clockmaker": { "name": "Costruttore di orologi", "terms": "orologi" }, "craft/confectionery": { - "name": "Mercato delle caramelle" + "name": "Mercato delle caramelle", + "terms": "" }, "craft/distillery": { "name": "Distilleria", @@ -3525,7 +3719,8 @@ "terms": "Costruttore di impalcature" }, "craft/sculptor": { - "name": "Scultore" + "name": "Scultore", + "terms": "" }, "craft/shoemaker": { "name": "Calzolaio", @@ -3584,6 +3779,10 @@ "name": "Idrante", "terms": " Pompa antincendio " }, + "emergency/life_ring": { + "name": "Salvagente", + "terms": "" + }, "emergency/no": { "name": "Nessun accesso di emergenza" }, @@ -3597,6 +3796,10 @@ "emergency/private": { "name": "Accesso di emergenza privato" }, + "emergency/water_tank": { + "name": "Serbatoio d'emergenza per l'acqua", + "terms": "" + }, "emergency/yes": { "name": "Accesso di emergenza" }, @@ -3609,14 +3812,16 @@ "terms": "attraversamento pedonale,strisce pedonali,attraversamento,dosso" }, "footway/crossing-raised": { - "name": "Incrocio rialzato" + "name": "Incrocio rialzato", + "terms": "" }, "footway/crosswalk": { "name": "Strisce pedonali", "terms": "strisce pedonali,attraversamento" }, "footway/crosswalk-raised": { - "name": "Attraversamento pedonale rialzato" + "name": "Attraversamento pedonale rialzato", + "terms": "" }, "footway/sidewalk": { "name": "Marciapiede", @@ -3667,29 +3872,51 @@ "terms": "Laghetto" }, "healthcare": { - "name": "Clinica" + "name": "Clinica", + "terms": "" }, "healthcare/alternative": { - "name": "Medicina alternativa" + "name": "Medicina alternativa", + "terms": "" }, "healthcare/alternative/chiropractic": { - "name": "Chiropratico" + "name": "Chiropratico", + "terms": "" }, "healthcare/audiologist": { - "name": "Audiologo" + "name": "Audiologo", + "terms": "" + }, + "healthcare/birthing_center": { + "name": "Centro nascita", + "terms": "" }, "healthcare/blood_donation": { "name": "Centro trasfusionale", "terms": "donatori,sangue,banca dl sangue,trasfusioni,plasmaferesi,piastrinoaferesi,donazione" }, "healthcare/hospice": { - "name": "Ospizio" + "name": "Ospizio", + "terms": "" + }, + "healthcare/midwife": { + "name": "Clinica prenatale", + "terms": "" + }, + "healthcare/occupational_therapist": { + "terms": "" + }, + "healthcare/optometrist": { + "name": "Oculista", + "terms": "" }, "healthcare/physiotherapist": { - "name": "Fisioterapista" + "name": "Fisioterapista", + "terms": "" }, "healthcare/podiatrist": { - "name": "Podologo" + "name": "Podologo", + "terms": "" }, "healthcare/psychotherapist": { "name": "Psicoterapista", @@ -3699,6 +3926,10 @@ "name": "Centro riabilitativo", "terms": "riabilitazione,terapia,terapista" }, + "healthcare/speech_therapist": { + "name": "Logopedista", + "terms": "" + }, "highway": { "name": "Strada" }, @@ -3706,6 +3937,10 @@ "name": "Ippovia", "terms": "ippovia, percorso per cavalli, percorso equestre" }, + "highway/bus_guideway": { + "name": "Binario per autobus", + "terms": "" + }, "highway/bus_stop": { "name": "Fermata autobus / banchina" }, @@ -3725,6 +3960,10 @@ "name": "Strisce pedonali", "terms": "strisce pedonali,attraversamento" }, + "highway/crosswalk-raised": { + "name": "Attraversamento pedonale rialzato", + "terms": "" + }, "highway/cycleway": { "name": "Percorso ciclabile", "terms": "Percorso ciclabile" @@ -3766,10 +4005,12 @@ "terms": "Sentiero" }, "highway/pedestrian_area": { - "name": "Area pedonale" + "name": "Area pedonale", + "terms": "" }, "highway/pedestrian_line": { - "name": "Strada pedonale" + "name": "Strada pedonale", + "terms": "" }, "highway/primary": { "name": "Primaria", @@ -3948,7 +4189,8 @@ "terms": "Bacino" }, "landuse/brownfield": { - "name": "Area industriale dismessa" + "name": "Area industriale dismessa", + "terms": "" }, "landuse/cemetery": { "name": "Cimitero", @@ -3981,12 +4223,17 @@ "name": "Foresta", "terms": "Foresta" }, + "landuse/garages": { + "name": "Area garage", + "terms": "" + }, "landuse/grass": { "name": "Erba", "terms": "Erba" }, "landuse/greenfield": { - "name": "Terreno edificabile" + "name": "Terreno edificabile", + "terms": "" }, "landuse/greenhouse_horticulture": { "name": "Serra", @@ -4001,7 +4248,8 @@ "terms": "zona industriale,zona artigianale,industria,artigianato" }, "landuse/industrial/scrap_yard": { - "name": "Sfasciacarrozze" + "name": "Sfasciacarrozze", + "terms": "" }, "landuse/industrial/slaughterhouse": { "name": "Macello", @@ -4084,7 +4332,8 @@ "terms": "Campo da gioco,Campo giochi,Campo da giochi" }, "landuse/religious": { - "name": "Area religiosa" + "name": "Area religiosa", + "terms": "" }, "landuse/residential": { "name": "Area residenziale", @@ -4142,10 +4391,49 @@ "name": "Palestra a cielo aperto", "terms": "Palestra a cielo aperto,Attrezzatura ginnica all'aperto" }, + "leisure/fitness_station/balance_beam": { + "name": "Trave (attrezzo ginnico)", + "terms": "" + }, + "leisure/fitness_station/box": { + "name": "Scatola per salti", + "terms": "" + }, + "leisure/fitness_station/horizontal_bar": { + "name": "Sbarra per trazioni", + "terms": "" + }, + "leisure/fitness_station/horizontal_ladder": { + "terms": "" + }, + "leisure/fitness_station/hyperextension": { + "name": "Stazione per lombari", + "terms": "" + }, "leisure/fitness_station/parallel_bars": { "name": "Barre Parallele", "terms": "barr*,esercizi,fitness,palestra,percorso" }, + "leisure/fitness_station/push-up": { + "name": "Stazione per piegamenti sulle braccia", + "terms": "" + }, + "leisure/fitness_station/rings": { + "name": "Anelli (attrezzo ginnico)", + "terms": "" + }, + "leisure/fitness_station/sign": { + "name": "Cartello illustrativo per esercizi", + "terms": "" + }, + "leisure/fitness_station/sit-up": { + "name": "Stazione per addominali", + "terms": "" + }, + "leisure/fitness_station/stairs": { + "name": "Scala per esercizi", + "terms": "" + }, "leisure/garden": { "name": "Giardino", "terms": "Giardino" @@ -4154,6 +4442,9 @@ "name": "Campo da Golf", "terms": "Campo da golf" }, + "leisure/hackerspace": { + "terms": "" + }, "leisure/horse_riding": { "name": "Centro equestre", "terms": "cavall*,equestre,circolo,ippica,club" @@ -4203,7 +4494,8 @@ "terms": "pallavolo,pista,palla,volley,campetto" }, "leisure/pitch/boules": { - "name": "Campo da bocce" + "name": "Campo da bocce", + "terms": "" }, "leisure/pitch/bowls": { "name": "Campo da bocce", @@ -4258,7 +4550,8 @@ "terms": "atletica,tartan,pista" }, "leisure/sauna": { - "name": "Sauna" + "name": "Sauna", + "terms": "" }, "leisure/slipway": { "name": "Scivolo per barche", @@ -4313,7 +4606,8 @@ "terms": "torre,camino" }, "man_made/crane": { - "name": "Gru" + "name": "Gru", + "terms": "" }, "man_made/cutline": { "name": "Linea di demarcazione", @@ -4343,7 +4637,8 @@ "terms": "albero,torre,comunicazione,radio,cellulari,antenna,trasmissioni,tv,televisione,telefoni" }, "man_made/monitoring_station": { - "name": "Stazione di controllo" + "name": "Stazione di controllo", + "terms": "" }, "man_made/observation": { "name": "Torre di osservazione", @@ -4406,23 +4701,28 @@ "terms": " Impianto idrico " }, "man_made/watermill": { - "name": "Mulino ad acqua" + "name": "Mulino ad acqua", + "terms": "" }, "man_made/windmill": { - "name": "Mulino a vento" + "name": "Mulino a vento", + "terms": "" }, "man_made/works": { "name": "Fabbrica", "terms": "industria,manifattura,officina,opificio,stabilimento,laboratorio" }, "manhole": { - "name": "Tombino" + "name": "Tombino", + "terms": "" }, "manhole/drain": { - "name": "Tombino" + "name": "Tombino", + "terms": "" }, "manhole/telecom": { - "name": "Tombino per telecominicazioni" + "name": "Tombino per telecominicazioni", + "terms": "" }, "natural": { "name": "Naturale", @@ -4541,16 +4841,35 @@ "terms": "Ufficio" }, "office/accountant": { - "name": "Commercialista" + "name": "Commercialista", + "terms": "" }, "office/administrative": { "name": "Autorità locale" }, + "office/adoption_agency": { + "name": "Agenzia per adozioni", + "terms": "" + }, "office/advertising_agency": { - "name": "Agenzia pubblicitaria" + "name": "Agenzia pubblicitaria", + "terms": "" }, "office/architect": { - "name": "Studio di architettura" + "name": "Studio di architettura", + "terms": "" + }, + "office/association": { + "name": "Ufficio associazione senza scopo di lucro", + "terms": "" + }, + "office/charity": { + "name": "Organizzazione benefica", + "terms": "" + }, + "office/company": { + "name": "Ufficio aziendale", + "terms": "" }, "office/coworking": { "name": "Ufficio in Coworking", @@ -4564,6 +4883,10 @@ "name": "Agenzia per l'impiego", "terms": "interinale,impiego,lavoro,ufficio per l'impiego,ufficio interinale" }, + "office/energy_supplier": { + "name": "Ufficio azienda fornitrice di energia", + "terms": "" + }, "office/estate_agent": { "name": "Agente Immobiliare", "terms": "agenzia immobiliare,immobiliare" @@ -4572,6 +4895,13 @@ "name": "Ufficio Finanziario", "terms": "finanza,finanziaria,fiduciaria,mag" }, + "office/forestry": { + "terms": "" + }, + "office/foundation": { + "name": "Fondazione", + "terms": "" + }, "office/government": { "name": "Ufficio governativo", "terms": "sede,dipartimento,governo,comune,provincia,regione,procura,provveditorato,pretura" @@ -4580,10 +4910,22 @@ "name": "Anagrafe", "terms": "anagrafe,comune,archivio di stato" }, + "office/government/tax": { + "name": "Agenzia delle entrate", + "terms": "" + }, + "office/guide": { + "name": "Ufficio guide turistiche", + "terms": "" + }, "office/insurance": { "name": "Assicurazione", "terms": "assicurativo,sinistri,polizza assicurativa" }, + "office/it": { + "name": "Ufficio società IT", + "terms": "" + }, "office/lawyer": { "name": "Studio legale", "terms": "ufficio legale,legale,avvocato,avvocatura,magistrato,difensore,azzeccagarbugli" @@ -4591,12 +4933,21 @@ "office/lawyer/notary": { "name": "Ufficio notarile" }, + "office/moving_company": { + "name": "Ufficio compagnia di traslochi", + "terms": "" + }, + "office/newspaper": { + "name": "Ufficio giornalistico", + "terms": "" + }, "office/ngo": { "name": "Organizzazione non governativa", "terms": "ong,ngo,onu,associazione,non profit,nonprofit,no profit,onlus,non lucrativa,senza fini di lucro,cooperativa,cooperazione" }, "office/notary": { - "name": "Ufficio notarile" + "name": "Ufficio notarile", + "terms": "" }, "office/physician": { "name": "Medico" @@ -4605,17 +4956,40 @@ "name": "Sede di partito", "terms": "circolo,partito,politica,sezione" }, + "office/private_investigator": { + "name": "Ufficio agenzia investigativa privata", + "terms": "" + }, + "office/quango": { + "terms": "" + }, "office/research": { "name": "Istituto di Ricerca", "terms": "Ufficio ricerca,Ufficio di ricerca" }, + "office/surveyor": { + "name": "Ufficio di supervisione", + "terms": "" + }, + "office/tax_advisor": { + "name": "Centro assistenza fiscale", + "terms": "" + }, "office/telecommunication": { "name": "Ufficio di telecomunicazioni", "terms": "telecomunicazioni,telefonia" }, + "office/therapist": { + "name": "Studio psichiatrico", + "terms": "" + }, "office/travel_agent": { "name": "Agenzia di viaggi" }, + "office/water_utility": { + "name": "Ufficio azienda di fornitura dell'acqua", + "terms": "" + }, "piste": { "name": "Piste da sci", "terms": "pista da sci,sci,impianto sciistico,impianto" @@ -4638,6 +5012,10 @@ "name": "Isola", "terms": "arcipelago,atollo,banco,isola,isolotto,scoglio" }, + "place/islet": { + "name": "Isoletta", + "terms": "" + }, "place/isolated_dwelling": { "name": "Case Sparse", "terms": " Insediamento rurale isolato " @@ -4650,6 +5028,9 @@ "name": "Vicinanze", "terms": "Quartiere,Zona" }, + "place/plot": { + "terms": "" + }, "place/quarter": { "name": "Sotto-distretto / Quartiere", "terms": "" @@ -4670,14 +5051,59 @@ "name": "Villaggio", "terms": "Frazione" }, + "playground/balance_beam": { + "name": "Trave", + "terms": "" + }, + "playground/basket_spinner": { + "terms": "" + }, + "playground/basket_swing": { + "name": "Altalena a cesto", + "terms": "" + }, + "playground/climbing_frame": { + "name": "Struttura da arrampicata", + "terms": "" + }, + "playground/cushion": { + "name": "Materasso gonfiato", + "terms": "" + }, + "playground/horizontal_bar": { + "terms": "" + }, + "playground/rocker": { + "name": "Gioco a molla", + "terms": "" + }, + "playground/roundabout": { + "name": "Girello", + "terms": "" + }, "playground/sandpit": { - "name": "Buca di sabbia" + "name": "Buca di sabbia", + "terms": "" + }, + "playground/seesaw": { + "name": "Altalena a dondolo", + "terms": "" }, "playground/slide": { - "name": "Scivolo" + "name": "Scivolo", + "terms": "" + }, + "playground/structure": { + "name": "Struttura da gioco", + "terms": "" }, "playground/swing": { - "name": "Altalena" + "name": "Altalena", + "terms": "" + }, + "playground/zipwire": { + "name": "Teleferica", + "terms": "" }, "point": { "name": "Punto", @@ -4691,10 +5117,12 @@ "terms": " Centrale elettrica " }, "power/generator/source_nuclear": { - "name": "Reattore nucleare" + "name": "Reattore nucleare", + "terms": "" }, "power/generator/source_wind": { - "name": "Turbina eolica" + "name": "Turbina eolica", + "terms": "" }, "power/line": { "name": "Linea elettrica", @@ -4719,6 +5147,9 @@ "name": "Sottostazione", "terms": "Sottostazione" }, + "power/switch": { + "terms": "" + }, "power/tower": { "name": "Traliccio ad alta tensione", "terms": "Torre ad alta tensione" @@ -4727,86 +5158,159 @@ "name": "Trasformatore", "terms": "Trasformatore" }, + "public_transport/linear_platform": { + "terms": "" + }, "public_transport/linear_platform_aerialway": { - "name": "Fermata / banchina del trasporto a fune" + "name": "Fermata / banchina del trasporto a fune", + "terms": "" }, "public_transport/linear_platform_bus": { - "name": "Fermata / banchina dell'autobus" + "name": "Fermata / banchina dell'autobus", + "terms": "" }, "public_transport/linear_platform_ferry": { - "name": "Fermata / banchina del traghetto" + "name": "Fermata / banchina del traghetto", + "terms": "" }, "public_transport/linear_platform_light_rail": { - "name": "Fermata / banchina della metropolitana di superficie" + "name": "Fermata / banchina della metropolitana di superficie", + "terms": "" }, "public_transport/linear_platform_monorail": { - "name": "Fermata / banchina della monorotaia" + "name": "Fermata / banchina della monorotaia", + "terms": "" }, "public_transport/linear_platform_subway": { - "name": "Fermata / banchina della metropolitana" + "name": "Fermata / banchina della metropolitana", + "terms": "" }, "public_transport/linear_platform_train": { - "name": "Fermata / banchina del treno" + "name": "Fermata / banchina del treno", + "terms": "" }, "public_transport/linear_platform_tram": { - "name": "Fermata / banchina del tram" + "name": "Fermata / banchina del tram", + "terms": "" + }, + "public_transport/linear_platform_trolleybus": { + "terms": "" + }, + "public_transport/platform": { + "terms": "" }, "public_transport/platform_aerialway": { - "name": "Fermata / banchina del trasporto a fune" + "name": "Fermata / banchina del trasporto a fune", + "terms": "" }, "public_transport/platform_bus": { - "name": "Fermata / banchina dell'autobus" + "name": "Fermata / banchina dell'autobus", + "terms": "" }, "public_transport/platform_ferry": { - "name": "Fermata / banchina del traghetto" + "name": "Fermata / banchina del traghetto", + "terms": "" }, "public_transport/platform_light_rail": { - "name": "Fermata / banchina della metropolitana di superficie" + "name": "Fermata / banchina della metropolitana di superficie", + "terms": "" }, "public_transport/platform_monorail": { - "name": "Fermata / banchina della monorotaia" + "name": "Fermata / banchina della monorotaia", + "terms": "" }, "public_transport/platform_subway": { - "name": "Fermata / banchina della metropolitana" + "name": "Fermata / banchina della metropolitana", + "terms": "" }, "public_transport/platform_train": { - "name": "Fermata / banchina del treno" + "name": "Fermata / banchina del treno", + "terms": "" }, "public_transport/platform_tram": { - "name": "Fermata / banchina del tram" + "name": "Fermata / banchina del tram", + "terms": "" + }, + "public_transport/platform_trolleybus": { + "terms": "" + }, + "public_transport/station": { + "terms": "" }, "public_transport/station_aerialway": { - "name": "Stazione di trasporto a fune" + "name": "Stazione di trasporto a fune", + "terms": "" }, "public_transport/station_bus": { - "name": "Stazione /Terminal degli autobus" + "name": "Stazione /Terminal degli autobus", + "terms": "" }, "public_transport/station_ferry": { - "name": "Stazione / Terminal dei traghetti" + "name": "Stazione / Terminal dei traghetti", + "terms": "" }, "public_transport/station_light_rail": { - "name": "Stazione del tram" + "name": "Stazione del tram", + "terms": "" }, "public_transport/station_monorail": { - "name": "Stazione della monorotaia" + "name": "Stazione della monorotaia", + "terms": "" }, "public_transport/station_subway": { - "name": "Stazione metropolitana" + "name": "Stazione metropolitana", + "terms": "" }, "public_transport/station_train": { - "name": "Stazione treno" + "name": "Stazione treno", + "terms": "" }, "public_transport/station_train_halt": { - "name": "Fermata del treno a richiesta" + "name": "Fermata del treno a richiesta", + "terms": "" }, "public_transport/station_tram": { - "name": "Stazione tram" + "name": "Stazione tram", + "terms": "" + }, + "public_transport/station_trolleybus": { + "terms": "" + }, + "public_transport/stop_area": { + "terms": "" + }, + "public_transport/stop_position": { + "terms": "" + }, + "public_transport/stop_position_aerialway": { + "terms": "" }, "public_transport/stop_position_bus": { - "name": "Fermata autobus" + "name": "Fermata autobus", + "terms": "" }, "public_transport/stop_position_ferry": { - "name": "Fermata battello" + "name": "Fermata battello", + "terms": "" + }, + "public_transport/stop_position_light_rail": { + "terms": "" + }, + "public_transport/stop_position_monorail": { + "terms": "" + }, + "public_transport/stop_position_subway": { + "terms": "" + }, + "public_transport/stop_position_train": { + "name": "Posizione fermata del treno ", + "terms": "" + }, + "public_transport/stop_position_tram": { + "terms": "" + }, + "public_transport/stop_position_trolleybus": { + "terms": "" }, "railway": { "name": "Ferrovia" @@ -4815,6 +5319,9 @@ "name": "Ferrovia abbandonata", "terms": "Ferrovia abbandonata" }, + "railway/buffer_stop": { + "terms": "" + }, "railway/crossing": { "name": "Passaggio a livello (sentiero)", "terms": "passaggio a livello,incrocio ferroviario,attraversamento pedonale" @@ -4839,14 +5346,16 @@ "terms": "passaggio a livello,incrocio ferroviario,attraversamento" }, "railway/light_rail": { - "name": "Tram" + "name": "Tram", + "terms": "" }, "railway/milestone": { "name": "Pietra miliare ferroviaria", "terms": "pietra,miliare,marcatore" }, "railway/miniature": { - "name": "Ferrovia in miniatura" + "name": "Ferrovia in miniatura", + "terms": "" }, "railway/monorail": { "name": "Monorotaia", @@ -4883,7 +5392,8 @@ "terms": "scambio,cambio,ferrovia" }, "railway/train_wash": { - "name": "Lavaggio treni" + "name": "Lavaggio treni", + "terms": "" }, "railway/tram": { "name": "Tram", @@ -4907,6 +5417,10 @@ "name": "Negozio", "terms": "Negozio" }, + "shop/agrarian": { + "name": "Negozio di articoli agricoli", + "terms": "" + }, "shop/alcohol": { "name": "Negozio di liquori", "terms": "alcool,liquori,grappa,rum,vodka" @@ -5170,7 +5684,8 @@ "terms": "Gioielleria" }, "shop/kiosk": { - "name": "Chiosco" + "name": "Chiosco", + "terms": "" }, "shop/kitchen": { "name": "Negozio di cucine", @@ -5328,6 +5843,10 @@ "name": "Rivenditore di Biglietti", "terms": "bilglietti,biglietteria" }, + "shop/tiles": { + "name": "Negozio di piastrelle", + "terms": "" + }, "shop/tobacco": { "name": "Tabacchino", "terms": "Tabaccheria" @@ -5336,6 +5855,9 @@ "name": "Negozio di giocattoli", "terms": "Negozio giocattoli" }, + "shop/trade": { + "terms": "" + }, "shop/travel_agency": { "name": "Agenzia di viaggi", "terms": "Agenzia di viaggi" @@ -5475,6 +5997,10 @@ "name": "Punto panoramico", "terms": " Punto panoramico " }, + "tourism/wilderness_hut": { + "name": "Bivacco", + "terms": "" + }, "tourism/zoo": { "name": "Zoo", "terms": "Zoo" @@ -5515,6 +6041,10 @@ "name": "Rallentatore acustico", "terms": "dosso acustico,bande acustiche,bande rumorose" }, + "traffic_calming/table": { + "name": "Dosso", + "terms": "" + }, "type/boundary": { "name": "Confine", "terms": "Confine" @@ -5591,14 +6121,16 @@ "terms": "cavallo,strada,ippica,sentiero,equitazione" }, "type/route/light_rail": { - "name": "Linea tramviaria" + "name": "Linea tramviaria", + "terms": "" }, "type/route/pipeline": { "name": "Condotta", "terms": "Itinerario conduttura" }, "type/route/piste": { - "name": "Pista da sci" + "name": "Pista da sci", + "terms": "" }, "type/route/power": { "name": "Linea elettrica", @@ -5609,7 +6141,8 @@ "terms": "Itinerario stradale" }, "type/route/subway": { - "name": "Linea metropolitana" + "name": "Linea metropolitana", + "terms": "" }, "type/route/train": { "name": "Linea ferroviaria", @@ -5740,6 +6273,13 @@ "description": "Esri world imagery.", "name": "Esri world imagery" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Termini & Feedback" + }, + "description": "Le immagini ESRI potrebbero essere migliori e più precise di quelle impostate di default.", + "name": "Esri World Imagery (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap contributors, CC-BY-SA" @@ -5808,18 +6348,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, collaboratori OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Ciclismo" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, collaboratori OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Escursioni a piedi" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, collaboratori OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Mountain bike" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, collaboratori OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Pattinaggio in linea" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, collaboratori OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Piste per sport invernali" }, "basemap.at": { diff --git a/dist/locales/ja.json b/dist/locales/ja.json index c304f558a..f6f78a2a6 100644 --- a/dist/locales/ja.json +++ b/dist/locales/ja.json @@ -389,7 +389,8 @@ "title": "計測", "selected": "{n} 個を選択中", "geometry": "ジオメトリ", - "closed": "クローズド", + "closed_line": "クローズドライン", + "closed_area": "クローズドエリア", "center": "中心", "perimeter": "周囲", "length": "長さ", @@ -470,7 +471,7 @@ "switch": "背景に切り替え", "custom": "カスタム", "custom_button": "カスタム背景の設定", - "custom_prompt": "タイルURLのテンプレートを入力。正しいトークンは以下の通り:\n - {zoom}/{z}, {x}, {y} Z/X/Y タイルスキーマ用\n - {ty} flipped TMS-style Y 座標用\n - {u} quadtileスキーマ用\n - {switch:a,b,c} DNSサーバmultiplexing用\n\n例:\n{example}", + "custom_prompt": "URLテンプレートを入力。正しい形式:\n - {zoom} または {z}, {x}, {y} (Z/X/Y タイルスキーム)\n - {-y} または {ty} (flipped TMS-style Y coordinates)\n - {u} (quadtileスキーム)\n - {switch:a,b,c} (DNS server multiplexing)\n\nサンプル:\n{example}", "overlays": "オーバーレイの選択", "imagery_source_faq": "画像の情報 / 問題を報告", "reset": "設定リセット", @@ -654,7 +655,7 @@ "untagged_area_tooltip": "このエリアが表す地物の種類を選択してください。", "untagged_relation": "タグの無いリレーション", "untagged_relation_tooltip": "このリレーションを表す地物の種別を選んでください。", - "many_deletions": "あなたは{n}件の地物を削除しようとしています。本当に実行して宜しいですか?他の人からも見える地図から削除することになります。", + "many_deletions": "あなたは計{n}件の地物を削除しようとしています:{p}ノード, {l}ライン, {a}エリア, {r}リレーション。本当に削除しますか?この操作でみんながopenstreetmap.org上で見ているマップから削除されます。", "tag_suggests_area": "ラインに {tag} タグが付与されています。エリアで描かれるべきです", "deprecated_tags": "タグの重複: {tags}" }, @@ -709,7 +710,7 @@ "navigation_zoom": "マウスホイールやトラックパッドでスクロールしたり、マップの脇にある{plus} / {minus}ボタンをクリックするとズームインしたりズームアウトしたりすることができます。キーボードの`+`, `-` キーも使えます。", "features_h": "マップの地物", "features": "私たちは道路、建物、興味深い地点(POI)といったマップ上に現れる物事を表現するのに*地物*という言葉を使います。実世界のあらゆるものを地物としてOpenStreetMap上にマッピングすることができます。マップの地物は*ポイント*、*ライン*、あるいは*エリア*を使って表現されます。", - "nodes_ways": "OpenStreetmapでは、ポイントは*ノード*、ラインとエリアは*ウェイ*とよく呼ばれます。" + "nodes_ways": "OpenStreetMapでは、ポイントは*ノード*、ラインとエリアは*ウェイ*とよく呼ばれます。" }, "editing": { "title": "編集 & 保存", @@ -725,7 +726,7 @@ "save": "{save} **保存**をクリックして編集を終了し、OpenStreetMapに送信します。作業内容はこまめに保存するよう気をつけてください!", "save_validation": "保存画面には、作業内容のレビュー結果が表示される場合があります。iDは不足データに対する基本的なチェックを実行し、何か間違ったものがあれば手助けとなる提案や警告が提示されるかもしれません。", "upload_h": "アップロード", - "upload": "変更内容をアップロードする前に、[変更セットのコメント](https://wiki.openstreetmap.org/wiki/Good_changeset_comments)を入力しなければなりません。それから**アップロード**をクリックして変更をOpenStreetMapに送信します。するとそれらがマップにマージされ、(サーバーの状態にもよりますが通常は早ければ5分後、遅くとも30分後くらいに)誰にでも見えるようになります。", + "upload": "変更内容をアップロードする前に、[変更セットのコメント](https://wiki.openstreetmap.org/wiki/Good_changeset_comments)を入力しなければなりません。それから**アップロード**をクリックして変更をOpenStreetMapに送信します。するとそれらがマップにマージされ、(サーバーの状態により異なりますが、5分後から数時間後くらいの間に)誰にでも見えるようになります。", "backups_h": "自動バックアップ", "backups": "コンピュータのクラッシュやブラウザのタブを綴じたりして編集を一気に終了できなかったような場合には、あなたの編集はブラウザの領域にまだ残っています。(同じコンピュータのブラウザで)後からもう一度続けることができ、iDはあなたの作業を復元するかどうか提案します。", "keyboard_h": "キーボード・ショートカット", @@ -1221,6 +1222,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "北緯", + "south": "南緯", + "east": "東経", + "west": "西経", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1873,7 +1896,7 @@ "label": "SSID (ネットワーク名)" }, "kerb": { - "label": "縁石" + "label": "縁石の詳細" }, "label": { "label": "ラベル" @@ -2985,8 +3008,8 @@ "terms": "駐車場の出入口, 自動車" }, "amenity/parking_space": { - "name": "駐車区画", - "terms": "駐車区画, 駐車スペース, 自動車" + "name": "駐車区画(1台ごとの)", + "terms": "駐車区画, 駐車スペース, 自動車, 駐車場" }, "amenity/pavilion": { "name": "東屋", @@ -3054,7 +3077,7 @@ }, "amenity/pub": { "name": "居酒屋", - "terms": "パブ, 居酒屋, 焼き鳥屋, 酒, 飲む, 呑む, 酒場, 立ち飲み, アルコール, 料理, 焼酎, ホルモン焼き, 食事, 料理, ワイン, ビール, 飲食店, 飲み屋, 小料理屋, 宴会" + "terms": "パブ, 居酒屋, 焼き鳥屋, 酒, 飲む, 呑む, 酒場, 立ち飲み, アルコール, 料理, 焼酎, ホルモン焼き, 食事, 料理, ワイン, ビール, 飲食店, 飲み屋, 小料理屋, 宴会, 炉端焼き, 焼とん" }, "amenity/public_bath": { "name": "公衆浴場", @@ -3102,6 +3125,10 @@ "name": "シャワー室", "terms": "シャワールーム" }, + "amenity/smoking_area": { + "name": "喫煙所", + "terms": "喫煙所, 喫煙エリア, たばこ, タバコ" + }, "amenity/social_facility": { "name": "福祉施設", "terms": "福祉施設, 支援施設" @@ -3116,7 +3143,7 @@ }, "amenity/social_facility/homeless_shelter": { "name": "ホームレス緊急一時宿泊施設", - "terms": "ホームレス緊急一時宿泊施設, ホームレスシェルター, 簡易宿泊所, 福祉" + "terms": "ホームレス緊急一時宿泊施設, ホームレスシェルター, 簡易宿泊所, 福祉, 保護施設" }, "amenity/social_facility/nursing_home": { "name": "介護施設", @@ -3159,7 +3186,7 @@ }, "amenity/vending_machine/cigarettes": { "name": "たばこ自動販売機", - "terms": "たばこ, 自動販売機, 自販機" + "terms": "たばこ, 自動販売機, 自販機, 嗜好品, タバコ" }, "amenity/vending_machine/condoms": { "name": "コンドーム自動販売機", @@ -3335,6 +3362,10 @@ "name": "生垣", "terms": "生垣, 障害物, バリア" }, + "barrier/kerb": { + "name": "縁石", + "terms": "縁石, 段差, 障害物, バリア" + }, "barrier/kissing_gate": { "name": "キッシングゲート", "terms": "キッシングゲート, V字形自在門, U字形自在門, 障害物, バリア" @@ -3647,8 +3678,8 @@ "name": "宝石加工" }, "craft/key_cutter": { - "name": "合鍵作成", - "terms": "合鍵作成, 職人" + "name": "合鍵作成(小店舗)", + "terms": "合鍵作成, 職人, 錠前, カギ, 鍵" }, "craft/locksmith": { "name": "錠前師" @@ -3665,8 +3696,8 @@ "terms": "塗装業, 外装業, ペンキ屋, 職人" }, "craft/photographer": { - "name": "写真屋", - "terms": "カメラマン, 写真屋, 職人, 工房" + "name": "写真館", + "terms": "カメラマン, 写真屋, 職人, 工房, 写真館" }, "craft/photographic_laboratory": { "name": "現像所", @@ -3767,7 +3798,7 @@ }, "emergency/fire_hydrant": { "name": "消火栓/消防水利", - "terms": "消火栓, 消防, 防火水槽, 消防水利, 救命" + "terms": "消火栓, 消防, 消防水利, 救命, 緊急, 火災" }, "emergency/life_ring": { "name": "救命浮き輪", @@ -3786,6 +3817,10 @@ "emergency/private": { "name": "私有の緊急車両" }, + "emergency/water_tank": { + "name": "防火水槽", + "terms": "貯水槽, 貯水タンク, 緊急, 火災, 防火槽" + }, "emergency/yes": { "name": "緊急時の利用可" }, @@ -4016,8 +4051,8 @@ "terms": "住宅地区の道路, 車道, 生活道路, 住宅街道路" }, "highway/rest_area": { - "name": "パーキングエリア", - "terms": "パーキングエリア, PA, チェーンベース" + "name": "パーキングエリア(休憩所)", + "terms": "パーキングエリア, PA, チェーンベース, 休憩所" }, "highway/road": { "name": "道路(区分不明)", @@ -4152,8 +4187,8 @@ "terms": "道路際の十字架, 歴史" }, "historic/wayside_shrine": { - "name": "道祖神", - "terms": "道祖神, 地蔵, お地蔵さん, 歴史" + "name": "路傍の神仏", + "terms": "道祖神, 地蔵, お地蔵さん, 歴史, 神仏, 祠, 庚申塔, 石仏, 宗教, 信仰" }, "junction": { "name": "交差点", @@ -4164,8 +4199,8 @@ "terms": "土地利用" }, "landuse/allotments": { - "name": "市民庭園", - "terms": "庭園, 市民庭園, コミュニティガーデン, ガーデン" + "name": "市民農園", + "terms": "市民菜園, 市民農園, コミュニティガーデン, ガーデン, 農業, 畑, 農園" }, "landuse/aquaculture": { "name": "養殖場(水域)", @@ -4200,7 +4235,7 @@ }, "landuse/farmland": { "name": "農地", - "terms": "農地, 畑, 田, 茶畑, 田んぼ" + "terms": "農地, 畑, 田, 茶畑, 田んぼ, 田畑, 耕作地" }, "landuse/farmyard": { "name": "農家(敷地)", @@ -4224,7 +4259,7 @@ }, "landuse/greenhouse_horticulture": { "name": "温室(土地区画)", - "terms": "温室, ビニールハウス" + "terms": "温室, ビニールハウス, 農業, 野菜" }, "landuse/harbour": { "name": "港湾地域(土地区画)", @@ -4335,7 +4370,7 @@ "terms": "ぶどう畑, 果樹園, 森林" }, "leisure": { - "name": "レジャー", + "name": "レジャー施設全般", "terms": "レジャー, 娯楽" }, "leisure/adult_gaming_centre": { @@ -4424,7 +4459,7 @@ }, "leisure/garden": { "name": "庭園", - "terms": "庭園, 日本庭園" + "terms": "庭園, 日本庭園, 植物園, 公園, 枯山水" }, "leisure/golf_course": { "name": "ゴルフコース", @@ -4531,8 +4566,8 @@ "terms": "児童公園, 遊び場, 児童遊園, 公園" }, "leisure/resort": { - "name": "リゾート", - "terms": "リゾート" + "name": "リゾート地", + "terms": "リゾート, 行楽地, 観光, 保養, レジャー, 娯楽" }, "leisure/running_track": { "name": "競技トラック (徒競走)", @@ -4885,8 +4920,8 @@ "terms": "会計事務所" }, "office/forestry": { - "name": "林業", - "terms": "林業" + "name": "林業事務所", + "terms": "林業, 森林" }, "office/foundation": { "name": "財団", @@ -4955,8 +4990,8 @@ "terms": "準非政府機関" }, "office/research": { - "name": "研究所棟", - "terms": "研究所" + "name": "研究所", + "terms": "研究所, ラボ" }, "office/surveyor": { "name": "測量会社", @@ -5572,8 +5607,8 @@ "terms": "化粧品, 美容, コスメ" }, "shop/craft": { - "name": "アートショップ", - "terms": "アートショップ, 工芸品" + "name": "美術・工芸用品店", + "terms": "アートショップ, 工芸用品, 画材, 絵の具, 美術用品, クラフト" }, "shop/curtain": { "name": "カーテン店", @@ -5593,7 +5628,7 @@ }, "shop/doityourself": { "name": "ホームセンター", - "terms": "日曜大工用品店, 工具店, DIY, ホームセンター, 雑貨, 買い物, ショッピング, 園芸, 工芸用品" + "terms": "日曜大工用品店, 工具店, DIY, ホームセンター, 雑貨, 買い物, ショッピング, 園芸, 工芸用品, 家庭菜園, 植木" }, "shop/dry_cleaning": { "name": "クリーニング店", @@ -5613,7 +5648,7 @@ }, "shop/fabric": { "name": "生地屋", - "terms": "布地, 織物, 反物, ファブリック店" + "terms": "布地, 織物, 反物, ファブリック店, 生地, 裏地, 衣料, 服, 裁縫, 衣類" }, "shop/farm": { "name": "農産物直売所", @@ -5647,7 +5682,7 @@ }, "shop/garden_centre": { "name": "園芸用品店", - "terms": "園芸用品店, ガーデンセンター, DIY" + "terms": "園芸用品店, ガーデンセンター, DIY, 家庭菜園, 植木" }, "shop/gas": { "name": "ガスボンベ店", @@ -5710,8 +5745,8 @@ "terms": "皮革洋品店, レザーショップ, 皮革, レザー" }, "shop/locksmith": { - "name": "錠前屋", - "terms": "錠前屋, 鍵屋" + "name": "鍵屋(専門店)", + "terms": "錠前屋, 鍵屋, カギ, 合鍵" }, "shop/lottery": { "name": "宝くじ売り場", @@ -5758,8 +5793,8 @@ "terms": "栄養サプリメント販売店, サプリ専門店, サプリメント専門店, 健康" }, "shop/optician": { - "name": "メガネ", - "terms": "メガネ, 眼鏡, メガネ屋, 眼鏡屋" + "name": "メガネ店", + "terms": "メガネ, 眼鏡, メガネ屋, 眼鏡屋, めがね" }, "shop/organic": { "name": "オーガニック商品店", @@ -5790,8 +5825,8 @@ "terms": "ペット売り場, ペット, 家禽, ペットショップ, 動物" }, "shop/photo": { - "name": "写真屋", - "terms": "写真屋" + "name": "写真店", + "terms": "写真屋, 写真店, 現像, ビデオ, デジカメ" }, "shop/pyrotechnics": { "name": "花火店", @@ -5858,7 +5893,7 @@ "terms": "タイル店, タイルショップ" }, "shop/tobacco": { - "name": "煙草屋", + "name": "たばこ店", "terms": "たばこ店, たばこ屋, タバコ, たばこ, 嗜好品" }, "shop/toys": { @@ -5926,7 +5961,7 @@ }, "tourism/apartment": { "name": "リゾートマンション", - "terms": "リゾートマンション" + "terms": "リゾートマンション, リゾート, 別荘, 保養" }, "tourism/aquarium": { "name": "水族館", @@ -5950,7 +5985,7 @@ }, "tourism/chalet": { "name": "貸別荘(戸建て)", - "terms": "別荘, リゾートマンション" + "terms": "別荘, リゾートマンション, リゾート, 保養" }, "tourism/gallery": { "name": "アートギャラリー", @@ -6196,7 +6231,7 @@ }, "waterway/ditch": { "name": "排水路", - "terms": "排水路" + "terms": "排水路, 用水路, 側溝, 溝, 灌漑用水, 水路" }, "waterway/dock": { "name": "ドック", @@ -6204,7 +6239,7 @@ }, "waterway/drain": { "name": "放水路", - "terms": "放水路" + "terms": "放水路, 工業排水, 水路" }, "waterway/fuel": { "name": "マリンスタンド", @@ -6284,6 +6319,13 @@ "description": "Esri world imagery.", "name": "Esri World Imagery" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "規約 & フィードバック" + }, + "description": "おそらくデフォルトのレイヤより明瞭で正確、しかしやや古いEsriアーカイブ画像。(日本での違いは不明)", + "name": "Esri World Imagery(鮮明版)ベータ" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap contributors, CC-BY-SA" diff --git a/dist/locales/kn.json b/dist/locales/kn.json index 877303c75..259fe83ef 100644 --- a/dist/locales/kn.json +++ b/dist/locales/kn.json @@ -25,6 +25,9 @@ }, "draw_line": { "tail": "ಗೆರೆಗಳಿಗೆ ಚುಕ್ಕೆಗಳನ್ನು ಸೇರಿಸಲು ಕ್ಲಿಕ್ ಮಾಡಿ. ಅವುಗಳನ್ನು ಬೇರೆ ಗೆರೆಗಳಿಗೆ ಸೇರಿಸಲು ಅವುಗಳ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ. ಗೆರೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಅದರ ಮೇಲೆ ಎರಡು ಸಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ. " + }, + "drag_node": { + "connected_to_hidden": "ಅಗೋಚರ ಮೂಲಕ್ಕೆ ಸಂಬಂಧಿಸಿದ್ದರಿಂದ ಪರಿಷ್ಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" } }, "operations": { @@ -310,7 +313,9 @@ "localized_translation_language": "ಭಾಷೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ", "localized_translation_name": "ಹೆಸರು" }, + "zoom_in_edit": "ಪರಿಷ್ಕರಿಸಲು zoom ಮಾಡಿ", "login": "ಲಾಗಿನ್", + "logout": "ಹೊರನಡೆ", "loading_auth": "ಓಪನ್ ಸ್ಟ್ರೀಟ್ ಮ್ಯಾಪ್ ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ.....", "report_a_bug": "ದೋಷವನ್ನು ವಿವರಿಸಿ. ", "help_translate": "ಅನುವಾದಕ್ಕೆ ನೀವು ಸಹಾಯಮಾಡಿ. ", @@ -328,16 +333,19 @@ "title": "ಓಪೆನ್‌ಸ್ಟ್ರೀಟ್ಮ್ಯಾಪ್ ಜಾಲಕ್ಕೆ ನಿಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ರವಾನಿಸಿ. ", "upload_explanation": "ನೀವು ಉಪ್ಲೋಡ್ ಮಾಡುವ ಎಲ್ಲ ಮಾಹಿತಿ ಆಥಾವ ಬದಲಾವಣೆಗಳು ಓಪನ್ಸ್ಟ್ರೀಟ್ಮ್ಯಾಪ್ ಮಾಹಿತಿ ಉಪಯೋಗಿಸುವ ಎಲ್ಲ ನಕ್ಷೆಗಲ್ಲಿ ವ್ಯಕ್ತವಾಗುತ್ತದೆ. ", "upload_explanation_with_user": "{user} ಉಪ್ಲೋಡ್ ಮಾಡುವ ಎಲ್ಲ ಮಾಹಿತಿ ಆಥಾವ ಬದಲಾವಣೆಗಳು ಓಪನ್ಸ್ಟ್ರೀಟ್ಮ್ಯಾಪ್ ಮಾಹಿತಿ ಉಪಯೋಗಿಸುವ ಎಲ್ಲ ನಕ್ಷೆಗಲ್ಲಿ ವ್ಯಕ್ತವಾಗುತ್ತದೆ. ", + "request_review": "ಬೇರೆ ಯಾರಾದರೂ ನನ್ನ ಪರಿಷ್ಕರಣೆಯನ್ನು ಪುನರವಲೋಕಿಸಲು ಇಚ್ಛಿಸುತ್ತೇನೆ", "save": "ಅಂತರಜಾಲಕ್ಕೆ ರವಾನೆ ಮಾಡು ", "cancel": "ರದ್ದು ಮಾಡು", "changes": "{count} ಬದಲಾವಣೆಗಳು", + "download_changes": "osmChange ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿರಿ", "warnings": "ಎಚ್ಚರಿಕೆಗಳು", "modified": "ಮಾರ್ಪಡಿಸು", "deleted": "ಅಳಿಸಲಾಯಿತು", "created": "ರಚಿಸಲಾಯಿತು", "about_changeset_comments": "ಬದಲಾವಣೆಗಳ ಸಾರಾಂಶದ ಬಗ್ಗೆ", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments\n\nಯಾವುದಾದರೂ ಬದಲಾದ ಗುಂಪಿಗೆ ನಿಮ್ಮ ಅಭಿಪ್ರಾಯ ತಿಳಿಸಬೇಕಾದಲ್ಲಿ ಈ ದಾಖಲೆ ನಿಮ್ಮ ಸಹಾಯಕ್ಕಿದೆ. ", - "google_warning": "ನೀವು ಈ ಹೇಳಿಕೆಯಲ್ಲಿ ಗೂಗಲ್ ಅನ್ನು ಉಲ್ಲೇಖಿಸಿದ್ದೀರ. ಗೂಗಲ್ ಮಾಪ್ಸ್ ನಿಂದ ಮಾಹಿತಿ ಪಡೆಯುವುದು ನಿಷೇಧಿಸಿದೆ. " + "google_warning": "ನೀವು ಈ ಹೇಳಿಕೆಯಲ್ಲಿ ಗೂಗಲ್ ಅನ್ನು ಉಲ್ಲೇಖಿಸಿದ್ದೀರ. ಗೂಗಲ್ ಮಾಪ್ಸ್ ನಿಂದ ಮಾಹಿತಿ ಪಡೆಯುವುದು ನಿಷೇಧಿಸಿದೆ. ", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "ಸಂಪಾದನೆಗಳು {ಬಳಕೆದಾರ ಮೂಲಕ}", @@ -350,6 +358,9 @@ "title": "ಹಿನ್ನೆಲೆ", "zoom": "ಜೂಮ್", "vintage": "ವಿಂಟೇಜ್", + "source": "ಮೂಲ", + "description": "ವಿವರಣೆ", + "accuracy": "ನಿಖರತೆ", "unknown": "ಅಜ್ಞಾತ" }, "history": { @@ -431,6 +442,9 @@ "custom": "ಅನುಸರಣ", "custom_button": "ಅನುಸರಣ ಹಿನ್ನಲೆಯನ್ನು ಸಂಪಾದಿಸಿ", "reset": "ಮರುಹೊಂದಿಸು", + "minimap": { + "key": "/" + }, "fix_misalignment": "ಉಪಗ್ರಹ ಚಿತ್ರಣ ಸರಿಹೊಂದಿಸುವುದು." }, "map_data": { @@ -579,7 +593,26 @@ }, "help": { "title": "ಸಹಾಯ", - "key": "H" + "key": "H", + "lines": { + "title": "ರೇಖೆಗಳು", + "modify_line_h": "ರೇಖೆಗಳನ್ನು ಬದಲಿಸಲಾಗುತ್ತಿದೆ", + "connect_line_h": "ರೇಖೆಗಳನ್ನು ಜೋಡಿಸಲಾಗುತ್ತಿದೆ", + "disconnect_line_h": "ರೇಖೆಗಳನ್ನು ಬೇರ್ಪಡಿಸಲಾಗುತ್ತಿದೆ", + "move_line_h": "ರೇಖೆಗಳನ್ನು ಸ್ಥಳಾಂತರಿಸಲಾಗುತ್ತಿದೆ", + "delete_line_h": "ರೇಖೆಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ" + }, + "areas": { + "title": "ಪ್ರದೇಶ", + "point_or_area_h": "ಪ್ರದೇಶ ಅಥವಾ ಬಿಂದು?", + "add_area_h": "ಪ್ರದೇಶಗಳನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ", + "square_area_h": "ಚೌಕ ಮೂಲೆಗಳು", + "modify_area_h": "ಪ್ರದೇಶಗಳನ್ನು ಮಾರ್ಪಡಿಸಲಾಗುತ್ತಿದೆ", + "delete_area_h": "ಪ್ರದೇಶಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ" + }, + "relations": { + "title": "ಸಂಬಂಧ" + } }, "intro": { "done": "‍ಮುಗಿಯಿತು", diff --git a/dist/locales/ko.json b/dist/locales/ko.json index 9fb6e3e02..ad7eb60fb 100644 --- a/dist/locales/ko.json +++ b/dist/locales/ko.json @@ -385,7 +385,8 @@ "title": "측정", "selected": "{n}개 선택함", "geometry": "기하", - "closed": "닫힌", + "closed_line": "닫힌 선", + "closed_area": "닫힌 공간", "center": "가운데", "perimeter": "둘레", "length": "길이", @@ -393,7 +394,8 @@ "centroid": "중심", "location": "위치", "metric": "미터법", - "imperial": "야드파운드법" + "imperial": "야드파운드법", + "node_count": "노드 수" } }, "geometry": { @@ -459,18 +461,22 @@ "title": "배경", "description": "배경 설정", "key": "B", + "backgrounds": "배경", "none": "없음", "best_imagery": "이 위치의 가장 잘 알려진 사진 자료", "switch": "이 배경으로 복귀합니다", "custom": "사용자 지정", "custom_button": "사용자 지정 배경 편집", - "custom_prompt": "타일 URL 템플릿을 입력하세요. 올바른 토큰은 다음과 같습니다:\n - Z/X/Y 타일 체계에 대해 {zoom}/{z}, {x}, {y}\n - 뒤집힌 TMS 스타일의 Y좌표용으로 {ty}\n - 쿼드 타일 방식으로 {u}\n - 다중 DNS 서버용으로 {switch:a,b,c}\n\n예시는 다음과 같습니다:\n{example}", + "overlays": "오버레이", + "imagery_source_faq": "이미지 정보 / 버그 신고", "reset": "재설정", + "display_options": "디스플레이 옵션", "brightness": "명도", "contrast": "대비", "saturation": "채도", "sharpness": "선명도", "minimap": { + "description": "미니맵 보이기", "tooltip": "현재 보여지는 지역을 찾을 수 있도록 지도를 축소하여 보여줍니다.", "key": "/" }, @@ -632,7 +638,7 @@ }, "validations": { "disconnected_highway": "도로가 연결되어 있지 않음", - "disconnected_highway_tooltip": "도로는 다른 도로나 건물 입구와 연결되어야합니다.", + "disconnected_highway_tooltip": "도로는 다른 도로나 건물 입구와 연결되어야 합니다.", "old_multipolygon": "바깥 쪽의 다중 다각형 태그", "old_multipolygon_tooltip": "이 스타일의 다중면은 더이상 사용되지 않습니다. 바깥쪽 대신에 부모 다중면을 배치해 주세요 ", "untagged_point": "태그되지 않은 점", @@ -643,7 +649,6 @@ "untagged_area_tooltip": "이 공간을 설명하는 지물 유형을 선택하세요.", "untagged_relation": "태그되지 않은 관계", "untagged_relation_tooltip": "이 관계가 무엇인지 설명하는 지물 유형을 선택하세요.", - "many_deletions": "개체 {n}개를 삭제하고 있습니다. 이를 수행하겠습니까? 다른 사람이 openstreetmap.org에서 보는 지도에서 삭제됩니다.", "tag_suggests_area": "{tag} 태그의 제안 선은 공간이여야 하지만 태그는 공간이 아닙니다", "deprecated_tags": "사용되지 않는 태그: {tags}" }, @@ -678,7 +683,56 @@ }, "help": { "title": "도움말", - "key": "H" + "key": "H", + "help": { + "title": "도움말", + "welcome": "[OpenStreetMap] (https://www.openstreetmap.org/)의 iD 편집기에 오신 것을 환영합니다. 이 편집기를 사용하면 웹 브라우저에서 바로 OpenStreetMap을 업데이트 할 수 있습니다.", + "open_data_h": "데이터 개방", + "open_data": "이 맵에서 편집 한 내용은 OpenStreetMap을 사용하는 모든 사용자가 볼 수 있습니다. 귀하의 편집 내용은 개인 지식, 지상 설문 조사 또는 공중 또는 거리 사진에서 수집한 이미지를 기반으로 할 수 있습니다. Google 지도와 같은 상업적인 출처에서 복사하는 행위는 [엄격히 금지되어 있습니다](https://www.openstreetmap.org/copyright).", + "before_start_h": "시작하기 전에", + "before_start": "편집을 시작하기 전에 OpenStreetMap과 이 편집기에 익숙해야 합니다. iD에는 OpenStreetMap 편집의 기본 사항을 알려주는 연습이 있습니다. 튜토리얼을 보려면 이 화면에서 \"연습 시작하기\"를 클릭하세요 - 약 15 분이 소요됩니다.", + "open_source_h": "오픈소스", + "open_source": "iD 편집기는 공동 작업 방식의 오픈 소스 프로젝트이며, 버전 {version}을 사용 중입니다. 소스 코드는 [GitHub에서] 이용할 수 있습니다 (https://github.com/openstreetmap/iD).", + "open_source_help": "iD에 [번역] (https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) 또는 [버그 신고] (https://github.com/openstreetmap/iD/issues)를 통해 도움을 줄 수 있습니다." + }, + "overview": { + "title": "개요", + "navigation_h": "둘러보기", + "navigation_drag": "마우스 왼쪽 버튼 {leftclick}을 누른 상태에서 마우스를 움직여 지도를 드래그 할 수 있습니다. 키보드의 `↓`,`↑`,`←`,`→`화살표 키를 사용할 수도 있습니다.", + "navigation_zoom": "마우스 휠이나 트랙 패드로 스크롤하거나 지도 측면의 {plus} / {minus} 버튼을 클릭하여 확대하거나 축소 할 수 있습니다. 키보드의 `+`,`-` 키를 사용할 수도 있습니다.", + "features_h": "지도 기능", + "features": "우리는 *지물*이라는 단어를 사용하여 도로, 건물, 또는 지도에 나타나는 것을 설명합니다. 현실 세계의 모든 것을 OpenStreetMap을 이용하여 매핑할 수 있습니다. 지도 기능은 *점*, *선*, 또는 *공간*을 사용하여 지도에 표기합니다.", + "nodes_ways": "OpenStreetmap에서, 점은 때떄로 *노드*라고 불리며, 선과 공간은 때때로 *길*이라고 불립니다." + }, + "editing": { + "title": "편집 & 저장하기", + "select_h": "선택", + "multiselect_h": "여러 선택", + "undo_redo_h": "되돌리기 & 복구하기", + "save_h": "저장", + "upload_h": "업로드", + "backups_h": "자동 백업", + "keyboard_h": "키보드 단축키" + }, + "feature_editor": { + "title": "지물 편집기" + }, + "points": { + "title": "점" + }, + "lines": { + "title": "선" + }, + "areas": { + "title": "공간" + }, + "relations": { + "title": "관계", + "multipolygon_h": "다중 다각형", + "turn_restriction_h": "회전 제한", + "route_h": "노선", + "boundary_h": "경계" + } }, "intro": { "done": "완료", @@ -784,6 +838,7 @@ }, "areas": { "title": "공간", + "add_playground": "*공간*은 호수, 건물, 주거 지역과 같은 지형지물의 경계를 표시하는 데 사용됩니다. {br} 일반적으로 점으로 매핑 할 수 있는 많은 기능에 대한 자세한 매핑에 사용할 수도 있습니다. **{button} 공간 버튼을 클릭하여 새 영역을 추가하세요.**", "start_playground": "공간을 그려서 이 놀이터를 지도에 추가해 봅시다. 영역은 지형지물의 바깥쪽 가장자리를 따라 *노드*를 배치하여 그립니다. **클릭하거나 스페이스 바를 눌러 운동장 모서리 중 하나에 시작 노드를 놓으세요.**", "continue_playground": "놀이터의 가장자리를 따라 더 많은 노드를 배치하여 영역 그리기를 계속하십시오. 해당 영역을 기존 경로에 연결할 수 있습니다. {br}도움말 : '{alt}'키를 누르고 있으면 노드가 다른 점에 연결되지 않습니다. **놀이터의 공간을 계속 그리세요.**", "finish_playground": "Enter 키를 누르거나 첫 번째 노드 또는 마지막 노드를 다시 클릭하여 영역 그리기를 마칩니다. **놀이터 영역 그리기를 마치세요.**", @@ -972,6 +1027,12 @@ } } }, + "units": { + "north": "북", + "south": "남", + "east": "동", + "west": "서" + }, "presets": { "categories": { "category-barrier": { @@ -1412,6 +1473,14 @@ "clockwise": "시계 방향" } }, + "direction_vertex": { + "label": "방향", + "options": { + "backward": "역방향", + "both": "둘 다 / 모두", + "forward": "정방향" + } + }, "display": { "label": "표시" }, @@ -1806,6 +1875,7 @@ "label": "일방통행", "options": { "no": "아니오", + "reversible": "도로 진행 방향과 역방향", "undefined": "아니오로 간주", "yes": "예" } @@ -1932,6 +2002,18 @@ "railway": { "label": "유형" }, + "railway/position": { + "label": "거리표 위치", + "placeholder": "소수점 한 자리로 거리 (123.4)" + }, + "railway/signal/direction": { + "label": "방향", + "options": { + "backward": "역방향", + "both": "둘 다 / 모두", + "forward": "정방향" + } + }, "rating": { "label": "정격 용량" }, @@ -1941,6 +2023,9 @@ "ref": { "label": "참조" }, + "ref/isil": { + "label": "ISIL 코드" + }, "ref_aeroway_gate": { "label": "탑승구 번호" }, @@ -2234,6 +2319,13 @@ "traffic_signals": { "label": "유형" }, + "traffic_signals/direction": { + "options": { + "backward": "역방향", + "both": "둘 다 / 모두", + "forward": "정방향" + } + }, "trail_visibility": { "label": "경로 가시성", "options": { @@ -2609,6 +2701,9 @@ "name": "패스트 푸드", "terms": "패스트푸드" }, + "amenity/ferry_terminal": { + "name": "페리 터미널" + }, "amenity/fire_station": { "name": "소방서", "terms": "소방서" @@ -2770,6 +2865,9 @@ "name": "관리소", "terms": "관리소, 레인저 스테이션" }, + "amenity/recycling": { + "name": "재활용 용기" + }, "amenity/recycling_centre": { "name": "재활용 센터", "terms": "재활용 센터" @@ -2799,6 +2897,9 @@ "amenity/shower": { "name": "샤워실" }, + "amenity/smoking_area": { + "name": "흡연 구역" + }, "amenity/social_facility": { "name": "사회시설", "terms": "사회시설" @@ -3020,6 +3121,9 @@ "name": "산 울타리", "terms": "산울타리" }, + "barrier/kerb": { + "name": "갓돌" + }, "barrier/kissing_gate": { "name": "목장 문", "terms": "좁게 열리는 문" @@ -3171,6 +3275,9 @@ "name": "반분리된 주택", "terms": "반분리된 주택" }, + "building/service": { + "name": "서비스 건물" + }, "building/shed": { "name": "오두막", "terms": "헛간" @@ -3211,6 +3318,9 @@ "name": "캠핑장", "terms": "캠핑장" }, + "circular": { + "name": "로터리" + }, "club": { "name": "클럽", "terms": "클럽" @@ -3562,6 +3672,10 @@ "name": "승마로", "terms": "승마도" }, + "highway/bus_guideway": { + "name": "독립된 버스전용차로", + "terms": "BRT" + }, "highway/bus_stop": { "name": "버스 정류장" }, @@ -4855,6 +4969,9 @@ "name": "경전철", "terms": "경전철,라이트 레일,트롤리" }, + "railway/milestone": { + "name": "철도 거리표" + }, "railway/monorail": { "name": "모노레일", "terms": "모노레일" diff --git a/dist/locales/lt.json b/dist/locales/lt.json index 74a26e45d..b76f9a790 100644 --- a/dist/locales/lt.json +++ b/dist/locales/lt.json @@ -569,7 +569,6 @@ "untagged_area_tooltip": "Pasirinkite objekto tipą, kuris apibūdina, koks tai plotas yra.", "untagged_relation": "Ryšys be žymų", "untagged_relation_tooltip": "Parinkite objekto tipą, aprašantį kas yra šis ryšys.", - "many_deletions": "Jūs trinate {n} objektus. Ar tikrai norite tai padaryti? Tai ištrins juos iš žemėlapio, kurį visi kiti mato svetainėje openstreetmap.org.", "tag_suggests_area": "Žyma {tag} rodo, kad linija turėtų būti plotas, bet ji nėra plotas", "deprecated_tags": "Pasenusios žymos: {tags}" }, diff --git a/dist/locales/ms.json b/dist/locales/ms.json index 17bfb7b4f..ee3bf56db 100644 --- a/dist/locales/ms.json +++ b/dist/locales/ms.json @@ -378,7 +378,6 @@ "title": "Ukuran", "selected": "{n} dipilih", "geometry": "Geometri", - "closed": "Tutup", "center": "Tengah", "perimeter": "Perimeter", "length": "Panjang", @@ -457,7 +456,6 @@ "switch": "Tukar balik ke latar belakang ini", "custom": "Penyuai", "custom_button": "Tukar latar belakang tersuai", - "custom_prompt": "Masukkan templat URL jubin. Token yang sah adalah:\n - {zoom}/{z}, {x}, {y} untuk skim jubin Z/X/Y\n - {ty} untuk koordinat Y gaya-TMS yang dibalikkan\n - {u} untuk skim jubin kuad\n - {switch:a,b,c} untuk pemultipleks pelayan DNS\n\nContoh:\n{example}", "reset": "set semula", "minimap": { "tooltip": "Tunjukkan peta yang dizum keluar untuk membantu mencari kawasan yang dipaparkan saat ini.", @@ -631,7 +629,6 @@ "untagged_area_tooltip": "Pilih jenis ciri yang menggambarkan kawasan ini.", "untagged_relation": "Hubungan tanpa tag", "untagged_relation_tooltip": "Pilih jenis ciri yang menggambarkan hubungan ini.", - "many_deletions": "Anda memadamkan {n} ciri. Adakah anda pasti mahu melakukan ini? Ini akan memadam mereka dari peta yang dilihat oleh orang lain di openstreetmap.org.", "tag_suggests_area": "Tanda {tag} mencadangkan garis sepatutnya menjadi kawasan, tetapi ianya bukan kawasan", "deprecated_tags": "Tag-tag yang telah lapuk: {tags}" }, diff --git a/dist/locales/nl.json b/dist/locales/nl.json index 7c7c0d83e..63df55c3c 100644 --- a/dist/locales/nl.json +++ b/dist/locales/nl.json @@ -389,7 +389,6 @@ "title": "Meting", "selected": "{n} geselecteerd", "geometry": "Geometrie", - "closed": "gesloten", "center": "Midden", "perimeter": "Omtrek", "length": "Lengte", @@ -470,7 +469,6 @@ "switch": "Selecteer terug deze achtergrond", "custom": "Aangepast", "custom_button": "Tegel-URL-sjabloon aanpassen", - "custom_prompt": "Geef een tegel-URL-sjabloon op. Geldige placeholders zijn:\n - {zoom}/{z}, {x}, {y} voor het Z/X/Y-schema\n - {ty} voor omgekeerde Y-coördinaten in TMS-stijl\n - {u} voor het quadtile-schema\n - {switch:a,b,c} voor DNS-server-multiplexing\n\nVoorbeeld:\n{example}", "overlays": "Lagen", "imagery_source_faq": "Beeldopnameinfo / Rapporteer een probleem", "reset": "Standaard herstellen", @@ -654,7 +652,6 @@ "untagged_area_tooltip": "Selecteer een objecttype dat beschrijft wat dit vlak is.", "untagged_relation": "Relatie zonder tags", "untagged_relation_tooltip": "Selecteer een objecttype dat beschrijft wat deze relatie is.", - "many_deletions": "Je verwijdert {n} objecten. Weet je zeker dat je dit wil doen? Dit zal ze verwijderen van de kaart die iedereen ziet op openstreetmap.org.", "tag_suggests_area": "De tag {tag} suggereert dat de lijn een vlak is, maar het is geen vlak", "deprecated_tags": "Afgeschafte tags: {tags}" }, @@ -676,7 +673,7 @@ }, "mapillary_signs": { "tooltip": "Verkeerborden uit Mapillary (Mapillary-fotolaag moet geactiveerd zijn)", - "title": "Herkende-verkeersborden-laag (Mapillary)" + "title": "Herkende verkeersborden (Mapillary)" }, "mapillary": { "view_on_mapillary": "Bekijk deze afbeelding op Mapillary" @@ -744,117 +741,117 @@ "fields_add_field": "Je kunt ook in het \"Voeg eigenschap toe\"-veld klikken om meer velden toe te voegen, zoals een beschrijving, Wikipedia-link en rolstoeltoegankelijkheidsinfo.", "tags_h": "Tags", "tags_all_tags": "Onder het velden gedeelte kun je het \"Alle tags\"-gedeelte uitklappen om de OpenStreetMap-*tags* voor het geselecteerde object te bekijken en bewerken. Elke tag bestaat uit een *sleutel* (Engels: *key*) en een *waarde*, die de echte waarden zijn die opgeslagen in OpenStreetMap. Een punt dat je in iD aanduidt als \"Restaurant\" met naam \"De Gouden Lepel\" is slechts een abstractie voor een node met de tags `amenity`=`restaurant` en `name`=`De Gouden Lepel`.", - "tags_resources": "Voor het bewerken van de tags van een object heb je gemiddelde kennis nodig van OpenStreetMap. Het is verstandig om bronnen als de [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page) of [Taginfo](https://taginfo.openstreetmap.org/) te raadplegen om meer te leren over geaccepteerde OpenStreetMap tagging toepassingen." + "tags_resources": "Voor het bewerken van de tags van een object heb je wat meer kennis nodig van OpenStreetMap. Je moet de [OpenStreetMap Wiki](https://wiki.openstreetmap.org/wiki/Main_Page) raadplegen om te leren over tagging in OpenStreetMap. Op [Taginfo](https://taginfo.openstreetmap.org/) kan je statistieken zien over hoeveel keer elke tag momenteel in OpenStreetMap gebruikt wordt." }, "points": { "title": "Punten", - "intro": "Punten kunnen worden gebruikt om objecten zoals winkels, restaurants en monumenten weer te geven. Ze geven een specifieke locatie aan en beschrijven wat daar is.", + "intro": "Punten kunnen gebruikt worden om objecten zoals winkels, restaurants en monumenten weer te geven. Ze geven een specifieke locatie aan en beschrijven wat daar is.", "add_point_h": "Punten toevoegen", - "add_point": "Om een punt toe te voegen, klik op de {point}**Punt** knop op de werkbalk boven de kaart, of gebruik de sneltoets `1`. Dit zal de cursor van de muis veranderd in een kruis symbool.", - "add_point_finish": "Als je een nieuw punt op de kaart wil zetten, zet dan je muisaanwijzer op de plaats waar het moet komen, en {leftclick}klik links of druk op de spatiebalk `space`. ", + "add_point": "Om een punt toe te voegen, klik je op de \"{point} **Punt**\"-knop in de werkbalk boven de kaart, of gebruik je de sneltoets `1`. De muisaanwijzer verandert in een kruissymbool.", + "add_point_finish": "Zet de muisaanwijzer op de plaats waar het punt moet komen, en klik met de {leftclick} linkermuisknop, of druk op `Space`.", "move_point_h": "Punten verplaatsen", - "move_point": "Om een punt te verplaatsen, plaats de cursor van de muis op het punt, klik links en houdt de {leftclick} linker muisknop vast terwijl je het punt naar de nieuwe locatie sleept. ", + "move_point": "Om een punt te verplaatsen, plaats je de cursor van de muis op het punt, druk je de {leftclick} linkermuisknop in, verschuif je de muis om het punt naar de nieuwe locatie te slepen, en laat je de knop vervolgens los.", "delete_point_h": "Punten verwijderen", - "delete_point": "Objecten die niet in het echt bestaan, kan je beter verwijderen. Een object in OpenStreetMap verwijderen, haalt het van de kaart voor iedereen ter wereld. Let dus goed op dat een object echt weg is voor je het verwijdert.", - "delete_point_command": "Om een punt te verwijderen, {rightclick} klik rechts op het punt om het te selecteren en het edit menu te tonen. Gebruik dan het {delete} **Verwijder** commando." + "delete_point": "Objecten die niet in het echt bestaan, kan je verwijderen. Een object in OpenStreetMap verwijderen haalt het van de kaart voor iedereen ter wereld. Let dus goed op dat een object echt weg is voor je het verwijdert.", + "delete_point_command": "Om een punt te verwijderen, klik je met de {rightclick} rechtermuisknop op het punt om het te selecteren en het bewerkmenu te tonen. Gebruik dan het \"{delete} **Verwijder**\"-commando." }, "lines": { "title": "Lijnen", "intro": "*Lijnen* worden gebruikt om objecten zoals wegen, spoorwegen en rivieren voor te stellen. Lijnen worden getekend in het midden van het object dat ze representeren.", "add_line_h": "Lijnen toevoegen", - "add_line": "Om een lijn toe te voegen, klik op de {line}**Lijn** knop op de werkbalk boven de kaart, of gebruik de sneltoets `2`. Dit zal de cursor van de muis veranderd in een kruis symbool.", - "add_line_draw": "Positioneer daarna de muis op de plek waar de lijn moet beginnen en {leftclick} klik links of gebruik de `Space` spatiebalk om te beginnen met het plaatsen van nodes/punten langs de lijn. Ga verder door meer nodes te plaatsen door te klikken of de spatiebalk te gebruiken. Tijdens het tekenen kun je inzoomen of de kaart verschuiven voor meer detail.", - "add_line_finish": "Om een lijn af te ronden klik nogmaals op de laatste node of toets `{return}` enter.", + "add_line": "Om een lijn toe te voegen, klik je op de \"{line} **Lijn**\"-knop in de werkbalk boven de kaart, of gebruik je de sneltoets `2`. De muisaanwijzer verandert in een kruissymbool.", + "add_line_draw": "Positioneer daarna de muisaanwijzer op de plaats waar de lijn moet beginnen en klik met de {leftclick} linkermuisknop of gebruik `Space` om te beginnen met het plaatsen van knooppunten langs de lijn. Plaats meer knooppunten op dezelfde manier. Tijdens het tekenen kan je inzoomen of de kaart verschuiven om gedetailleerder te kunnen werken.", + "add_line_finish": "Om een lijn af te ronden, klik je nogmaals op het laatste knooppunt of druk je op de toets `{return}`.", "modify_line_h": "Lijnen aanpassen", - "modify_line_dragnode": "Je zult vaak lijnen zien die niet correct zijn gevormd, bijvoorbeeld een weg die niet overeenkomt met de achterliggende sattelietbeelden. Om de vorm van de lijn aan te passen selecteer je eerst de lijn door {leftclick} links te klikken. Alle nodes van de lijn worden nu getoond als kleine cirkels. Je kunt de nodes verslepen naar betere locaties.", - "modify_line_addnode": "Je kunt ook nieuwe nodes toevoegen door {leftclick}**x2** dubbel te klikken op de lijn of door de kleine driehoekjes tussen de nodes te verslepen.", + "modify_line_dragnode": "Je zal vaak lijnen zien die niet correct gevormd zijn, bijvoorbeeld een weg die niet overeenkomt met de achterliggende luchtfoto's. Om de vorm van de lijn aan te passen selecteer je eerst de lijn met de {leftclick} linkermuisknop. Alle knooppunten van de lijn worden nu getoond als kleine cirkels. Je kunt de knooppunten verslepen naar betere locaties.", + "modify_line_addnode": "Je kan ook nieuwe knooppunten toevoegen door {leftclick}**x2** te dubbelklikken op de lijn of door de kleine driehoekjes tussen de knooppunten te verslepen.", "connect_line_h": "Lijnen verbinden", "connect_line": "Correcte verbindingen tussen wegen is belangrijk voor de kaart en essentieel voor routebeschrijvingen.", - "connect_line_display": "De verbindingen tussen wegen zijn getekend als grijze cirkels. De eindpunten van een lijn zijn getekend als grotere witte cirkels als ze niet met iets verbonden zijn.", - "connect_line_drag": "Om een lijn te verbinden met een ander object, sleep een van de nodes van de lijn op het andere object totdat beide objecten samen \"snappen\". Tip: je kunt de `{alt}` toets ingedrukt houden om te voorkomen dat nodes verbinden met andere objecten.", - "connect_line_tag": "Als je weet dat de verbinding verkeerslichten of oversteekplaatsen heeft, kun je deze toevoegen door de verbindende node te selecteren en met de object editor het correcte objecttype te selecteren.", - "disconnect_line_h": "Lijnen loskoppelen", - "disconnect_line_command": "Om een weg van een ander object los te koppelen, {rightclick} klik rechts op de verbindende node en selecteer het {disconnect} **Maak los** commando in het edit menu.", + "connect_line_display": "De verbindingen tussen wegen zijn getekend als grijze cirkels. De eindpunten van een lijn zijn getekend als grotere, witte cirkels als ze nergens mee verbonden zijn.", + "connect_line_drag": "Om een lijn te verbinden met een ander object, sleep je een van de knooppunten van de lijn op het andere object totdat beide objecten samenklitten. Tip: je kan de `{alt}`-toets ingedrukt houden om te voorkomen dat knooppunten verbinden met andere objecten.", + "connect_line_tag": "Verkeerslichten of oversteekplaatsen markeer je bij voorkeur op een knooppunt op hun echte plaats in de weg, door eerst een knooppunt toe te voegen, het te selecteren en vervolgens in de objectbewerker het juiste type te kiezen. Als je de echte positie niet kan bepalen, kan je in de plaats daarvan het toevoegen op knooppunt dat de twee lijnen verbindt.", + "disconnect_line_h": "Lijnen losmaken", + "disconnect_line_command": "Om een lijn van een ander object los te maken, klik je met de {rightclick} rechtermuisknop op het verbindende knooppunt en selecteer je {disconnect} **Maak los**.", "move_line_h": "Lijnen verplaatsen", - "move_line_command": "Om een gehele lijn te verplaatsen, {rightclick} klik rechts op de lijn en selecteer het {move} **Verschuif** commando in het edit menu. Verplaats vervolgens de muis en {leftclick} klik links om de lijn op de nieuwe locatie te plaatsen.", + "move_line_command": "Om een lijn in zijn geheel te verplaatsen, klik je er met de {rightclick} rechtermuisknop op en selecteer je {move} **Verschuif**. Verplaats vervolgens de muis en klik met de {leftclick} linkermuisknop om de lijn op de nieuwe locatie te plaatsen.", "move_line_connected": "Lijnen die verbonden zijn met andere objecten zullen verbonden blijven wanneer je de lijn verplaatst naar een nieuwe locatie. iD kan voorkomen dat je een lijn verplaatst over een andere verbonden lijn.", "delete_line_h": "Lijnen verwijderen", - "delete_line": "Als een lijn volledig incorrect is, bijvoorbeeld een weg die niet bestaat in de echte wereld, dan is het OK om de lijn te verwijderen. Wees voorzichtig wanneer je objecten verwijdert: de satellietbeelden die je gebruikt kunnen verouderd zijn en een weg die onjuist lijkt kan later zijn aangelegd.", - "delete_line_command": "Om een lijn te verwijderen, {rightclick} klik rechts op de lijn om het te selecteren en het edit menu te tonen. Gebruik dan het {delete} **Verwijder** commando." + "delete_line": "Als een lijn volledig incorrect is, bijvoorbeeld een weg die niet bestaat in de echte wereld, dan kan je haar verwijderen. Wees voorzichtig wanneer je objecten verwijdert: de luchtbeelden die je gebruikt zijn enkele maanden of jaren oud en een weg die onjuist lijkt, kan later aangelegd zijn.", + "delete_line_command": "Lijnen verwijderen werkt identiek als punten verwijderen." }, "areas": { "title": "Vlakken", - "intro": "*Vlakken* worden gebruikt om de grenzen van objecten als meren, gebouwen en woonwijken te tonen. Vlakken worden getekend langs de rand van het object dat ze representeren, bijvoorbeeld rond de buitenkant van een gebouw.", + "intro": "*Vlakken* worden gebruikt om de grenzen van objecten als meren, gebouwen en woonwijken aan te duiden. Vlakken worden getekend langs de rand van het object dat ze representeren, bijvoorbeeld rond de basis van een gebouw.", "point_or_area_h": "Punten of vlakken?", - "point_or_area": "Veel objecten kunnen worden gerepresenteerd worden als punt of vlak. Je voegt gebouwen en gebieden toe als vlakken wanneer dit mogelijk is. Voeg punten in een gebouw toe om bedrijven, voorzieningen en andere objecten binnen dat gebouw te representeren.", + "point_or_area": "Veel objecten kunnen worden gerepresenteerd worden als punt of vlak. Je voegt gebouwen en gebieden toe als vlakken wanneer dit mogelijk is.\n\nEr is geen internationale consensus over hoe bedrijven, voorzieningen en andere objecten binnen een gebouw gerepresenteerd moeten worden: op het vlak dat het gebouw voorsteld of als apart punt. Als je zoiets nieuw toevoegt, teken het dan als een punt binnen het gebouw. Als het object al in OpenStreetMap op het gebouw stond, verander het dan niet zomaar naar een apart punt.", "add_area_h": "Vlakken toevoegen", - "add_area_command": "Om een vlak toe te voegen, klik op de {line}**Vlak** knop op de werkbalk boven de kaart, of gebruik de sneltoets `3`. Dit zal de cursor van de muis veranderd in een kruis symbool.", - "add_area_draw": "Positioneer daarna de muis op één van de hoeken van het object en {leftclick} klik links of gebruik de `Space` spatiebalk om te beginnen met het plaatsen van nodes/punten langs de rand van het object. Ga verder door meer nodes te plaatsen door te klikken of de spatiebalk te gebruiken. Tijdens het tekenen kun je inzoomen of de kaart verschuiven voor meer detail.", - "add_area_finish": "Om een vlak af te ronden klik nogmaals op de laatste node of toets `{return}` enter.", + "add_area_command": "Om een punt toe te voegen, klik je op de \"{area} **Vlak**\"-knop in de \nwerkbalk boven de kaart, of gebruik je de sneltoets `3`. De \nmuisaanwijzer verandert in een kruissymbool.", + "add_area_draw": "Teken vervolgens de knooppunten van het vlak net zoals bij een lijn.", + "add_area_finish": "Om een vlak te voltooien, klik je nogmaals op de laatste node of druk je op `{return}`.", "square_area_h": "Hoeken haaks maken", - "square_area_command": "Veel vlakken zoals gebouwen hebben haakse hoeken. Om de hoeken van een vlak haaks te maken, {rightclick} klik rechts op het vlak om het te selecteren en het edit menu te tonen. Gebruik dan het {orthogonalize} **Maak hoeken recht** commando.", + "square_area_command": "Veel vlakken, zoals gebouwen, hebben in het echt zo goed als loodrechte hoeken. Om de hoeken van een vlak haaks te maken, klik je er met de {rightclick} rechtermuisknop op en selecteer je {orthogonalize} **Maak hoeken recht**.", "modify_area_h": "Vlakken aanpassen", - "modify_area_dragnode": "Je zult vaak vlakken zien die niet correct zijn gevormd, bijvoorbeeld een gebouw dat niet overeenkomt met de achterliggende sattelietbeelden. Om de vorm van het vlak aan te passen selecteer je eerst het vlak door {leftclick} links te klikken. Alle nodes van het vlak worden nu getoond als kleine cirkels. Je kunt de nodes verslepen naar betere locaties.", - "modify_area_addnode": "Je kunt ook nieuwe nodes toevoegen door {leftclick}**x2** dubbel te klikken op de rand van het vlak of door de kleine driehoekjes tussen de nodes te verslepen.", + "modify_area_dragnode": "Je zult vaak vlakken zien die niet correct gevormd zijn, bijvoorbeeld een gebouw dat niet overeenkomt met de achterliggende luchtbeelden.", + "modify_area_addnode": "De vorm van een vlak aanpassen werkt identiek zoals de vorm van een lijn aanpassen.", "delete_area_h": "Vlakken verwijderen", - "delete_area": "Als een vlak volledig incorrect is, bijvoorbeeld een gebouw dat niet bestaat in de echte wereld, dan is het OK om het vlak te verwijderen. Wees voorzichtig wanneer je objecten verwijdert: de satellietbeelden die je gebruikt kunnen verouderd zijn en een gebouw dat onjuist lijkt kan later zijn aangelegd.", - "delete_area_command": "Om een vlak te verwijderen, {rightclick} klik rechts op het vlak om het te selecteren en het edit menu te tonen. Gebruik dan het {delete} **Verwijder** commando." + "delete_area": "Als een vlak volledig incorrect is, bijvoorbeeld een gebouw dat niet bestaat in de echte wereld, dan is het OK om het vlak te verwijderen. Wees voorzichtig wanneer je objecten verwijdert: de luchtbeelden die je gebruikt zijn enkele maanden of jaren oud, en een gebouw dat onjuist lijkt, kan later gebouwd zijn.", + "delete_area_command": "Vlakken verwijderen werkt identiek als punten verwijderen." }, "relations": { "title": "Relaties", - "intro": "Een \"relatie\" is een speciaal type object in OpenStreetMap dat andere objecten groepeert. De objecten die tot een relatie behoren worden \"members\" genoemd en iedere member heeft een \"role\" in de relatie.", + "intro": "Een *relatie* is een speciaal soort object in OpenStreetMap dat andere objecten groepeert. De objecten die tot een relatie behoren worden haar *leden* genoemd (Engels: *members*) en elk lid kan een *rol* hebben in de relatie.", "edit_relation_h": "Relaties bewerken", - "edit_relation": "Onderaan de object editor kun het \"Alle Relaties\" gedeelte uitklappen om te zien of het geselecteerde object member is van een relatie. Je kunt vervolgens op de relatie klikken om de relatie te selecteren en te bewerken.", - "edit_relation_add": "Om een object aan een relatie toe te voegen selecteer je het object en klik je op de {plus} plus knop in het \"Alle relaties\" gedeelte van de object editor. Je kunt nu kiezen uit een lijst van relaties in de buurt of kiezen voor de \"Nieuwe relatie...\" optie.", - "edit_relation_delete": "Je kunt ook de {delete} **Verwijder** knop gebruiken om het geselecteerde object uit een relatie te verwijderen. Wanneer je alle members van een relatie verwijdert, zal de relatie automatisch ook worden verwijderd.", - "maintain_relation_h": "Relaties behouden", - "maintain_relation": "Over het algemeen zal iD automatisch relaties behouden wanneer je bewerkingen uitvoert. Wees voorzichtig wanneer je objecten vervangt die onderdeel kunnen zijn van een relatie. Bijvoorbeeld als je een deel van een weg verwijdert en een nieuw deel tekent om het te vervangen, zul je het nieuwe deel moeten toevoegen aan dezelfde relaties (routes, turn restrictions, etc.) als het origineel.", - "relation_types_h": "Relatie types", - "multipolygon_h": "Meervoudige polygonen", - "multipolygon": "Een *multipolygon* relatie is een groep van een of meerdere *outer* objecten en een of meerderen *inner* objecten. De outer/buitenste objecten definiëren de buitenste contouren van de multipolygoon. De inner/binnenste objecten definiëren sub-gebieden of gaten binnen de multipolygoon.", - "multipolygon_create": "Om een multipolygoon aan te maken, bijvoorbeeld een gebouw met een gat erin, teken de buitenste contour als een gebied en de binnenste contour als een lijn of vlak. Klik daarna links `{shift}`+{leftclick} om beide objecten te selecteren, {rightclick} klik rechts om het edit menu te tonen en selecteer het {merge}**Voeg samen** commando.", - "multipolygon_merge": "Het samenvoegen van meerdere lijnen of vlakken creëert een nieuwe multipolygoon relatie met alle geselecteerde objecten als members. iD zal automatisch de inner en outer roles kiezen, gebaseerd op de objecten die binnen andere objecten zijn gelegen.", + "edit_relation": "Onderaan de objectbewerker kan je het \"Alle relaties\"-gedeelte uitklappen om te zien of het geselecteerde object lid is van een relatie. Je kunt vervolgens op de relatie klikken om de relatie te selecteren en te bewerken.", + "edit_relation_add": "Om een object aan een relatie toe te voegen, selecteer je het object en klik je op de {plus}-knop in het \"Alle relaties\"-gedeelte van de objectbewerker. Je kan nu kiezen uit een lijst van relaties in de buurt of een nieuwe maken met de optie \"Nieuwe relatie …\"", + "edit_relation_delete": "Met de \"{delete} **Verwijder**\"-knop verwijder je het geselecteerde object uit een relatie. Wanneer je alle leden van een relatie verwijdert, zal de relatie automatisch ook verwijderd worden.", + "maintain_relation_h": "Relaties onderhouden", + "maintain_relation": "Over het algemeen zal iD automatisch relaties onderhouden wanneer je bewerkingen uitvoert. Wees voorzichtig wanneer je objecten vervangt die onderdeel kunnen zijn van een relatie. Bijvoorbeeld als je een deel van een weg verwijdert en een nieuw deel tekent om het te vervangen, zal je het nieuwe deel moeten toevoegen aan dezelfde relaties (routes, afslagbeperkingen, enz.) als het origineel.", + "relation_types_h": "Relatietypes", + "multipolygon_h": "Multipolygonen", + "multipolygon": "Een *multipolygoon*-relatie is een groep van een of meer buitenrandvlakken (rol *outer*) en nul of meer binnenrandvlakken (rol *inner*). De buitenranden definiëren de buitenste contouren van de multipolygoon. De binnenranden definiëren gaten binnen de multipolygoon.", + "multipolygon_create": "Om een multipolygoon aan te maken, bijvoorbeeld een gebouw met een binnenplaats, teken je de buitenste contouren en de binnenste contouren als aparte vlakken. `{shift}`+{leftclick} Klik daarna met de linkermuisknop om beide objecten te selecteren, klik met de {rightclick} rechtermuisknop op een van hen, en klik op {merge} **Voeg samen**.", + "multipolygon_merge": "Het samenvoegen van meerdere lijnen of vlakken creëert een nieuwe multipolygoonrelatie met alle geselecteerde objecten als leden. iD zal automatisch de inner- en outer-rollen kiezen, gebaseerd op het al dan niet binnen een ander object liggen.", "turn_restriction_h": "Afslagbeperkingen", - "turn_restriction": "Een *Afslagbeperking* relatie is een groep van verschillende wegvakken op een kruispunt. Aflsagbeperkingen bestaan uit een *van* weg, *via* nodes of wegen en een *naar* weg.", - "turn_restriction_field": "Om afslagbeperkingen te bewerken, selecteer een kruispunt node waar twee of meer wegen bij elkaar komen. De object editor zal een speciaal \"Afslagbeperkingen\" veld tonen met een model van de kruising.", - "turn_restriction_editing": "In het \"Afslagbeperkingen\" veld, klik om een \"van\" weg te selecteren en te bekijken of afslaan toegestaan is of beperkt tot een van de \"naar\" wegen. Je kunt op de afslaan iconen klikken om ze van toegestaan naar beperkt de wijzigen. iD zal automatisch de relaties aanmaken en de from, via en to roles aanpassen op basis van jouw keuzes.", + "turn_restriction": "Een *afslagbeperkings*relatie is een groep van verschillende wegsegmenten op een kruispunt. Aflsagbeperkingen bestaan uit een *van*-weg, *via*-knooppunten of -wegen en een *naar*-weg.", + "turn_restriction_field": "Om afslagbeperkingen te bewerken, selecteer je een kruispunt-knooppunt waar twee of meer wegen bij elkaar komen. De objectbewerker zal een speciaal veld \"afslagbeperkingen\" tonen met een model van de kruising.", + "turn_restriction_editing": "In dat veld kan je een \"van\"-weg selecteren door erop te klikken. Vervolgens kan je zien of afslaan toegestaan is tot elke mogelijke \"naar\"-weg. Je kan op de icoontjes klikken om te kiezen tussen toegestaan en verboden. iD zal automatisch de nodige relaties aanmaken of verwijderen en de *from*-, *via*- en *to*-rollen instellen op basis van jouw keuzes.", "route_h": "Routes", - "route": "Een *route* relatie is een groep van een of meerdere lijnen die samen een routenetwerk vormen, zoals een bus- of treinroute of een snelweg.", - "route_add": "Om een object aan een route relatie toe te voegen selecteer je het object en klik je op de {plus} plus knop in het \"Alle relaties\" gedeelte van de object editor. Je kunt nu kiezen uit een lijst van relaties in de buurt of kiezen voor de \"Nieuwe relatie...\" optie.", + "route": "Een *route*-relatie is een groep van een of meerdere lijnen die samen een routenetwerk vormen, zoals een bus- of treintraject of een snelweg.", + "route_add": "Om een object aan een routerelatie toe te voegen, selecteer je het object en klik je op de {plus}-knop in het \"Alle relaties\"-gedeelte van de objectbewerker. Je kan nu kiezen uit een lijst van relaties in de buurt of een nieuwe aanmaken met \"Nieuwe relatie …\"", "boundary_h": "Grenzen", - "boundary": "Een *boundary* of grensrelatie is een groep van een of meerdere lijnen die samen een administratieve grens vormen.", - "boundary_add": "Om een object aan een boundary relatie toe te voegen selecteer je het object en klik je op de {plus} plus knop in het \"Alle relaties\" gedeelte van de object editor. Je kunt nu kiezen uit een lijst van relaties in de buurt of kiezen voor de \"Nieuwe relatie...\" optie." + "boundary": "Een of *grens*-relatie (Engels: *boundary*) is een groep van een of meerdere lijnen die samen een administratieve grens vormen.", + "boundary_add": "Om een object aan een grensrelatie toe te voegen, selecteer je het \nobject en klik je op de {plus}-knop in het \"Alle relaties\"-gedeelte van \nde objectbewerker. Je kan nu kiezen uit een lijst van relaties in de \nbuurt of een nieuwe aanmaken met \"Nieuwe relatie …\"" }, "imagery": { - "title": "Achtergronden", - "intro": "Het achtergrondbeeld dat verschijnen achter de kaartdata is een belangrijke bron voor het in kaart brengen. Deze beelden kunnen luchtfoto's zijn van satellieten, vliegtuigen en drones, het kunnen ingescande historische kaarten zijn of andere vrij beschikbare brondata.", - "sources_h": "Achtergrond bronnen", - "choosing": "Om te zien welke bronnen beschikbaar zijn voor het bewerken, klik op de {layers} **Achtergrondinstellingen** knop naast de kaart.", - "sources": "Standaard staat de [Bing Maps](https://www.bing.com/maps/) satelliet laag ingesteld als achtergrond. Afhankelijk van waar je aan het bewerken bent, zijn andere bronnen beschikbaar. Sommige kunnen nieuwer zijn of in een hogere resolutie beschikbaar zijn, het is dus altijd nuttig om te kijken welke achtergrond het beste is om als referentie te gebruiken.", + "title": "Achtergrondbeelden", + "intro": "Het achtergrondbeeld dat onder de kaartdata verschijnt, is een belangrijke bron voor het karteren. Deze beelden kunnen luchtfoto's zijn van satellieten, vliegtuigen en drones, het kunnen ingescande historische kaarten zijn of andere vrij beschikbare brondata.", + "sources_h": "Achtergrondbronnen", + "choosing": "Om te zien welke bronnen beschikbaar zijn voor het bewerken, klik je op de knop {layers} **Achtergrondinstellingen** naast de kaart.", + "sources": "Standaard wordt een luchtfotolaag gekozen afhankelijk van de locatie op de kaart waar iD opgestart werd. De Bing Maps-satellietfotolaag is wereldwijd de terugvalkeuze. Het is vaak nuttig te kijken welke achtergrond de beste is voor het gebied dat je bewerkt: sommige bronnen kunnen recenter of van hogere resolutie zijn.", "offsets_h": "Verplaatsing van luchtfoto aanpassen", - "offset": "Achtergrond beelden kunnen soms lichtelijk in positie afwijken van de accurate kaartgegevens. Als je veel gebouwen of wegen ziet die verschoven liggen ten opzichte van de achtergrond, kan het zijn dat de achtergrond incorrect is. Verplaats dus niet alle objecten om ze te overeen te laten komen met de achtergrond. Verplaats in plaats daarvan de achtergrond, zodat deze overeenkomt met de kaartgegevens. Dit doe je door het \"Verplaatsing van luchtfoto aanpassen\" gedeelte uit te klappen onderin het Achtergrondinstellingen paneel.", - "offset_change": "Klik op de kleine driehoeken om de verplaatsing van de achtergrond in kleine stappen aan te passen. Je kunt ook de linker muisknop ingedrukt houden en de achtergrond verslepen in het grijze vlak." + "offset": "Achtergrondbeelden kunnen soms vrij zwaar in positie afwijken van de correcte locatie. Als je veel gebouwen of wegen ziet die verschoven liggen ten opzichte van de achtergrond, kan het zijn dat de achtergrond incorrect is, en niet de kaart. Verplaats dus niet alle objecten om ze te overeen te laten komen met de achtergrond. Verplaats in plaats daarvan de achtergrond, zodat deze overeenkomt met de kaartgegevens. Dit doe je door het gedeelte \"Verplaatsing van luchtfoto aanpassen\" onderin het achtergrondinstellingenpaneel uit te klappen.", + "offset_change": "Klik op de kleine driehoeken om de verplaatsing van de achtergrond in kleine stappen aan te passen. Je kan ook de linkermuisknop ingedrukt houden en de achtergrond verslepen in het grijze vlak." }, "streetlevel": { "title": "Foto's op straatniveau", - "intro": "Foto's op straatniveau zijn nuttig voor het in kaart brengen van verkeersborden, bedrijven en andere details die niet zichtbaar zijn op satellietbeelden en luchtfoto's. De iD editor ondersteunt dergelijke foto's van [Mapillary](https://www.mapillary.com) en [OpenStreetCam](https://www.openstreetcam.org).", - "using_h": "Gebruik foto's op straatniveau", - "using": "Om foto's op straatniveau te gebruiken in de editor, klik op het {data}**Kaartgegevens** paneel naast de kaart om de beschikbare foto lagen aan of uit te zetten.", - "photos": "Wanneer ingeschakeld, toont de foto laag een lijn langs de reeks van foto's. Op hogere zoomniveaus markeert een cirkel iedere foto locatie, op nog hogere zoomniveaus geeft een kegel zelfs de richting van de camera aan op het moment dat de foto is gemaakt.", - "viewer": "Wanneer je op een van de locaties van een foto klikt, verschijnt er een foto viewer in de benedenhoek van de kaart. De viewer bevat bediening om vooruit en achteruit te gaan in de reeks van foto's. Het toont ook de gebruikersnaam van de maker van de foto, de datum en een link naar de originele foto op de website." + "intro": "Foto's op straatniveau zijn nuttig voor het in kaart brengen van verkeersborden, bedrijven en andere details die niet zichtbaar zijn op luchtfoto's. iD ondersteunt dergelijke foto's van [Mapillary](https://www.mapillary.com) en [OpenStreetCam](https://www.openstreetcam.org). Gebruik nooit Google Streetview, de wettelijke consequenties daarvan zijn namelijk niet duidelijk.", + "using_h": "Foto's op straatniveau gebruiken", + "using": "Om foto's op straatniveau te gebruiken, klik je op {data} **Kaartgegevens** naast de kaart om het betreffende paneel te openen. Daar kan je beschikbare foto lagen aan of uit te zetten.", + "photos": "Als je de fotolaag aanzet, worden lijnen langs fotoreeksen getoond. Wanneer je meer inzoomt, wordt op elke fotolocatie een cirkel getoond. Na nog meer inzoomen wordt een kegel zichtbaar die de richting van de camera aangeeft op het moment dat de foto gemaakt werd (maar die is vaak onnauwkeurig).", + "viewer": "Wanneer je op een fotolocatie klikt, verschijnt er een fotopaneel in een benedenhoek van de kaart. Dat paneel bevat bedieningselementen om vooruit en achteruit te gaan in de reeks van foto's. Het toont ook de gebruikersnaam van de maker van de foto, de datum van vastlegging, en een link naar de originele foto op de website." }, "gps": { - "title": "GPS Tracks", - "intro": "Verzamelde GPS tracks zijn een waardevolle bron voor OpenStreetMap. Deze editor ondersteunt *.gpx*, *.geojson*, and *.kml* bestanden op je lokale computer. Je kunt GPS tracks verzamelen met een smartphone, sporthorloge of een ander GPS apparaat.", - "survey": "Voor informatie over het uitvoeren van een GPS meting, lees [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/).", - "using_h": "GPS Tracks gebruiken", - "using": "Om een GPS track te gebruiken voor het bewerken, sleep een bestand naar de editor. Als het wordt herkend, zal het worden getekend als een heldere paarse lijn. Klik op het {data} **Kaartgegevens** paneel naast de kaart om je GPS data aan of uit te zetten en er op in te zoomen.", - "tracing": "De GPS track wordt niet automatisch verzonden naar OpenStreetMap. De beste manier om het te gebruiken is als referentie voor nieuwe objecten die je toevoegt.", - "upload": "Je kunt ook [je GPS data uploaden naar OpenStreetMap](https://www.openstreetmap.org/trace/create) zodat andere gebruikers de data ook kunnen gebruiken." + "title": "GPS-tracks", + "intro": "Verzamelde GPS-tracks zijn een waardevolle bron voor OpenStreetMap. In iD kan je *.gpx*-, *.geojson*-, and *.kml*-bestanden openen die lokaal op je computer staan. Je kan GPS-tracks verzamelen met een smartphone, sporthorloge of een ander GPS-apparaat.", + "survey": "Voor informatie over het uitvoeren van een GPS-meting, kan je dit Engelstalige artikel lezen: [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/).", + "using_h": "GPS-tracks gebruiken", + "using": "Om een GPS-track te gebruiken voor het bewerken, sleep je een bestand naar dit kaartbewerkingsprogramma. Als het herkend wordt, zal het getekend worden als een heldere paarse lijn. Open het \"{data} **Kaartgegevens**\"-paneel naast de kaart om je GPS-data aan of uit te zetten of er op in te zoomen.", + "tracing": "De GPS-track wordt niet automatisch verzonden naar OpenStreetMap. De beste manier om het te gebruiken is als referentie voor nieuwe objecten die je toevoegt.", + "upload": "Je kan ook [je GPS-data uploaden naar OpenStreetMap](https://www.openstreetmap.org/trace/create) zodat andere gebruikers hen ook kunnen gebruiken." } }, "intro": { - "done": "klaar", + "done": "Klaar", "ok": "Oké", "graph": { "block_number": "", @@ -926,7 +923,7 @@ "marina-park": "Jachthavenpark", "market-street": "Marktstraat", "memory-isle-park": "Achtmeipark", - "memory-isle": "Achtmeistraat", + "memory-isle": "Achtmei-land", "michigan-avenue": "Muntstraat", "middle-street": "Arenbergstraat", "millard-street": "Begijnenstraat", @@ -996,7 +993,7 @@ "drag": "De grote kaart toont de OpenStreetMap-gegevens bovenop een achtergrond.{br}Net zoals bij elke online kaart kan je navigeren door met de linkermuisknop in de kaart te klikken en de muis te verschuiven terwijl je die knop ingedrukt houdt. **Versleep de kaart!**", "zoom": "Je kan in- en uitzoomen door te scrollen met het muiswiel of de touchpad, of met de knoppen {plus} en {minus}. **Zoom in of uit!**", "features": "We gebruiken het woord *objecten* als we het over dingen op de kaart hebben. Alles wat je in de echte wereld ziet, kan gemapt gemapt worden als object in OpenStreetMap.", - "points_lines_areas": "Kaartobjecten worden voorgesteld door *punten, lijnen of vlakken*.", + "points_lines_areas": "Kaartobjecten worden voorgesteld door *punten*, *lijnen* of *vlakken*.", "nodes_ways": "In OpenStreetMap worden punten ook wel *nodes* genoemd, en lijnen en vlakken worden ook wel *ways* genoemd.", "click_townhall": "Elk object op de kaart kan je selecteren door er op te klikken. **Klik op het punt om het te selecteren.**", "selected_townhall": "Fantastisch! Het punt is nu geselecteerd. Rond geselecteerde objecten komt een pulserende gloed.", @@ -1012,8 +1009,8 @@ }, "points": { "title": "Punten", - "add_point": "*Punten* kunnen gebruikt worden om objecten zoals winkels, restaurants en monumenten voor te stellen.{br}Ze markeren een bepaalde locatie aan en beschrijven wat daar is. **Klik op de knop \"{button} Punt\" om een nieuw punt toe te voegen.**", - "place_point": "Als je een nieuw punt op de kaart wil zetten, zet dan je muisaanwijzer op de plaats waar het moet komen, en klik of druk op de spatiebalk. **Verplaats de muisaanwijzer tot boven dit gebouw, en klik of druk op de spatiebalk.**", + "add_point": "*Punten* kunnen gebruikt worden om objecten zoals winkels, restaurants en monumenten voor te stellen.{br}Ze duiden een bepaalde locatie aan en beschrijven wat daar is. **Klik op de knop \"{button} Punt\" om een nieuw punt toe te voegen.**", + "place_point": "Als je een nieuw punt op de kaart wil zetten, zet dan je muisaanwijzer op de plaats waar het moet komen, en klik of druk op de spatiebalk. **Verplaats de muisaanwijzer tot boven dit gebouw, en klik, of druk op de spatiebalk.**", "search_cafe": "Er zijn veel soorten objecten die voorgesteld kunnen worden door punten. Het punt dat je net toegevoegd hebt, is een cafetaria. **Zoek naar '{preset}'.**", "choose_cafe": "**Kies {preset} uit de lijst.**", "feature_editor": "Het punt wordt nu aangeduid als een cafetaria. Gebruik de objectbewerker om meer informatie toe te voegen over de cafetaria.", @@ -1030,7 +1027,7 @@ "areas": { "title": "Vlakken", "add_playground": "*Vlakken* worden gebruikt om de grenzen van objecten als meren, gebouwen en woonwijken te tonen.{br}Ze kunnen ook gebruikt worden voor het meer gedetailleerd in kaart brengen van veel objecten die je anders als punten zou toevoegen. **Klik op de knop \"{button} Vlak\" om een nieuw vlak toe te voegen.**", - "start_playground": "Laten we deze speeltuin intekenen als een vlak. Vlakken worden gemaakt door *knooppunten* aan hun omtrek te zetten. **Klik of druk op de spatiebalk om het eerste knooppunt in een van de hoeken van het speelplein te zetten.**", + "start_playground": "Laten we deze speeltuin intekenen als een vlak. Vlakken worden gemaakt door *knooppunten* aan hun omtrek te zetten. **Klik, of druk op de spatiebalk, om het eerste knooppunt in een van de hoeken van het speelplein te zetten.**", "continue_playground": "Teken het vlak verder door meer knooppunten op de omtrek van de \nspeeltuin te zetten.{br}Tip: Je kan de {alt}-toets indrukken terwijl je \neen knooppunt zet om te vermijden dat ze verbinden met andere objecten. **Ga door met het tekenen van het vlak voor de speeltuin.**", "finish_playground": "Sluit het vlak door op enter te drukken, of opnieuw te klikken op het eerste of het laatste knooppunt. **Sluit het vlak voor de speeltuin.**", "search_playground": "**Zoek naar '{preset}'.**", @@ -1052,7 +1049,7 @@ "choose_preset_residential": "Er zijn veel soorten wegen, maar dit is een straat. **Kies {preset}.**", "retry_preset_residential": "Je hebt niet het {preset}-type geselecteerd. **Klik hier om opnieuw te kiezen.**", "name_road": "**Geef deze weg een naam, en sluit dan de objectbewerker met escape, enter, of de {button}-knop.**", - "did_name_road": "Ziet er goed uit! Nu zullen de vorm van een lijn leren veranderen.", + "did_name_road": "Ziet er goed uit! Nu zullen we de vorm van een lijn leren veranderen.", "update_line": "Soms moet je de vorm van een bestaande lijn veranderen. Hier heb je een straat die niet helemaal goed ingetekend is.", "add_node": "We kunnen wat knooppunten toevoegen om de vorm te verbeteren. Een manier om dat te doen is door te dubbelklikken op de lijn op de plaats waar je een knooppunt wil toevoegen. **Dubbelklik op de lijn om een nieuw knooppunt toe te voegen.**", "start_drag_endpoint": "Als een lijn geselecteerd is, kan je haar knooppunten verslepen. **Versleep het eindpunt van de lijn naar het kruispunt op de achtergrondafbeelding.**", @@ -1096,9 +1093,9 @@ }, "startediting": { "title": "Begin met aanpassen", - "help": "Je bent nu klaar om OpenStreetMap te bewerken!{br}Je kan deze rondleiding steeds opnieuw volgen en meer documentatie bekijken door op de knop \"{button} Hulp\" te klikken of de toets '{toets}' te drukken.", - "shortcuts": "U kunt een lijst met opdrachten samen met hun toetsenbordkoppelingen bekijken door op de toets '{toets}' te drukken.", - "save": "Vergeet niet om je aanpassingen regelmatig op te slaan!", + "help": "Je bent nu klaar om OpenStreetMap te bewerken!{br}Je kan deze rondleiding steeds opnieuw volgen en meer documentatie bekijken door op de knop \"{button} Hulp\" te klikken of op de toets '{toets}' te drukken.", + "shortcuts": "Je kan een lijst met opdrachten samen met hun toetsenbordkoppelingen bekijken door op de toets '{toets}' te drukken.", + "save": "Sla je aanpassingen regelmatig op, bijvoorbeeld als je klaar bent in een bepaald gebied!", "start": "Karteer de wereld!" } }, @@ -1142,7 +1139,7 @@ }, "help": { "title": "Hulp", - "help": "Toon hulp/documentatie", + "help": "Hulp/documentatie tonen", "keyboard": "Sneltoetsen tonen" }, "display_options": { @@ -1150,7 +1147,7 @@ "background": "Achtergrondopties tonen", "background_switch": "Naar laatstgebruikte achtergrond wisselen", "map_data": "Opties voor kaartgegevens tonen", - "fullscreen": "Gebruik volledig scherm", + "fullscreen": "Volledig scherm gebruiken", "wireframe": "Wireframemodus aan/uit", "minimap": "Minikaartje aan/uit" }, @@ -1159,7 +1156,7 @@ "select_one": "Eén object selecteren", "select_multi": "Meerdere objecten selecteren", "lasso": "Objecten selecteren met lasso", - "search": "Zoek objecten met overeenkomende tekst" + "search": "Objecten zoeken" }, "with_selected": { "title": "Met object geselecteerd", @@ -1213,11 +1210,11 @@ "title": "Gereedschappen", "info": { "title": "Informatie", - "all": "Schakel alle informatiepanelen in of uit", - "background": "Schakel het achtergrondpaneel in of uit", - "history": "Schakel het geschiedenispaneel in of uit", - "location": "Schakel het locatiepaneel in of uit", - "measurement": "Schakel het meetpaneel in of uit" + "all": "Alle informatiepanelen open/dicht", + "background": "Achtergrondpaneel open/dicht", + "history": "Geschiedenispaneel open/dicht", + "location": "Locatiepaneel open/dicht", + "measurement": "Meetpaneel open/dicht" } } }, @@ -1733,7 +1730,7 @@ "green": "Tussen het groen", "lane": "Op straat", "parking_lot": "Parkeerplaats", - "sidewalk": "Stoep" + "sidewalk": "Trottoir" } }, "fire_hydrant/type": { @@ -2098,7 +2095,7 @@ "placeholder": "3, 4, 5 …" }, "park_ride": { - "label": "Parkeren en Reizen" + "label": "Park & Ride (parkeren en ander vervoersmiddel nemen)" }, "parking": { "label": "Type", @@ -3796,8 +3793,8 @@ "terms": "Britse oversteekplaats op verhoogde inrichting" }, "footway/sidewalk": { - "name": "Stoep", - "terms": "trottoir" + "name": "Trottoir", + "terms": "stoep,voetpad" }, "ford": { "name": "Voorde (doorwaadbare plaats)", @@ -4579,8 +4576,8 @@ "name": "Dijk" }, "man_made/flagpole": { - "name": "Vlaggemast", - "terms": "vlaggemast" + "name": "Vlaggenmast", + "terms": "vlaggenstok,vlaggenpaal" }, "man_made/gasometer": { "name": "Gashouder", diff --git a/dist/locales/no.json b/dist/locales/no.json index 60bc5a34d..f50e31088 100644 --- a/dist/locales/no.json +++ b/dist/locales/no.json @@ -384,7 +384,6 @@ "title": "Måling", "selected": "{n} valgt", "geometry": "Geometri", - "closed": "lukket", "length": "Lengde", "area": "Område" } @@ -456,7 +455,6 @@ "switch": "Bytt tilbake til denne bakgrunnen", "custom": "Egendefinert", "custom_button": "Endre egendefinert bakgrunn", - "custom_prompt": "Skriv inn en URL-mal. Gyldige symboler er:\n - {zoom}/{z}, {x}, {y} for Z/X/Y flisordning\n - {ty} for snudde Y-koordinater med TMS-stil\n - {u} for quadtile-ordning\n - {switch:a,b,c} for DNS server multiplexing\n\nEksempel:\n{example}", "reset": "tilbakestill", "minimap": { "tooltip": "Vis et kart som er zoomet ut for å hjelpe med å lokalisere området som vises.", @@ -618,7 +616,6 @@ "untagged_area_tooltip": "Velg en kartegenskaptype som beskriver hva dette område er.", "untagged_relation": "Utagget relasjon", "untagged_relation_tooltip": "Velg en kartegenskaptype som beskriver hva denne relasjonen er.", - "many_deletions": "Du sletter {n} kartegenskaper. Er du sikker på at du vil gjøre dette? Det vil slette dem fra kartet som alle andre ser på openstreetmap.org.", "tag_suggests_area": "Taggen {tag} anbefaler at linje bør være et areal, men dette er ikke et areal", "deprecated_tags": "Utgående tagger: {tags}" }, diff --git a/dist/locales/pl.json b/dist/locales/pl.json index bcc88244f..99e70ccca 100644 --- a/dist/locales/pl.json +++ b/dist/locales/pl.json @@ -386,7 +386,6 @@ "title": "Pomiary", "selected": "{n} wybrano", "geometry": "Geometria", - "closed": "zamknięty", "center": "Środek", "perimeter": "Obwód", "length": "Długość", @@ -467,7 +466,6 @@ "switch": "Wróć do tego podkładu", "custom": "Własne", "custom_button": "Edycja własnego podkładu", - "custom_prompt": "Wprowadź szablon dla URL kafla mapy. Obsługiwane symbole:\n - {zoom}/{z}, {x}, {y} dla schematu adresowania kafla Z/X/Y\n - {ty} dla odwróconej współrzędnej Y w adresowaniu TMS\n - {u} dla QuadTiles\n - {switch:a,b,c} dla multipleksacji serwerów na poziomie DNS\n\nPrzykład:\n{example}", "overlays": "Nakładki", "reset": "Przywraca ustawienia", "display_options": "Wyświetl opcje", @@ -650,7 +648,6 @@ "untagged_area_tooltip": "Wybierz typ obiektu, który opisuje czym jest ten obszar.", "untagged_relation": "Pusta relacja - brak znaczników", "untagged_relation_tooltip": "Wybierz typ obiektu, który opisuje czym jest ta relacja.", - "many_deletions": "Usuwasz aż {n} obiektów! Czy na pewno chcesz to zrobić? Tym sposobem trwale usuniesz je z mapy, który wszyscy mogą zobaczyć na openstreetmap.org.", "tag_suggests_area": "Znacznik {tag} sugeruje, że linia powinna być obszarem, ale nim nie jest.", "deprecated_tags": "Przestarzałe znaczniki: {tags}" }, diff --git a/dist/locales/pt-BR.json b/dist/locales/pt-BR.json index 943c33b6d..156746849 100644 --- a/dist/locales/pt-BR.json +++ b/dist/locales/pt-BR.json @@ -389,7 +389,8 @@ "title": "Medição", "selected": "{n} selecionado", "geometry": "Geometria", - "closed": "fechado", + "closed_line": "linha fechada", + "closed_area": "área fechada", "center": "Centro", "perimeter": "Perímetro", "length": "Comprimento", @@ -470,7 +471,6 @@ "switch": "Voltar para este fundo de tela", "custom": "Customizado", "custom_button": "Editar fundo de tela personalizado", - "custom_prompt": "Digite um template de URL de tiles. Tokens válidos são\n- {zoom}/{z}, {x}, {y} para esquema de tiles Z/X/Y\n- {ty} para esquema flipped TMS-style Y coordenada\n - {u} para esquema quadtile\n - {switch:a,b,c} para multiplexação de servidor DNS\n\nExemplo:\n{example}", "overlays": "Sobreposições", "imagery_source_faq": "Informações sobre imagens / Relatar um problema", "reset": "redefinir", @@ -654,7 +654,6 @@ "untagged_area_tooltip": "Selecionar um tipo de elemento que descreva o que esta área é.", "untagged_relation": "Relação sem etiquetas", "untagged_relation_tooltip": "Selecionar um tipo de elemento que descreva o que esta relação é.", - "many_deletions": "Você está excluindo {n} elementos. Você tem certeza de que quer fazer isso? Isso irá excluí-los do mapa que todo mundo vê no openstreetmap.org.", "tag_suggests_area": "A etiqueta {tag} sugere que seja utilizada numa área, mas essa linha não é uma área", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, @@ -1179,6 +1178,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} ft² ", + "square_miles": "{quantity} mi² ", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "W", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -5952,8 +5973,8 @@ "terms": "Rota Mestre" }, "type/site": { - "name": "Local", - "terms": "Site" + "name": "Grupo de Elementos", + "terms": "Grupo de prédios, cadeia de lojas, elementos" }, "type/waterway": { "name": "Hidrovia", diff --git a/dist/locales/pt.json b/dist/locales/pt.json index b14f41bb2..6647f47bd 100644 --- a/dist/locales/pt.json +++ b/dist/locales/pt.json @@ -389,7 +389,8 @@ "title": "Medição", "selected": "{n} selecionado", "geometry": "Geometria", - "closed": "Fechado", + "closed_line": "Linha fechada", + "closed_area": "Área fechada", "center": "Centro", "perimeter": "Perímetro ", "length": "Comprimento", @@ -470,7 +471,7 @@ "switch": "Mudar para este fundo", "custom": "Personalizado", "custom_button": "Editar fundo personalizando", - "custom_prompt": "Introduza um modelo de URL de telas. Tokens válidos:\n - {zoom}/{z}, {x}, {y} para o esquema de telas Z/X/Y\n - {ty} para coordenadas Y invertidas do estilo TMS\n - {u} para o esquema quadtile\n - {switch:a,b,c} para servidor DNS multiplexing\n\nExemplo:\n{example}", + "custom_prompt": "Indique um URL para modelo de mosaicos. Os tokens válidos são:\n - {zoom} ou {z}, {x}, {y} para Z/X/Y esquema de mosaico\n - {-y} ou {ty} para estilo TMS invertido, coordenadas Y\n - {u} para esquemas de mosaicos divididos em quatro\n - {switch:a,b,c} para servidores DNS\n\nExamplo:\n{example}", "overlays": "Camadas superiores", "imagery_source_faq": "Informação da imagem / Reportar um problema", "reset": "reiniciar", @@ -582,6 +583,7 @@ "status_code": "O servidor devolveu o seguinte código {code}", "unknown_error_details": "Por favor certifique-se que está ligado à Internet.", "uploading": "A enviar as alterações para o OpenStreetMap...", + "conflict_progress": "Confirmando conflitos: {num} de {total}", "unsaved_changes": "Tem alterações por gravar", "conflict": { "header": "Resolver alterações em conflito", @@ -653,7 +655,6 @@ "untagged_area_tooltip": "Escolha um elemento que indique o que esta área representa.", "untagged_relation": "Relação sem etiquetas", "untagged_relation_tooltip": "Selecione um tipo de elemento que descreva o que é esta relação.", - "many_deletions": "Está a eliminar {n} elementos. Tem a certeza que quer fazer isso? Isto irá eliminá-los do mapa que todas as pessoas visualizam em openstreetmap.org.", "tag_suggests_area": "A etiqueta {tag} é normalmente usada em áreas e não linhas.", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, @@ -1220,6 +1221,28 @@ } } }, + "units": { + "feet": "{quantidade} ft", + "miles": "{quantidade} mi", + "square_feet": "{quantidade} sq ft", + "square_miles": "{quantidade} sq mi", + "acres": "{quantidade} ac", + "meters": "{quantidade} m", + "kilometers": "{quantidade} km", + "square_meters": "{quantidade} m²", + "square_kilometers": "{quantidade} km²", + "hectares": "{quantidade} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantidade}°", + "arcminutes": "{quantidade}′", + "arcseconds": "{quantidade}″", + "north": "N", + "south": "S", + "east": "E", + "west": "W", + "coordinate": "{coordenada}{direção}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1645,9 +1668,17 @@ "ESE": "Este-sudeste", "N": "Norte", "NE": "Nordeste", + "NNE": "No-nordeste", + "NNW": "No-nordoeste", + "NW": "Noroeste", "S": "Sul", "SE": "Sudoeste", - "W": "Oeste" + "SSE": "Su-sueste", + "SSW": "Su-sudoeste", + "SW": "Sudoeste", + "W": "Oeste", + "WNW": "Oeste-Nordeste", + "WSW": "Oeste-Sudoeste" } }, "direction_clock": { @@ -2058,7 +2089,9 @@ "oneway": { "label": "Sentido único?", "options": { + "alternating": "Alternado", "no": "Não", + "reversible": "Reversível", "undefined": "Assumido que seja \"Não\"", "yes": "Sim" } @@ -2066,7 +2099,9 @@ "oneway_yes": { "label": "Sentido único?", "options": { + "alternating": "Alternado", "no": "Não", + "reversible": "Reversível", "undefined": "Assumido que seja \"Sim\"", "yes": "Sim" } @@ -2185,6 +2220,10 @@ "railway": { "label": "Tipo" }, + "railway/position": { + "label": "Marco quilométrico", + "placeholder": "Distância para uma décima (123.4)" + }, "railway/signal/direction": { "label": "Direção", "options": { @@ -3894,7 +3933,7 @@ }, "highway/give_way": { "name": "Sinal de cedência de passagem", - "terms": "perda de prioridade" + "terms": "perda de prioridade, cedencia, cedência, prioridade" }, "highway/living_street": { "name": "Zona de coexistência", @@ -6100,18 +6139,33 @@ "name": "Estradas TIGER 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, contribuidores OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Ciclismo" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, contribuidores OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Pedestrianismo" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, contribuidores OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Ciclismo de montanha" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, contribuidores OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Skate" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, contribuidores OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Desportos de Inverno" }, "basemap.at": { diff --git a/dist/locales/ro.json b/dist/locales/ro.json index 024104112..e1db10896 100644 --- a/dist/locales/ro.json +++ b/dist/locales/ro.json @@ -266,7 +266,6 @@ "title": "Măsurare", "selected": "{n} selectate", "geometry": "Geometrie", - "closed": "închis", "center": "Centru", "perimeter": "Perimetru", "length": "Lungime", diff --git a/dist/locales/ru.json b/dist/locales/ru.json index 400e8fbac..2817a419b 100644 --- a/dist/locales/ru.json +++ b/dist/locales/ru.json @@ -389,7 +389,6 @@ "title": "Измерение", "selected": "выбрано {n}", "geometry": "Геометрия", - "closed": "закрыто", "center": "Центр", "perimeter": "Периметр", "length": "Длина", @@ -468,7 +467,6 @@ "switch": "Переключить обратно на эту подложку", "custom": "Настраиваемый", "custom_button": "Указать собственный слой", - "custom_prompt": "Введите URL шаблона плитки. Допустимые токены:\n - {zoom}/{z}, {x}, {y} for Z/X/Y tile scheme\n - {ty} для перевернутых Y координат в стиле TMS\n - {u} для схемы quadtile\n - {switch:a,b,c} для мультиплексирования DNS-серверов\n\nПример:\n{example}", "reset": "сброс", "display_options": "Настройки отображения", "contrast": "Контраст", @@ -644,7 +642,6 @@ "untagged_area_tooltip": "Выберите тип объекта, который описывает, чем является эта область.", "untagged_relation": "Отношение без тегов", "untagged_relation_tooltip": "Выберите тип объекта, который описывает, чем является это отношение.", - "many_deletions": "Вы удаляете {n} объектов. В результате они пропадут с карты, которую весь мир может видеть на openstreetmap.org. Уверены в своём решении?", "tag_suggests_area": "Тег {tag} обычно ставится на полигоны, но это не полигон", "deprecated_tags": "Теги устарели: {tags}" }, @@ -3349,7 +3346,7 @@ "terms": "вход, выход" }, "footway/crossing": { - "name": "Пешеходный переход", + "name": "Пересечение улиц", "terms": "перекресток, переезд, пересечение, скрещение" }, "footway/crosswalk": { @@ -3425,7 +3422,7 @@ "terms": "проход, коридор" }, "highway/crossing": { - "name": "Пешеходный переход", + "name": "Пересечение улиц", "terms": "перекресток, переезд, пересечение, скрещение" }, "highway/crosswalk": { diff --git a/dist/locales/sk.json b/dist/locales/sk.json index c6d12b2ed..0673475f4 100644 --- a/dist/locales/sk.json +++ b/dist/locales/sk.json @@ -382,7 +382,6 @@ "title": "Merania", "selected": "{n} vybraných", "geometry": "Geometria", - "closed": "uzavretá", "center": "Stred", "perimeter": "Obvod", "length": "Dĺžka", @@ -461,7 +460,6 @@ "switch": "Prepnúť späť na toto pozadie", "custom": "Voliteľné", "custom_button": "Upraviť volitelné pozadie", - "custom_prompt": "Vyplňte vzorovú URL pre mapové dlaždice. Platné polia sú: \n - {zoom}/{z}, {x}, {y} pre Z/X/Y dlaždicovú schému \n - {ty} pre TMS štýl s prevrátenými Y súradnicami\n - {u} pre quadtile schému \n - {switch:a,b,c} pre DNS server multiplexing\n\nPríklad:\n{example}", "reset": "vynulovať", "minimap": { "tooltip": "Zobraziť oddialenú mapu pre ľahšie lokalizovanie práve zobrazenej oblasti.", @@ -635,7 +633,6 @@ "untagged_area_tooltip": "Vyberte typ objektu, ktorý popisuje, čo je táto plocha.", "untagged_relation": "Neoznačená relácia", "untagged_relation_tooltip": "Vyberte typ objektu, ktorý popisuje, čo je táto relácia.", - "many_deletions": "Chystáte sa vymazať {n} objektov. Ste si naozaj istý, že to chcete urobiť? Týmto ich vymažete z mapy na openstreetmap.org, ktorú používajú ďalší používatelia.", "tag_suggests_area": "Označenie {tag} predpokladá, že objekt by mal byť plochou a nie čiarou.", "deprecated_tags": "Neschválené označenie: {tags}" }, @@ -2079,7 +2076,7 @@ } }, "structure": { - "label": "Štruktúra", + "label": "Cestná stavba", "options": { "bridge": "Most", "cutting": "Výkop", diff --git a/dist/locales/sl.json b/dist/locales/sl.json index 0ea2164f7..70d0a8074 100644 --- a/dist/locales/sl.json +++ b/dist/locales/sl.json @@ -384,7 +384,6 @@ "title": "Merilo", "selected": "{n} izbranih", "geometry": "Geometrija", - "closed": "zaprto", "center": "Središče", "perimeter": "Obseg", "length": "Dolžina", @@ -465,7 +464,6 @@ "switch": "Preklopi nazaj na to ozadje.", "custom": "Po meri", "custom_button": "Uredi ozadje po meri", - "custom_prompt": "Vpišite naslov url predloge sličic. Veljavni žetoni so:\n - {zoom}/{z}, {x}, {y} za Z/X/Y sheme sličic\n - {ty} za koordinate v zapisu TMS\n - {u} za shemo četverjenja – quadtile\n - {switch:a,b,c} za zvijanje pretoka prek strežnika DNS\n\nPrimer:\n{example}", "reset": "ponastavi", "display_options": "Možnosti prikaza", "brightness": "Svetlost", @@ -646,7 +644,6 @@ "untagged_area_tooltip": "Izberite vrsto predmeta, ki ga ponazarja polje na zemljevidu.", "untagged_relation": "Neoznačena zveza", "untagged_relation_tooltip": "Izberite vrsto predmeta, ki opisuje zvezo.", - "many_deletions": "Izbrisati nameravate predmete ({n}). Ali ste prepričani, da želite nadaljevati? Predmeti bodo izbrisani iz zemljevida openstreetmap.org, ki ga vidijo vsi uporabniki.", "tag_suggests_area": "Oznaka {tag} nakazuje, da črta opisovati območje, vendar pa ni sklenjena", "deprecated_tags": "Zastarele oznake: {tags}" }, diff --git a/dist/locales/sr.json b/dist/locales/sr.json index 883e56708..fb91222e4 100644 --- a/dist/locales/sr.json +++ b/dist/locales/sr.json @@ -381,7 +381,6 @@ "title": "Мера", "selected": "{n} изабрано", "geometry": "Геометрија", - "closed": "затворено", "center": "Центар", "perimeter": "Опсег", "length": "Дужина", @@ -629,7 +628,6 @@ "untagged_area_tooltip": "Изаберите врсту обележја која описује шта ова област представља.", "untagged_relation": "Неозначени однос", "untagged_relation_tooltip": "Изаберите врсту обележја која описује шта овај однос представља.", - "many_deletions": "Бришете {n} обележја. Да ли сте сигурни да желите то да урадите? Ово ће их избрисати са мапе коју сви виде на openstreetmap.org.", "tag_suggests_area": "Ознака {ознака} указује да би линија требало да буде област, али није област", "deprecated_tags": "Застареле ознаке: {tags}" }, diff --git a/dist/locales/sv.json b/dist/locales/sv.json index 6f98b2782..f6447301c 100644 --- a/dist/locales/sv.json +++ b/dist/locales/sv.json @@ -389,7 +389,6 @@ "title": "Mätning", "selected": "{n} markerad(e)", "geometry": "Geometri", - "closed": "slutet", "center": "Centrum", "perimeter": "Omkrets", "length": "Längd", @@ -470,7 +469,6 @@ "switch": "Växla tillbaka till denna bakgrund", "custom": "Anpassa", "custom_button": "Ändra anpassad bakgrund", - "custom_prompt": "Ange en URL-mall för plattor. Giltiga nycklar är:\n  - {zoom}/{z}, {x}, {y} enligt Z/X/Y-schema\n  - {ty} för Y-koordinat enligt omvänd TMS-stil\n - {u} för QuadTile-scheman\n - {switch:a,b,c} för multiplex mot DNS-server\n\nExempel:\n{example}", "overlays": "Bildlager", "imagery_source_faq": "Info om flygfotot / Rapportera ett problem", "reset": "ta bort", @@ -653,7 +651,6 @@ "untagged_area_tooltip": "Välj en typ som beskriver vad detta område är.", "untagged_relation": "Otaggad relation", "untagged_relation_tooltip": "Välj en typ som beskriver vad denna relation är.", - "many_deletions": "Du håller på att radera {n} objekt. Är du helt säker att du vill göra detta? Detta tar bort dem från kartan som alla andra ser på openstreetmap.org.", "tag_suggests_area": "Taggen {tag} indikerar att detta borde vara ett område istället för en linje", "deprecated_tags": "Föråldrade taggar: {tags}" }, @@ -2081,6 +2078,9 @@ "ref": { "label": "Referenskod" }, + "ref/isil": { + "label": "ISIL-kod" + }, "ref_aeroway_gate": { "label": "Gatenummer" }, diff --git a/dist/locales/tr.json b/dist/locales/tr.json index 0bf942214..21b53f47e 100644 --- a/dist/locales/tr.json +++ b/dist/locales/tr.json @@ -381,7 +381,6 @@ "title": "Ölçüm", "selected": "{n} seçildi", "geometry": "Geometri", - "closed": "kapalı", "center": "Merkez", "perimeter": "Çevre", "length": "Uzunluk", @@ -462,7 +461,6 @@ "switch": "Bu arka plana geçiş yap", "custom": "Özel", "custom_button": "Özel arka planı düzenle", - "custom_prompt": "Bir URL şablonu girin. Geçerli simgeler:\n - Z/X/Y tile scheme için {zoom}/{z}, {x}, {y}\n - çevrik TMS-stili Y koordinatları için {ty}\n - quadtile scheme için {u}\n - DNS sunucu multiplexing için {switch:a,b,c}\n\nÖrnek:\n{example}", "overlays": "Katmanlar", "reset": "sıfırla", "brightness": "Parlaklık", @@ -642,7 +640,6 @@ "untagged_area_tooltip": "Bu alanın ne olduğunu belirten bir tür seç.", "untagged_relation": "Etiketlenmemiş Küme", "untagged_relation_tooltip": "Bu kümeyi tanımlayan bir tür seç", - "many_deletions": "Şu an {n} adet nesneyi siliyorsun. Bunu yapmak istediğinden emin misin? Bu, ilgili tüm nesneleri openstreetmap.org haritasından silecektir.", "tag_suggests_area": "{tag} etiketi buranın alan olmasını ima ediyor, ama burası alan değil.", "deprecated_tags": "Kullanımdan kaldırılmış etiketler: {tags}" }, diff --git a/dist/locales/uk.json b/dist/locales/uk.json index 532e56534..f4395772e 100644 --- a/dist/locales/uk.json +++ b/dist/locales/uk.json @@ -357,7 +357,7 @@ "key": "И", "title": "Фон", "zoom": "Масштаб", - "vintage": "Класичний", + "vintage": "Період", "source": "Джерело", "description": "Опис", "resolution": "Роздільна здатність", @@ -365,8 +365,8 @@ "unknown": "Невідомо", "show_tiles": "Показати тайли", "hide_tiles": "Сховати тайли", - "show_vintage": "Показати Vintage", - "hide_vintage": "Приховати Vintage" + "show_vintage": "Показати період", + "hide_vintage": "Приховати період" }, "history": { "key": "Р", @@ -389,7 +389,8 @@ "title": "Вимірювання", "selected": "{n} виділено", "geometry": "Геометрія", - "closed": "замкнена", + "closed_line": "замкнена лінія", + "closed_area": "полігон", "center": "Центр", "perimeter": "Периметр", "length": "Довжина", @@ -470,7 +471,7 @@ "switch": "Ввімкнути цей шар", "custom": "Власний фон", "custom_button": "Параметри власного фону", - "custom_prompt": "Введіть шаблон URL для квадратів мапи. Використовуйте:\n - {zoom}/{z}, {x}, {y} для Z/X/Y схеми\n - {ty} для оберненної Y-координати в TMS-стилі\n - {u} для схеми QuadTiles\n - {switch:a,b,c} у разі використання DNS мультиплексування на сервері\n\nПриклад:\n{example}", + "custom_prompt": "Введіть шаблон URL для квадратів мапи. Використовуйте:\n - {zoom} обо {z}, {x}, {y} для Z/X/Y схеми\n - {-y} або {ty} для оберненної Y-координати в TMS-стилі\n - {u} для схеми QuadTiles\n - {switch:a,b,c} у разі використання DNS мультиплексування на сервері\n\nПриклад:\n{example}", "overlays": "Шари", "imagery_source_faq": "Про фонове зображення/Повідомити про проблему", "reset": "скинути", @@ -654,7 +655,7 @@ "untagged_area_tooltip": "Виберіть тип об’єкта, що відповідає цьому полігону.", "untagged_relation": "Звʼязок без теґів", "untagged_relation_tooltip": "Оберіть тип об’єкту, що описує чим є звʼязок.", - "many_deletions": "Ви збираєтесь вилучити {n} об’єктів. Ви дійсно бажаєте це зробити? Таке вилучення призведе до їх зникнення з мапи openstreetmap.org.", + "many_deletions": "Ви збираєтесь вилучити {n} об’єкт(ів): {p} точок, {l} ліній, {a} полігонів, {r} зв'язків. Ви дійсно бажаєте це зробити? Таке вилучення призведе до їх зникнення з мапи openstreetmap.org.", "tag_suggests_area": "Теґ {tag} зазвичай ставиться на полігони, але об’єкт не є полігоном", "deprecated_tags": "Застарілі теґи: {tags}" }, @@ -1221,6 +1222,28 @@ } } }, + "units": { + "feet": "{quantity} фт", + "miles": "{quantity} мл", + "square_feet": "{quantity} фт²", + "square_miles": "{quantity} мл²", + "acres": "{quantity} акр", + "meters": "{quantity} м", + "kilometers": "{quantity} км", + "square_meters": "{quantity} м²", + "square_kilometers": "{quantity} км²", + "hectares": "{quantity} га", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "Пн", + "south": "Пд", + "east": "Сх", + "west": "Зх", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -2219,6 +2242,9 @@ "ref": { "label": "Номер" }, + "ref/isil": { + "label": "Код ISIL" + }, "ref_aeroway_gate": { "label": "Номер виходу на посадку" }, @@ -3099,6 +3125,10 @@ "name": "Душ", "terms": "душ,лазня,гігієна" }, + "amenity/smoking_area": { + "name": "Місце для куріння", + "terms": "паління,куріння,дим,цигарки,сірники,запальничка,місце,майданчик,кімната" + }, "amenity/social_facility": { "name": "Соціальний центр", "terms": "Social facility, cjwsfkmybq wtynh, соціальний центр" @@ -3332,6 +3362,10 @@ "name": "Жива огорожа", "terms": "Hedge, bdf jujhjf, живопліт, запліт, запуст" }, + "barrier/kerb": { + "name": "Бордюр", + "terms": "перешкода,бордюр" + }, "barrier/kissing_gate": { "name": "Вузька хвіртка", "terms": "Kissing Gate, depmrf dshnrf,вузка хвіртка" @@ -3372,6 +3406,10 @@ "name": "Комора", "terms": "амбар, запаси, комора" }, + "building/boathouse": { + "name": "Елінг", + "terms": "човновець,човен,будинок,споруда,ангар,збереження" + }, "building/bungalow": { "name": "Бунгало", "terms": "дім,веранда,дача,маєток" @@ -3779,6 +3817,10 @@ "emergency/private": { "name": "Для приватних аварійно-рятувальних служб" }, + "emergency/water_tank": { + "name": "Пожежний резервуар", + "terms": "вода,пожежа,цистерна,резервуар,небезпека" + }, "emergency/yes": { "name": "Доступ для аварійно-рятувальних служб дозволено" }, @@ -3917,6 +3959,10 @@ "name": "Доріжка для вершників ", "terms": "Bridle Path, ljhsrf lkz dthiybrsd, доріжка для кінних прогулянок, доріжка для верхової їзди" }, + "highway/bus_guideway": { + "name": "Шпурбус", + "terms": "автобус,рельс,напрямний" + }, "highway/bus_stop": { "name": "Автобусна зупинка/платформа" }, @@ -4199,6 +4245,10 @@ "name": "Лісовий масив", "terms": "Forest, kscjdbq vfcbd, ліс, лісовий масив" }, + "landuse/garages": { + "name": "Гаражний комплекс", + "terms": "гараж,кооператив,машина,ділянка" + }, "landuse/grass": { "name": "Трава", "terms": "Grass, nhfdf, трава" @@ -6246,7 +6296,7 @@ "text": "Умови використання та Відгуки" }, "description": "Межі та дати знімків. Підписи з'являються з 14 рівня масштабування. ", - "name": "Знімки DigitalGlobe Premium Vintage" + "name": "Період знімків DigitalGlobe Premium" }, "DigitalGlobe-Standard": { "attribution": { @@ -6260,7 +6310,7 @@ "text": "Умови використання та Відгуки" }, "description": "Межі та дати знімків. Підписи з'являються з 14 рівня масштабування. ", - "name": "Знімки DigitalGlobe Standard Vintage" + "name": "Період знімків DigitalGlobe Standard" }, "EsriWorldImagery": { "attribution": { @@ -6337,18 +6387,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, Учасники OpenStreetMap, CC by-SA 3.0" + }, "name": "Позначені маршрути: Велосипедні" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, Учасники OpenStreetMap, CC by-SA 3.0" + }, "name": "Позначені маршрути: Туристичні" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, Учасники OpenStreetMap, CC by-SA 3.0" + }, "name": "Позначені маршрути: MTB" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, Учасники OpenStreetMap, CC by-SA 3.0" + }, "name": "Позначені маршрути: Ковзани" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, Учасники OpenStreetMap, CC by-SA 3.0" + }, "name": "Позначені маршрути: Зимові вид спорту" }, "basemap.at": { diff --git a/dist/locales/vi.json b/dist/locales/vi.json index e39cd68d9..bcbbb504e 100644 --- a/dist/locales/vi.json +++ b/dist/locales/vi.json @@ -389,7 +389,8 @@ "title": "Đo lường", "selected": "{n} được chọn", "geometry": "Hình", - "closed": "đóng", + "closed_line": "đường kẻ đóng", + "closed_area": "vùng đóng", "center": "Tâm", "perimeter": "Chu vi", "length": "Chiều dài", @@ -470,7 +471,7 @@ "switch": "Quay về hình nền này", "custom": "Tùy biến", "custom_button": "Sửa hình nền tùy biến", - "custom_prompt": "Nhập định dạng URL của các mảnh bản đồ. Bạn có thể sử dụng các dấu hiệu:\n - {zoom}/{z}, {x}, {y} cho định dạng mảnh Z/X/Y\n - {ty} cho tọa độ Y kiểu TMS phản chiếu\n - {u} cho định dạng quadtile\n - {switch:a,b,c} để luân phiên các máy chủ DNS\n\nVí dụ:\n{example}", + "custom_prompt": "Nhập định dạng URL của các mảnh bản đồ. Bạn có thể sử dụng các dấu hiệu:\n - {zoom} hoặc {z}, {x}, {y} cho định dạng mảnh Z/X/Y\n - {-y} hoặc {ty} cho tọa độ Y kiểu TMS phản chiếu\n - {u} cho định dạng quadtile\n - {switch:a,b,c} để luân phiên các máy chủ DNS\n\nVí dụ:\n{example}", "overlays": "Lớp phủ", "imagery_source_faq": "Chi tiết Hình ảnh / Báo cáo Vấn đề", "reset": "đặt lại", @@ -654,7 +655,6 @@ "untagged_area_tooltip": "Chọn loại vùng.", "untagged_relation": "Quan hệ không có thẻ", "untagged_relation_tooltip": "Chọn loại quan hệ.", - "many_deletions": "Bạn có chắc chắn muốn xóa {n} đối tượng? Các đối tượng này sẽ bị xóa khỏi bản đồ công cộng tại openstreetmap.org.", "tag_suggests_area": "Thẻ {tag} có lẽ dành cho vùng nhưng được gắn vào đường kẻ", "deprecated_tags": "Không khuyến khích sử dụng các thẻ: {tags}" }, @@ -1126,6 +1126,28 @@ } } }, + "units": { + "feet": "{quantity} foot", + "miles": "{quantity} dặm", + "square_feet": "{quantity} foot vuông", + "square_miles": "{quantity} dặm vuông", + "acres": "{quantity} mẫu Anh", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "B", + "south": "N", + "east": "Đ", + "west": "T", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -3007,6 +3029,10 @@ "name": "Tắm đứng", "terms": "phòng tắm đứng, buồng tắm đứng, khay tắm đứng, cabin tắm, phong tam dung, buong tam dung, khay tam dung, cabin tam" }, + "amenity/smoking_area": { + "name": "Khu vực Hút thuốc", + "terms": "khu vực hút thuốc, khu vực hút thuốc lá, phòng hút thuốc, phòng hút thuốc lá, khu vuc hut thuoc, khu vuc hut thuoc la, phong hut thuoc, phong hut thuoc la" + }, "amenity/social_facility": { "name": "Dịch vụ Xã hội", "terms": "dịch vụ xã hội, người vô gia cư, người khuyết tật, trẻ em, trung tâm điều trị nghiện ma túy, trung tâm điều trị nghiện rượu, dich vu xa hoi, nguoi vo gia cu, nguoi khuyet tat, tre em, trung tam dieu tri nghien ma tuy, trung tam dieu tri nghien ruou" @@ -3240,6 +3266,10 @@ "name": "Hàng rào Cây", "terms": "hàng rào cây, hàng cây, hang rao cay, hang cay" }, + "barrier/kerb": { + "name": "Bờ đường", + "terms": "bờ đường, bờ đường nâng cao, lề đường, bo duong, bo duong nang cao, le duong" + }, "barrier/kissing_gate": { "name": "Cửa Hàng rào Chắn Trâu bò", "terms": "cửa hàng rào chắn trâu bò, cua hang rao chan trau bo" @@ -3691,6 +3721,10 @@ "emergency/private": { "name": "Chỉ Dịch vụ Khẩn cấp được Chủ Cho phép" }, + "emergency/water_tank": { + "name": "Bể nước Cứu hỏa", + "terms": "bể nước cứu hỏa, thùng nước cứu hỏa, bể nước cứu hoả, thùng nước cứu hoả, bể nước chữa cháy, thùng nước chữa cháy, be nuoc cuu hoa, thung nuoc cuu hoa, be nuoc chua chay, thung nuoc chua chay" + }, "emergency/yes": { "name": "Dành cho Dịch vụ Khẩn cấp" }, @@ -3829,6 +3863,10 @@ "name": "Đường mòn Ngựa", "terms": "đường mòn ngựa, đường cưỡi ngựa, đường đi ngựa, duong mon ngua, duong cuoi ngua, duong di ngua" }, + "highway/bus_guideway": { + "name": "Đường dẫn Xe buýt", + "terms": "đường dẫn xe buýt, duong dan xe buyt" + }, "highway/bus_stop": { "name": "Trạm/Bến Xe buýt" }, diff --git a/dist/locales/zh-CN.json b/dist/locales/zh-CN.json index 1add0cf6e..db3a17479 100644 --- a/dist/locales/zh-CN.json +++ b/dist/locales/zh-CN.json @@ -389,7 +389,8 @@ "title": "测量", "selected": "已选择 {n} 个", "geometry": "几何", - "closed": "闭合", + "closed_line": "闭合路径", + "closed_area": "闭合区域", "center": "中心", "perimeter": "周长", "length": "长度", @@ -470,7 +471,7 @@ "switch": "切换回该底图", "custom": "自定义", "custom_button": "编辑自定义背景", - "custom_prompt": "输入地图瓦片URL地址。有效的参数有:\n   - {zoom}/{z}, {x}, {y} 作为 Z/X/Y 坐标系\n   - {ty} 作为翻转的 TMS 算法 Y 坐标\n   - {u} 作为四叉树坐标编码\n   - {switch:a,b,c} 作为 DNS 服务器解析的并行连接子域\n\n示例:\n{example}", + "custom_prompt": "输入地图瓦片URL地址。有效的参数有:\n - {zoom} 或 {z}, {x}, {y} 作为 Z/X/Y 坐标系\n - {-y} 或 {ty} 作为翻转的 TMS 算法 Y 坐标\n - {u} 作为四叉树坐标编码\n - {switch:a,b,c} 作为 DNS 服务器解析的并行连接子域\n\n示例:\n{example}", "overlays": "叠加图层", "imagery_source_faq": "影像信息 / 报告问题", "reset": "重置", @@ -654,7 +655,7 @@ "untagged_area_tooltip": "选择描述这块区域的要素类型。", "untagged_relation": "未标记的关系", "untagged_relation_tooltip": "选择描述这个关系的要素类型。", - "many_deletions": "您正在删除 {n} 个要素。您确定要这么做吗?这些要素将会在任何人所见的 openstreetmap.org 地图上被删除。", + "many_deletions": "您正在删除 {n} 个要素:{p} 个节点、{l} 条路径、{a} 片区域、{r} 个关系。您确定要这么做吗?这些要素将会在任何人所见的 openstreetmap.org 地图上被删除。", "tag_suggests_area": "{tag}的标签所建议的线段应为区域,但这个不是一区域", "deprecated_tags": "弃用标签:{tags}" }, @@ -695,12 +696,12 @@ "title": "帮助", "welcome": "欢迎使用 [OpenStreetMap](https://www.openstreetmap.org/) 的 iD 编辑器。您可以使用这个编辑器在网页浏览器内直接编辑 OpenStreetMap 地图。", "open_data_h": "开放数据", - "open_data": "您在这个地图上做出的编辑会对所有使用 OpenStreetMap 的用户可见。您的编辑可以基于个人知识、实地调查、航空拍摄图片或者街景照片。从商业来源,例如谷歌地图这样的来源复制信息是被[严格禁止](https://www.openstreetmap.org/copyright)的。", + "open_data": "您在这个地图上做出的编辑会对所有使用 OpenStreetMap 的用户可见。您的编辑可以基于个人知识、实地调查、航空拍摄图片或者街景照片。从商业来源,例如谷歌地图这样的来源复制信息是被 [严格禁止](https://www.openstreetmap.org/copyright) 的。", "before_start_h": "在您开始之前", "before_start": "您在开始编辑之前应当先了解熟悉 OpenStreetMap 和本编辑器。iD 包含了一个导览教程,可以帮助您了解编辑 OpenStreetMap 的基本知识。请点击屏幕上的“开始演练”按钮以开始教程——这只会占用您大概 15 分钟。", "open_source_h": "开放源代码", - "open_source": "iD 编辑器是一个合作开放源代码项目,您正在使用的版本是 {version}。其源代码[在 GitHub](https://github.com/openstreetmap/iD) 上可找到。", - "open_source_help": "您可以帮助 iD [翻译文本](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating)或者[报告问题](https://github.com/openstreetmap/iD/issues)。" + "open_source": "iD 编辑器是一个合作开放源代码项目,您正在使用的版本是 {version}。其源代码 [在 GitHub](https://github.com/openstreetmap/iD) 上可找到。", + "open_source_help": "您可以帮助 iD [翻译文本](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) 或者 [报告问题](https://github.com/openstreetmap/iD/issues)。" }, "overview": { "title": "概览", @@ -1113,6 +1114,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "W", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -2101,6 +2124,9 @@ "ref": { "label": "编号" }, + "ref/isil": { + "label": "ISIL 编码" + }, "ref_aeroway_gate": { "label": "登机口编号" }, @@ -2963,6 +2989,10 @@ "name": "淋浴间", "terms": "公共,浴室,淋浴,浴池,澡堂,洗澡,冲澡,冲凉,洗浴,搓澡,清洁,搓背,修脚,温泉,足浴,雨" }, + "amenity/smoking_area": { + "name": "吸烟区域", + "terms": "吸烟,抽烟,烟,香烟,烟草" + }, "amenity/social_facility": { "name": "社会服务设施", "terms": "社会服务设施,社会保障设施" @@ -3330,6 +3360,10 @@ "name": "开放式建筑", "terms": "大棚,屋顶,上盖,开放式建筑" }, + "building/ruins": { + "name": "建筑物遗迹", + "terms": "遗迹,废墟,遗址,毁坏,考古,建筑,建筑物" + }, "building/school": { "name": "学校建筑", "terms": "学校,高中,初中,中学,小学,中专,建筑,教学楼,实验室,校舍,宿舍,学院,院校,校园,学习" @@ -3734,6 +3768,10 @@ "name": "马道", "terms": "马道" }, + "highway/bus_guideway": { + "name": "导向巴士轨道", + "terms": "导向,巴士,导轨,导轮,胶轮,公交,公交车,轨道" + }, "highway/bus_stop": { "name": "公交车站 / 站台" }, @@ -5991,9 +6029,16 @@ "description": "Esri 世界影像", "name": "Esri 世界影像" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "条款与反馈" + }, + "description": "比默认图层或许更为清晰准确的 Esri 归档影像。", + "name": "Esri 世界影像 (清晰) Beta" + }, "MAPNIK": { "attribution": { - "text": "© OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© OpenStreetMap 贡献者, 署名-相同方式共享" }, "description": "OpenStreetMap 默认图层", "name": "OpenStreetMap (标准)" @@ -6007,43 +6052,43 @@ }, "OSM_Inspector-Addresses": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:地址" }, "OSM_Inspector-Geometry": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:几何" }, "OSM_Inspector-Highways": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:道路" }, "OSM_Inspector-Multipolygon": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:区域(面)" }, "OSM_Inspector-Places": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:地名" }, "OSM_Inspector-Routing": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:路线" }, "OSM_Inspector-Tagging": { "attribution": { - "text": "© Geofabrik有限公司, OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© Geofabrik 有限公司, OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OSM查看器:标签" }, @@ -6051,7 +6096,7 @@ "name": "TIGER 道路 2012" }, "US-TIGER-Roads-2014": { - "description": "在缩放等级16级以上是来自美国人口调查局的公共领域地图数据。低缩放等级下仅包含自2006年以来的变更,不含已纳入OpenStreetMap的变更。", + "description": "在缩放等级16级以上是来自美国人口调查局的公共领域地图数据。低缩放等级下仅包含自2006年以来的变更,不含已纳入 OpenStreetMap 的变更。", "name": "TIGER 道路 2014" }, "US-TIGER-Roads-2017": { @@ -6059,18 +6104,33 @@ "name": "TIGER 道路 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 贡献者, 署名-相同方式共享 3.0" + }, "name": "以路径表示的小路:自行车道" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 贡献者, 署名-相同方式共享 3.0" + }, "name": "以路径表示的小路:徒步" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 贡献者, 署名-相同方式共享 3.0" + }, "name": "以路径表示的小路:山地自行车" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 贡献者, 署名-相同方式共享 3.0" + }, "name": "以路径表示的小路:滑冰" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 贡献者, 署名-相同方式共享 3.0" + }, "name": "以路径表示的小路:冬季运动" }, "basemap.at": { @@ -6084,12 +6144,12 @@ "attribution": { "text": "basemap.at" }, - "description": "由basemap.at提供的正射影像图层,接替geoimage.at影像图层。", - "name": "basemap.at正射影像" + "description": "由 basemap.at 提供的正射影像图层,接替 geoimage.at 影像图层。", + "name": "basemap.at 正射影像" }, "hike_n_bike": { "attribution": { - "text": "© OpenStreetMap贡献者" + "text": "© OpenStreetMap 贡献者" }, "name": "徒步与自行车" }, @@ -6102,56 +6162,56 @@ }, "openpt_map": { "attribution": { - "text": "© OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OpenPT Map (叠加层)" }, "osm-gps": { "attribution": { - "text": "© OpenStreetMap贡献者" + "text": "© OpenStreetMap 贡献者" }, "description": "上传至 OpenStreetMap 的公开 GPS 轨迹", "name": "OpenStreetMap GPS 轨迹" }, "osm-mapnik-black_and_white": { "attribution": { - "text": "© OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OpenStreetMap(黑白标准)" }, "osm-mapnik-german_style": { "attribution": { - "text": "© OpenStreetMap贡献者, 署名-相同方式共享" + "text": "© OpenStreetMap 贡献者, 署名-相同方式共享" }, "name": "OpenStreetMap(德国样式)" }, "qa_no_address": { "attribution": { - "text": "© Simon Poole, 数据© OpenStreetMap贡献者" + "text": "© Simon Poole, 数据 © OpenStreetMap 贡献者" }, "name": "地址缺失质检" }, "skobbler": { "attribution": { - "text": "© 碎片:skobbler 地图数据:OpenStreetMap贡献者" + "text": "© 瓦片:skobbler 地图数据:OpenStreetMap 贡献者" }, "name": "skobbler" }, "stamen-terrain-background": { "attribution": { - "text": "地图碎片由 Stamen 设计,并以知识共享署名3.0协议授权" + "text": "地图瓦片由 Stamen 设计,并以 署名 3.0 协议授权" }, "name": "Stamen 地形" }, "tf-cycle": { "attribution": { - "text": "地图© Thunderforest,数据© OpenStreetMap贡献者" + "text": "地图 © Thunderforest,数据 © OpenStreetMap 贡献者" }, "name": "Thunderforest OpenCycleMap" }, "tf-landscape": { "attribution": { - "text": "地图© Thunderforest,,数据© OpenStreetMap贡献者" + "text": "地图 © Thunderforest,数据 © OpenStreetMap 贡献者" }, "name": "Thunderforest 地貌" } diff --git a/dist/locales/zh-HK.json b/dist/locales/zh-HK.json index 35e576f59..3d746fd32 100644 --- a/dist/locales/zh-HK.json +++ b/dist/locales/zh-HK.json @@ -384,7 +384,6 @@ "title": "測量", "selected": "已選 {n} 項", "geometry": "幾何", - "closed": "已關閉", "center": "中心點", "perimeter": "周界", "length": "長度", @@ -463,7 +462,6 @@ "switch": "切換回這個背景", "custom": "自訂", "custom_button": "編輯自訂背景", - "custom_prompt": "輸入區塊範本的網址。有效的標記是:\n- {zoom}/{z}, {x}, {y} 為 Z/X/Y 標記系統 Z/X/Y scheme\n- {ty} 為已翻轉的 TMS 形式Y座標 TMS-style Y coordinates\n- {u} 為四分位數標記系統 quadtile scheme\n- {switch:a,b,c} 為多工DNS伺服器\n\n例如 :\n{example}", "reset": "重設", "minimap": { "tooltip": "顯示縮小地圖以確定現在被顯示範圍的位置", @@ -636,7 +634,6 @@ "untagged_area_tooltip": "選擇一個特徵種類來形容這個範圍是甚麼。", "untagged_relation": "未有標籤的關係", "untagged_relation_tooltip": "選擇一個特徵種類來形容這個關係是甚麼。", - "many_deletions": "你正在刪除 {n} 個特徵。你確定要這樣做嗎?這樣就會將人人在 openstreetmap.org 地圖內看到的物件刪除了。", "tag_suggests_area": "{tag}標籤建議綫應為範圍,但這不是一個範圍。", "deprecated_tags": "已棄用的標籤: {tags}" }, diff --git a/dist/locales/zh-TW.json b/dist/locales/zh-TW.json index 57d889c63..13d3598e8 100644 --- a/dist/locales/zh-TW.json +++ b/dist/locales/zh-TW.json @@ -389,7 +389,8 @@ "title": "測量", "selected": "{n} 被選擇", "geometry": "形狀", - "closed": "已關閉", + "closed_line": "封閉線段", + "closed_area": "封閉區域", "center": "中心", "perimeter": "周長", "length": "長度", @@ -470,7 +471,7 @@ "switch": "切換回此背景", "custom": "客製化", "custom_button": "編輯自訂的背景", - "custom_prompt": "輸入圖磚 URL 範本。有效的代號是:\n - {zoom}/{z}, {x}, {y} 給 Z/X/Y 結構\n - {ty} 給 TMS 樣式的 Y 座標\n - {u} 給 quadtile 結構使用\n - {switch:a,b,c} 給 DNS 伺服器多路通訊使用\n\n範例:\n{example}", + "custom_prompt": "輸入標題網址模版。有效的代碼是: \n- {zoom} or {z}, {x}, {y} for Z/X/Y tile scheme\n- {-y} or {ty} for flipped TMS-style Y coordinates\n- {u} for quadtile scheme\n- {switch:a,b,c} for DNS server multiplexing\n\n範例:\n{example}", "overlays": "覆疊", "imagery_source_faq": "影像資訊 / 問題回報", "reset": "重設", @@ -654,7 +655,7 @@ "untagged_area_tooltip": "選擇適當的物件種類描述這區域是什麼。", "untagged_relation": "未標記的關係", "untagged_relation_tooltip": "選取一個可以適當地描述這個關係的圖徽類型。", - "many_deletions": "您正要刪除 {n} 個圖徽。您確定您要這麼做嗎?這將會把它們從每個人都看到的 openstreetmap.org 的地圖上刪除。", + "many_deletions": "您正要刪除 {n} 個圖徽:{p} 個節點、{l} 條線段、{a} 個區域、{r} 個關係。您確定您要這麼做嗎?這將會把它們從每個人都看得到的 openstreetmap.org 的地圖上刪除。", "tag_suggests_area": "{tag} 標籤所建議的線段應為區域,但這個不是一區域", "deprecated_tags": "已棄用的標籤︰{tags}" }, @@ -1221,6 +1222,28 @@ } } }, + "units": { + "feet": "{quantity} 英呎", + "miles": "{quantity} 英哩", + "square_feet": "{quantity} 平方英呎", + "square_miles": "{quantity} 平方英哩", + "acres": "{quantity} 英畝", + "meters": "{quantity} 公尺", + "kilometers": "{quantity} 公里", + "square_meters": "{quantity} 平方公尺", + "square_kilometers": "{quantity} 平方公里", + "hectares": "{quantity} 公頃", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "北", + "south": "南", + "east": "東", + "west": "西", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -3102,6 +3125,10 @@ "name": "淋浴間", "terms": "淋浴間,淋浴,淋浴設施" }, + "amenity/smoking_area": { + "name": "吸煙區", + "terms": "吸煙區,吸菸區" + }, "amenity/social_facility": { "name": "社福機構", "terms": "社福設施" @@ -3335,6 +3362,10 @@ "name": "樹籬", "terms": "樹籬" }, + "barrier/kerb": { + "name": "路緣", + "terms": "路緣" + }, "barrier/kissing_gate": { "name": "單人轉門", "terms": "U形旋轉小門,V形旋轉小門" @@ -3786,6 +3817,10 @@ "emergency/private": { "name": "供私人緊急通行" }, + "emergency/water_tank": { + "name": "緊急水箱", + "terms": "緊急水箱" + }, "emergency/yes": { "name": "開放緊急通行" }, @@ -6284,6 +6319,13 @@ "description": "Esri 世界衛星圖。", "name": "Esri 世界衛星圖" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "使用條款與意見回饋" + }, + "description": "Ersi 的封存衛星圖可能比預設的圖層更清晰且更精確。", + "name": "Esri 世界衛星圖(清晰版)Beta" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap 貢獻者,CC-BY-SA" From db0858f7d2f3ceca98a5bfa42422f422791f182f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Feb 2018 11:38:41 -0500 Subject: [PATCH 007/157] v2.6.1 --- modules/core/context.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index b002b29d5..f36da5420 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -53,7 +53,7 @@ export function setAreaKeys(value) { export function coreContext() { var context = {}; - context.version = '2.6.0'; + context.version = '2.6.1'; // create a special translation that contains the keys in place of the strings var tkeys = _cloneDeep(dataEn); diff --git a/package.json b/package.json index 20e5a740b..a932befe2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iD", - "version": "2.6.0", + "version": "2.6.1", "description": "A friendly editor for OpenStreetMap", "main": "iD.js", "repository": "openstreetmap/iD", From a96bf1421c6399f18182aa5c26ef0f4e87c9b222 Mon Sep 17 00:00:00 2001 From: john gravois Date: Fri, 2 Feb 2018 09:43:57 -0800 Subject: [PATCH 008/157] query the appropriate metadata for esri clarity --- modules/renderer/background_source.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/modules/renderer/background_source.js b/modules/renderer/background_source.js index 3fd2951e1..a6b92f167 100644 --- a/modules/renderer/background_source.js +++ b/modules/renderer/background_source.js @@ -276,6 +276,9 @@ rendererBackgroundSource.Esri = function(data) { if (inflight[tileId]) return; switch (true) { + case (zoom >= 20 && esri.id === 'EsriWorldImageryClarity'): + metadataLayer = 4; + break; case zoom >= 19: metadataLayer = 3; break; @@ -289,8 +292,15 @@ rendererBackgroundSource.Esri = function(data) { metadataLayer = 99; } + var url; // build up query using the layer appropriate to the current zoom - var url = 'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/' + metadataLayer + '/query?returnGeometry=false&geometry=' + centerPoint + '&inSR=4326&geometryType=esriGeometryPoint&outFields=*&f=json&callback={callback}'; + if (esri.id === 'EsriWorldImagery') { + url = 'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/'; + } else if (esri.id === 'EsriWorldImageryClarity') { + url = 'https://serviceslab.arcgisonline.com/arcgis/rest/services/Clarity_World_Imagery/MapServer/'; + } + + url += metadataLayer + '/query?returnGeometry=false&geometry=' + centerPoint + '&inSR=4326&geometryType=esriGeometryPoint&outFields=*&f=json&callback={callback}'; if (!cache[tileId]) { cache[tileId] = {}; From c1378a141f2ed5b51f12b671c08df0f21ef945e1 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Feb 2018 19:58:09 -0500 Subject: [PATCH 009/157] Add support for complex intersection and via way restrictions --- css/80_app.css | 2 +- modules/actions/restrict_turn.js | 73 +-- modules/actions/split.js | 5 +- modules/osm/intersection.js | 683 +++++++++++++++++++------ modules/osm/relation.js | 34 +- modules/svg/turns.js | 36 +- modules/ui/fields/restrictions.js | 199 ++++---- modules/ui/init.js | 4 +- test/spec/actions/restrict_turn.js | 711 ++++++++++---------------- test/spec/osm/intersection.js | 793 ++++++++++++++--------------- test/spec/osm/relation.js | 666 ++++++++++++++---------- 11 files changed, 1771 insertions(+), 1435 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 63208b068..275bd7e2a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1836,7 +1836,7 @@ input[type=number] { .form-field-restrictions .preset-input-wrap { position: relative; - height: 300px; + height: 400px; } .form-field-restrictions svg.surface { diff --git a/modules/actions/restrict_turn.js b/modules/actions/restrict_turn.js index eb59644a4..df45ece81 100644 --- a/modules/actions/restrict_turn.js +++ b/modules/actions/restrict_turn.js @@ -1,9 +1,6 @@ -import { actionSplit } from './split'; - import { osmInferRestriction, - osmRelation, - osmWay + osmRelation } from '../osm'; @@ -11,21 +8,20 @@ import { // // { // from: { node: , way: }, -// via: { node: }, +// via: { node: , ways: [,,...] }, // to: { node: , way: }, // restriction: <'no_right_turn', 'no_left_turn', etc.> // } // // This specifies a restriction of type `restriction` when traveling from -// `from.node` in `from.way` toward `to.node` in `to.way` via `via.node`. +// `from.node` in `from.way` toward `to.node` in `to.way` via `via.node` OR `via.ways`. // (The action does not check that these entities form a valid intersection.) // // If `restriction` is not provided, it is automatically determined by // osmInferRestriction. // -// If necessary, the `from` and `to` ways are split. In these cases, `from.node` -// and `to.node` are used to determine which portion of the split ways become -// members of the restriction. +// From, to, and via ways should be split before calling this action. +// (old versions of the code would split the ways here, but we no longer do it) // // For testing convenience, accepts an ID to assign to the new relation. // Normally, this will be undefined and the relation will automatically @@ -34,47 +30,23 @@ import { export function actionRestrictTurn(turn, projection, restrictionId) { return function(graph) { - var from = graph.entity(turn.from.way), - via = graph.entity(turn.via.node), - to = graph.entity(turn.to.way); + var fromWay = graph.entity(turn.from.way); + var toWay = graph.entity(turn.to.way); + var viaNode = turn.via.node && graph.entity(turn.via.node); + var viaWays = turn.via.ways && turn.via.ways.map(function(id) { return graph.entity(id); }); + var members = []; - function isClosingNode(way, nodeId) { - return nodeId === way.first() && nodeId === way.last(); + members.push({ id: fromWay.id, type: 'way', role: 'from' }); + + if (viaNode) { + members.push({ id: viaNode.id, type: 'node', role: 'via' }); + } else if (viaWays) { + viaWays.forEach(function(viaWay) { + members.push({ id: viaWay.id, type: 'way', role: 'via' }); + }); } - function split(toOrFrom) { - var newID = toOrFrom.newID || osmWay().id; - graph = actionSplit(via.id, [newID]) - .limitWays([toOrFrom.way])(graph); - - var a = graph.entity(newID), - b = graph.entity(toOrFrom.way); - - if (a.nodes.indexOf(toOrFrom.node) !== -1) { - return [a, b]; - } else { - return [b, a]; - } - } - - if (!from.affix(via.id) || isClosingNode(from, via.id)) { - if (turn.from.node === turn.to.node) { - // U-turn - from = to = split(turn.from)[0]; - } else if (turn.from.way === turn.to.way) { - // Straight-on or circular - var s = split(turn.from); - from = s[0]; - to = s[1]; - } else { - // Other - from = split(turn.from)[0]; - } - } - - if (!to.affix(via.id) || isClosingNode(to, via.id)) { - to = split(turn.to)[0]; - } + members.push({ id: toWay.id, type: 'way', role: 'to' }); return graph.replace(osmRelation({ id: restrictionId, @@ -84,15 +56,10 @@ export function actionRestrictTurn(turn, projection, restrictionId) { osmInferRestriction( graph, turn.from, - turn.via, turn.to, projection) }, - members: [ - {id: from.id, type: 'way', role: 'from'}, - {id: via.id, type: 'node', role: 'via'}, - {id: to.id, type: 'way', role: 'to'} - ] + members: members })); }; } diff --git a/modules/actions/split.js b/modules/actions/split.js index 1763274ac..982632484 100644 --- a/modules/actions/split.js +++ b/modules/actions/split.js @@ -53,7 +53,10 @@ export function actionSplit(nodeId, newWayIds) { } function dist(nA, nB) { - return geoSphericalDistance(graph.entity(nA).loc, graph.entity(nB).loc); + var locA = graph.entity(nA).loc; + var locB = graph.entity(nB).loc; + var epsilon = 1e-6; + return (locA && locB) ? geoSphericalDistance(locA, locB) : epsilon; } // calculate lengths diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 59e87e525..a9ca41f69 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -1,195 +1,556 @@ -import _each from 'lodash-es/each'; +import _clone from 'lodash-es/clone'; +import _every from 'lodash-es/every'; import _extend from 'lodash-es/extend'; -import _find from 'lodash-es/find'; -import _indexOf from 'lodash-es/indexOf'; -import _keys from 'lodash-es/keys'; -import _values from 'lodash-es/values'; +import _uniq from 'lodash-es/uniq'; -import { geoAngle } from '../geo/index'; -import { osmWay } from './way'; +import { + actionDeleteRelation, + actionReverse, + actionSplit +} from '../actions'; + +import { coreGraph } from '../core'; +import { geoAngle, geoSphericalDistance } from '../geo'; +import { osmEntity } from './entity'; export function osmTurn(turn) { - if (!(this instanceof osmTurn)) + if (!(this instanceof osmTurn)) { return new osmTurn(turn); + } _extend(this, turn); } -export function osmIntersection(graph, vertexId) { - var vertex = graph.entity(vertexId), - parentWays = graph.parentWays(vertex), - coincident = [], - highways = {}; +export function osmIntersection(graph, startVertexId) { + var vgraph = coreGraph(), // virtual graph + i, j, k; - function addHighway(way, adjacentNodeId) { - if (highways[adjacentNodeId]) { - coincident.push(adjacentNodeId); - } else { - highways[adjacentNodeId] = way; + + function memberOfRestriction(entity) { + return graph.parentRelations(entity) + .some(function(r) { return r.isRestriction(); }); + } + + function isRoad(way) { + if (way.isArea() || way.isDegenerate()) return false; + var roads = { + 'motorway': true, + 'motorway_link': true, + 'trunk': true, + 'trunk_link': true, + 'primary': true, + 'primary_link': true, + 'secondary': true, + 'secondary_link': true, + 'tertiary': true, + 'tertiary_link': true, + 'residential': true, + 'unclassified': true, + 'living_street': true, + 'service': true, + 'road': true, + 'track': true + }; + return roads[way.tags.highway]; + } + + + var distCutoff = 20; // meters + var checkVertices = [graph.entity(startVertexId)]; + var checkWays; + var vertices = []; + var vertexIds = []; + var vertex; + var ways = []; + var wayIds = []; + var way; + var nodes = []; + var node; + var parents = []; + var parent; + + // `actions` will store whatever actions must be performed to satisfy + // preconditions for adding a turn restriction to this intersection. + // - Remove any existing degenerate turn restrictions (missing from/to, etc) + // - Reverse oneways so that they are drawn in the forward direction + // - Split ways on key vertices + var actions = []; + + + // STEP 1: walk the graph outwards from starting vertex to search + // for more key vertices and ways to include in the intersection.. + + while (checkVertices.length) { + vertex = checkVertices.pop(); + + // check this vertex for parent ways that are roads + checkWays = graph.parentWays(vertex); + var hasWays = false; + for (i = 0; i < checkWays.length; i++) { + way = checkWays[i]; + if (!isRoad(way) && !memberOfRestriction(way)) continue; + + ways.push(way); // it's a road, or it's already in a turn restriction + hasWays = true; + + // check the way's children for more key vertices + nodes = _uniq(graph.childNodes(way)); + for (j = 0; j < nodes.length; j++) { + node = nodes[j]; + if (node === vertex) continue; // same thing + if (vertices.indexOf(node) !== -1) continue; // seen it already + if (node.loc && vertex.loc && geoSphericalDistance(node.loc, vertex.loc) > distCutoff) continue; // too far + + // a key vertex will have parents that are also roads + var hasParents = false; + parents = graph.parentWays(node); + for (k = 0; k < parents.length; k++) { + parent = parents[k]; + if (parent === way) continue; // same thing + if (ways.indexOf(parent) !== -1) continue; // seen it already + if (!isRoad(parent)) continue; // not a road + hasParents = true; + break; + } + + if (hasParents) { + checkVertices.push(node); + } + } + } + + if (hasWays) { + vertices.push(vertex); } } - // Pre-split ways that would need to be split in - // order to add a restriction. The real split will - // happen when the restriction is added. - parentWays.forEach(function(way) { - if (!way.tags.highway || way.isArea() || way.isDegenerate()) - return; - - var isFirst = (vertexId === way.first()), - isLast = (vertexId === way.last()), - isAffix = (isFirst || isLast), - isClosingNode = (isFirst && isLast); - - if (isAffix && !isClosingNode) { - var index = (isFirst ? 1 : way.nodes.length - 2); - addHighway(way, way.nodes[index]); - - } else { - var splitIndex, wayA, wayB, indexA, indexB; - if (isClosingNode) { - splitIndex = Math.ceil(way.nodes.length / 2); // split at midpoint - wayA = osmWay({id: way.id + '-a', tags: way.tags, nodes: way.nodes.slice(0, splitIndex)}); - wayB = osmWay({id: way.id + '-b', tags: way.tags, nodes: way.nodes.slice(splitIndex)}); - indexA = 1; - indexB = way.nodes.length - 2; - } else { - splitIndex = _indexOf(way.nodes, vertex.id, 1); // split at vertexid - wayA = osmWay({id: way.id + '-a', tags: way.tags, nodes: way.nodes.slice(0, splitIndex + 1)}); - wayB = osmWay({id: way.id + '-b', tags: way.tags, nodes: way.nodes.slice(splitIndex)}); - indexA = splitIndex - 1; - indexB = splitIndex + 1; - } - graph = graph.replace(wayA).replace(wayB); - addHighway(wayA, way.nodes[indexA]); - addHighway(wayB, way.nodes[indexB]); - } - }); - - // remove any ways from this intersection that are coincident - // (i.e. any adjacent node used by more than one intersecting way) - coincident.forEach(function (n) { - delete highways[n]; - }); + vertices = _uniq(vertices); + ways = _uniq(ways); - var intersection = { - highways: highways, - ways: _values(highways), - graph: graph - }; - - - intersection.adjacentNodeId = function(fromWayId) { - return _find(_keys(highways), function(k) { - return highways[k].id === fromWayId; + // STEP 2: Build a virtual graph containing only the entities in the intersection.. + // Everything done after this step should act on the virtual graph + // Any actions that must be performed later to the main graph go in `actions` array + ways.forEach(function(way) { + graph.childNodes(way).forEach(function(node) { + vgraph = vgraph.replace(node); }); - }; + vgraph = vgraph.replace(way); - intersection.turns = function(fromNodeId) { - var start = highways[fromNodeId]; - if (!start) - return []; - - if (start.first() === vertex.id && start.tags.oneway === 'yes') - return []; - if (start.last() === vertex.id && start.tags.oneway === '-1') - return []; - - function withRestriction(turn) { - graph.parentRelations(graph.entity(turn.from.way)).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.way && - v && v.id === turn.via.node && - t && t.id === turn.to.way) { - turn.restriction = relation.id; - } else if (/^only_/.test(relation.tags.restriction) && - f && f.id === turn.from.way && - v && v.id === turn.via.node && - t && t.id !== turn.to.way) { - turn.restriction = relation.id; - turn.indirect_restriction = true; + graph.parentRelations(way).forEach(function(relation) { + if (relation.isRestriction()) { + if (relation.isValidRestriction(graph)) { + vgraph = vgraph.replace(relation); + } else if (relation.isComplete(graph)) { + actions.push(actionDeleteRelation(relation.id)); } - }); - - return osmTurn(turn); - } - - - var from = { - node: fromNodeId, - way: start.id.split(/-(a|b)/)[0] - }, - via = { node: vertex.id }, - turns = []; - - _each(highways, function(end, adjacentNodeId) { - if (end === start) - return; - - // backward - if (end.first() !== vertex.id && end.tags.oneway !== 'yes') { - turns.push(withRestriction({ - from: from, - via: via, - to: { - node: adjacentNodeId, - way: end.id.split(/-(a|b)/)[0] - } - })); } - - // forward - if (end.last() !== vertex.id && end.tags.oneway !== '-1') { - turns.push(withRestriction({ - from: from, - via: via, - to: { - node: adjacentNodeId, - way: end.id.split(/-(a|b)/)[0] - } - })); - } - }); + }); + + + // STEP 3: Force all oneways to be drawn in the forward direction + ways.forEach(function(w) { + var way = vgraph.entity(w.id); + if (way.tags.oneway === '-1') { + var action = actionReverse(way.id, { reverseOneway: true }); + actions.push(action); + vgraph = action(vgraph); + } + }); + + + // STEP 4: Split ways on key vertices + var origCount = osmEntity.id.next.way; + vertices.forEach(function(v) { + // This is an odd way to do it, but we need to find all the ways that + // will be split here, then split them one at a time to ensure that these + // actions can be replayed on the main graph exactly in the same order. + // (It is unintuitive, but the order of ways returned from graph.parentWays() + // is arbitrary, depending on how the main graph and vgraph were built) + var splitAll = actionSplit(v.id); + if (!splitAll.disabled(vgraph)) { + splitAll.ways(vgraph).forEach(function(way) { + var splitOne = actionSplit(v.id).limitWays([way.id]); + actions.push(splitOne); + vgraph = splitOne(vgraph); + }); + } + }); + + // In here is where we should also split the intersection at nearby junction. + // for https://github.com/mapbox/iD-internal/issues/31 + // nearbyVertices.forEach(function(v) { + // }); + + // Reasons why we reset the way id count here: + // 1. Continuity with way ids created by the splits so that we can replay + // these actions later if the user decides to create a turn restriction + // 2. Avoids churning way ids just by hovering over a vertex + // and displaying the turn restriction editor + osmEntity.id.next.way = origCount; + + + // STEP 5: Update arrays to point to vgraph entities + vertexIds = vertices.map(function(v) { return v.id; }); + vertices = []; + ways = []; + + vertexIds.forEach(function(id) { + var vertex = vgraph.entity(id); + var parents = vgraph.parentWays(vertex); + + vertices.push(vertex); + ways = ways.concat(parents); + }); + + vertices = _uniq(vertices); + ways = _uniq(ways); + + vertexIds = vertices.map(function(v) { return v.id; }); + wayIds = ways.map(function(w) { return w.id; }); + + + // STEP 6: Update the ways with some metadata that will be useful for + // walking the intersection graph later and rendering turn arrows. + + function withMetadata(way, vertexIds) { + var __oneWay = way.isOneWay(); + + // which affixes are key vertices? + var __first = (vertexIds.indexOf(way.first()) !== -1); + var __last = (vertexIds.indexOf(way.last()) !== -1); + + // what roles is this way eligible for? + var __via = (__first && __last); + var __from = ((__first && !__oneWay) || __last); + var __to = (__first || (__last && !__oneWay)); + + return way.update({ + __first: __first, + __last: __last, + __from: __from, + __via: __via, + __to: __to, + __oneWay: __oneWay + }); + } + + ways = []; + wayIds.forEach(function(id) { + var way = withMetadata(vgraph.entity(id), vertexIds); + vgraph = vgraph.replace(way); + ways.push(way); + }); + + + // STEP 7: Simplify - This is an iterative process where we: + // 1. Find trivial vertices with only 2 parents + // 2. trim off the leaf way from those vertices and remove from vgraph + + var keepGoing; + var removeWayIds = []; + var removeVertexIds = []; + + do { + keepGoing = false; + checkVertices = vertexIds.slice(); + + for (i = 0; i < checkVertices.length; i++) { + var vertexId = checkVertices[i]; + vertex = vgraph.hasEntity(vertexId); + + if (!vertex) { + vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + removeVertexIds.push(vertexId); + continue; + } + + parents = vgraph.parentWays(vertex); + if (parents.length < 3) { + vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + } + + if (parents.length === 2) { // vertex with 2 parents is trivial + var a = parents[0]; + var b = parents[1]; + var aIsLeaf = a && !a.__via; + var bIsLeaf = b && !b.__via; + var leaf, survivor; + + if (aIsLeaf && !bIsLeaf) { + leaf = a; + survivor = b; + } else if (!aIsLeaf && bIsLeaf) { + leaf = b; + survivor = a; + } + + if (leaf && survivor) { + survivor = withMetadata(survivor, vertexIds); // update survivor way + vgraph = vgraph.replace(survivor).remove(leaf); // update graph + removeWayIds.push(leaf.id); + keepGoing = true; + } + } + + parents = vgraph.parentWays(vertex); + + if (parents.length < 2) { // vertex is no longer a key vertex + vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + removeVertexIds.push(vertexId); + keepGoing = true; + } + + if (parents.length < 1) { // vertex is no longer attached to anything + vgraph = vgraph.remove(vertex); + } + + } + } while (keepGoing); + + + vertices = vertices + .filter(function(vertex) { return removeVertexIds.indexOf(vertex.id) === -1; }) + .map(function(vertex) { return vgraph.entity(vertex.id); }); + ways = ways + .filter(function(way) { return removeWayIds.indexOf(way.id) === -1; }) + .map(function(way) { return vgraph.entity(way.id); }); + + + // OK! Here is our intersection.. + var intersection = { + graph: vgraph, + actions: actions, + vertices: vertices, + ways: ways, + }; + + + + // Get all the valid turns through this intersection given a starting way id. + // This operates on the virtual graph for everything. + // + // Basically, walk through all possible paths from starting way, + // honoring the existing turn restrictions as we go (watch out for loops!) + // + // For each path found, generate and return a `osmTurn` datastructure. + // + intersection.turns = function(fromWayId) { + if (!fromWayId) return []; + + var vgraph = intersection.graph; + var keyVertexIds = intersection.vertices.map(function(v) { return v.id; }); + var keyWayIds = intersection.ways.map(function(w) { return w.id; }); + + var start = vgraph.entity(fromWayId); + if (!start || !(start.__from || start.__via)) return []; + + var maxPathLength = 7; // from-*-via-*-via-*-to (2 vias max) + var maxStepDist = 20; // meters + var turns = []; + + step(start); + return turns; + + + // traverse the intersection graph and find all the valid paths + function step(entity, currPath, currRestrictions, matchedRestriction) { + currPath = _clone(currPath || []); + if (currPath.length >= maxPathLength) return; + currPath.push(entity.id); + currRestrictions = _clone(currRestrictions || []); + + if (entity.type === 'node') { + var parents = vgraph.parentWays(entity); + var nextWays = []; + + // which ways can we step into? + for (var i = 0; i < parents.length; i++) { + var way = parents[i]; + + // if next way is a oneway incoming to this vertex, skip + if (way.__oneWay && way.nodes[0] !== entity.id) continue; + + // if we have seen it before (allowing for an initial u-turn), skip + if (currPath.indexOf(way.id) !== -1 && currPath.length >= 3) continue; + + // Check all "current" restrictions (where we've already walked the `from`) + var restrict = undefined; + for (var j = 0; j < currRestrictions.length; j++) { + var restriction = currRestrictions[j]; + var v = restriction.membersByRole('via'); + var t = restriction.memberByRole('to'); + var isOnly = /^only_/.test(restriction.tags.restriction); + + // Are all the vias part of this local intersection? + // This matters for flagging "indirect" restrictions + var isLocalVia; + if (v.length === 1 && v[0].type === 'node') { + isLocalVia = (keyVertexIds.indexOf(v[0].id) !== -1); + } else { + isLocalVia = _every(v, function(via) { return keyWayIds.indexOf(via.id) !== -1; }); + } + + // Does this path match the turn restriction? + var isMatch = false; + if ( // match via node, to way + v.length === 1 && + v[0].type === 'node' && + v[0].id === entity.id && + t.id === way.id + ) { + isMatch = true; + } else if ( // match via ways, to way + _every(v, function(via) { return currPath.indexOf(via.id) !== -1; }) && + t.id === way.id + ) { + isMatch = true; + } + + if (isMatch && isOnly) { + restrict = { id: restriction.id, only: true }; + break; + } else if (isMatch && !isOnly) { + restrict = { id: restriction.id, direct: true }; + break; + } else if (!isMatch && isOnly && isLocalVia) { + restrict = { id: restriction.id, indirect: true }; + // no break - keep looking for a "better" direct or only + } + } + + nextWays.push({ way: way, restrict: restrict }); + } + + nextWays.forEach(function(nextWay) { + step(nextWay.way, currPath, currRestrictions, nextWay.restrict); + }); + + + } else { // entity.type === 'way' + if (currPath.length >= 3) { // this is a "complete" path.. + var turn = pathToTurn(currPath); + if (turn) { + if (matchedRestriction) { + turn.restriction = matchedRestriction.id; + turn.only = matchedRestriction.only; + turn.direct = matchedRestriction.direct; + turn.indirect = matchedRestriction.indirect; + } + turns.push(osmTurn(turn)); + } + + if (currPath[0] === currPath[2]) return; // we made a u-turn - stop here + } + + if (matchedRestriction) return; // don't advance any further + + // which nodes can we step into? + var n1 = vgraph.entity(entity.first()), + n2 = vgraph.entity(entity.last()), + dist = n1.loc && n2.loc && geoSphericalDistance(n1.loc, n2.loc), + nextNodes = []; + + if (currPath.length > 1) { + if (dist > maxStepDist) return; // the next node is too far + if (!entity.__via) return; // this way is a leaf / can't be a via + } + + if (!entity.__oneWay && // bidirectional.. + keyVertexIds.indexOf(n1.id) !== -1 && // key vertex.. + currPath.indexOf(n1.id) === -1) { // haven't seen it yet.. + nextNodes.push(n1); // can advance to first node + } + if (keyVertexIds.indexOf(n2.id) !== -1 && // key vertex.. + currPath.indexOf(n2.id) === -1) { // haven't seen it yet.. + nextNodes.push(n2); // can advance to last node + } + + // gather restrictions FROM this way + var fromRestrictions = vgraph.parentRelations(entity).filter(function(r) { + if (!r.isRestriction()) return false; + var f = r.memberByRole('from'); + return f && f.id === entity.id; + }); + + nextNodes.forEach(function(node) { + step(node, currPath, currRestrictions.concat(fromRestrictions), false); + }); + } + } + + + // assumes path is alternating way-node-way of odd length + function pathToTurn(path) { + if (path.length < 3) return; + var fromWayId, fromNodeId, fromVertexId; + var toWayId, toNodeId, toVertexId; + var viaWayIds, viaNodeId, isUturn; + + fromWayId = path[0]; + toWayId = path[path.length - 1]; + + if (path.length === 3 && fromWayId === toWayId) { // u turn + var way = vgraph.entity(fromWayId); + if (way.__oneWay) return null; + + isUturn = true; + viaNodeId = fromVertexId = toVertexId = path[1]; + fromNodeId = toNodeId = adjacentNode(fromWayId, viaNodeId); + + } else { + isUturn = false; + fromVertexId = path[1]; + fromNodeId = adjacentNode(fromWayId, fromVertexId); + toVertexId = path[path.length - 2]; + toNodeId = adjacentNode(toWayId, toVertexId); + + if (path.length === 3) { + viaNodeId = path[1]; + } else { + viaWayIds = path.filter(function(entityId) { return entityId[0] === 'w'; }); + viaWayIds = viaWayIds.slice(1, viaWayIds.length - 1); // remove first, last + } + } + + return { + key: path.join(','), + path: path, + from: { node: fromNodeId, way: fromWayId, vertex: fromVertexId }, + via: { node: viaNodeId, ways: viaWayIds }, + to: { node: toNodeId, way: toWayId, vertex: toVertexId }, + u: isUturn + }; + + + function adjacentNode(wayId, affixId) { + var nodes = vgraph.entity(wayId).nodes; + return affixId === nodes[0] ? nodes[1] : nodes[nodes.length - 2]; + } - // U-turn - if (start.tags.oneway !== 'yes' && start.tags.oneway !== '-1') { - turns.push(withRestriction({ - from: from, - via: via, - to: from, - u: true - })); } - return turns; }; return intersection; } -export function osmInferRestriction(graph, from, via, to, projection) { - var fromWay = graph.entity(from.way), - fromNode = graph.entity(from.node), - toWay = graph.entity(to.way), - toNode = graph.entity(to.node), - viaNode = graph.entity(via.node), - fromOneWay = (fromWay.tags.oneway === 'yes' && fromWay.last() === via.node) || - (fromWay.tags.oneway === '-1' && fromWay.first() === via.node), - toOneWay = (toWay.tags.oneway === 'yes' && toWay.first() === via.node) || - (toWay.tags.oneway === '-1' && toWay.last() === via.node), - angle = geoAngle(viaNode, fromNode, projection) - - geoAngle(viaNode, toNode, projection); +export function osmInferRestriction(graph, from, to, projection) { + var fromWay = graph.entity(from.way); + var fromNode = graph.entity(from.node); + var fromVertex = graph.entity(from.vertex); + var toWay = graph.entity(to.way); + var toNode = graph.entity(to.node); + var toVertex = graph.entity(to.vertex); + + var fromOneWay = (fromWay.tags.oneway === 'yes'); + var toOneWay = (toWay.tags.oneway === 'yes'); + var angle = geoAngle(fromVertex, fromNode, projection) - + geoAngle(toVertex, toNode, projection); angle = angle * 180 / Math.PI; diff --git a/modules/osm/relation.js b/modules/osm/relation.js index b44dbd420..8532990ed 100644 --- a/modules/osm/relation.js +++ b/modules/osm/relation.js @@ -109,6 +109,16 @@ _extend(osmRelation.prototype, { } }, + // Same as memberByRole, but returns all members with the given role + membersByRole: function(role) { + var result = []; + for (var i = 0; i < this.members.length; i++) { + if (this.members[i].role === role) { + result.push(_extend({}, this.members[i], {index: i})); + } + } + return result; + }, // Return the first member with the given id. A copy of the member object // is returned, extended with an 'index' property whose value is the member index. @@ -253,6 +263,26 @@ _extend(osmRelation.prototype, { }, + isValidRestriction: function() { + if (!this.isRestriction()) return false; + + var froms = this.members.filter(function(m) { return m.role === 'from'; }); + var vias = this.members.filter(function(m) { return m.role === 'via'; }); + var tos = this.members.filter(function(m) { return m.role === 'to'; }); + + if (froms.length !== 1 && this.tags.restriction !== 'no_entry') return false; + if (froms.some(function(m) { return m.type !== 'way'; })) return false; + + if (tos.length !== 1 && this.tags.restriction !== 'no_exit') return false; + if (tos.some(function(m) { return m.type !== 'way'; })) return false; + + if (vias.length === 0) return false; + if (vias.length > 1 && vias.some(function(m) { return m.type !== 'way'; })) return false; + + return true; + }, + + // Returns an array [A0, ... An], each Ai being an array of node arrays [Nds0, ... Ndsm], // where Nds0 is an outer ring and subsequent Ndsi's (if any i > 0) being inner rings. // @@ -264,8 +294,8 @@ _extend(osmRelation.prototype, { // rings not matched with the intended outer ring. // multipolygon: function(resolver) { - var outers = this.members.filter(function(m) { return 'outer' === (m.role || 'outer'); }), - inners = this.members.filter(function(m) { return 'inner' === m.role; }); + var outers = this.members.filter(function(m) { return 'outer' === (m.role || 'outer'); }); + var inners = this.members.filter(function(m) { return 'inner' === m.role; }); outers = osmJoinWays(outers, resolver); inners = osmJoinWays(inners, resolver); diff --git a/modules/svg/turns.js b/modules/svg/turns.js index cd16bd0dd..77c413563 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -1,26 +1,28 @@ -import { geoAngle } from '../geo'; +import { geoAngle } from '../geo/index'; export function svgTurns(projection) { return function drawTurns(selection, graph, turns) { - function key(turn) { - return [turn.from.node + turn.via.node + turn.to.node].join('-'); - } - function icon(turn) { var u = turn.u ? '-u' : ''; - if (!turn.restriction) - return '#turn-yes' + u; - var restriction = graph.entity(turn.restriction).tags.restriction; - return '#turn-' + - (!turn.indirect_restriction && /^only_/.test(restriction) ? 'only' : 'no') + u; + if (turn.direct || turn.indirect) return '#turn-no' + u; + if (turn.only) return '#turn-only' + u; + return '#turn-yes' + u; } - var layer = selection.selectAll('.layer-points .layer-points-turns'); + var layer = selection.selectAll('.data-layer-osm').selectAll('.layer-turns') + .data([0]); + + layer = layer.enter() + .append('g') + .attr('class', 'layer-osm layer-turns') + .merge(layer); + + var groups = layer.selectAll('g.turn') - .data(turns, key); + .data(turns, function(d) { return d.key; }); groups.exit() .remove(); @@ -61,11 +63,11 @@ export function svgTurns(projection) { groups .attr('transform', function (turn) { - var v = graph.entity(turn.via.node), - t = graph.entity(turn.to.node), - a = geoAngle(v, t, projection), - p = projection(v.loc), - r = turn.u ? 0 : 60; + var t = graph.entity(turn.to.node); + var v = graph.entity(turn.to.vertex); + var a = geoAngle(v, t, projection); + var p = projection(v.loc); + var r = turn.u ? 0 : 60; return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')'; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index dde654d45..e9aa6930f 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -6,44 +6,14 @@ import { } from 'd3-selection'; import { t } from '../../util/locale'; - -import { - behaviorBreathe, - behaviorHover -} from '../../behavior'; - -import { - osmEntity, - osmIntersection, - osmInferRestriction, - osmTurn -} from '../../osm'; - -import { - actionRestrictTurn, - actionUnrestrictTurn -} from '../../actions'; - -import { - geoExtent, - geoRawMercator, - geoZoomToScale -} from '../../geo'; - -import { - svgLayers, - svgLines, - svgTurns, - svgVertices -} from '../../svg'; - +import { actionRestrictTurn, actionUnrestrictTurn } from '../../actions'; +import { behaviorBreathe, behaviorHover } from '../../behavior'; +import { geoExtent, geoRawMercator } from '../../geo'; +import { osmIntersection, osmInferRestriction, osmTurn, osmWay } from '../../osm'; +import { svgLabels, svgLayers, svgLines, svgTurns, svgVertices } from '../../svg'; import { utilRebind } from '../../util/rebind'; import { utilFunctor } from '../../util'; - -import { - utilGetDimensions, - utilSetDimensions -} from '../../util/dimensions'; +import { utilGetDimensions, utilSetDimensions } from '../../util/dimensions'; export function uiFieldRestrictions(field, context) { @@ -51,19 +21,31 @@ export function uiFieldRestrictions(field, context) { var breathe = behaviorBreathe(context); var hover = behaviorHover(context); var initialized = false; + var graph; var vertexID; - var fromNodeID; + var fromWayID; - function restrictions(selection) { + function restrictions(selection, intersection) { // if form field is hidden or has detached from dom, clean up. - if (!d3_select('.inspector-wrap.inspector-hidden').empty() || !selection.node().parentNode) { + if (!d3_select('.inspector-wrap.inspector-hidden').empty() || + !selection.node().parentNode || !selection.node().parentNode.parentNode) { selection.call(restrictions.off); return; } + // try to reuse the intersection, but always rebuild it if the graph has changed + if (context.graph() !== graph || !intersection) { + graph = context.graph(); + intersection = osmIntersection(graph, vertexID); + } + var ok = (intersection.vertices.length && intersection.ways.length); + var wrap = selection.selectAll('.preset-input-wrap') - .data([0]); + .data(ok ? [0] : []); + + wrap.exit() + .remove(); var enter = wrap.enter() .append('div') @@ -73,31 +55,35 @@ export function uiFieldRestrictions(field, context) { .append('div') .attr('class', 'restriction-help'); + // hack: no actual intersection exists here, just dont show the field + if (!ok) return; - var intersection = osmIntersection(context.graph(), vertexID); - var graph = intersection.graph; - var vertex = graph.entity(vertexID); + var vgraph = intersection.graph; var filter = utilFunctor(true); + var extent = geoExtent(); var projection = geoRawMercator(); var d = utilGetDimensions(wrap.merge(enter)); var c = [d[0] / 2, d[1] / 2]; - var z = 24; + var z = intersection.vertices.length === 1 ? 22 : 20; projection - .scale(geoZoomToScale(z)); + .scale(256 * Math.pow(2, z) / (2 * Math.PI)); - var s = projection(vertex.loc); + // fit extent to include all key vertices + for (var i = 0; i < intersection.vertices.length; i++) { + extent._extend(intersection.vertices[i].extent()); + } + var s = projection(extent.center()); projection .translate([c[0] - s[0], c[1] - s[1]]) .clipExtent([[0, 0], d]); - var extent = geoExtent(projection.invert([0, d[1]]), projection.invert([d[0], 0])); - var drawLayers = svgLayers(projection, context).only('osm').dimensions(d); var drawVertices = svgVertices(projection, context); var drawLines = svgLines(projection, context); + // var drawLabels = svgLabels(projection, context, true); var drawTurns = svgTurns(projection, context); enter @@ -117,9 +103,10 @@ export function uiFieldRestrictions(field, context) { surface .call(utilSetDimensions, d) - .call(drawVertices, graph, [vertex], filter, extent, true) - .call(drawLines, graph, intersection.ways, filter) - .call(drawTurns, graph, intersection.turns(fromNodeID)); + .call(drawVertices, vgraph, intersection.vertices, filter, extent, z) + .call(drawLines, vgraph, intersection.ways, filter) + // .call(drawLabels, vgraph, intersection.ways, filter, d, true) + .call(drawTurns, vgraph, intersection.turns(fromWayID)); surface .on('click.restrictions', click) @@ -130,9 +117,9 @@ export function uiFieldRestrictions(field, context) { .selectAll('.selected') .classed('selected', false); - if (fromNodeID) { + if (fromWayID) { surface - .selectAll('.' + intersection.highways[fromNodeID].id) + .selectAll('.' + fromWayID) .classed('selected', true); } @@ -155,69 +142,111 @@ export function uiFieldRestrictions(field, context) { var datum = d3_event.target.__data__; var entity = datum && datum.properties && datum.properties.entity; - if (entity) datum = entity; + if (entity) { + datum = entity; + } - if (datum instanceof osmEntity) { - fromNodeID = intersection.adjacentNodeId(datum.id); + if (datum instanceof osmWay && (datum.__from || datum.__via)) { + fromWayID = datum.id; render(); } else if (datum instanceof osmTurn) { + var actions; if (datum.restriction) { - context.perform( + actions = intersection.actions.concat([ actionUnrestrictTurn(datum, projection), t('operations.restriction.annotation.delete') - ); + ]); } else { - context.perform( + actions = intersection.actions.concat([ actionRestrictTurn(datum, projection), t('operations.restriction.annotation.create') - ); + ]); } + context.perform.apply(context, actions); + + } else { + fromWayID = null; + render(); } } function mouseover() { var datum = d3_event.target.__data__; - if (datum instanceof osmTurn) { - var graph = context.graph(); - var presets = context.presets(); - var preset; + var entity = datum && datum.properties && datum.properties.entity; + if (entity) { + datum = entity; + } + if (datum instanceof osmWay) { + wrap.selectAll('.restriction-help') + .text(datum.id); + + } else if (datum instanceof osmTurn) { + + //DEBUG + var str = ''; if (datum.restriction) { - preset = presets.match(graph.entity(datum.restriction), graph); - } else { - preset = presets.item('type/restriction/' + - osmInferRestriction( - graph, - datum.from, - datum.via, - datum.to, - projection - ) - ); + if (datum.only) { str += 'ONLY_ '; } + if (datum.direct) { str += 'NO_ '; } + if (datum.indirect) { str += 'indirect '; } + str += datum.restriction; } + str += ' FROM ' + datum.from.way + + ' VIA ' + (datum.via.node || datum.via.ways.join(',')) + + ' TO ' + datum.to.way; + wrap.selectAll('.restriction-help') - .text(t('operations.restriction.help.' + - (datum.restriction ? 'toggle_off' : 'toggle_on'), - { restriction: preset.name() }) - ); + .text(str); + +// return; + // var presets = context.presets(), + // preset; + + // if (datum.restriction) { + // preset = presets.match(vgraph.entity(datum.restriction), vgraph); + // } else { + // preset = presets.item('type/restriction/' + + // osmInferRestriction( + // vgraph, + // datum.from, + // datum.to, + // projection + // ) + // ); + // } + + // wrap.selectAll('.restriction-help') + // .text(t('operations.restriction.help.' + + // (datum.restriction ? 'toggle_off' : 'toggle_on'), + // { restriction: preset.name() }) + // ); } } function mouseout() { - wrap.selectAll('.restriction-help') - .text(t('operations.restriction.help.' + - (fromNodeID ? 'toggle' : 'select')) - ); + + if (fromWayID) { + wrap.selectAll('.restriction-help') + .text('FROM ' + fromWayID); + } else { + wrap.selectAll('.restriction-help') + .text('Click to select the FROM way'); + } + + // wrap.selectAll('.restriction-help') + // .text(t('operations.restriction.help.' + + // (fromWayID ? 'toggle' : 'select')) + // ); } function render() { if (context.hasEntity(vertexID)) { - restrictions(selection); + restrictions(selection, intersection); } } } @@ -225,7 +254,7 @@ export function uiFieldRestrictions(field, context) { restrictions.entity = function(_) { if (!vertexID || vertexID !== _.id) { - fromNodeID = null; + fromWayID = null; vertexID = _.id; } }; diff --git a/modules/ui/init.js b/modules/ui/init.js index adeb376fb..3ceebb45c 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -68,7 +68,7 @@ export function uiInit(context) { container .append('div') .attr('id', 'sidebar') - .attr('class', 'col4') + .attr('class', 'col5') .call(ui.sidebar); var content = container @@ -94,7 +94,7 @@ export function uiInit(context) { bar .append('div') - .attr('class', 'spacer col4'); + .attr('class', 'spacer col5'); var limiter = bar.append('div') .attr('class', 'limiter'); diff --git a/test/spec/actions/restrict_turn.js b/test/spec/actions/restrict_turn.js index b5f685d96..96de8be59 100644 --- a/test/spec/actions/restrict_turn.js +++ b/test/spec/actions/restrict_turn.js @@ -1,483 +1,288 @@ describe('iD.actionRestrictTurn', function() { var projection = d3.geoMercator().scale(250 / Math.PI); - it('adds a restriction to an unrestricted turn', function() { - // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*']}), - iD.Way({id: '-', nodes: ['*', 'w']}) - ]), - action = iD.actionRestrictTurn({ + describe('via node', function() { + + it('adds a via node restriction to an unrestricted turn', function() { + // u====*--->w + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*']}), + iD.osmWay({id: '-', nodes: ['*', 'w']}) + ]); + var action = iD.actionRestrictTurn({ from: {node: 'u', way: '='}, via: {node: '*'}, to: {node: 'w', way: '-'}, restriction: 'no_right_turn' }, projection, 'r'); - graph = action(graph); + graph = action(graph); - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_right_turn'}); - expect(r.memberByRole('from').id).to.eql('='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('-'); - expect(r.memberByRole('to').type).to.eql('way'); - }); + var r = graph.entity('r'); + expect(r.tags).to.eql({type: 'restriction', restriction: 'no_right_turn'}); - it('splits the from way when necessary (forward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ + var f = r.memberByRole('from'); + expect(f.id).to.eql('='); + expect(f.type).to.eql('way'); + + var v = r.memberByRole('via'); + expect(v.id).to.eql('*'); + expect(v.type).to.eql('node'); + + var t = r.memberByRole('to'); + expect(t.id).to.eql('-'); + expect(t.type).to.eql('way'); + }); + +//TODO? + it.skip('infers the restriction type based on the turn angle', function() { + // u====*~~~~w + // | + // x + var graph = iD.coreGraph([ + iD.osmNode({id: 'u', loc: [-1, 0]}), + iD.osmNode({id: '*', loc: [ 0, 0]}), + iD.osmNode({id: 'w', loc: [ 1, 0]}), + iD.osmNode({id: 'x', loc: [ 0, -1]}), + iD.osmWay({id: '=', nodes: ['u', '*']}), + iD.osmWay({id: '-', nodes: ['*', 'x']}), + iD.osmWay({id: '~', nodes: ['*', 'w']}) + ]); + + var r1 = iD.actionRestrictTurn({ from: {node: 'u', way: '='}, via: {node: '*'}, - to: {node: 'x', way: '-'}, - restriction: 'no_right_turn' - }, projection, 'r'); + to: {node: 'x', way: '-'} + }, projection, 'r')(graph); + expect(r1.entity('r').tags.restriction).to.equal('no_right_turn'); - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_right_turn'}); - expect(r.memberByRole('from').id).to.eql('='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('-'); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the from way when necessary (backward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'w', way: '=', newID: '=='}, - via: {node: '*'}, - to: {node: 'x', way: '-'}, - restriction: 'no_left_turn' - }, projection, 'r'); - - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_left_turn'}); - expect(r.memberByRole('from').id).to.eql('=='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('-'); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the from way when necessary (straight on forward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'u', way: '=', newID: '=='}, - via: {node: '*'}, - to: {node: 'w', way: '='}, - restriction: 'no_straight_on' - }, projection, 'r'); - - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_straight_on'}); - expect(r.memberByRole('from').id).to.eql('='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('=='); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the from way when necessary (straight on backward)', function() { - // u<===*====w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['w', '*', 'u']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'u', way: '=', newID: '=='}, - via: {node: '*'}, - to: {node: 'w', way: '='}, - restriction: 'no_straight_on' - }, projection, 'r'); - - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_straight_on'}); - expect(r.memberByRole('from').id).to.eql('=='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('='); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the from way when necessary (vertex closes from)', function() { - // - // b -- c - // | | - // a -- * === w - // - var graph = iD.Graph([ - iD.Node({id: 'a', loc: [-1, 0]}), - iD.Node({id: 'b', loc: [-1, 1]}), - iD.Node({id: 'c', loc: [ 0, 1]}), - iD.Node({id: '*', loc: [ 0, 0]}), - iD.Node({id: 'w', loc: [ 1, 0]}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*']}), - iD.Way({id: '=', nodes: ['*', 'w']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'c', way: '-', newID: '--'}, - via: {node: '*'}, - to: {node: 'w', way: '='}, - restriction: 'no_left_turn' - }, projection, 'r'); - - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_left_turn'}); - expect(r.memberByRole('from').id).to.eql('--'); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('='); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the from/to way when necessary (vertex closes from/to)', function() { - // - // b -- c - // | | - // a -- * === w - // - var graph = iD.Graph([ - iD.Node({id: 'a', loc: [-1, 0]}), - iD.Node({id: 'b', loc: [-1, 1]}), - iD.Node({id: 'c', loc: [ 0, 1]}), - iD.Node({id: '*', loc: [ 0, 0]}), - iD.Node({id: 'w', loc: [ 1, 0]}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*']}), - iD.Way({id: '=', nodes: ['*', 'w']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'a', way: '-', newID: '--'}, - via: {node: '*'}, - to: {node: 'c', way: '-'}, - restriction: 'no_left_turn' - }, projection, 'r'); - - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_left_turn'}); - expect(r.memberByRole('from').id).to.eql('-'); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('--'); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the to way when necessary (forward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ + var r2 = iD.actionRestrictTurn({ from: {node: 'x', way: '-'}, via: {node: '*'}, - to: {node: 'w', way: '=', newID: '=='}, - restriction: 'no_right_turn' - }, projection, 'r'); + to: {node: 'w', way: '~'} + }, projection, 'r')(graph); + expect(r2.entity('r').tags.restriction).to.equal('no_right_turn'); - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_right_turn'}); - expect(r.memberByRole('from').id).to.eql('-'); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('=='); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the to way when necessary (backward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ + var l1 = iD.actionRestrictTurn({ from: {node: 'x', way: '-'}, via: {node: '*'}, - to: {node: 'u', way: '='}, - restriction: 'no_left_turn' - }, projection, 'r'); + to: {node: 'u', way: '='} + }, projection, 'r')(graph); + expect(l1.entity('r').tags.restriction).to.equal('no_left_turn'); - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_left_turn'}); - expect(r.memberByRole('from').id).to.eql('-'); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('='); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the to way when necessary (vertex closes to)', function() { - // - // b -- c - // | | - // a -- * === w - // - var graph = iD.Graph([ - iD.Node({id: 'a', loc: [-1, 0]}), - iD.Node({id: 'b', loc: [-1, 1]}), - iD.Node({id: 'c', loc: [ 0, 1]}), - iD.Node({id: '*', loc: [ 0, 0]}), - iD.Node({id: 'w', loc: [ 1, 0]}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*']}), - iD.Way({id: '=', nodes: ['*', 'w']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'w', way: '='}, + var l2 = iD.actionRestrictTurn({ + from: {node: 'w', way: '~'}, via: {node: '*'}, - to: {node: 'c', way: '-', newID: '--'}, - restriction: 'no_right_turn' - }, projection, 'r'); + to: {node: 'x', way: '-'} + }, projection, 'r')(graph); + expect(l2.entity('r').tags.restriction).to.equal('no_left_turn'); - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_right_turn'}); - expect(r.memberByRole('from').id).to.eql('='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('--'); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('splits the from/to way of a U-turn (forward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ + var s = iD.actionRestrictTurn({ from: {node: 'u', way: '='}, via: {node: '*'}, - to: {node: 'u', way: '='}, + to: {node: 'w', way: '~'} + }, projection, 'r')(graph); + expect(s.entity('r').tags.restriction).to.equal('no_straight_on'); + + var u = iD.actionRestrictTurn({ + from: {node: 'u', way: '='}, + via: {node: '*'}, + to: {node: 'u', way: '='} + }, projection, 'r')(graph); + expect(u.entity('r').tags.restriction).to.equal('no_u_turn'); + }); + +//TODO? + it.skip('infers no_u_turn from acute angle made by forward oneways', function() { + // * + // / \ + // w2/ \w1 + // / \ + // u x + var graph = iD.coreGraph([ + iD.osmNode({id: 'u', loc: [-1, -20]}), + iD.osmNode({id: '*', loc: [ 0, 0]}), + iD.osmNode({id: 'x', loc: [ 1, -20]}), + iD.osmWay({id: 'w1', nodes: ['x', '*'], tags: {oneway: 'yes'}}), + iD.osmWay({id: 'w2', nodes: ['*', 'u'], tags: {oneway: 'yes'}}) + ]); + + var r = iD.actionRestrictTurn({ + from: {node: 'x', way: 'w1'}, + via: {node: '*'}, + to: {node: 'u', way: 'w2'} + }, projection, 'r')(graph); + expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); + }); + +//TODO? + it.skip('infers no_u_turn from acute angle made by reverse oneways', function() { + // * + // / \ + // w2/ \w1 + // / \ + // u x + var graph = iD.coreGraph([ + iD.osmNode({id: 'u', loc: [-1, -20]}), + iD.osmNode({id: '*', loc: [ 0, 0]}), + iD.osmNode({id: 'x', loc: [ 1, -20]}), + iD.osmWay({id: 'w1', nodes: ['*', 'x'], tags: {oneway: '-1'}}), + iD.osmWay({id: 'w2', nodes: ['u', '*'], tags: {oneway: '-1'}}) + ]); + + var r = iD.actionRestrictTurn({ + from: {node: 'x', way: 'w1'}, + via: {node: '*'}, + to: {node: 'u', way: 'w2'} + }, projection, 'r')(graph); + expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); + }); + }); + + + describe('via way', function() { + + it('adds a via way restriction to an unrestricted turn', function() { + // u ==== VIA ---> w + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: 'V1'}), + iD.osmNode({id: 'V2'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', 'V1']}), + iD.osmWay({id: 'VIA', nodes: ['V1', 'V2']}), + iD.osmWay({id: '-', nodes: ['V2', 'w']}) + ]); + var action = iD.actionRestrictTurn({ + from: {node: 'u', way: '='}, + via: {ways: ['VIA']}, + to: {node: 'w', way: '-'}, restriction: 'no_u_turn' }, projection, 'r'); - graph = action(graph); + graph = action(graph); - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_u_turn'}); - expect(r.memberByRole('from').id).to.eql('='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('='); - expect(r.memberByRole('to').type).to.eql('way'); + var r = graph.entity('r'); + expect(r.tags).to.eql({type: 'restriction', restriction: 'no_u_turn'}); + + var f = r.memberByRole('from'); + expect(f.id).to.eql('='); + expect(f.type).to.eql('way'); + + var v = r.memberByRole('via'); + expect(v.id).to.eql('VIA'); + expect(v.type).to.eql('way'); + + var t = r.memberByRole('to'); + expect(t.id).to.eql('-'); + expect(t.type).to.eql('way'); + }); + + +// TODO? + + // it('infers the restriction type based on the turn angle', function() { + // // u====*~~~~w + // // | + // // x + // var graph = iD.coreGraph([ + // iD.osmNode({id: 'u', loc: [-1, 0]}), + // iD.osmNode({id: '*', loc: [ 0, 0]}), + // iD.osmNode({id: 'w', loc: [ 1, 0]}), + // iD.osmNode({id: 'x', loc: [ 0, -1]}), + // iD.osmWay({id: '=', nodes: ['u', '*']}), + // iD.osmWay({id: '-', nodes: ['*', 'x']}), + // iD.osmWay({id: '~', nodes: ['*', 'w']}) + // ]); + + // var r1 = iD.actionRestrictTurn({ + // from: {node: 'u', way: '='}, + // via: {node: '*'}, + // to: {node: 'x', way: '-'} + // }, projection, 'r')(graph); + // expect(r1.entity('r').tags.restriction).to.equal('no_right_turn'); + + // var r2 = iD.actionRestrictTurn({ + // from: {node: 'x', way: '-'}, + // via: {node: '*'}, + // to: {node: 'w', way: '~'} + // }, projection, 'r')(graph); + // expect(r2.entity('r').tags.restriction).to.equal('no_right_turn'); + + // var l1 = iD.actionRestrictTurn({ + // from: {node: 'x', way: '-'}, + // via: {node: '*'}, + // to: {node: 'u', way: '='} + // }, projection, 'r')(graph); + // expect(l1.entity('r').tags.restriction).to.equal('no_left_turn'); + + // var l2 = iD.actionRestrictTurn({ + // from: {node: 'w', way: '~'}, + // via: {node: '*'}, + // to: {node: 'x', way: '-'} + // }, projection, 'r')(graph); + // expect(l2.entity('r').tags.restriction).to.equal('no_left_turn'); + + // var s = iD.actionRestrictTurn({ + // from: {node: 'u', way: '='}, + // via: {node: '*'}, + // to: {node: 'w', way: '~'} + // }, projection, 'r')(graph); + // expect(s.entity('r').tags.restriction).to.equal('no_straight_on'); + + // var u = iD.actionRestrictTurn({ + // from: {node: 'u', way: '='}, + // via: {node: '*'}, + // to: {node: 'u', way: '='} + // }, projection, 'r')(graph); + // expect(u.entity('r').tags.restriction).to.equal('no_u_turn'); + // }); + + // it('infers no_u_turn from acute angle made by forward oneways', function() { + // // * + // // / \ + // // w2/ \w1 + // // / \ + // // u x + // var graph = iD.coreGraph([ + // iD.osmNode({id: 'u', loc: [-1, -20]}), + // iD.osmNode({id: '*', loc: [ 0, 0]}), + // iD.osmNode({id: 'x', loc: [ 1, -20]}), + // iD.osmWay({id: 'w1', nodes: ['x', '*'], tags: {oneway: 'yes'}}), + // iD.osmWay({id: 'w2', nodes: ['*', 'u'], tags: {oneway: 'yes'}}) + // ]); + + // var r = iD.actionRestrictTurn({ + // from: {node: 'x', way: 'w1'}, + // via: {node: '*'}, + // to: {node: 'u', way: 'w2'} + // }, projection, 'r')(graph); + // expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); + // }); + + // it('infers no_u_turn from acute angle made by reverse oneways', function() { + // // * + // // / \ + // // w2/ \w1 + // // / \ + // // u x + // var graph = iD.coreGraph([ + // iD.osmNode({id: 'u', loc: [-1, -20]}), + // iD.osmNode({id: '*', loc: [ 0, 0]}), + // iD.osmNode({id: 'x', loc: [ 1, -20]}), + // iD.osmWay({id: 'w1', nodes: ['*', 'x'], tags: {oneway: '-1'}}), + // iD.osmWay({id: 'w2', nodes: ['u', '*'], tags: {oneway: '-1'}}) + // ]); + + // var r = iD.actionRestrictTurn({ + // from: {node: 'x', way: 'w1'}, + // via: {node: '*'}, + // to: {node: 'u', way: 'w2'} + // }, projection, 'r')(graph); + // expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); + // }); }); - - it('splits the from/to way of a U-turn (backward)', function() { - // u====*===>w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*', 'w']}), - iD.Way({id: '-', nodes: ['*', 'x']}) - ]), - action = iD.actionRestrictTurn({ - from: {node: 'w', way: '=', newID: '=='}, - via: {node: '*'}, - to: {node: 'w', way: '=', newID: '~~'}, - restriction: 'no_u_turn' - }, projection, 'r'); - - graph = action(graph); - - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_u_turn'}); - expect(r.memberByRole('from').id).to.eql('=='); - expect(r.memberByRole('from').type).to.eql('way'); - expect(r.memberByRole('via').id).to.eql('*'); - expect(r.memberByRole('via').type).to.eql('node'); - expect(r.memberByRole('to').id).to.eql('=='); - expect(r.memberByRole('to').type).to.eql('way'); - }); - - it('infers the restriction type based on the turn angle', function() { - // u====*~~~~w - // | - // x - var graph = iD.Graph([ - iD.Node({id: 'u', loc: [-1, 0]}), - iD.Node({id: '*', loc: [ 0, 0]}), - iD.Node({id: 'w', loc: [ 1, 0]}), - iD.Node({id: 'x', loc: [ 0, -1]}), - iD.Way({id: '=', nodes: ['u', '*']}), - iD.Way({id: '-', nodes: ['*', 'x']}), - iD.Way({id: '~', nodes: ['*', 'w']}) - ]); - - var r1 = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'x', way: '-'} - }, projection, 'r')(graph); - expect(r1.entity('r').tags.restriction).to.equal('no_right_turn'); - - var r2 = iD.actionRestrictTurn({ - from: {node: 'x', way: '-'}, - via: {node: '*'}, - to: {node: 'w', way: '~'} - }, projection, 'r')(graph); - expect(r2.entity('r').tags.restriction).to.equal('no_right_turn'); - - var l1 = iD.actionRestrictTurn({ - from: {node: 'x', way: '-'}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }, projection, 'r')(graph); - expect(l1.entity('r').tags.restriction).to.equal('no_left_turn'); - - var l2 = iD.actionRestrictTurn({ - from: {node: 'w', way: '~'}, - via: {node: '*'}, - to: {node: 'x', way: '-'} - }, projection, 'r')(graph); - expect(l2.entity('r').tags.restriction).to.equal('no_left_turn'); - - var s = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '~'} - }, projection, 'r')(graph); - expect(s.entity('r').tags.restriction).to.equal('no_straight_on'); - - var u = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }, projection, 'r')(graph); - expect(u.entity('r').tags.restriction).to.equal('no_u_turn'); - }); - - it('infers no_u_turn from acute angle made by forward oneways', function() { - // * - // / \ - // w2/ \w1 - // / \ - // u x - var graph = iD.Graph([ - iD.Node({id: 'u', loc: [-1, -20]}), - iD.Node({id: '*', loc: [ 0, 0]}), - iD.Node({id: 'x', loc: [ 1, -20]}), - iD.Way({id: 'w1', nodes: ['x', '*'], tags: {oneway: 'yes'}}), - iD.Way({id: 'w2', nodes: ['*', 'u'], tags: {oneway: 'yes'}}) - ]); - - var r = iD.actionRestrictTurn({ - from: {node: 'x', way: 'w1'}, - via: {node: '*'}, - to: {node: 'u', way: 'w2'} - }, projection, 'r')(graph); - expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); - }); - - it('infers no_u_turn from acute angle made by reverse oneways', function() { - // * - // / \ - // w2/ \w1 - // / \ - // u x - var graph = iD.Graph([ - iD.Node({id: 'u', loc: [-1, -20]}), - iD.Node({id: '*', loc: [ 0, 0]}), - iD.Node({id: 'x', loc: [ 1, -20]}), - iD.Way({id: 'w1', nodes: ['*', 'x'], tags: {oneway: '-1'}}), - iD.Way({id: 'w2', nodes: ['u', '*'], tags: {oneway: '-1'}}) - ]); - - var r = iD.actionRestrictTurn({ - from: {node: 'x', way: 'w1'}, - via: {node: '*'}, - to: {node: 'u', way: 'w2'} - }, projection, 'r')(graph); - expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); - }); - }); diff --git a/test/spec/osm/intersection.js b/test/spec/osm/intersection.js index ac4d481e0..a0a3818e4 100644 --- a/test/spec/osm/intersection.js +++ b/test/spec/osm/intersection.js @@ -1,108 +1,114 @@ describe('iD.osmIntersection', function() { describe('highways', function() { it('excludes non-highways', function() { - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*']}), - iD.Way({id: '-', nodes: ['*', 'w']}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*']}), + iD.osmWay({id: '-', nodes: ['*', 'w']}) ]); expect(iD.osmIntersection(graph, '*').ways).to.eql([]); }); it('excludes degenerate highways', function() { - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*'], tags: {highway: 'residential'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['*'], tags: {highway: 'residential'}}) ]); - var ids = iD.osmIntersection(graph, '*').ways.map(function (w) { return w.id; }); - expect(ids).to.have.same.members(['=']); + var result = iD.osmIntersection(graph, '*').ways; + expect(result.map(function(i) { return i.id; })).to.eql(['=']); }); - it('excludes coincident highways', function() { - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['u', '*'], tags: {highway: 'residential'}}) - ]); - expect(iD.osmIntersection(graph, '*').ways).to.eql([]); - }); +//TODO? + // it('excludes coincident highways', function() { + // var graph = iD.coreGraph([ + // iD.osmNode({id: 'u'}), + // iD.osmNode({id: '*'}), + // iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + // iD.osmWay({id: '-', nodes: ['u', '*'], tags: {highway: 'residential'}}) + // ]); + // expect(iD.osmIntersection(graph, '*').ways).to.eql([]); + // }); it('includes line highways', function() { - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w']}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['*', 'w']}) ]); - var ids = iD.osmIntersection(graph, '*').ways.map(function (w) { return w.id; }); - expect(ids).to.have.same.members(['=']); + var result = iD.osmIntersection(graph, '*').ways; + expect(result.map(function(i) { return i.id; })).to.eql(['=']); }); it('excludes area highways', function() { - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*', 'w'], tags: {highway: 'pedestrian', area: 'yes'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*', 'w'], tags: {highway: 'pedestrian', area: 'yes'}}) ]); expect(iD.osmIntersection(graph, '*').ways).to.eql([]); }); it('auto-splits highways at the intersection', function() { - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*', 'w'], tags: {highway: 'residential'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*', 'w'], tags: {highway: 'residential'}}) ]); - var ids = iD.osmIntersection(graph, '*').ways.map(function (w) { return w.id; }); - expect(ids).to.have.ordered.members(['=-a', '=-b']); + expect(iD.osmIntersection(graph, '*').ways.length).to.eql(2); }); }); describe('#turns', function() { it('permits turns onto a way forward', function() { // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].u).to.be.not.ok; }); it('permits turns onto a way backward', function() { // u====*<---w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['w', '*'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['w', '*'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].u).to.be.not.ok; }); it('permits turns from a way that must be split', function() { @@ -111,33 +117,29 @@ describe('iD.osmIntersection', function() { // u===* // | // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['w', '*', 'x'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('w'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmNode({id: 'x'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['w', '*', 'x'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('-'); expect(turns.length).to.eql(3); - expect(turns[0]).to.eql({ - from: {node: 'w', way: '-'}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }); - expect(turns[1]).to.eql({ - from: {node: 'w', way: '-'}, - via: {node: '*'}, - to: {node: 'x', way: '-'} - }); - expect(turns[2]).to.eql({ - from: {node: 'w', way: '-'}, - via: {node: '*'}, - to: {node: 'w', way: '-'}, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('-,*,='); + expect(turns[0].u).to.be.not.ok; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('-,*,-'); + expect(turns[1].u).to.be.true; + + expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[2].key).to.match(/^-,\*,w-\d+$/); // new way + expect(turns[2].u).to.be.not.ok; }); it('permits turns to a way that must be split', function() { @@ -146,244 +148,243 @@ describe('iD.osmIntersection', function() { // u===* // | // x - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Node({id: 'x'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['w', '*', 'x'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmNode({id: 'x'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['w', '*', 'x'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(3); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'x', way: '-'} - }); - expect(turns[2]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='}, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].u).to.be.not.ok; + + expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[2].key).to.match(/^=,\*,w-\d+$/); // new way + expect(turns[2].u).to.be.not.ok; }); it('permits turns from a oneway forward', function() { // u===>v----w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential', oneway: 'yes'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential', oneway: 'yes'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) + ]); - expect(turns).to.eql([{ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }]); + var turns = iD.osmIntersection(graph, '*').turns('='); + expect(turns.length).to.eql(1); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].u).to.be.not.ok; }); it('permits turns from a reverse oneway backward', function() { // u<===*----w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential', oneway: '-1'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential', oneway: '-1'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) + ]); - expect(turns).to.eql([{ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }]); + var turns = iD.osmIntersection(graph, '*').turns('='); + expect(turns.length).to.eql(1); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].u).to.be.not.ok; }); it('omits turns from a oneway backward', function() { // u<===*----w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential', oneway: 'yes'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential', oneway: 'yes'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) ]); expect(iD.osmIntersection(graph, '*').turns('u')).to.eql([]); }); it('omits turns from a reverse oneway forward', function() { // u===>*----w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential', oneway: '-1'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential', oneway: '-1'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) ]); expect(iD.osmIntersection(graph, '*').turns('u')).to.eql([]); }); it('permits turns onto a oneway forward', function() { // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential', oneway: 'yes'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential', oneway: 'yes'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].u).to.be.not.ok; }); it('permits turns onto a reverse oneway backward', function() { // u====*<---w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['w', '*'], tags: {highway: 'residential', oneway: '-1'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['w', '*'], tags: {highway: 'residential', oneway: '-1'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'} - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].u).to.be.not.ok; }); it('omits turns onto a oneway backward', function() { // u====*<---w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['w', '*'], tags: {highway: 'residential', oneway: 'yes'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['w', '*'], tags: {highway: 'residential', oneway: 'yes'}}) ]); - expect(iD.osmIntersection(graph, '*').turns('u').length).to.eql(1); + + var turns = iD.osmIntersection(graph, '*').turns('='); + expect(turns.length).to.eql(1); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; }); it('omits turns onto a reverse oneway forward', function() { // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential', oneway: '-1'}}) + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential', oneway: '-1'}}) ]); - expect(iD.osmIntersection(graph, '*').turns('u').length).to.eql(1); - }); - it('includes U-turns', function() { - // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var turns = iD.osmIntersection(graph, '*').turns('='); + expect(turns.length).to.eql(1); - expect(turns.length).to.eql(2); - expect(turns[1]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='}, - u: true - }); + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; }); it('restricts turns with a restriction relation', function() { // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}), - iD.Relation({id: 'r', tags: {type: 'restriction'}, members: [ - {id: '=', role: 'from', type: 'way'}, - {id: '-', role: 'to', type: 'way'}, - {id: '*', role: 'via', type: 'node'} - ]}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}), + iD.osmRelation({id: 'r', tags: {type: 'restriction'}, members: [ + {id: '=', role: 'from', type: 'way'}, + {id: '-', role: 'to', type: 'way'}, + {id: '*', role: 'via', type: 'node'} + ]}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'}, - restriction: 'r' - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].u).to.be.not.ok; + expect(turns[1].restriction).to.eql('r'); + expect(turns[1].direct).to.be.true; + expect(turns[1].indirect).to.be.not.ok; + expect(turns[1].only).to.be.not.ok; }); it('restricts turns affected by an only_* restriction relation', function() { // u====*~~~~v // | // w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: 'v'}), - iD.Node({id: 'w'}), - iD.Node({id: '*'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '~', nodes: ['v', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['w', '*'], tags: {highway: 'residential'}}), - iD.Relation({id: 'r', tags: {type: 'restriction', restriction: 'only_right_turn'}, members: [ - {id: '=', role: 'from', type: 'way'}, - {id: '-', role: 'to', type: 'way'}, - {id: '*', role: 'via', type: 'node'} - ]}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: 'v'}), + iD.osmNode({id: 'w'}), + iD.osmNode({id: '*'}), + iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '~', nodes: ['v', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '-', nodes: ['w', '*'], tags: {highway: 'residential'}}), + iD.osmRelation({id: 'r', tags: {type: 'restriction', restriction: 'only_right_turn'}, members: [ + {id: '=', role: 'from', type: 'way'}, + {id: '-', role: 'to', type: 'way'}, + {id: '*', role: 'via', type: 'node'} + ]}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(3); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'v', way: '~'}, - restriction: 'r', - indirect_restriction: true - }); - expect(turns[1]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'}, - restriction: 'r' - }); - expect(turns[2]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='}, - restriction: 'r', - indirect_restriction: true, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,~'); + expect(turns[1].restriction).to.eql('r'); + expect(turns[1].u).to.be.not.ok; + expect(turns[1].direct).to.be.not.ok; + expect(turns[1].indirect).to.be.true; + expect(turns[1].only).to.be.not.ok; + + expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[2].key).to.eql('=,*,-'); + expect(turns[2].restriction).to.eql('r'); + expect(turns[2].u).to.be.not.ok; + expect(turns[2].direct).to.be.not.ok; + expect(turns[2].indirect).to.be.not.ok; + expect(turns[2].only).to.be.true; }); it('permits turns to a circular way', function() { @@ -392,34 +393,30 @@ describe('iD.osmIntersection', function() { // | | // a -- * === u // - var graph = iD.Graph([ - iD.Node({id: 'a'}), - iD.Node({id: 'b'}), - iD.Node({id: 'c'}), - iD.Node({id: '*'}), - iD.Node({id: 'u'}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'u'}), + iD.osmWay({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(3); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'a', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'c', way: '-'} - }); - expect(turns[2]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='}, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].u).to.be.not.ok; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,='); + expect(turns[1].u).to.be.true; + + expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[2].key).to.match(/^=,\*,w-\d+$/); // new way + expect(turns[2].u).to.be.not.ok; }); it('permits turns from a circular way', function() { @@ -428,34 +425,30 @@ describe('iD.osmIntersection', function() { // | | // a -- * === u // - var graph = iD.Graph([ - iD.Node({id: 'a'}), - iD.Node({id: 'b'}), - iD.Node({id: 'c'}), - iD.Node({id: '*'}), - iD.Node({id: 'u'}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('a'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'u'}), + iD.osmWay({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential'}}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('-'); expect(turns.length).to.eql(3); - expect(turns[0]).to.eql({ - from: {node: 'a', way: '-'}, - via: {node: '*'}, - to: {node: 'c', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'a', way: '-'}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }); - expect(turns[2]).to.eql({ - from: {node: 'a', way: '-'}, - via: {node: '*'}, - to: {node: 'a', way: '-'}, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('-,*,-'); + expect(turns[0].u).to.be.true; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('-,*,='); + expect(turns[1].u).to.be.not.ok; + + expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[2].key).to.match(/^-,\*,w-\d+$/); // new way + expect(turns[2].u).to.be.not.ok; }); it('permits turns to a oneway circular way', function() { @@ -464,29 +457,26 @@ describe('iD.osmIntersection', function() { // | | // a -- * === u // - var graph = iD.Graph([ - iD.Node({id: 'a'}), - iD.Node({id: 'b'}), - iD.Node({id: 'c'}), - iD.Node({id: '*'}), - iD.Node({id: 'u'}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: 'yes'}}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'u'}), + iD.osmWay({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: 'yes'}}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'a', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='}, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].u).to.be.not.ok; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,='); + expect(turns[1].u).to.be.true; }); it('permits turns to a reverse oneway circular way', function() { @@ -495,29 +485,26 @@ describe('iD.osmIntersection', function() { // | | // a -- * === u // - var graph = iD.Graph([ - iD.Node({id: 'a'}), - iD.Node({id: 'b'}), - iD.Node({id: 'c'}), - iD.Node({id: '*'}), - iD.Node({id: 'u'}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: '-1'}}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('u'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'u'}), + iD.osmWay({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: '-1'}}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) + ]); + var turns = iD.osmIntersection(graph, '*').turns('='); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'c', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='}, - u: true - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].u).to.be.not.ok; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql('=,*,='); + expect(turns[1].u).to.be.true; }); it('permits turns from a oneway circular way', function() { @@ -526,28 +513,28 @@ describe('iD.osmIntersection', function() { // | | // a -- * === u // - var graph = iD.Graph([ - iD.Node({id: 'a'}), - iD.Node({id: 'b'}), - iD.Node({id: 'c'}), - iD.Node({id: '*'}), - iD.Node({id: 'u'}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: 'yes'}}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('c'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'u'}), + iD.osmWay({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: 'yes'}}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) + ]); + var intersection = iD.osmIntersection(graph, '*'); + var newWay = intersection.ways.find(function(w) { return /^w-\d+$/.test(w.id); }); + var turns = iD.osmIntersection(graph, '*').turns(newWay.id); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'c', way: '-'}, - via: {node: '*'}, - to: {node: 'a', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'c', way: '-'}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql(newWay.id + ',*,-'); + expect(turns[0].u).to.be.not.ok; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql(newWay.id + ',*,='); + expect(turns[1].u).to.be.not.ok; }); it('permits turns from a reverse oneway circular way', function() { @@ -556,28 +543,28 @@ describe('iD.osmIntersection', function() { // | | // a -- * === u // - var graph = iD.Graph([ - iD.Node({id: 'a'}), - iD.Node({id: 'b'}), - iD.Node({id: 'c'}), - iD.Node({id: '*'}), - iD.Node({id: 'u'}), - iD.Way({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: '-1'}}), - iD.Way({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) - ]), - turns = iD.osmIntersection(graph, '*').turns('a'); + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'u'}), + iD.osmWay({id: '-', nodes: ['*', 'a', 'b', 'c', '*'], tags: {highway: 'residential', oneway: '-1'}}), + iD.osmWay({id: '=', nodes: ['*', 'u'], tags: {highway: 'residential'}}) + ]); + var intersection = iD.osmIntersection(graph, '*'); + var newWay = intersection.ways.find(function(w) { return /^w-\d+$/.test(w.id); }); + var turns = iD.osmIntersection(graph, '*').turns(newWay.id); expect(turns.length).to.eql(2); - expect(turns[0]).to.eql({ - from: {node: 'a', way: '-'}, - via: {node: '*'}, - to: {node: 'c', way: '-'} - }); - expect(turns[1]).to.eql({ - from: {node: 'a', way: '-'}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }); + + expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[0].key).to.eql(newWay.id + ',*,-'); + expect(turns[0].u).to.be.not.ok; + + expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); + expect(turns[1].key).to.eql(newWay.id + ',*,='); + expect(turns[1].u).to.be.not.ok; }); }); diff --git a/test/spec/osm/relation.js b/test/spec/osm/relation.js index 4d449d226..17fcc222c 100644 --- a/test/spec/osm/relation.js +++ b/test/spec/osm/relation.js @@ -1,98 +1,98 @@ describe('iD.osmRelation', function () { if (iD.debug) { it('freezes nodes', function () { - expect(Object.isFrozen(iD.Relation().members)).to.be.true; + expect(Object.isFrozen(iD.osmRelation().members)).to.be.true; }); } it('returns a relation', function () { - expect(iD.Relation()).to.be.an.instanceOf(iD.Relation); - expect(iD.Relation().type).to.equal('relation'); + expect(iD.osmRelation()).to.be.an.instanceOf(iD.osmRelation); + expect(iD.osmRelation().type).to.equal('relation'); }); it('defaults members to an empty array', function () { - expect(iD.Relation().members).to.eql([]); + expect(iD.osmRelation().members).to.eql([]); }); it('sets members as specified', function () { - expect(iD.Relation({members: ['n-1']}).members).to.eql(['n-1']); + expect(iD.osmRelation({members: ['n-1']}).members).to.eql(['n-1']); }); it('defaults tags to an empty object', function () { - expect(iD.Relation().tags).to.eql({}); + expect(iD.osmRelation().tags).to.eql({}); }); it('sets tags as specified', function () { - expect(iD.Relation({tags: {foo: 'bar'}}).tags).to.eql({foo: 'bar'}); + expect(iD.osmRelation({tags: {foo: 'bar'}}).tags).to.eql({foo: 'bar'}); }); describe('#copy', function () { it('returns a new Relation', function () { - var r = iD.Relation({id: 'r'}), - result = r.copy(null, {}); + var r = iD.osmRelation({id: 'r'}); + var result = r.copy(null, {}); - expect(result).to.be.an.instanceof(iD.Relation); + expect(result).to.be.an.instanceof(iD.osmRelation); expect(result).not.to.equal(r); }); it('adds the new Relation to input object', function () { - var r = iD.Relation({id: 'r'}), - copies = {}, - result = r.copy(null, copies); + var r = iD.osmRelation({id: 'r'}); + var copies = {}; + var result = r.copy(null, copies); expect(Object.keys(copies)).to.have.length(1); expect(copies.r).to.equal(result); }); it('returns an existing copy in input object', function () { - var r = iD.Relation({id: 'r'}), - copies = {}, - result1 = r.copy(null, copies), - result2 = r.copy(null, copies); + var r = iD.osmRelation({id: 'r'}); + var copies = {}; + var result1 = r.copy(null, copies); + var result2 = r.copy(null, copies); expect(Object.keys(copies)).to.have.length(1); expect(result1).to.equal(result2); }); it('deep copies members', function () { - var a = iD.Node({id: 'a'}), - b = iD.Node({id: 'b'}), - c = iD.Node({id: 'c'}), - w = iD.Way({id: 'w', nodes: ['a','b','c','a']}), - r = iD.Relation({id: 'r', members: [{id: 'w', role: 'outer'}]}), - graph = iD.Graph([a, b, c, w, r]), - copies = {}, - result = r.copy(graph, copies); + var a = iD.osmNode({id: 'a'}); + var b = iD.osmNode({id: 'b'}); + var c = iD.osmNode({id: 'c'}); + var w = iD.osmWay({id: 'w', nodes: ['a','b','c','a']}); + var r = iD.osmRelation({id: 'r', members: [{id: 'w', role: 'outer'}]}); + var graph = iD.coreGraph([a, b, c, w, r]); + var copies = {}; + var result = r.copy(graph, copies); expect(Object.keys(copies)).to.have.length(5); - expect(copies.w).to.be.an.instanceof(iD.Way); - expect(copies.a).to.be.an.instanceof(iD.Node); - expect(copies.b).to.be.an.instanceof(iD.Node); - expect(copies.c).to.be.an.instanceof(iD.Node); + expect(copies.w).to.be.an.instanceof(iD.osmWay); + expect(copies.a).to.be.an.instanceof(iD.osmNode); + expect(copies.b).to.be.an.instanceof(iD.osmNode); + expect(copies.c).to.be.an.instanceof(iD.osmNode); expect(result.members[0].id).not.to.equal(r.members[0].id); expect(result.members[0].role).to.equal(r.members[0].role); }); it('deep copies non-tree relation graphs without duplicating children', function () { - var w = iD.Way({id: 'w'}), - r1 = iD.Relation({id: 'r1', members: [{id: 'r2'}, {id: 'w'}]}), - r2 = iD.Relation({id: 'r2', members: [{id: 'w'}]}), - graph = iD.Graph([w, r1, r2]), - copies = {}; + var w = iD.osmWay({id: 'w'}); + var r1 = iD.osmRelation({id: 'r1', members: [{id: 'r2'}, {id: 'w'}]}); + var r2 = iD.osmRelation({id: 'r2', members: [{id: 'w'}]}); + var graph = iD.coreGraph([w, r1, r2]); + var copies = {}; r1.copy(graph, copies); expect(Object.keys(copies)).to.have.length(3); - expect(copies.r1).to.be.an.instanceof(iD.Relation); - expect(copies.r2).to.be.an.instanceof(iD.Relation); - expect(copies.w).to.be.an.instanceof(iD.Way); + expect(copies.r1).to.be.an.instanceof(iD.osmRelation); + expect(copies.r2).to.be.an.instanceof(iD.osmRelation); + expect(copies.w).to.be.an.instanceof(iD.osmWay); expect(copies.r1.members[0].id).to.equal(copies.r2.id); expect(copies.r1.members[1].id).to.equal(copies.w.id); expect(copies.r2.members[0].id).to.equal(copies.w.id); }); it('deep copies cyclical relation graphs without issue', function () { - var r1 = iD.Relation({id: 'r1', members: [{id: 'r2'}]}), - r2 = iD.Relation({id: 'r2', members: [{id: 'r1'}]}), - graph = iD.Graph([r1, r2]), - copies = {}; + var r1 = iD.osmRelation({id: 'r1', members: [{id: 'r2'}]}); + var r2 = iD.osmRelation({id: 'r2', members: [{id: 'r1'}]}); + var graph = iD.coreGraph([r1, r2]); + var copies = {}; r1.copy(graph, copies); expect(Object.keys(copies)).to.have.length(2); @@ -101,9 +101,9 @@ describe('iD.osmRelation', function () { }); it('deep copies self-referencing relations without issue', function () { - var r = iD.Relation({id: 'r', members: [{id: 'r'}]}), - graph = iD.Graph([r]), - copies = {}; + var r = iD.osmRelation({id: 'r', members: [{id: 'r'}]}); + var graph = iD.coreGraph([r]); + var copies = {}; r.copy(graph, copies); expect(Object.keys(copies)).to.have.length(1); @@ -113,53 +113,53 @@ describe('iD.osmRelation', function () { describe('#extent', function () { it('returns the minimal extent containing the extents of all members', function () { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [5, 10]}), - r = iD.Relation({members: [{id: a.id}, {id: b.id}]}), - graph = iD.Graph([a, b, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [5, 10]}); + var r = iD.osmRelation({members: [{id: a.id}, {id: b.id}]}); + var graph = iD.coreGraph([a, b, r]); expect(r.extent(graph).equals([[0, 0], [5, 10]])).to.be.ok; }); it('returns the known extent of incomplete relations', function () { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [5, 10]}), - r = iD.Relation({members: [{id: a.id}, {id: b.id}]}), - graph = iD.Graph([a, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [5, 10]}); + var r = iD.osmRelation({members: [{id: a.id}, {id: b.id}]}); + var graph = iD.coreGraph([a, r]); expect(r.extent(graph).equals([[0, 0], [0, 0]])).to.be.ok; }); it('does not error on self-referencing relations', function () { - var r = iD.Relation(); + var r = iD.osmRelation(); r = r.addMember({id: r.id}); - expect(r.extent(iD.Graph([r]))).to.eql(iD.geoExtent()); + expect(r.extent(iD.coreGraph([r]))).to.eql(iD.geoExtent()); }); }); describe('#geometry', function () { it('returns \'area\' for multipolygons', function () { - expect(iD.Relation({tags: {type: 'multipolygon'}}).geometry(iD.Graph())).to.equal('area'); + expect(iD.osmRelation({tags: {type: 'multipolygon'}}).geometry(iD.coreGraph())).to.equal('area'); }); it('returns \'relation\' for other relations', function () { - expect(iD.Relation().geometry(iD.Graph())).to.equal('relation'); + expect(iD.osmRelation().geometry(iD.coreGraph())).to.equal('relation'); }); }); describe('#isDegenerate', function () { it('returns true for a relation without members', function () { - expect(iD.Relation().isDegenerate()).to.equal(true); + expect(iD.osmRelation().isDegenerate()).to.equal(true); }); it('returns false for a relation with members', function () { - expect(iD.Relation({members: [{id: 'a', role: 'inner'}]}).isDegenerate()).to.equal(false); + expect(iD.osmRelation({members: [{id: 'a', role: 'inner'}]}).isDegenerate()).to.equal(false); }); }); describe('#memberByRole', function () { it('returns the first member with the given role', function () { - var r = iD.Relation({members: [ + var r = iD.osmRelation({members: [ {id: 'a', role: 'inner'}, {id: 'b', role: 'outer'}, {id: 'c', role: 'outer'}]}); @@ -167,13 +167,13 @@ describe('iD.osmRelation', function () { }); it('returns undefined if no members have the given role', function () { - expect(iD.Relation().memberByRole('outer')).to.be.undefined; + expect(iD.osmRelation().memberByRole('outer')).to.be.undefined; }); }); describe('#memberById', function () { it('returns the first member with the given id', function () { - var r = iD.Relation({members: [ + var r = iD.osmRelation({members: [ {id: 'a', role: 'outer'}, {id: 'b', role: 'outer'}, {id: 'b', role: 'inner'}]}); @@ -181,101 +181,247 @@ describe('iD.osmRelation', function () { }); it('returns undefined if no members have the given role', function () { - expect(iD.Relation().memberById('b')).to.be.undefined; + expect(iD.osmRelation().memberById('b')).to.be.undefined; }); }); describe('#isRestriction', function () { it('returns true for \'restriction\' type', function () { - expect(iD.Relation({tags: {type: 'restriction'}}).isRestriction()).to.be.true; + expect(iD.osmRelation({tags: {type: 'restriction'}}).isRestriction()).to.be.true; }); it('returns true for \'restriction:type\' types', function () { - expect(iD.Relation({tags: {type: 'restriction:bus'}}).isRestriction()).to.be.true; + expect(iD.osmRelation({tags: {type: 'restriction:bus'}}).isRestriction()).to.be.true; }); it('returns false otherwise', function () { - expect(iD.Relation().isRestriction()).to.be.false; - expect(iD.Relation({tags: {type: 'multipolygon'}}).isRestriction()).to.be.false; + expect(iD.osmRelation().isRestriction()).to.be.false; + expect(iD.osmRelation({tags: {type: 'multipolygon'}}).isRestriction()).to.be.false; + }); + }); + + describe('#isValidRestriction', function () { + it('not a restriction', function () { + var r = iD.osmRelation({ id: 'r', tags: { type: 'multipolygon' }}); + var graph = iD.coreGraph([r]); + expect(r.isValidRestriction(graph)).to.be.false; + }); + + it('typical restriction (from way, via node, to way) is valid', function () { + var f = iD.osmWay({id: 'f'}); + var v = iD.osmNode({id: 'v'}); + var t = iD.osmWay({id: 't'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_left_turn' }, + members: [ + { role: 'from', id: 'f', type: 'way' }, + { role: 'via', id: 'v', type: 'node' }, + { role: 'to', id: 't', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f, v, t, r]); + + expect(r.isValidRestriction(graph)).to.be.true; + }); + + it('multiple froms, normal restriction is invalid', function () { + var f1 = iD.osmWay({id: 'f1'}); + var f2 = iD.osmWay({id: 'f2'}); + var v = iD.osmNode({id: 'v'}); + var t = iD.osmWay({id: 't'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_left_turn' }, + members: [ + { role: 'from', id: 'f1', type: 'way' }, + { role: 'from', id: 'f2', type: 'way' }, + { role: 'via', id: 'v', type: 'node' }, + { role: 'to', id: 't', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f1, f2, v, t, r]); + + expect(r.isValidRestriction(graph)).to.be.false; + }); + + it('multiple froms, no_entry restriction is valid', function () { + var f1 = iD.osmWay({id: 'f1'}); + var f2 = iD.osmWay({id: 'f2'}); + var v = iD.osmNode({id: 'v'}); + var t = iD.osmWay({id: 't'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_entry' }, + members: [ + { role: 'from', id: 'f1', type: 'way' }, + { role: 'from', id: 'f2', type: 'way' }, + { role: 'via', id: 'v', type: 'node' }, + { role: 'to', id: 't', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f1, f2, v, t, r]); + + expect(r.isValidRestriction(graph)).to.be.true; + }); + + it('multiple tos, normal restriction is invalid', function () { + var f = iD.osmWay({id: 'f'}); + var v = iD.osmNode({id: 'v'}); + var t1 = iD.osmWay({id: 't1'}); + var t2 = iD.osmWay({id: 't2'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_left_turn' }, + members: [ + { role: 'from', id: 'f', type: 'way' }, + { role: 'via', id: 'v', type: 'node' }, + { role: 'to', id: 't1', type: 'way' }, + { role: 'to', id: 't2', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f, v, t1, t2, r]); + + expect(r.isValidRestriction(graph)).to.be.false; + }); + + it('multiple tos, no_exit restriction is valid', function () { + var f = iD.osmWay({id: 'f'}); + var v = iD.osmNode({id: 'v'}); + var t1 = iD.osmWay({id: 't1'}); + var t2 = iD.osmWay({id: 't2'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_exit' }, + members: [ + { role: 'from', id: 'f', type: 'way' }, + { role: 'via', id: 'v', type: 'node' }, + { role: 'to', id: 't1', type: 'way' }, + { role: 'to', id: 't2', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f, v, t1, t2, r]); + + expect(r.isValidRestriction(graph)).to.be.true; + }); + + it('multiple vias, with some as node is invalid', function () { + var f = iD.osmWay({id: 'f'}); + var v1 = iD.osmNode({id: 'v1'}); + var v2 = iD.osmWay({id: 'v2'}); + var t = iD.osmWay({id: 't'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_left_turn' }, + members: [ + { role: 'from', id: 'f', type: 'way' }, + { role: 'via', id: 'v1', type: 'node' }, + { role: 'via', id: 'v2', type: 'way' }, + { role: 'to', id: 't', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f, v1, v2, t, r]); + + expect(r.isValidRestriction(graph)).to.be.false; + }); + + it('multiple vias, with all as way is valid', function () { + var f = iD.osmWay({id: 'f'}); + var v1 = iD.osmWay({id: 'v1'}); + var v2 = iD.osmWay({id: 'v2'}); + var t = iD.osmWay({id: 't'}); + var r = iD.osmRelation({ + id: 'r', + tags: { type: 'restriction', restriction: 'no_left_turn' }, + members: [ + { role: 'from', id: 'f', type: 'way' }, + { role: 'via', id: 'v1', type: 'way' }, + { role: 'via', id: 'v2', type: 'way' }, + { role: 'to', id: 't', type: 'way' }, + ] + }); + var graph = iD.coreGraph([f, v1, v2, t, r]); + + expect(r.isValidRestriction(graph)).to.be.true; }); }); describe('#indexedMembers', function () { it('returns an array of members extended with indexes', function () { - var r = iD.Relation({members: [{id: '1'}, {id: '3'}]}); + var r = iD.osmRelation({members: [{id: '1'}, {id: '3'}]}); expect(r.indexedMembers()).to.eql([{id: '1', index: 0}, {id: '3', index: 1}]); }); }); describe('#addMember', function () { it('adds a member at the end of the relation', function () { - var r = iD.Relation(); + var r = iD.osmRelation(); expect(r.addMember({id: '1'}).members).to.eql([{id: '1'}]); }); it('adds a member at index 0', function () { - var r = iD.Relation({members: [{id: '1'}]}); + var r = iD.osmRelation({members: [{id: '1'}]}); expect(r.addMember({id: '2'}, 0).members).to.eql([{id: '2'}, {id: '1'}]); }); it('adds a member at a positive index', function () { - var r = iD.Relation({members: [{id: '1'}, {id: '3'}]}); + var r = iD.osmRelation({members: [{id: '1'}, {id: '3'}]}); expect(r.addMember({id: '2'}, 1).members).to.eql([{id: '1'}, {id: '2'}, {id: '3'}]); }); it('adds a member at a negative index', function () { - var r = iD.Relation({members: [{id: '1'}, {id: '3'}]}); + var r = iD.osmRelation({members: [{id: '1'}, {id: '3'}]}); expect(r.addMember({id: '2'}, -1).members).to.eql([{id: '1'}, {id: '2'}, {id: '3'}]); }); }); describe('#updateMember', function () { it('updates the properties of the relation member at the specified index', function () { - var r = iD.Relation({members: [{role: 'forward'}]}); + var r = iD.osmRelation({members: [{role: 'forward'}]}); expect(r.updateMember({role: 'backward'}, 0).members).to.eql([{role: 'backward'}]); }); }); describe('#removeMember', function () { it('removes the member at the specified index', function () { - var r = iD.Relation({members: [{id: 'a'}, {id: 'b'}, {id: 'c'}]}); + var r = iD.osmRelation({members: [{id: 'a'}, {id: 'b'}, {id: 'c'}]}); expect(r.removeMember(1).members).to.eql([{id: 'a'}, {id: 'c'}]); }); }); describe('#removeMembersWithID', function () { it('removes members with the given ID', function () { - var r = iD.Relation({members: [{id: 'a'}, {id: 'b'}, {id: 'a'}]}); + var r = iD.osmRelation({members: [{id: 'a'}, {id: 'b'}, {id: 'a'}]}); expect(r.removeMembersWithID('a').members).to.eql([{id: 'b'}]); }); }); describe('#replaceMember', function () { it('returns self if self does not contain needle', function () { - var r = iD.Relation({members: []}); + var r = iD.osmRelation({members: []}); expect(r.replaceMember({id: 'a'}, {id: 'b'})).to.equal(r); }); it('replaces a member which doesn\'t already exist', function () { - var r = iD.Relation({members: [{id: 'a', role: 'a'}]}); + var r = iD.osmRelation({members: [{id: 'a', role: 'a'}]}); expect(r.replaceMember({id: 'a'}, {id: 'b', type: 'node'}).members) .to.eql([{id: 'b', role: 'a', type: 'node'}]); }); it('preserves the existing role', function () { - var r = iD.Relation({members: [{id: 'a', role: 'a', type: 'node'}]}); + var r = iD.osmRelation({members: [{id: 'a', role: 'a', type: 'node'}]}); expect(r.replaceMember({id: 'a'}, {id: 'b', type: 'node'}).members) .to.eql([{id: 'b', role: 'a', type: 'node'}]); }); it('uses the replacement type', function () { - var r = iD.Relation({members: [{id: 'a', role: 'a', type: 'node'}]}); + var r = iD.osmRelation({members: [{id: 'a', role: 'a', type: 'node'}]}); expect(r.replaceMember({id: 'a'}, {id: 'b', type: 'way'}).members) .to.eql([{id: 'b', role: 'a', type: 'way'}]); }); it('removes members if replacing them would produce duplicates', function () { - var r = iD.Relation({members: [ + var r = iD.osmRelation({members: [ {id: 'a', role: 'b', type: 'node'}, {id: 'b', role: 'b', type: 'node'} ]}); @@ -283,7 +429,7 @@ describe('iD.osmRelation', function () { .to.eql([{id: 'b', role: 'b', type: 'node'}]); }); it('keeps duplicate members if `keepDuplicates = true`', function () { - var r = iD.Relation({members: [ + var r = iD.osmRelation({members: [ {id: 'a', role: 'b', type: 'node'}, {id: 'b', role: 'b', type: 'node'} ]}); @@ -294,7 +440,7 @@ describe('iD.osmRelation', function () { describe('#asJXON', function () { it('converts a relation to jxon', function() { - var relation = iD.Relation({id: 'r-1', members: [{id: 'w1', role: 'forward', type: 'way'}], tags: {type: 'route'}}); + var relation = iD.osmRelation({id: 'r-1', members: [{id: 'w1', role: 'forward', type: 'way'}], tags: {type: 'route'}}); expect(relation.asJXON()).to.eql({relation: { '@id': '-1', '@version': 0, @@ -303,56 +449,56 @@ describe('iD.osmRelation', function () { }); it('includes changeset if provided', function() { - expect(iD.Relation().asJXON('1234').relation['@changeset']).to.equal('1234'); + expect(iD.osmRelation().asJXON('1234').relation['@changeset']).to.equal('1234'); }); }); - describe('#asGeoJSON', function (){ + describe('#asGeoJSON', function () { it('converts a multipolygon to a GeoJSON MultiPolygon geometry', function() { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - w = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - r = iD.Relation({tags: {type: 'multipolygon'}, members: [{id: w.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w, r]), - json = r.asGeoJSON(g); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var w = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var r = iD.osmRelation({tags: {type: 'multipolygon'}, members: [{id: w.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w, r]); + var json = r.asGeoJSON(g); expect(json.type).to.equal('MultiPolygon'); expect(json.coordinates).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); it('forces clockwise winding order for outer multipolygon ways', function() { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [0, 1]}), - c = iD.Node({loc: [1, 0]}), - w = iD.Way({nodes: [a.id, c.id, b.id, a.id]}), - r = iD.Relation({tags: {type: 'multipolygon'}, members: [{id: w.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w, r]), - json = r.asGeoJSON(g); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [0, 1]}); + var c = iD.osmNode({loc: [1, 0]}); + var w = iD.osmWay({nodes: [a.id, c.id, b.id, a.id]}); + var r = iD.osmRelation({tags: {type: 'multipolygon'}, members: [{id: w.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w, r]); + var json = r.asGeoJSON(g); expect(json.coordinates[0][0]).to.eql([a.loc, b.loc, c.loc, a.loc]); }); it('forces counterclockwise winding order for inner multipolygon ways', function() { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [0, 1]}), - c = iD.Node({loc: [1, 0]}), - d = iD.Node({loc: [0.1, 0.1]}), - e = iD.Node({loc: [0.1, 0.2]}), - f = iD.Node({loc: [0.2, 0.1]}), - outer = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - inner = iD.Way({nodes: [d.id, e.id, f.id, d.id]}), - r = iD.Relation({members: [{id: outer.id, type: 'way'}, {id: inner.id, role: 'inner', type: 'way'}]}), - g = iD.Graph([a, b, c, d, e, f, outer, inner, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [0, 1]}); + var c = iD.osmNode({loc: [1, 0]}); + var d = iD.osmNode({loc: [0.1, 0.1]}); + var e = iD.osmNode({loc: [0.1, 0.2]}); + var f = iD.osmNode({loc: [0.2, 0.1]}); + var outer = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var inner = iD.osmWay({nodes: [d.id, e.id, f.id, d.id]}); + var r = iD.osmRelation({members: [{id: outer.id, type: 'way'}, {id: inner.id, role: 'inner', type: 'way'}]}); + var g = iD.coreGraph([a, b, c, d, e, f, outer, inner, r]); expect(r.multipolygon(g)[0][1]).to.eql([d.loc, f.loc, e.loc, d.loc]); }); it('converts a relation to a GeoJSON FeatureCollection', function() { - var a = iD.Node({loc: [1, 1]}), - r = iD.Relation({tags: {type: 'type'}, members: [{id: a.id, role: 'role'}]}), - g = iD.Graph([a, r]), - json = r.asGeoJSON(g); + var a = iD.osmNode({loc: [1, 1]}); + var r = iD.osmRelation({tags: {type: 'type'}, members: [{id: a.id, role: 'role'}]}); + var g = iD.coreGraph([a, r]); + var json = r.asGeoJSON(g); expect(json.type).to.equal('FeatureCollection'); expect(json.properties).to.eql({type: 'type'}); @@ -365,214 +511,220 @@ describe('iD.osmRelation', function () { describe('#multipolygon', function () { specify('single polygon consisting of a single way', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - w = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - r = iD.Relation({members: [{id: w.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var w = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var r = iD.osmRelation({members: [{id: w.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); specify('single polygon consisting of multiple ways', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - w1 = iD.Way({nodes: [a.id, b.id]}), - w2 = iD.Way({nodes: [b.id, c.id, a.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var w1 = iD.osmWay({nodes: [a.id, b.id]}); + var w2 = iD.osmWay({nodes: [b.id, c.id, a.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); specify('single polygon consisting of multiple ways, one needing reversal', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - w1 = iD.Way({nodes: [a.id, b.id]}), - w2 = iD.Way({nodes: [a.id, c.id, b.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var w1 = iD.osmWay({nodes: [a.id, b.id]}); + var w2 = iD.osmWay({nodes: [a.id, c.id, b.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); specify('multiple polygons consisting of single ways', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - d = iD.Node({loc: [4, 4]}), - e = iD.Node({loc: [6, 6]}), - f = iD.Node({loc: [5, 5]}), - w1 = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - w2 = iD.Way({nodes: [d.id, e.id, f.id, d.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, d, e, f, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var d = iD.osmNode({loc: [4, 4]}); + var e = iD.osmNode({loc: [6, 6]}); + var f = iD.osmNode({loc: [5, 5]}); + var w1 = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var w2 = iD.osmWay({nodes: [d.id, e.id, f.id, d.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, d, e, f, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]], [[d.loc, e.loc, f.loc, d.loc]]]); }); specify('invalid geometry: unclosed ring consisting of a single way', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - w = iD.Way({nodes: [a.id, b.id, c.id]}), - r = iD.Relation({members: [{id: w.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var w = iD.osmWay({nodes: [a.id, b.id, c.id]}); + var r = iD.osmRelation({members: [{id: w.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [3, 3]}), - c = iD.Node({loc: [2, 2]}), - w1 = iD.Way({nodes: [a.id, b.id]}), - w2 = iD.Way({nodes: [b.id, c.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [3, 3]}); + var c = iD.osmNode({loc: [2, 2]}); + var w1 = iD.osmWay({nodes: [a.id, b.id]}); + var w2 = iD.osmWay({nodes: [b.id, c.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways, alternate order', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [2, 2]}), - c = iD.Node({loc: [3, 3]}), - d = iD.Node({loc: [4, 4]}), - w1 = iD.Way({nodes: [c.id, d.id]}), - w2 = iD.Way({nodes: [a.id, b.id, c.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, d, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [2, 2]}); + var c = iD.osmNode({loc: [3, 3]}); + var d = iD.osmNode({loc: [4, 4]}); + var w1 = iD.osmWay({nodes: [c.id, d.id]}); + var w2 = iD.osmWay({nodes: [a.id, b.id, c.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, d, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways, one needing reversal', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [2, 2]}), - c = iD.Node({loc: [3, 3]}), - d = iD.Node({loc: [4, 4]}), - w1 = iD.Way({nodes: [a.id, b.id, c.id]}), - w2 = iD.Way({nodes: [d.id, c.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, d, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [2, 2]}); + var c = iD.osmNode({loc: [3, 3]}); + var d = iD.osmNode({loc: [4, 4]}); + var w1 = iD.osmWay({nodes: [a.id, b.id, c.id]}); + var w2 = iD.osmWay({nodes: [d.id, c.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, d, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc]]]); }); specify('invalid geometry: unclosed ring consisting of multiple ways, one needing reversal, alternate order', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [2, 2]}), - c = iD.Node({loc: [3, 3]}), - d = iD.Node({loc: [4, 4]}), - w1 = iD.Way({nodes: [c.id, d.id]}), - w2 = iD.Way({nodes: [c.id, b.id, a.id]}), - r = iD.Relation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}), - g = iD.Graph([a, b, c, d, w1, w2, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [2, 2]}); + var c = iD.osmNode({loc: [3, 3]}); + var d = iD.osmNode({loc: [4, 4]}); + var w1 = iD.osmWay({nodes: [c.id, d.id]}); + var w2 = iD.osmWay({nodes: [c.id, b.id, a.id]}); + var r = iD.osmRelation({members: [{id: w1.id, type: 'way'}, {id: w2.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, d, w1, w2, r]); expect(r.multipolygon(g)).to.eql([[[d.loc, c.loc, b.loc, a.loc]]]); }); specify('single polygon with single single-way inner', function () { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [0, 1]}), - c = iD.Node({loc: [1, 0]}), - d = iD.Node({loc: [0.1, 0.1]}), - e = iD.Node({loc: [0.2, 0.1]}), - f = iD.Node({loc: [0.1, 0.2]}), - outer = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - inner = iD.Way({nodes: [d.id, e.id, f.id, d.id]}), - r = iD.Relation({members: [{id: outer.id, type: 'way'}, {id: inner.id, role: 'inner', type: 'way'}]}), - g = iD.Graph([a, b, c, d, e, f, outer, inner, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [0, 1]}); + var c = iD.osmNode({loc: [1, 0]}); + var d = iD.osmNode({loc: [0.1, 0.1]}); + var e = iD.osmNode({loc: [0.2, 0.1]}); + var f = iD.osmNode({loc: [0.1, 0.2]}); + var outer = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var inner = iD.osmWay({nodes: [d.id, e.id, f.id, d.id]}); + var r = iD.osmRelation({members: [ + {id: outer.id, type: 'way'}, + {id: inner.id, role: 'inner', type: 'way'} + ]}); + var g = iD.coreGraph([a, b, c, d, e, f, outer, inner, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc], [d.loc, e.loc, f.loc, d.loc]]]); }); specify('single polygon with single multi-way inner', function () { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [0, 1]}), - c = iD.Node({loc: [1, 0]}), - d = iD.Node({loc: [0.1, 0.1]}), - e = iD.Node({loc: [0.2, 0.1]}), - f = iD.Node({loc: [0.2, 0.1]}), - outer = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - inner1 = iD.Way({nodes: [d.id, e.id]}), - inner2 = iD.Way({nodes: [e.id, f.id, d.id]}), - r = iD.Relation({members: [ - {id: outer.id, type: 'way'}, - {id: inner1.id, role: 'inner', type: 'way'}, - {id: inner2.id, role: 'inner', type: 'way'}]}), - graph = iD.Graph([a, b, c, d, e, f, outer, inner1, inner2, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [0, 1]}); + var c = iD.osmNode({loc: [1, 0]}); + var d = iD.osmNode({loc: [0.1, 0.1]}); + var e = iD.osmNode({loc: [0.2, 0.1]}); + var f = iD.osmNode({loc: [0.2, 0.1]}); + var outer = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var inner1 = iD.osmWay({nodes: [d.id, e.id]}); + var inner2 = iD.osmWay({nodes: [e.id, f.id, d.id]}); + var r = iD.osmRelation({members: [ + {id: outer.id, type: 'way'}, + {id: inner1.id, role: 'inner', type: 'way'}, + {id: inner2.id, role: 'inner', type: 'way'} + ]}); + var graph = iD.coreGraph([a, b, c, d, e, f, outer, inner1, inner2, r]); expect(r.multipolygon(graph)).to.eql([[[a.loc, b.loc, c.loc, a.loc], [d.loc, e.loc, f.loc, d.loc]]]); }); specify('single polygon with multiple single-way inners', function () { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [0, 1]}), - c = iD.Node({loc: [1, 0]}), - d = iD.Node({loc: [0.1, 0.1]}), - e = iD.Node({loc: [0.2, 0.1]}), - f = iD.Node({loc: [0.1, 0.2]}), - g = iD.Node({loc: [0.2, 0.2]}), - h = iD.Node({loc: [0.3, 0.2]}), - i = iD.Node({loc: [0.2, 0.3]}), - outer = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - inner1 = iD.Way({nodes: [d.id, e.id, f.id, d.id]}), - inner2 = iD.Way({nodes: [g.id, h.id, i.id, g.id]}), - r = iD.Relation({members: [ - {id: outer.id, type: 'way'}, - {id: inner1.id, role: 'inner', type: 'way'}, - {id: inner2.id, role: 'inner', type: 'way'}]}), - graph = iD.Graph([a, b, c, d, e, f, g, h, i, outer, inner1, inner2, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [0, 1]}); + var c = iD.osmNode({loc: [1, 0]}); + var d = iD.osmNode({loc: [0.1, 0.1]}); + var e = iD.osmNode({loc: [0.2, 0.1]}); + var f = iD.osmNode({loc: [0.1, 0.2]}); + var g = iD.osmNode({loc: [0.2, 0.2]}); + var h = iD.osmNode({loc: [0.3, 0.2]}); + var i = iD.osmNode({loc: [0.2, 0.3]}); + var outer = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var inner1 = iD.osmWay({nodes: [d.id, e.id, f.id, d.id]}); + var inner2 = iD.osmWay({nodes: [g.id, h.id, i.id, g.id]}); + var r = iD.osmRelation({members: [ + {id: outer.id, type: 'way'}, + {id: inner1.id, role: 'inner', type: 'way'}, + {id: inner2.id, role: 'inner', type: 'way'} + ]}); + var graph = iD.coreGraph([a, b, c, d, e, f, g, h, i, outer, inner1, inner2, r]); expect(r.multipolygon(graph)).to.eql([[[a.loc, b.loc, c.loc, a.loc], [d.loc, e.loc, f.loc, d.loc], [g.loc, h.loc, i.loc, g.loc]]]); }); specify('multiple polygons with single single-way inner', function () { - var a = iD.Node({loc: [0, 0]}), - b = iD.Node({loc: [0, 1]}), - c = iD.Node({loc: [1, 0]}), - d = iD.Node({loc: [0.1, 0.1]}), - e = iD.Node({loc: [0.2, 0.1]}), - f = iD.Node({loc: [0.1, 0.2]}), - g = iD.Node({loc: [0, 0]}), - h = iD.Node({loc: [0, -1]}), - i = iD.Node({loc: [-1, 0]}), - outer1 = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - outer2 = iD.Way({nodes: [g.id, h.id, i.id, g.id]}), - inner = iD.Way({nodes: [d.id, e.id, f.id, d.id]}), - r = iD.Relation({members: [ - {id: outer1.id, type: 'way'}, - {id: outer2.id, type: 'way'}, - {id: inner.id, role: 'inner', type: 'way'}]}), - graph = iD.Graph([a, b, c, d, e, f, g, h, i, outer1, outer2, inner, r]); + var a = iD.osmNode({loc: [0, 0]}); + var b = iD.osmNode({loc: [0, 1]}); + var c = iD.osmNode({loc: [1, 0]}); + var d = iD.osmNode({loc: [0.1, 0.1]}); + var e = iD.osmNode({loc: [0.2, 0.1]}); + var f = iD.osmNode({loc: [0.1, 0.2]}); + var g = iD.osmNode({loc: [0, 0]}); + var h = iD.osmNode({loc: [0, -1]}); + var i = iD.osmNode({loc: [-1, 0]}); + var outer1 = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var outer2 = iD.osmWay({nodes: [g.id, h.id, i.id, g.id]}); + var inner = iD.osmWay({nodes: [d.id, e.id, f.id, d.id]}); + var r = iD.osmRelation({members: [ + {id: outer1.id, type: 'way'}, + {id: outer2.id, type: 'way'}, + {id: inner.id, role: 'inner', type: 'way'} + ]}); + var graph = iD.coreGraph([a, b, c, d, e, f, g, h, i, outer1, outer2, inner, r]); expect(r.multipolygon(graph)).to.eql([[[a.loc, b.loc, c.loc, a.loc], [d.loc, e.loc, f.loc, d.loc]], [[g.loc, h.loc, i.loc, g.loc]]]); }); specify('invalid geometry: unmatched inner', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [2, 2]}), - c = iD.Node({loc: [3, 3]}), - w = iD.Way({nodes: [a.id, b.id, c.id, a.id]}), - r = iD.Relation({members: [{id: w.id, role: 'inner', type: 'way'}]}), - g = iD.Graph([a, b, c, w, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [2, 2]}); + var c = iD.osmNode({loc: [3, 3]}); + var w = iD.osmWay({nodes: [a.id, b.id, c.id, a.id]}); + var r = iD.osmRelation({members: [{id: w.id, role: 'inner', type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc, a.loc]]]); }); specify('incomplete relation', function () { - var a = iD.Node({loc: [1, 1]}), - b = iD.Node({loc: [2, 2]}), - c = iD.Node({loc: [3, 3]}), - w1 = iD.Way({nodes: [a.id, b.id, c.id]}), - w2 = iD.Way(), - r = iD.Relation({members: [{id: w2.id, type: 'way'}, {id: w1.id, type: 'way'}]}), - g = iD.Graph([a, b, c, w1, r]); + var a = iD.osmNode({loc: [1, 1]}); + var b = iD.osmNode({loc: [2, 2]}); + var c = iD.osmNode({loc: [3, 3]}); + var w1 = iD.osmWay({nodes: [a.id, b.id, c.id]}); + var w2 = iD.osmWay(); + var r = iD.osmRelation({members: [{id: w2.id, type: 'way'}, {id: w1.id, type: 'way'}]}); + var g = iD.coreGraph([a, b, c, w1, r]); expect(r.multipolygon(g)).to.eql([[[a.loc, b.loc, c.loc]]]); }); @@ -580,17 +732,17 @@ describe('iD.osmRelation', function () { describe('.creationOrder comparator', function () { specify('orders existing relations newest-first', function () { - var a = iD.Relation({ id: 'r1' }), - b = iD.Relation({ id: 'r2' }); - expect(iD.Relation.creationOrder(a, b)).to.be.above(0); - expect(iD.Relation.creationOrder(b, a)).to.be.below(0); + var a = iD.osmRelation({ id: 'r1' }); + var b = iD.osmRelation({ id: 'r2' }); + expect(iD.osmRelation.creationOrder(a, b)).to.be.above(0); + expect(iD.osmRelation.creationOrder(b, a)).to.be.below(0); }); specify('orders new relations newest-first', function () { - var a = iD.Relation({ id: 'r-1' }), - b = iD.Relation({ id: 'r-2' }); - expect(iD.Relation.creationOrder(a, b)).to.be.above(0); - expect(iD.Relation.creationOrder(b, a)).to.be.below(0); + var a = iD.osmRelation({ id: 'r-1' }); + var b = iD.osmRelation({ id: 'r-2' }); + expect(iD.osmRelation.creationOrder(a, b)).to.be.above(0); + expect(iD.osmRelation.creationOrder(b, a)).to.be.below(0); }); }); }); From d7bd3c67684b29dd0db30fed1cdd4d5afa989aed Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 3 Feb 2018 23:10:35 -0500 Subject: [PATCH 010/157] Add `opening_hours` field to `amenity=police` preset (closes #4753) --- data/presets/presets.json | 3 ++- data/presets/presets/amenity/police.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 958a5bba0..128753949 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -2424,7 +2424,8 @@ "name", "operator", "address", - "building_area" + "building_area", + "opening_hours" ], "geometry": [ "point", diff --git a/data/presets/presets/amenity/police.json b/data/presets/presets/amenity/police.json index 7e91035f0..4c0472f95 100644 --- a/data/presets/presets/amenity/police.json +++ b/data/presets/presets/amenity/police.json @@ -4,7 +4,8 @@ "name", "operator", "address", - "building_area" + "building_area", + "opening_hours" ], "geometry": [ "point", From 42dd36addb5a0a67f0f165071ae9ddb142ead513 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 3 Feb 2018 23:19:26 -0500 Subject: [PATCH 011/157] Add `dispensing` field to `amenity=pharmacy` preset (closes #4763) --- data/presets.yaml | 3 + data/presets/fields.json | 6 + data/presets/fields/dispensing.json | 6 + data/presets/presets.json | 501 ++++++++++++++------- data/presets/presets/amenity/pharmacy.json | 3 +- dist/locales/en.json | 3 + 6 files changed, 354 insertions(+), 168 deletions(-) create mode 100644 data/presets/fields/dispensing.json diff --git a/data/presets.yaml b/data/presets.yaml index 14b331440..449211ed3 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -484,6 +484,9 @@ en: both: Both / All # direction=forward forward: Forward + dispensing: + # dispensing=* + label: Dispenses Prescriptions display: # display=* label: Display diff --git a/data/presets/fields.json b/data/presets/fields.json index 25c2fa544..19c1a8569 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -649,6 +649,12 @@ "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270" }, + "dispensing": { + "key": "dispensing", + "type": "check", + "label": "Dispenses Prescriptions", + "default": "yes" + }, "display": { "key": "display", "type": "combo", diff --git a/data/presets/fields/dispensing.json b/data/presets/fields/dispensing.json new file mode 100644 index 000000000..b400f24ae --- /dev/null +++ b/data/presets/fields/dispensing.json @@ -0,0 +1,6 @@ +{ + "key": "dispensing", + "type": "check", + "label": "Dispenses Prescriptions", + "default": "yes" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index 128753949..d8b7fbd56 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -2079,7 +2079,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "geometry": [ "point", @@ -44846,7 +44847,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -44869,7 +44871,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -44892,7 +44895,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -44915,7 +44919,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -44938,7 +44943,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -44961,7 +44967,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -44984,7 +44991,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45007,7 +45015,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45030,7 +45039,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45053,7 +45063,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45076,7 +45087,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45099,7 +45111,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45122,7 +45135,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45145,7 +45159,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45168,7 +45183,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45191,7 +45207,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45214,7 +45231,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45237,7 +45255,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45260,7 +45279,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45283,7 +45303,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45306,7 +45327,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45329,7 +45351,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45352,7 +45375,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45375,7 +45399,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45398,7 +45423,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45421,7 +45447,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45444,7 +45471,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45467,7 +45495,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45490,7 +45519,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45513,7 +45543,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45536,7 +45567,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45559,7 +45591,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45582,7 +45615,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45605,7 +45639,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45628,7 +45663,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45651,7 +45687,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45674,7 +45711,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45697,7 +45735,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45720,7 +45759,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45743,7 +45783,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45766,7 +45807,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45789,7 +45831,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45812,7 +45855,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45835,7 +45879,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45858,7 +45903,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45881,7 +45927,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45904,7 +45951,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45927,7 +45975,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45950,7 +45999,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45973,7 +46023,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -45996,7 +46047,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46019,7 +46071,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46042,7 +46095,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46065,7 +46119,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46088,7 +46143,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46111,7 +46167,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46134,7 +46191,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46157,7 +46215,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46180,7 +46239,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46203,7 +46263,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46226,7 +46287,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46249,7 +46311,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46272,7 +46335,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46295,7 +46359,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46318,7 +46383,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46341,7 +46407,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46364,7 +46431,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46387,7 +46455,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46410,7 +46479,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46433,7 +46503,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46456,7 +46527,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46479,7 +46551,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46502,7 +46575,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46525,7 +46599,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46548,7 +46623,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46571,7 +46647,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46594,7 +46671,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46617,7 +46695,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46640,7 +46719,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46663,7 +46743,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46686,7 +46767,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46709,7 +46791,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46732,7 +46815,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46755,7 +46839,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46778,7 +46863,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46801,7 +46887,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46824,7 +46911,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46847,7 +46935,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46870,7 +46959,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46893,7 +46983,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46916,7 +47007,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46939,7 +47031,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46962,7 +47055,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -46985,7 +47079,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47008,7 +47103,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47031,7 +47127,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47054,7 +47151,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47077,7 +47175,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47100,7 +47199,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47123,7 +47223,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47146,7 +47247,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47169,7 +47271,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47192,7 +47295,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47215,7 +47319,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47238,7 +47343,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47261,7 +47367,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47284,7 +47391,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47307,7 +47415,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47330,7 +47439,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47353,7 +47463,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47376,7 +47487,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47399,7 +47511,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47422,7 +47535,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47445,7 +47559,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47468,7 +47583,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47491,7 +47607,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47514,7 +47631,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47537,7 +47655,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47560,7 +47679,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47583,7 +47703,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47606,7 +47727,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47629,7 +47751,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47652,7 +47775,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47675,7 +47799,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47698,7 +47823,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47721,7 +47847,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47744,7 +47871,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47767,7 +47895,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47790,7 +47919,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47813,7 +47943,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47836,7 +47967,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47859,7 +47991,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47882,7 +48015,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47905,7 +48039,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47928,7 +48063,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47951,7 +48087,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47974,7 +48111,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -47997,7 +48135,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48020,7 +48159,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48043,7 +48183,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48066,7 +48207,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48089,7 +48231,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48112,7 +48255,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48135,7 +48279,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48158,7 +48303,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48181,7 +48327,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48204,7 +48351,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48227,7 +48375,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48250,7 +48399,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48273,7 +48423,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48296,7 +48447,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48319,7 +48471,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48342,7 +48495,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48365,7 +48519,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48388,7 +48543,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48411,7 +48567,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48434,7 +48591,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48457,7 +48615,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48480,7 +48639,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48503,7 +48663,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48526,7 +48687,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48549,7 +48711,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48572,7 +48735,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48595,7 +48759,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48618,7 +48783,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, @@ -48641,7 +48807,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "suggestion": true }, diff --git a/data/presets/presets/amenity/pharmacy.json b/data/presets/presets/amenity/pharmacy.json index 8fa7d0628..ff6a2d6d2 100644 --- a/data/presets/presets/amenity/pharmacy.json +++ b/data/presets/presets/amenity/pharmacy.json @@ -7,7 +7,8 @@ "building_area", "drive_through", "opening_hours", - "payment_multi" + "payment_multi", + "dispensing" ], "geometry": [ "point", diff --git a/dist/locales/en.json b/dist/locales/en.json index 7b2314259..1a159203f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1697,6 +1697,9 @@ "label": "Direction (Degrees Clockwise)", "placeholder": "45, 90, 180, 270" }, + "dispensing": { + "label": "Dispenses Prescriptions" + }, "display": { "label": "Display" }, From dac753c4ea3d3433c3201148bb885262186c92fe Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 4 Feb 2018 14:57:26 -0500 Subject: [PATCH 012/157] Speedup hot code in actionDiscardTags (re: #4611) --- data/discarded.json | 89 ++++++++++---------- modules/actions/discard_tags.js | 22 +++-- modules/actions/merge_remote_changes.js | 105 ++++++++++++------------ modules/ui/commit_changes.js | 18 ++-- test/spec/actions/discard_tags.js | 32 ++++---- 5 files changed, 135 insertions(+), 131 deletions(-) diff --git a/data/discarded.json b/data/discarded.json index 58d998a91..61dc16815 100644 --- a/data/discarded.json +++ b/data/discarded.json @@ -1,50 +1,51 @@ { - "dataDiscarded": [ - "created_by", - "odbl", - "odbl:note", + "dataDiscarded": { + "created_by": true, + "odbl": true, + "odbl:note": true, - "tiger:upload_uuid", - "tiger:tlid", - "tiger:source", - "tiger:separated", + "tiger:upload_uuid": true, + "tiger:tlid": true, + "tiger:source": true, + "tiger:separated": true, - "geobase:datasetName", - "geobase:uuid", - "sub_sea:type", + "geobase:datasetName": true, + "geobase:uuid": true, + "sub_sea:type": true, - "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", - "yh:TOTYUMONO", - "yh:TYPE", - "yh:WIDTH", - "yh:WIDTH_RANK", + "KSJ2:ADS": true, + "KSJ2:ARE": true, + "KSJ2:AdminArea": true, + "KSJ2:COP_label": true, + "KSJ2:DFD": true, + "KSJ2:INT": true, + "KSJ2:INT_label": true, + "KSJ2:LOC": true, + "KSJ2:LPN": true, + "KSJ2:OPC": true, + "KSJ2:PubFacAdmin": true, + "KSJ2:RAC": true, + "KSJ2:RAC_label": true, + "KSJ2:RIC": true, + "KSJ2:RIN": true, + "KSJ2:WSC": true, + "KSJ2:coordinate": true, + "KSJ2:curve_id": true, + "KSJ2:curve_type": true, + "KSJ2:filename": true, + "KSJ2:lake_id": true, + "KSJ2:lat": true, + "KSJ2:long": true, + "KSJ2:river_id": true, - "SK53_bulk:load" - ] + "yh:LINE_NAME": true, + "yh:LINE_NUM": true, + "yh:STRUCTURE": true, + "yh:TOTYUMONO": true, + "yh:TYPE": true, + "yh:WIDTH": true, + "yh:WIDTH_RANK": true, + + "SK53_bulk:load": true + } } diff --git a/modules/actions/discard_tags.js b/modules/actions/discard_tags.js index 1120e7172..a2e9b65e4 100644 --- a/modules/actions/discard_tags.js +++ b/modules/actions/discard_tags.js @@ -9,15 +9,21 @@ export function actionDiscardTags(difference) { return function(graph) { function discardTags(entity) { - if (!_isEmpty(entity.tags)) { - var tags = {}; - _each(entity.tags, function(v, k) { - if (v) tags[k] = v; - }); + var tags = {}; + var keys = Object.keys(entity.tags); + var discarded = false; - graph = graph.replace(entity.update({ - tags: _omit(tags, dataDiscarded) - })); + for (var i = 0; i < keys.length; i++) { + var k = keys[i]; + if (dataDiscarded[k] || !entity.tags[k]) { + discarded = true; + } else { + tags[k] = entity.tags[k]; + } + } + + if (discarded) { + graph = graph.replace(entity.update({ tags: tags })); } } diff --git a/modules/actions/merge_remote_changes.js b/modules/actions/merge_remote_changes.js index 71412bf00..7503617ea 100644 --- a/modules/actions/merge_remote_changes.js +++ b/modules/actions/merge_remote_changes.js @@ -1,5 +1,4 @@ import _clone from 'lodash-es/clone'; -import _includes from 'lodash-es/includes'; import _isEqual from 'lodash-es/isEqual'; import _isFunction from 'lodash-es/isFunction'; import _keys from 'lodash-es/keys'; @@ -17,8 +16,8 @@ import { dataDiscarded } from '../../data'; export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser) { - var option = 'safe', // 'safe', 'force_local', 'force_remote' - conflicts = []; + var _option = 'safe'; // 'safe', 'force_local', 'force_remote' + var _conflicts = []; function user(d) { @@ -32,32 +31,32 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser return (Math.abs(a[0] - b[0]) < epsilon) && (Math.abs(a[1] - b[1]) < epsilon); } - if (option === 'force_local' || pointEqual(target.loc, remote.loc)) { + if (_option === 'force_local' || pointEqual(target.loc, remote.loc)) { return target; } - if (option === 'force_remote') { + if (_option === 'force_remote') { return target.update({loc: remote.loc}); } - conflicts.push(t('merge_remote_changes.conflict.location', { user: user(remote.user) })); + _conflicts.push(t('merge_remote_changes.conflict.location', { user: user(remote.user) })); return target; } function mergeNodes(base, remote, target) { - if (option === 'force_local' || _isEqual(target.nodes, remote.nodes)) { + if (_option === 'force_local' || _isEqual(target.nodes, remote.nodes)) { return target; } - if (option === 'force_remote') { + if (_option === 'force_remote') { return target.update({nodes: remote.nodes}); } - var ccount = conflicts.length, - o = base.nodes || [], - a = target.nodes || [], - b = remote.nodes || [], - nodes = [], - hunks = diff3Merge(a, o, b, true); + var ccount = _conflicts.length; + var o = base.nodes || []; + var a = target.nodes || []; + var b = remote.nodes || []; + var nodes = []; + var hunks = diff3Merge(a, o, b, true); for (var i = 0; i < hunks.length; i++) { var hunk = hunks[i]; @@ -72,13 +71,13 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser } else if (_isEqual(c.o, c.b)) { // only changed locally nodes.push.apply(nodes, c.a); } else { // changed both locally and remotely - conflicts.push(t('merge_remote_changes.conflict.nodelist', { user: user(remote.user) })); + _conflicts.push(t('merge_remote_changes.conflict.nodelist', { user: user(remote.user) })); break; } } } - return (conflicts.length === ccount) ? target.update({nodes: nodes}) : target; + return (_conflicts.length === ccount) ? target.update({nodes: nodes}) : target; } @@ -90,11 +89,11 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser graph.parentRelations(node).length > 0; } - var ccount = conflicts.length; + var ccount = _conflicts.length; for (var i = 0; i < children.length; i++) { - var id = children[i], - node = graph.hasEntity(id); + var id = children[i]; + var node = graph.hasEntity(id); // remove unused childNodes.. if (targetWay.nodes.indexOf(id) === -1) { @@ -105,29 +104,29 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser } // restore used childNodes.. - var local = localGraph.hasEntity(id), - remote = remoteGraph.hasEntity(id), - target; + var local = localGraph.hasEntity(id); + var remote = remoteGraph.hasEntity(id); + var target; - if (option === 'force_remote' && remote && remote.visible) { + if (_option === 'force_remote' && remote && remote.visible) { updates.replacements.push(remote); - } else if (option === 'force_local' && local) { + } else if (_option === 'force_local' && local) { target = osmEntity(local); if (remote) { target = target.update({ version: remote.version }); } updates.replacements.push(target); - } else if (option === 'safe' && local && remote && local.version !== remote.version) { + } else if (_option === 'safe' && local && remote && local.version !== remote.version) { target = osmEntity(local, { version: remote.version }); if (remote.visible) { target = mergeLocation(remote, target); } else { - conflicts.push(t('merge_remote_changes.conflict.deleted', { user: user(remote.user) })); + _conflicts.push(t('merge_remote_changes.conflict.deleted', { user: user(remote.user) })); } - if (conflicts.length !== ccount) break; + if (_conflicts.length !== ccount) break; updates.replacements.push(target); } } @@ -148,44 +147,44 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser function mergeMembers(remote, target) { - if (option === 'force_local' || _isEqual(target.members, remote.members)) { + if (_option === 'force_local' || _isEqual(target.members, remote.members)) { return target; } - if (option === 'force_remote') { + if (_option === 'force_remote') { return target.update({members: remote.members}); } - conflicts.push(t('merge_remote_changes.conflict.memberlist', { user: user(remote.user) })); + _conflicts.push(t('merge_remote_changes.conflict.memberlist', { user: user(remote.user) })); return target; } function mergeTags(base, remote, target) { function ignoreKey(k) { - return _includes(dataDiscarded, k); + return dataDiscarded[k]; } - if (option === 'force_local' || _isEqual(target.tags, remote.tags)) { + if (_option === 'force_local' || _isEqual(target.tags, remote.tags)) { return target; } - if (option === 'force_remote') { + if (_option === 'force_remote') { return target.update({tags: remote.tags}); } - var ccount = conflicts.length, - o = base.tags || {}, - a = target.tags || {}, - b = remote.tags || {}, - keys = _reject(_union(_keys(o), _keys(a), _keys(b)), ignoreKey), - tags = _clone(a), - changed = false; + var ccount = _conflicts.length; + var o = base.tags || {}; + var a = target.tags || {}; + var b = remote.tags || {}; + var keys = _reject(_union(_keys(o), _keys(a), _keys(b)), ignoreKey); + var tags = _clone(a); + var changed = false; for (var i = 0; i < keys.length; i++) { var k = keys[i]; if (o[k] !== b[k] && a[k] !== b[k]) { // changed remotely.. if (o[k] !== a[k]) { // changed locally.. - conflicts.push(t('merge_remote_changes.conflict.tags', + _conflicts.push(t('merge_remote_changes.conflict.tags', { tag: k, local: a[k], remote: b[k], user: user(remote.user) })); } else { // unchanged locally, accept remote change.. @@ -199,7 +198,7 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser } } - return (changed && conflicts.length === ccount) ? target.update({tags: tags}) : target; + return (changed && _conflicts.length === ccount) ? target.update({tags: tags}) : target; } @@ -214,18 +213,18 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser // `graph.base()` --- ... --- `remoteGraph` // var action = function(graph) { - var updates = { replacements: [], removeIds: [] }, - base = graph.base().entities[id], - local = localGraph.entity(id), - remote = remoteGraph.entity(id), - target = osmEntity(local, { version: remote.version }); + var updates = { replacements: [], removeIds: [] }; + var base = graph.base().entities[id]; + var local = localGraph.entity(id); + var remote = remoteGraph.entity(id); + var target = osmEntity(local, { version: remote.version }); // delete/undelete if (!remote.visible) { - if (option === 'force_remote') { + if (_option === 'force_remote') { return actionDeleteMultiple([id])(graph); - } else if (option === 'force_local') { + } else if (_option === 'force_local') { if (target.type === 'way') { target = mergeChildren(target, _uniq(local.nodes), updates, graph); graph = updateChildren(updates, graph); @@ -233,7 +232,7 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser return graph.replace(target); } else { - conflicts.push(t('merge_remote_changes.conflict.deleted', { user: user(remote.user) })); + _conflicts.push(t('merge_remote_changes.conflict.deleted', { user: user(remote.user) })); return graph; // do nothing } } @@ -254,7 +253,7 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser target = mergeTags(base, remote, target); - if (!conflicts.length) { + if (!_conflicts.length) { graph = updateChildren(updates, graph).replace(target); } @@ -263,13 +262,13 @@ export function actionMergeRemoteChanges(id, localGraph, remoteGraph, formatUser action.withOption = function(opt) { - option = opt; + _option = opt; return action; }; action.conflicts = function() { - return conflicts; + return _conflicts; }; diff --git a/modules/ui/commit_changes.js b/modules/ui/commit_changes.js index 195a7fd6c..9d4f3effe 100644 --- a/modules/ui/commit_changes.js +++ b/modules/ui/commit_changes.js @@ -15,14 +15,13 @@ import { export function uiCommitChanges(context) { - var _entityID; var detected = utilDetect(); + var _entityID; function commitChanges(selection) { - - var history = context.history(), - summary = history.difference().summary(); + var history = context.history(); + var summary = history.difference().summary(); var container = selection.selectAll('.modal-section.commit-section') .data([0]); @@ -96,14 +95,14 @@ export function uiCommitChanges(context) { // Download changeset link - var changeset = new osmChangeset().update({ id: undefined }), - changes = history.changes(actionDiscardTags(history.difference())); + var changeset = new osmChangeset().update({ id: undefined }); + var changes = history.changes(actionDiscardTags(history.difference())); delete changeset.id; // Export without chnageset_id - var data = JXON.stringify(changeset.osmChangeJXON(changes)), - blob = new Blob([data], {type: 'text/xml;charset=utf-8;'}), - fileName = 'changes.osc'; + var data = JXON.stringify(changeset.osmChangeJXON(changes)); + var blob = new Blob([data], {type: 'text/xml;charset=utf-8;'}); + var fileName = 'changes.osc'; var linkEnter = container.selectAll('.download-changes') .data([0]) @@ -166,6 +165,5 @@ export function uiCommitChanges(context) { }; - return commitChanges; } diff --git a/test/spec/actions/discard_tags.js b/test/spec/actions/discard_tags.js index 863c6d18d..9ebd9ef1a 100644 --- a/test/spec/actions/discard_tags.js +++ b/test/spec/actions/discard_tags.js @@ -1,33 +1,33 @@ describe('iD.actionDiscardTags', function() { it('discards obsolete tags from modified entities', function() { - var way = iD.Way({id: 'w1', tags: {created_by: 'Potlatch'}}), - base = iD.Graph([way]), - head = base.replace(way.update({tags: {created_by: 'Potlatch', foo: 'bar'}})), - action = iD.actionDiscardTags(iD.Difference(base, head)); + var way = iD.osmWay({ id: 'w1', tags: { created_by: 'Potlatch' } }); + var base = iD.coreGraph([way]); + var head = base.replace(way.update({ tags: { created_by: 'Potlatch', foo: 'bar' } })); + var action = iD.actionDiscardTags(iD.coreDifference(base, head)); expect(action(head).entity(way.id).tags).to.eql({foo: 'bar'}); }); it('discards obsolete tags from created entities', function() { - var way = iD.Way({tags: {created_by: 'Potlatch'}}), - base = iD.Graph(), - head = base.replace(way), - action = iD.actionDiscardTags(iD.Difference(base, head)); + var way = iD.osmWay({ tags: { created_by: 'Potlatch' } }); + var base = iD.coreGraph(); + var head = base.replace(way); + var action = iD.actionDiscardTags(iD.coreDifference(base, head)); expect(action(head).entity(way.id).tags).to.eql({}); }); it('doesn\'t modify entities without obsolete tags', function() { - var way = iD.Way(), - base = iD.Graph(), - head = base.replace(way), - action = iD.actionDiscardTags(iD.Difference(base, head)); + var way = iD.osmWay(); + var base = iD.coreGraph(); + var head = base.replace(way); + var action = iD.actionDiscardTags(iD.coreDifference(base, head)); expect(action(head).entity(way.id)).to.equal(way); }); it('discards tags with empty values', function() { - var way = iD.Way({tags: {lmnop: ''}}), - base = iD.Graph(), - head = base.replace(way), - action = iD.actionDiscardTags(iD.Difference(base, head)); + var way = iD.osmWay({ tags: { lmnop: '' } }); + var base = iD.coreGraph(); + var head = base.replace(way); + var action = iD.actionDiscardTags(iD.coreDifference(base, head)); expect(action(head).entity(way.id).tags).to.eql({}); }); }); From 6c3a02cebe2a011f4cd9d9c5714279b76fcec5c6 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Feb 2018 13:44:01 -0500 Subject: [PATCH 013/157] Avoid lodash in hot code in coreDifference (closes #2743, closes #4611) --- modules/actions/discard_tags.js | 5 - modules/core/difference.js | 114 ++++++++++++-------- modules/core/history.js | 183 ++++++++++++++++---------------- 3 files changed, 160 insertions(+), 142 deletions(-) diff --git a/modules/actions/discard_tags.js b/modules/actions/discard_tags.js index a2e9b65e4..555d45c93 100644 --- a/modules/actions/discard_tags.js +++ b/modules/actions/discard_tags.js @@ -1,10 +1,5 @@ -import _each from 'lodash-es/each'; -import _isEmpty from 'lodash-es/isEmpty'; -import _omit from 'lodash-es/omit'; - import { dataDiscarded } from '../../data'; - export function actionDiscardTags(difference) { return function(graph) { diff --git a/modules/core/difference.js b/modules/core/difference.js index 1806de12c..95c5b13b9 100644 --- a/modules/core/difference.js +++ b/modules/core/difference.js @@ -1,6 +1,5 @@ import _difference from 'lodash-es/difference'; import _each from 'lodash-es/each'; -import _omit from 'lodash-es/omit'; import _isEqual from 'lodash-es/isEqual'; import _values from 'lodash-es/values'; @@ -14,32 +13,51 @@ import _values from 'lodash-es/values'; child and parent relationships. */ export function coreDifference(base, head) { - var changes = {}, - difference = {}, - length = 0; - + var _changes = {}; + var _diff = {}; + var _length = 0; + var i, k, h, b, keys; function changed(h, b) { - return h !== b && !_isEqual(_omit(h, 'v'), _omit(b, 'v')); + if (h === b) return false; + if (!h || !b) return true; + + if (h.loc || b.loc) { + if (!h.loc && b.loc || + h.loc && !b.loc || + h.loc[0] !== b.loc[0] && h.loc[1] !== b.loc[1]) return true; + } + if (h.nodes || b.nodes) { + if (!_isEqual(h.nodes, b.nodes)) return true; + } + if (h.members || b.members) { + if (!_isEqual(h.members, b.members)) return true; + } + return !_isEqual(h.tags, b.tags); } - _each(head.entities, function(h, id) { - var b = base.entities[id]; + keys = Object.keys(head.entities); + for (i = 0; i < keys.length; i++) { + k = keys[i]; + h = head.entities[k]; + b = base.entities[k]; if (changed(h, b)) { - changes[id] = {base: b, head: h}; - length++; + _changes[k] = {base: b, head: h}; + _length++; } - }); + } - - _each(base.entities, function(b, id) { - var h = head.entities[id]; - if (!changes[id] && changed(h, b)) { - changes[id] = {base: b, head: h}; - length++; + keys = Object.keys(base.entities); + for (i = 0; i < keys.length; i++) { + k = keys[i]; + h = head.entities[k]; + b = base.entities[k]; + if (!_changes[k] && changed(h, b)) { + _changes[k] = {base: b, head: h}; + _length++; } - }); + } function addParents(parents, result) { @@ -55,53 +73,53 @@ export function coreDifference(base, head) { } - difference.length = function() { - return length; + _diff.length = function length() { + return _length; }; - difference.changes = function() { - return changes; + _diff.changes = function changes() { + return _changes; }; - difference.extantIDs = function() { + _diff.extantIDs = function extantIDs() { var result = []; - _each(changes, function(change, id) { + _each(_changes, function(change, id) { if (change.head) result.push(id); }); return result; }; - difference.modified = function() { + _diff.modified = function modified() { var result = []; - _each(changes, function(change) { + _each(_changes, function(change) { if (change.base && change.head) result.push(change.head); }); return result; }; - difference.created = function() { + _diff.created = function created() { var result = []; - _each(changes, function(change) { + _each(_changes, function(change) { if (!change.base && change.head) result.push(change.head); }); return result; }; - difference.deleted = function() { + _diff.deleted = function deleted() { var result = []; - _each(changes, function(change) { + _each(_changes, function(change) { if (change.base && !change.head) result.push(change.base); }); return result; }; - difference.summary = function() { + _diff.summary = function summary() { var relevant = {}; function addEntity(entity, graph, changeType) { @@ -120,7 +138,10 @@ export function coreDifference(base, head) { } } - _each(changes, function(change) { + var keys = Object.keys(_changes); + for (var i = 0; i < keys.length; i++) { + var change = _changes[keys[i]]; + if (change.head && change.head.geometry(head) !== 'vertex') { addEntity(change.head, head, change.base ? 'modified' : 'created'); @@ -128,8 +149,8 @@ export function coreDifference(base, head) { addEntity(change.base, base, 'deleted'); } else if (change.base && change.head) { // modified vertex - var moved = !_isEqual(change.base.loc, change.head.loc), - retagged = !_isEqual(change.base.tags, change.head.tags); + var moved = !_isEqual(change.base.loc, change.head.loc); + var retagged = !_isEqual(change.base.tags, change.head.tags); if (moved) { addParents(change.head); @@ -145,21 +166,22 @@ export function coreDifference(base, head) { } else if (change.base && change.base.hasInterestingTags()) { // deleted vertex addEntity(change.base, base, 'deleted'); } - }); + } return _values(relevant); }; - difference.complete = function(extent) { - var result = {}, id, change; + _diff.complete = function complete(extent) { + var result = {}; + var id, change; - for (id in changes) { - change = changes[id]; + for (id in _changes) { + change = _changes[id]; - var h = change.head, - b = change.base, - entity = h || b; + var h = change.head; + var b = change.base; + var entity = h || b; if (extent && (!h || !h.intersects(extent, head)) && @@ -169,9 +191,9 @@ export function coreDifference(base, head) { result[id] = h; if (entity.type === 'way') { - var nh = h ? h.nodes : [], - nb = b ? b.nodes : [], - diff, i; + var nh = h ? h.nodes : []; + var nb = b ? b.nodes : []; + var diff, i; diff = _difference(nh, nb); for (i = 0; i < diff.length; i++) { @@ -192,5 +214,5 @@ export function coreDifference(base, head) { }; - return difference; + return _diff; } diff --git a/modules/core/history.js b/modules/core/history.js index 47d9f3f49..57e3a2260 100644 --- a/modules/core/history.js +++ b/modules/core/history.js @@ -32,12 +32,14 @@ import { export function coreHistory(context) { - var imageryUsed = ['Bing'], - dispatch = d3_dispatch('change', 'undone', 'redone'), - lock = utilSessionMutex('lock'), - duration = 150, - checkpoints = {}, - stack, index, tree; + var imageryUsed = ['Bing']; + var dispatch = d3_dispatch('change', 'undone', 'redone'); + var lock = utilSessionMutex('lock'); + var duration = 150; + var _checkpoints = {}; + var _stack; + var _index; + var _tree; // internal _act, accepts list of actions and eased time @@ -45,15 +47,14 @@ export function coreHistory(context) { actions = Array.prototype.slice.call(actions); var annotation; - if (!_isFunction(actions[actions.length - 1])) { annotation = actions.pop(); } - stack[index].transform = context.projection.transform(); - stack[index].selectedIDs = context.selectedIDs(); + _stack[_index].transform = context.projection.transform(); + _stack[_index].selectedIDs = context.selectedIDs(); - var graph = stack[index].graph; + var graph = _stack[_index].graph; for (var i = 0; i < actions.length; i++) { graph = actions[i](graph, t); } @@ -68,33 +69,33 @@ export function coreHistory(context) { // internal _perform with eased time function _perform(args, t) { - var previous = stack[index].graph; - stack = stack.slice(0, index + 1); - stack.push(_act(args, t)); - index++; + var previous = _stack[_index].graph; + _stack = _stack.slice(0, _index + 1); + _stack.push(_act(args, t)); + _index++; return change(previous); } // internal _replace with eased time function _replace(args, t) { - var previous = stack[index].graph; - // assert(index == stack.length - 1) - stack[index] = _act(args, t); + var previous = _stack[_index].graph; + // assert(_index == _stack.length - 1) + _stack[_index] = _act(args, t); return change(previous); } // internal _overwrite with eased time function _overwrite(args, t) { - var previous = stack[index].graph; - if (index > 0) { - index--; - stack.pop(); + var previous = _stack[_index].graph; + if (_index > 0) { + _index--; + _stack.pop(); } - stack = stack.slice(0, index + 1); - stack.push(_act(args, t)); - index++; + _stack = _stack.slice(0, _index + 1); + _stack.push(_act(args, t)); + _index++; return change(previous); } @@ -116,18 +117,18 @@ export function coreHistory(context) { var history = { graph: function() { - return stack[index].graph; + return _stack[_index].graph; }, base: function() { - return stack[0].graph; + return _stack[0].graph; }, merge: function(entities, extent) { - stack[0].graph.rebase(entities, _map(stack, 'graph'), false); - tree.rebase(entities, false); + _stack[0].graph.rebase(entities, _map(_stack, 'graph'), false); + _tree.rebase(entities, false); dispatch.call('change', this, undefined, extent); }, @@ -137,8 +138,8 @@ export function coreHistory(context) { // complete any transition already in progress d3_select(document).interrupt('history.perform'); - var transitionable = false, - action0 = arguments[0]; + var transitionable = false; + var action0 = arguments[0]; if (arguments.length === 1 || arguments.length === 2 && !_isFunction(arguments[1])) { @@ -185,29 +186,29 @@ export function coreHistory(context) { pop: function(n) { d3_select(document).interrupt('history.perform'); - var previous = stack[index].graph; + var previous = _stack[_index].graph; if (isNaN(+n) || +n < 0) { n = 1; } - while (n-- > 0 && index > 0) { - index--; - stack.pop(); + while (n-- > 0 && _index > 0) { + _index--; + _stack.pop(); } return change(previous); }, - // Back to the previous annotated state or index = 0. + // Back to the previous annotated state or _index = 0. undo: function() { d3_select(document).interrupt('history.perform'); - var previous = stack[index].graph; - while (index > 0) { - index--; - if (stack[index].annotation) break; + var previous = _stack[_index].graph; + while (_index > 0) { + _index--; + if (_stack[_index].annotation) break; } - dispatch.call('undone', this, stack[index]); + dispatch.call('undone', this, _stack[_index]); return change(previous); }, @@ -216,13 +217,13 @@ export function coreHistory(context) { redo: function() { d3_select(document).interrupt('history.perform'); - var previous = stack[index].graph; - var tryIndex = index; - while (tryIndex < stack.length - 1) { + var previous = _stack[_index].graph; + var tryIndex = _index; + while (tryIndex < _stack.length - 1) { tryIndex++; - if (stack[tryIndex].annotation) { - index = tryIndex; - dispatch.call('redone', this, stack[index]); + if (_stack[tryIndex].annotation) { + _index = tryIndex; + dispatch.call('redone', this, _stack[_index]); break; } } @@ -232,38 +233,38 @@ export function coreHistory(context) { undoAnnotation: function() { - var i = index; + var i = _index; while (i >= 0) { - if (stack[i].annotation) return stack[i].annotation; + if (_stack[i].annotation) return _stack[i].annotation; i--; } }, redoAnnotation: function() { - var i = index + 1; - while (i <= stack.length - 1) { - if (stack[i].annotation) return stack[i].annotation; + var i = _index + 1; + while (i <= _stack.length - 1) { + if (_stack[i].annotation) return _stack[i].annotation; i++; } }, intersects: function(extent) { - return tree.intersects(extent, stack[index].graph); + return _tree.intersects(extent, _stack[_index].graph); }, difference: function() { - var base = stack[0].graph, - head = stack[index].graph; + var base = _stack[0].graph; + var head = _stack[_index].graph; return coreDifference(base, head); }, changes: function(action) { - var base = stack[0].graph, - head = stack[index].graph; + var base = _stack[0].graph; + var head = _stack[_index].graph; if (action) { head = action(head); @@ -281,7 +282,7 @@ export function coreHistory(context) { validate: function(changes) { return _flatten( - _map(Validations, function(fn) { return fn()(changes, stack[index].graph); }) + _map(Validations, function(fn) { return fn()(changes, _stack[_index].graph); }) ); }, @@ -296,7 +297,7 @@ export function coreHistory(context) { imageryUsed = sources; return history; } else { - var arr = _map(stack.slice(1, index + 1), 'imageryUsed'); + var arr = _map(_stack.slice(1, _index + 1), 'imageryUsed'); return _without(_uniq(_flatten(arr)), 'Custom'); } }, @@ -304,9 +305,9 @@ export function coreHistory(context) { // save the current history state checkpoint: function(key) { - checkpoints[key] = { - stack: _cloneDeep(stack), - index: index + _checkpoints[key] = { + stack: _cloneDeep(_stack), + index: _index }; return history; }, @@ -314,14 +315,14 @@ export function coreHistory(context) { // restore history state to a given checkpoint or reset completely reset: function(key) { - if (key !== undefined && checkpoints.hasOwnProperty(key)) { - stack = _cloneDeep(checkpoints[key].stack); - index = checkpoints[key].index; + if (key !== undefined && _checkpoints.hasOwnProperty(key)) { + _stack = _cloneDeep(_checkpoints[key].stack); + _index = _checkpoints[key].index; } else { - stack = [{graph: coreGraph()}]; - index = 0; - tree = coreTree(stack[0].graph); - checkpoints = {}; + _stack = [{graph: coreGraph()}]; + _index = 0; + _tree = coreTree(_stack[0].graph); + _checkpoints = {}; } dispatch.call('change'); return history; @@ -329,10 +330,10 @@ export function coreHistory(context) { toIntroGraph: function() { - var nextId = { n: 0, r: 0, w: 0 }, - permIds = {}, - graph = this.graph(), - baseEntities = {}; + var nextId = { n: 0, r: 0, w: 0 }; + var permIds = {}; + var graph = this.graph(); + var baseEntities = {}; // clone base entities.. _forEach(graph.base().entities, function(entity) { @@ -395,11 +396,11 @@ export function coreHistory(context) { toJSON: function() { if (!this.hasChanges()) return; - var allEntities = {}, - baseEntities = {}, - base = stack[0]; + var allEntities = {}; + var baseEntities = {}; + var base = _stack[0]; - var s = stack.map(function(i) { + var s = _stack.map(function(i) { var modified = [], deleted = []; _forEach(i.graph.entities, function(entity, id) { @@ -412,7 +413,7 @@ export function coreHistory(context) { } // make sure that the originals of changed or deleted entities get merged - // into the base of the stack after restoring the data from JSON. + // into the base of the _stack after restoring the data from JSON. if (id in base.graph.entities) { baseEntities[id] = base.graph.entities[id]; } @@ -440,17 +441,17 @@ export function coreHistory(context) { baseEntities: _values(baseEntities), stack: s, nextIDs: osmEntity.id.next, - index: index + index: _index }); }, fromJSON: function(json, loadChildNodes) { - var h = JSON.parse(json), - loadComplete = true; + var h = JSON.parse(json); + var loadComplete = true; osmEntity.id.next = h.nextIDs; - index = h.index; + _index = h.index; if (h.version === 2 || h.version === 3) { var allEntities = {}; @@ -461,18 +462,18 @@ export function coreHistory(context) { if (h.version === 3) { // This merges originals for changed entities into the base of - // the stack even if the current stack doesn't have them (for + // the _stack even if the current _stack doesn't have them (for // example when iD has been restarted in a different region) var baseEntities = h.baseEntities.map(function(d) { return osmEntity(d); }); - stack[0].graph.rebase(baseEntities, _map(stack, 'graph'), true); - tree.rebase(baseEntities, true); + _stack[0].graph.rebase(baseEntities, _map(_stack, 'graph'), true); + _tree.rebase(baseEntities, true); // When we restore a modified way, we also need to fetch any missing // childnodes that would normally have been downloaded with it.. #2142 if (loadChildNodes) { var osm = context.connection(); var nodes = _flatten(_uniq(_map(_filter(baseEntities, { type: 'way' }), 'nodes'))); - var missing = _reject(nodes, function(n) { return stack[0].graph.hasEntity(n); }); + var missing = _reject(nodes, function(n) { return _stack[0].graph.hasEntity(n); }); if (!_isEmpty(missing) && osm) { loadComplete = false; @@ -486,8 +487,8 @@ export function coreHistory(context) { var visible = _groupBy(result.data, 'visible'); if (!_isEmpty(visible.true)) { missing = _difference(missing, _map(visible.true, 'id')); - stack[0].graph.rebase(visible.true, _map(stack, 'graph'), true); - tree.rebase(visible.true, true); + _stack[0].graph.rebase(visible.true, _map(_stack, 'graph'), true); + _tree.rebase(visible.true, true); } // fetch older versions of nodes that were deleted.. @@ -508,7 +509,7 @@ export function coreHistory(context) { } } - stack = h.stack.map(function(d) { + _stack = h.stack.map(function(d) { var entities = {}, entity; if (d.modified) { @@ -525,14 +526,14 @@ export function coreHistory(context) { } return { - graph: coreGraph(stack[0].graph).load(entities), + graph: coreGraph(_stack[0].graph).load(entities), annotation: d.annotation, imageryUsed: d.imageryUsed }; }); } else { // original version - stack = h.stack.map(function(d) { + _stack = h.stack.map(function(d) { var entities = {}; for (var i in d.entities) { @@ -540,7 +541,7 @@ export function coreHistory(context) { entities[i] = entity === 'undefined' ? undefined : osmEntity(entity); } - d.graph = coreGraph(stack[0].graph).load(entities); + d.graph = coreGraph(_stack[0].graph).load(entities); return d; }); } From a6f840197a640de140a686a1493a953df25cc4fe Mon Sep 17 00:00:00 2001 From: Jordane Pelloux-Prayer Date: Mon, 5 Feb 2018 20:33:00 +0100 Subject: [PATCH 014/157] add wholesale shop preset (#4754) --- data/presets.yaml | 8 ++++++++ data/presets/fields.json | 5 +++++ data/presets/fields/wholesale.json | 5 +++++ data/presets/presets.json | 24 ++++++++++++++++++++++++ data/presets/presets/shop/wholesale.json | 24 ++++++++++++++++++++++++ data/taginfo.json | 4 ++++ dist/locales/en.json | 7 +++++++ 7 files changed, 77 insertions(+) create mode 100644 data/presets/fields/wholesale.json create mode 100644 data/presets/presets/shop/wholesale.json diff --git a/data/presets.yaml b/data/presets.yaml index 449211ed3..2cdf00feb 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1620,6 +1620,9 @@ en: wheelchair: # wheelchair=* label: Wheelchair Access + wholesale: + # wholesale=* + label: wholesale width: # width=* label: Width (Meters) @@ -5373,6 +5376,11 @@ en: name: Weapon Shop # 'terms: ammo,gun,knife,knives' terms: '' + shop/wholesale: + # shop=wholesale + name: Wholesale shop/store + # 'terms: warehouse club,cash and carry' + terms: '' shop/window_blind: # shop=window_blind name: Window Blind Store diff --git a/data/presets/fields.json b/data/presets/fields.json index 19c1a8569..9572dd677 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -2202,6 +2202,11 @@ "universal": true, "label": "Wheelchair Access" }, + "wholesale": { + "key": "wholesale", + "type": "typeCombo", + "label": "wholesale" + }, "width": { "key": "width", "type": "number", diff --git a/data/presets/fields/wholesale.json b/data/presets/fields/wholesale.json new file mode 100644 index 000000000..9612b71db --- /dev/null +++ b/data/presets/fields/wholesale.json @@ -0,0 +1,5 @@ +{ + "key": "wholesale", + "type": "typeCombo", + "label": "wholesale" +} \ No newline at end of file diff --git a/data/presets/presets.json b/data/presets/presets.json index d8b7fbd56..4e63db8e9 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -18220,6 +18220,30 @@ }, "name": "Weapon Shop" }, + "shop/wholesale": { + "icon": "shop", + "fields": [ + "name", + "operator", + "wholesale", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "warehouse club", + "cash and carry" + ], + "tags": { + "shop": "wholesale" + }, + "name": "Wholesale shop/store" + }, "shop/window_blind": { "icon": "shop", "fields": [ diff --git a/data/presets/presets/shop/wholesale.json b/data/presets/presets/shop/wholesale.json new file mode 100644 index 000000000..e5067f766 --- /dev/null +++ b/data/presets/presets/shop/wholesale.json @@ -0,0 +1,24 @@ +{ + "icon": "shop", + "fields": [ + "name", + "operator", + "wholesale", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "warehouse club", + "cash and carry" + ], + "tags": { + "shop": "wholesale" + }, + "name": "Wholesale shop/store" +} \ No newline at end of file diff --git a/data/taginfo.json b/data/taginfo.json index bcaa8359b..1bc93bb8e 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -3307,6 +3307,10 @@ "key": "shop", "value": "weapons" }, + { + "key": "shop", + "value": "wholesale" + }, { "key": "shop", "value": "window_blind" diff --git a/dist/locales/en.json b/dist/locales/en.json index 1a159203f..914daf66c 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2642,6 +2642,9 @@ "wheelchair": { "label": "Wheelchair Access" }, + "wholesale": { + "label": "wholesale" + }, "width": { "label": "Width (Meters)" }, @@ -5998,6 +6001,10 @@ "name": "Weapon Shop", "terms": "ammo,gun,knife,knives" }, + "shop/wholesale": { + "name": "Wholesale shop/store", + "terms": "warehouse club,cash and carry" + }, "shop/window_blind": { "name": "Window Blind Store", "terms": "" From fb71294d8e8dbecc61798581a567f06935ac8606 Mon Sep 17 00:00:00 2001 From: Jordane Pelloux-Prayer Date: Mon, 5 Feb 2018 20:34:32 +0100 Subject: [PATCH 015/157] add health food shop preset (#4754) --- data/presets.yaml | 5 +++++ data/presets/presets.json | 25 ++++++++++++++++++++++ data/presets/presets/shop/health_food.json | 25 ++++++++++++++++++++++ data/taginfo.json | 4 ++++ dist/locales/en.json | 4 ++++ 5 files changed, 63 insertions(+) create mode 100644 data/presets/presets/shop/health_food.json diff --git a/data/presets.yaml b/data/presets.yaml index 2cdf00feb..a747d8f94 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -5117,6 +5117,11 @@ en: # shop=hardware name: Hardware Store terms: '' + shop/health_food: + # 'shop=health_food ' + name: Health food shop + # 'terms: wholefood,vitamins,vegetarian,vegan' + terms: '' shop/hearing_aids: # shop=hearing_aids name: Hearing Aids Store diff --git a/data/presets/presets.json b/data/presets/presets.json index 4e63db8e9..30eae7c21 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -17006,6 +17006,31 @@ }, "name": "Hardware Store" }, + "shop/health_food": { + "icon": "shop", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "wholefood", + "vitamins", + "vegetarian", + "vegan" + ], + "tags": { + "shop": "health_food " + }, + "name": "Health food shop" + }, "shop/hearing_aids": { "icon": "shop", "fields": [ diff --git a/data/presets/presets/shop/health_food.json b/data/presets/presets/shop/health_food.json new file mode 100644 index 000000000..80be91b21 --- /dev/null +++ b/data/presets/presets/shop/health_food.json @@ -0,0 +1,25 @@ +{ + "icon": "shop", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours", + "payment_multi" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "wholefood", + "vitamins", + "vegetarian", + "vegan" + ], + "tags": { + "shop": "health_food " + }, + "name": "Health food shop" +} \ No newline at end of file diff --git a/data/taginfo.json b/data/taginfo.json index 1bc93bb8e..952cd9461 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -3071,6 +3071,10 @@ "key": "shop", "value": "hardware" }, + { + "key": "shop", + "value": "health_food " + }, { "key": "shop", "value": "hearing_aids" diff --git a/dist/locales/en.json b/dist/locales/en.json index 914daf66c..f6f0a110f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5765,6 +5765,10 @@ "name": "Hardware Store", "terms": "" }, + "shop/health_food": { + "name": "Health food shop", + "terms": "wholefood,vitamins,vegetarian,vegan" + }, "shop/hearing_aids": { "name": "Hearing Aids Store", "terms": "" From 0c23073d52e2e45a649ad560529a922f2742b362 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Feb 2018 14:34:51 -0500 Subject: [PATCH 016/157] Correctly catch `loc` changes --- modules/core/difference.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/core/difference.js b/modules/core/difference.js index 95c5b13b9..a00f0f0ce 100644 --- a/modules/core/difference.js +++ b/modules/core/difference.js @@ -23,9 +23,8 @@ export function coreDifference(base, head) { if (!h || !b) return true; if (h.loc || b.loc) { - if (!h.loc && b.loc || - h.loc && !b.loc || - h.loc[0] !== b.loc[0] && h.loc[1] !== b.loc[1]) return true; + if (!h.loc && b.loc || h.loc && !b.loc || + h.loc[0] !== b.loc[0] || h.loc[1] !== b.loc[1]) return true; } if (h.nodes || b.nodes) { if (!_isEqual(h.nodes, b.nodes)) return true; From 4e16d43f53656a1d04a535377c4dddae3599e858 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Sun, 4 Feb 2018 01:04:43 +0000 Subject: [PATCH 017/157] fix(package): update lodash-es to version 4.17.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a932befe2..43a04f61c 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "@mapbox/sexagesimal": "1.1.0", "@mapbox/togeojson": "0.16.0", "diacritics": "1.3.0", - "lodash-es": "4.17.4", + "lodash-es": "4.17.5", "marked": "0.3.12", "node-diff3": "bhousel/node-diff3.git#v0.1.0", "osm-auth": "1.0.2", From fef30e02ddf07382d3674ea8d51041248a99811b Mon Sep 17 00:00:00 2001 From: Jordane Pelloux-Prayer Date: Mon, 5 Feb 2018 20:48:23 +0100 Subject: [PATCH 018/157] fix the names of new presets --- data/presets/presets/shop/health_food.json | 2 +- data/presets/presets/shop/wholesale.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/presets/presets/shop/health_food.json b/data/presets/presets/shop/health_food.json index 80be91b21..a80333678 100644 --- a/data/presets/presets/shop/health_food.json +++ b/data/presets/presets/shop/health_food.json @@ -21,5 +21,5 @@ "tags": { "shop": "health_food " }, - "name": "Health food shop" + "name": "Health Food Shop" } \ No newline at end of file diff --git a/data/presets/presets/shop/wholesale.json b/data/presets/presets/shop/wholesale.json index e5067f766..289f242fd 100644 --- a/data/presets/presets/shop/wholesale.json +++ b/data/presets/presets/shop/wholesale.json @@ -20,5 +20,5 @@ "tags": { "shop": "wholesale" }, - "name": "Wholesale shop/store" + "name": "Wholesale Shop" } \ No newline at end of file From 176d7d2b4fe5c5197875404f90f7fee9b42f5f73 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Feb 2018 15:11:25 -0500 Subject: [PATCH 019/157] Adjust preset names, use warehouse icon for `shop=wholesale` --- data/presets.yaml | 8 ++++---- data/presets/presets.json | 6 +++--- data/presets/presets/shop/health_food.json | 2 +- data/presets/presets/shop/wholesale.json | 6 +++--- dist/locales/en.json | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index a747d8f94..6bd963f23 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -5119,9 +5119,9 @@ en: terms: '' shop/health_food: # 'shop=health_food ' - name: Health food shop + name: Health Food Shop # 'terms: wholefood,vitamins,vegetarian,vegan' - terms: '' + terms: '' shop/hearing_aids: # shop=hearing_aids name: Hearing Aids Store @@ -5383,9 +5383,9 @@ en: terms: '' shop/wholesale: # shop=wholesale - name: Wholesale shop/store + name: Wholesale Store # 'terms: warehouse club,cash and carry' - terms: '' + terms: '' shop/window_blind: # shop=window_blind name: Window Blind Store diff --git a/data/presets/presets.json b/data/presets/presets.json index 30eae7c21..d12cbee66 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -17029,7 +17029,7 @@ "tags": { "shop": "health_food " }, - "name": "Health food shop" + "name": "Health Food Shop" }, "shop/hearing_aids": { "icon": "shop", @@ -18246,7 +18246,7 @@ "name": "Weapon Shop" }, "shop/wholesale": { - "icon": "shop", + "icon": "warehouse", "fields": [ "name", "operator", @@ -18267,7 +18267,7 @@ "tags": { "shop": "wholesale" }, - "name": "Wholesale shop/store" + "name": "Wholesale Store" }, "shop/window_blind": { "icon": "shop", diff --git a/data/presets/presets/shop/health_food.json b/data/presets/presets/shop/health_food.json index a80333678..308278e44 100644 --- a/data/presets/presets/shop/health_food.json +++ b/data/presets/presets/shop/health_food.json @@ -22,4 +22,4 @@ "shop": "health_food " }, "name": "Health Food Shop" -} \ No newline at end of file +} diff --git a/data/presets/presets/shop/wholesale.json b/data/presets/presets/shop/wholesale.json index 289f242fd..7262812ac 100644 --- a/data/presets/presets/shop/wholesale.json +++ b/data/presets/presets/shop/wholesale.json @@ -1,5 +1,5 @@ { - "icon": "shop", + "icon": "warehouse", "fields": [ "name", "operator", @@ -20,5 +20,5 @@ "tags": { "shop": "wholesale" }, - "name": "Wholesale Shop" -} \ No newline at end of file + "name": "Wholesale Store" +} diff --git a/dist/locales/en.json b/dist/locales/en.json index f6f0a110f..949e10dd6 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5766,7 +5766,7 @@ "terms": "" }, "shop/health_food": { - "name": "Health food shop", + "name": "Health Food Shop", "terms": "wholefood,vitamins,vegetarian,vegan" }, "shop/hearing_aids": { @@ -6006,7 +6006,7 @@ "terms": "ammo,gun,knife,knives" }, "shop/wholesale": { - "name": "Wholesale shop/store", + "name": "Wholesale Store", "terms": "warehouse club,cash and carry" }, "shop/window_blind": { From 14157a362366de4067b6bb069317b56f7da0f59e Mon Sep 17 00:00:00 2001 From: Jordane Pelloux-Prayer Date: Tue, 6 Feb 2018 16:41:23 +0100 Subject: [PATCH 020/157] add amusement arcade preset (#4774) --- data/presets.yaml | 5 ++++ data/presets/presets.json | 24 +++++++++++++++++++ .../presets/leisure/amusement_arcade.json | 24 +++++++++++++++++++ data/taginfo.json | 4 ++++ dist/locales/en.json | 4 ++++ 5 files changed, 61 insertions(+) create mode 100644 data/presets/presets/leisure/amusement_arcade.json diff --git a/data/presets.yaml b/data/presets.yaml index 6bd963f23..3adf7c6c4 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3588,6 +3588,11 @@ en: name: Adult Gaming Center # 'terms: gambling,slot machine' terms: '' + leisure/amusement_arcade: + # leisure=amusement_arcade + name: Amusement Arcade + # 'terms: pay-to-play games,video games,driving simulators,pinball machines' + terms: '' leisure/bird_hide: # leisure=bird_hide name: Bird Hide diff --git a/data/presets/presets.json b/data/presets/presets.json index d12cbee66..15834af2f 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -9299,6 +9299,30 @@ }, "name": "Adult Gaming Center" }, + "leisure/amusement_arcade": { + "icon": "poi-dice", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "pay-to-play games", + "video games", + "driving simulators", + "pinball machines" + ], + "tags": { + "leisure": "amusement_arcade" + }, + "name": "Amusement Arcade" + }, "leisure/bird_hide": { "icon": "poi-binoculars", "fields": [ diff --git a/data/presets/presets/leisure/amusement_arcade.json b/data/presets/presets/leisure/amusement_arcade.json new file mode 100644 index 000000000..b8066ecbf --- /dev/null +++ b/data/presets/presets/leisure/amusement_arcade.json @@ -0,0 +1,24 @@ +{ + "icon": "poi-dice", + "fields": [ + "name", + "operator", + "address", + "building_area", + "opening_hours" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "pay-to-play games", + "video games", + "driving simulators", + "pinball machines" + ], + "tags": { + "leisure": "amusement_arcade" + }, + "name": "Amusement Arcade" +} diff --git a/data/taginfo.json b/data/taginfo.json index 952cd9461..d206b8f4c 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1757,6 +1757,10 @@ "key": "leisure", "value": "adult_gaming_centre" }, + { + "key": "leisure", + "value": "amusement_arcade" + }, { "key": "leisure", "value": "bird_hide" diff --git a/dist/locales/en.json b/dist/locales/en.json index 949e10dd6..fc812e18e 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4433,6 +4433,10 @@ "name": "Adult Gaming Center", "terms": "gambling,slot machine" }, + "leisure/amusement_arcade": { + "name": "Amusement Arcade", + "terms": "pay-to-play games,video games,driving simulators,pinball machines" + }, "leisure/bird_hide": { "name": "Bird Hide", "terms": "machan,ornithology" From 520cfd3276266c438006733576ecd14b433880b2 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 6 Feb 2018 14:34:26 -0500 Subject: [PATCH 021/157] Fix bug causing improper calc of from/via/to metadata after trimming This is the part of the algorithm where trivial sections get trimmed from the vgraph. Removing a vertex from `vertexIds` means "stop checking this one". But there were some situations where it could get removed twice, so we now just verify that `vertexId` is actually in the array before calling `splice`. --- modules/osm/intersection.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index a9ca41f69..1f1a6d6ed 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -263,14 +263,18 @@ export function osmIntersection(graph, startVertexId) { vertex = vgraph.hasEntity(vertexId); if (!vertex) { - vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + if (vertexIds.indexOf(vertexId) !== -1) { + vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + } removeVertexIds.push(vertexId); continue; } parents = vgraph.parentWays(vertex); if (parents.length < 3) { - vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + if (vertexIds.indexOf(vertexId) !== -1) { + vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + } } if (parents.length === 2) { // vertex with 2 parents is trivial @@ -299,7 +303,9 @@ export function osmIntersection(graph, startVertexId) { parents = vgraph.parentWays(vertex); if (parents.length < 2) { // vertex is no longer a key vertex - vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + if (vertexIds.indexOf(vertexId) !== -1) { + vertexIds.splice(vertexIds.indexOf(vertexId), 1); // stop checking this one + } removeVertexIds.push(vertexId); keepGoing = true; } From aa7925a918b622dfe0f3b29b251858fa4862a363 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 00:07:38 -0500 Subject: [PATCH 022/157] Extend leaf ways, so they don't stop within the viewport --- modules/osm/intersection.js | 28 +++++++++++++++++++++++++++- modules/ui/fields/restrictions.js | 21 ++++++++++++++------- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 1f1a6d6ed..7f918a815 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -10,10 +10,17 @@ import { } from '../actions'; import { coreGraph } from '../core'; -import { geoAngle, geoSphericalDistance } from '../geo'; + +import { + geoAngle, + geoSphericalDistance, + geoVecInterp +} from '../geo'; + import { osmEntity } from './entity'; + export function osmTurn(turn) { if (!(this instanceof osmTurn)) { return new osmTurn(turn); @@ -326,6 +333,25 @@ export function osmIntersection(graph, startVertexId) { .map(function(way) { return vgraph.entity(way.id); }); + // STEP 8: Extend leaf ways + ways.forEach(function(way) { + var n1, n2; + if (way.__via) return; // not a leaf + if (way.__first) { + n1 = vgraph.entity(way.nodes[way.nodes.length - 2]); + n2 = vgraph.entity(way.nodes[way.nodes.length - 1]); + } else { + n1 = vgraph.entity(way.nodes[1]); + n2 = vgraph.entity(way.nodes[0]); + } + + var toLoc = geoVecInterp(n1.loc, n2.loc, 10); // extend 1000% + n2 = n2.move(toLoc); + vgraph = vgraph.replace(n2); + }); + + + // OK! Here is our intersection.. var intersection = { graph: vgraph, diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index e9aa6930f..024c61dc1 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -8,7 +8,15 @@ import { import { t } from '../../util/locale'; import { actionRestrictTurn, actionUnrestrictTurn } from '../../actions'; import { behaviorBreathe, behaviorHover } from '../../behavior'; -import { geoExtent, geoRawMercator } from '../../geo'; + +import { + geoExtent, + geoRawMercator, + geoVecScale, + geoVecSubtract, + geoZoomToScale +} from '../../geo'; + import { osmIntersection, osmInferRestriction, osmTurn, osmWay } from '../../osm'; import { svgLabels, svgLayers, svgLines, svgTurns, svgVertices } from '../../svg'; import { utilRebind } from '../../util/rebind'; @@ -64,20 +72,19 @@ export function uiFieldRestrictions(field, context) { var projection = geoRawMercator(); var d = utilGetDimensions(wrap.merge(enter)); - var c = [d[0] / 2, d[1] / 2]; - var z = intersection.vertices.length === 1 ? 22 : 20; + var c = geoVecScale(d, 0.5); + var z = intersection.vertices.length === 1 ? 22 : 19.5; - projection - .scale(256 * Math.pow(2, z) / (2 * Math.PI)); + projection.scale(geoZoomToScale(z)); // fit extent to include all key vertices for (var i = 0; i < intersection.vertices.length; i++) { extent._extend(intersection.vertices[i].extent()); } - var s = projection(extent.center()); + var center = projection(extent.center()); projection - .translate([c[0] - s[0], c[1] - s[1]]) + .translate(geoVecSubtract(c, center)) .clipExtent([[0, 0], d]); var drawLayers = svgLayers(projection, context).only('osm').dimensions(d); From 1007cfe2527d6a5fa8fa6b3568c00889e4fe62e7 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 01:10:26 -0500 Subject: [PATCH 023/157] Better calculation for fitting the whole intersection into view --- modules/ui/fields/restrictions.js | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 024c61dc1..7a6f50ffd 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -68,23 +68,38 @@ export function uiFieldRestrictions(field, context) { var vgraph = intersection.graph; var filter = utilFunctor(true); - var extent = geoExtent(); var projection = geoRawMercator(); var d = utilGetDimensions(wrap.merge(enter)); var c = geoVecScale(d, 0.5); - var z = intersection.vertices.length === 1 ? 22 : 19.5; + var z = 22; projection.scale(geoZoomToScale(z)); - // fit extent to include all key vertices + // Calculate extent of all key vertices + var extent = geoExtent(); for (var i = 0; i < intersection.vertices.length; i++) { extent._extend(intersection.vertices[i].extent()); } - var center = projection(extent.center()); + // If this is a large intersection, adjust zoom to fit extent + if (intersection.vertices.length > 1) { + var padding = 220; + var tl = projection([extent[0][0], extent[1][1]]); + var br = projection([extent[1][0], extent[0][1]]); + var hFactor = (br[0] - tl[0]) / (d[0] - padding); + var vFactor = (br[1] - tl[1]) / (d[1] - padding); + var hZoomDiff = Math.log(Math.abs(hFactor)) / Math.LN2; + var vZoomDiff = Math.log(Math.abs(vFactor)) / Math.LN2; + z = z - Math.max(hZoomDiff, vZoomDiff); + projection.scale(geoZoomToScale(z)); + } + + var padTop = 30; + var extentCenter = projection(extent.center()); + extentCenter[1] = extentCenter[1] - padTop; projection - .translate(geoVecSubtract(c, center)) + .translate(geoVecSubtract(c, extentCenter)) .clipExtent([[0, 0], d]); var drawLayers = svgLayers(projection, context).only('osm').dimensions(d); From 5ca56b68734ad1e6411721259dfb1da4cc25ff9a Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 01:16:14 -0500 Subject: [PATCH 024/157] Handle situation where nodes have no `loc` (like in tests) --- modules/osm/intersection.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 7f918a815..bb89efea3 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -345,9 +345,11 @@ export function osmIntersection(graph, startVertexId) { n2 = vgraph.entity(way.nodes[0]); } - var toLoc = geoVecInterp(n1.loc, n2.loc, 10); // extend 1000% - n2 = n2.move(toLoc); - vgraph = vgraph.replace(n2); + if (n1.loc && n2.loc) { + var toLoc = geoVecInterp(n1.loc, n2.loc, 10); // extend 1000% + n2 = n2.move(toLoc); + vgraph = vgraph.replace(n2); + } }); From ea4ac80fee36580c878f8086c27c0eae8bf40b71 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 09:27:54 -0500 Subject: [PATCH 025/157] Extend max distance to 30m, but as measured from starting vertex --- modules/osm/intersection.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index bb89efea3..7b97f9af0 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -30,8 +30,8 @@ export function osmTurn(turn) { export function osmIntersection(graph, startVertexId) { - var vgraph = coreGraph(), // virtual graph - i, j, k; + var vgraph = coreGraph(); // virtual graph + var i, j, k; function memberOfRestriction(entity) { @@ -63,8 +63,9 @@ export function osmIntersection(graph, startVertexId) { } - var distCutoff = 20; // meters - var checkVertices = [graph.entity(startVertexId)]; + var distCutoff = 30; // meters + var startNode = graph.entity(startVertexId); + var checkVertices = [startNode]; var checkWays; var vertices = []; var vertexIds = []; @@ -107,7 +108,8 @@ export function osmIntersection(graph, startVertexId) { node = nodes[j]; if (node === vertex) continue; // same thing if (vertices.indexOf(node) !== -1) continue; // seen it already - if (node.loc && vertex.loc && geoSphericalDistance(node.loc, vertex.loc) > distCutoff) continue; // too far + if (node.loc && startNode.loc && + geoSphericalDistance(node.loc, startNode.loc) > distCutoff) continue; // too far from start // a key vertex will have parents that are also roads var hasParents = false; @@ -333,7 +335,7 @@ export function osmIntersection(graph, startVertexId) { .map(function(way) { return vgraph.entity(way.id); }); - // STEP 8: Extend leaf ways + // STEP 8: Extend leaf ways, so they don't end within the viewer ways.forEach(function(way) { var n1, n2; if (way.__via) return; // not a leaf @@ -345,7 +347,7 @@ export function osmIntersection(graph, startVertexId) { n2 = vgraph.entity(way.nodes[0]); } - if (n1.loc && n2.loc) { + if (n1.loc && n2.loc && vgraph.parentWays(n2).length === 1) { var toLoc = geoVecInterp(n1.loc, n2.loc, 10); // extend 1000% n2 = n2.move(toLoc); vgraph = vgraph.replace(n2); @@ -383,7 +385,7 @@ export function osmIntersection(graph, startVertexId) { if (!start || !(start.__from || start.__via)) return []; var maxPathLength = 7; // from-*-via-*-via-*-to (2 vias max) - var maxStepDist = 20; // meters + var maxStepDist = 30; // meters var turns = []; step(start); From cf1226ca33d27100ec42b1611713d874bd4343f1 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 17:00:22 -0500 Subject: [PATCH 026/157] Better calc of turn arrow placmenet along short segments --- modules/svg/turns.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 77c413563..62c43aa03 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -1,4 +1,4 @@ -import { geoAngle } from '../geo/index'; +import { geoAngle, geoVecLength } from '../geo'; export function svgTurns(projection) { @@ -67,7 +67,9 @@ export function svgTurns(projection) { var v = graph.entity(turn.to.vertex); var a = geoAngle(v, t, projection); var p = projection(v.loc); - var r = turn.u ? 0 : 60; + var q = projection(t.loc); + var mid = geoVecLength(p, q) / 2; + var r = turn.u ? 0 : Math.min(mid, 60); return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')'; From 3c340a0362d64920d29a2a1490e3e75161b1ea5d Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 17:00:53 -0500 Subject: [PATCH 027/157] Trying out more intuitive restriction help message - includes in the message the names of the streets - also highlights related segments and nodes along the path The messages are currently a bit rough: U-Turns FROM Black Horse Pike IS allowed... VIA Main Street TO Black Horse Pike --- css/80_app.css | 11 +- modules/ui/fields/restrictions.js | 283 ++++++++++++++++++++---------- 2 files changed, 203 insertions(+), 91 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 275bd7e2a..78792e46a 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1852,10 +1852,19 @@ input[type=number] { right: 0; padding: 2px 6px; background-color: rgba(255, 255, 255, .8); - color: #999; + color: #888; text-align: center; } +.form-field-restrictions .restriction-help span { + margin: 2px; +} + +.form-field-restrictions .restriction-help span.qualifier { + color: #666; + font-weight: bold; +} + /* Changeset editor while comment text is empty */ .form-field-comment:not(.present) #preset-input-comment { diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 7a6f50ffd..81df760e8 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -17,24 +17,48 @@ import { geoZoomToScale } from '../../geo'; -import { osmIntersection, osmInferRestriction, osmTurn, osmWay } from '../../osm'; -import { svgLabels, svgLayers, svgLines, svgTurns, svgVertices } from '../../svg'; -import { utilRebind } from '../../util/rebind'; -import { utilFunctor } from '../../util'; -import { utilGetDimensions, utilSetDimensions } from '../../util/dimensions'; +import { + osmIntersection, + osmInferRestriction, + osmTurn, + osmWay +} from '../../osm'; + +import { + svgLayers, + svgLines, + svgTurns, + svgVertices +} from '../../svg'; + +import { + utilDisplayName, + utilDisplayType, + utilEntitySelector, + utilFunctor, + utilRebind +} from '../../util'; + +import { + utilGetDimensions, + utilSetDimensions +} from '../../util/dimensions'; export function uiFieldRestrictions(field, context) { var dispatch = d3_dispatch('change'); var breathe = behaviorBreathe(context); var hover = behaviorHover(context); - var initialized = false; - var graph; - var vertexID; - var fromWayID; + + var _initialized = false; + var _wrap = d3_select(null); + var _graph; + var _vertexID; + var _intersection; + var _fromWayID; - function restrictions(selection, intersection) { + function restrictions(selection) { // if form field is hidden or has detached from dom, clean up. if (!d3_select('.inspector-wrap.inspector-hidden').empty() || !selection.node().parentNode || !selection.node().parentNode.parentNode) { @@ -42,35 +66,42 @@ export function uiFieldRestrictions(field, context) { return; } - // try to reuse the intersection, but always rebuild it if the graph has changed - if (context.graph() !== graph || !intersection) { - graph = context.graph(); - intersection = osmIntersection(graph, vertexID); - } - var ok = (intersection.vertices.length && intersection.ways.length); - var wrap = selection.selectAll('.preset-input-wrap') - .data(ok ? [0] : []); + .data([0]); - wrap.exit() - .remove(); - - var enter = wrap.enter() + _wrap = wrap.enter() .append('div') - .attr('class', 'preset-input-wrap'); + .attr('class', 'preset-input-wrap') + .merge(wrap); - enter + var help = _wrap.selectAll('.restriction-help') + .data([0]); + + help.enter() .append('div') .attr('class', 'restriction-help'); - // hack: no actual intersection exists here, just dont show the field - if (!ok) return; - var vgraph = intersection.graph; + // try to reuse the intersection, but always rebuild it if the graph has changed + if (context.graph() !== _graph || !_intersection) { + _graph = context.graph(); + _intersection = osmIntersection(_graph, _vertexID); + } + var ok = (_intersection.vertices.length && _intersection.ways.length); + + _wrap + .call(renderViewer); + } + + + function renderViewer(selection) { + if (!_intersection) return; + + var vgraph = _intersection.graph; var filter = utilFunctor(true); var projection = geoRawMercator(); - var d = utilGetDimensions(wrap.merge(enter)); + var d = utilGetDimensions(_wrap); var c = geoVecScale(d, 0.5); var z = 22; @@ -78,12 +109,12 @@ export function uiFieldRestrictions(field, context) { // Calculate extent of all key vertices var extent = geoExtent(); - for (var i = 0; i < intersection.vertices.length; i++) { - extent._extend(intersection.vertices[i].extent()); + for (var i = 0; i < _intersection.vertices.length; i++) { + extent._extend(_intersection.vertices[i].extent()); } // If this is a large intersection, adjust zoom to fit extent - if (intersection.vertices.length > 1) { + if (_intersection.vertices.length > 1) { var padding = 220; var tl = projection([extent[0][0], extent[1][1]]); var br = projection([extent[1][0], extent[0][1]]); @@ -95,9 +126,10 @@ export function uiFieldRestrictions(field, context) { projection.scale(geoZoomToScale(z)); } - var padTop = 30; + var padTop = 30; // reserve top space for hints var extentCenter = projection(extent.center()); extentCenter[1] = extentCenter[1] - padTop; + projection .translate(geoVecSubtract(c, extentCenter)) .clipExtent([[0, 0], d]); @@ -105,30 +137,39 @@ export function uiFieldRestrictions(field, context) { var drawLayers = svgLayers(projection, context).only('osm').dimensions(d); var drawVertices = svgVertices(projection, context); var drawLines = svgLines(projection, context); - // var drawLabels = svgLabels(projection, context, true); var drawTurns = svgTurns(projection, context); - enter + var firstTime = selection.selectAll('.surface').empty(); + + selection .call(drawLayers); - wrap = wrap - .merge(enter); + var surface = selection.selectAll('.surface'); - var surface = wrap.selectAll('.surface'); + if (firstTime) { + _initialized = true; - if (!enter.empty()) { - initialized = true; surface .call(breathe) .call(hover); + +// entity editor will redraw all fields anyway? + // context.history() + // .on('change.restrictions', redraw); + + d3_select(window) + .on('resize.restrictions', function() { + utilSetDimensions(_wrap, null); + redraw(); + }); } + surface .call(utilSetDimensions, d) - .call(drawVertices, vgraph, intersection.vertices, filter, extent, z) - .call(drawLines, vgraph, intersection.ways, filter) - // .call(drawLabels, vgraph, intersection.ways, filter, d, true) - .call(drawTurns, vgraph, intersection.turns(fromWayID)); + .call(drawVertices, vgraph, _intersection.vertices, filter, extent, z) + .call(drawLines, vgraph, _intersection.ways, filter) + .call(drawTurns, vgraph, _intersection.turns(_fromWayID)); surface .on('click.restrictions', click) @@ -139,23 +180,14 @@ export function uiFieldRestrictions(field, context) { .selectAll('.selected') .classed('selected', false); - if (fromWayID) { + if (_fromWayID) { surface - .selectAll('.' + fromWayID) + .selectAll('.' + _fromWayID) .classed('selected', true); } mouseout(); - context.history() - .on('change.restrictions', render); - - d3_select(window) - .on('resize.restrictions', function() { - utilSetDimensions(wrap, null); - render(); - }); - function click() { surface @@ -169,18 +201,18 @@ export function uiFieldRestrictions(field, context) { } if (datum instanceof osmWay && (datum.__from || datum.__via)) { - fromWayID = datum.id; - render(); + _fromWayID = datum.id; + redraw(); } else if (datum instanceof osmTurn) { var actions; if (datum.restriction) { - actions = intersection.actions.concat([ + actions = _intersection.actions.concat([ actionUnrestrictTurn(datum, projection), t('operations.restriction.annotation.delete') ]); } else { - actions = intersection.actions.concat([ + actions = _intersection.actions.concat([ actionRestrictTurn(datum, projection), t('operations.restriction.annotation.create') ]); @@ -188,40 +220,96 @@ export function uiFieldRestrictions(field, context) { context.perform.apply(context, actions); } else { - fromWayID = null; - render(); + _fromWayID = null; + redraw(); } } function mouseover() { + var help = _wrap.selectAll('.restriction-help').html(''); + var div, d; + var datum = d3_event.target.__data__; var entity = datum && datum.properties && datum.properties.entity; if (entity) { datum = entity; } + surface.selectAll('.related') + .classed('related', false); + if (datum instanceof osmWay) { - wrap.selectAll('.restriction-help') - .text(datum.id); + d = display(vgraph.entity(datum.id), vgraph); + div = help.append('div'); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(d.name || d.type); } else if (datum instanceof osmTurn) { + surface.selectAll(utilEntitySelector(datum.key.split(','))) + .classed('related', true); - //DEBUG - var str = ''; + var turnType = { + 'no_left_turn': 'Left Turns', + 'no_right_turn': 'Right Turns', + 'no_u_turn': 'U-Turns', + 'no_straight_on': 'Continuing' + }[osmInferRestriction(vgraph, datum.from, datum.to, projection)]; + + var restrictType = 'IS'; if (datum.restriction) { - if (datum.only) { str += 'ONLY_ '; } - if (datum.direct) { str += 'NO_ '; } - if (datum.indirect) { str += 'indirect '; } - str += datum.restriction; + if (datum.only) { restrictType = 'IS ONLY'; } + if (datum.direct) { restrictType = 'IS NOT'; } + if (datum.indirect) { restrictType = 'IS NOT '; } } - str += ' FROM ' + datum.from.way + - ' VIA ' + (datum.via.node || datum.via.ways.join(',')) + - ' TO ' + datum.to.way; - wrap.selectAll('.restriction-help') - .text(str); + d = display(vgraph.entity(datum.from.way), vgraph); + div = help.append('div'); + div.append('span').text(turnType); + // div.append('span').text('Travel'); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(d.name || d.type); + div.append('span').attr('class', 'qualifier').text(restrictType); + div.append('span').text('allowed...'); + + div = help.append('div'); + + if (datum.via.ways) { + div = help.append('div'); + div.append('span').attr('class', 'qualifier').text('VIA'); + + var curr, prev; + for (var i = 0; i < datum.via.ways.length; i++) { + d = display(vgraph.entity(datum.via.ways[i]), vgraph); + curr = d.name || d.type; + if (curr === prev) continue; // collapse identical names + + if (prev) div.append('span').text(','); + div.append('span').text(curr); + prev = curr; + } + } + d = display(vgraph.entity(datum.to.way), vgraph); + div.append('span').attr('class', 'qualifier').text('TO'); + div.append('span').text(d.name || d.type); + + + //DEBUG + // var str = ''; + // if (datum.restriction) { + // if (datum.only) { str += 'ONLY_ '; } + // if (datum.direct) { str += 'NO_ '; } + // if (datum.indirect) { str += 'indirect '; } + // str += datum.restriction; + // } + + // str += ' FROM ' + datum.from.way + + // ' VIA ' + (datum.via.node || datum.via.ways.join(',')) + + // ' TO ' + datum.to.way; + + // _wrap.selectAll('.restriction-help') + // .text(str); // return; // var presets = context.presets(), @@ -240,7 +328,7 @@ export function uiFieldRestrictions(field, context) { // ); // } - // wrap.selectAll('.restriction-help') + // _wrap.selectAll('.restriction-help') // .text(t('operations.restriction.help.' + // (datum.restriction ? 'toggle_off' : 'toggle_on'), // { restriction: preset.name() }) @@ -250,34 +338,49 @@ export function uiFieldRestrictions(field, context) { function mouseout() { + var help = _wrap.selectAll('.restriction-help').html(''); + var div = help.append('div'); + var d; + + if (_fromWayID) { + d = display(vgraph.entity(_fromWayID), vgraph); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(d.name || d.type); - if (fromWayID) { - wrap.selectAll('.restriction-help') - .text('FROM ' + fromWayID); } else { - wrap.selectAll('.restriction-help') - .text('Click to select the FROM way'); + div.append('span').text('Click to select the'); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text('way'); } - // wrap.selectAll('.restriction-help') + // _wrap.selectAll('.restriction-help') // .text(t('operations.restriction.help.' + - // (fromWayID ? 'toggle' : 'select')) + // (_fromWayID ? 'toggle' : 'select')) // ); } - function render() { - if (context.hasEntity(vertexID)) { - restrictions(selection, intersection); + function redraw() { + if (context.hasEntity(_vertexID)) { + _wrap.call(renderViewer); } } } + function display(entity, graph) { + var name = utilDisplayName(entity) || ''; + var matched = context.presets().match(entity, graph); + var type = (matched && matched.name()) || utilDisplayType(entity.id); + return { name: name, type: type }; + } + + restrictions.entity = function(_) { - if (!vertexID || vertexID !== _.id) { - fromWayID = null; - vertexID = _.id; + if (!_vertexID || _vertexID !== _.id) { + _intersection = null; + _fromWayID = null; + _vertexID = _.id; } }; @@ -287,7 +390,7 @@ export function uiFieldRestrictions(field, context) { restrictions.off = function(selection) { - if (!initialized) return; + if (!_initialized) return; selection.selectAll('.surface') .call(hover.off) @@ -296,8 +399,8 @@ export function uiFieldRestrictions(field, context) { .on('mouseover.restrictions', null) .on('mouseout.restrictions', null); - context.history() - .on('change.restrictions', null); + // context.history() + // .on('change.restrictions', null); d3_select(window) .on('resize.restrictions', null); From 0cbff57dc9ac12d54c33e043f40416168496b3dd Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Feb 2018 19:04:28 -0500 Subject: [PATCH 028/157] Cycle through `only_` turn restriction states (re: #2622) --- modules/actions/restrict_turn.js | 11 +++-------- modules/actions/unrestrict_turn.js | 8 ++++---- modules/osm/intersection.js | 2 +- modules/ui/fields/restrictions.js | 23 +++++++++++++++++----- test/spec/actions/unrestrict_turn.js | 29 +++++++++++++--------------- test/spec/osm/intersection.js | 6 +++--- 6 files changed, 42 insertions(+), 37 deletions(-) diff --git a/modules/actions/restrict_turn.js b/modules/actions/restrict_turn.js index df45ece81..60284c381 100644 --- a/modules/actions/restrict_turn.js +++ b/modules/actions/restrict_turn.js @@ -27,7 +27,7 @@ import { // Normally, this will be undefined and the relation will automatically // be assigned a new ID. // -export function actionRestrictTurn(turn, projection, restrictionId) { +export function actionRestrictTurn(turn, projection, restrictionID) { return function(graph) { var fromWay = graph.entity(turn.from.way); @@ -49,15 +49,10 @@ export function actionRestrictTurn(turn, projection, restrictionId) { members.push({ id: toWay.id, type: 'way', role: 'to' }); return graph.replace(osmRelation({ - id: restrictionId, + id: restrictionID, tags: { type: 'restriction', - restriction: turn.restriction || - osmInferRestriction( - graph, - turn.from, - turn.to, - projection) + restriction: turn.restriction || osmInferRestriction(graph, turn.from, turn.to, projection) }, members: members })); diff --git a/modules/actions/unrestrict_turn.js b/modules/actions/unrestrict_turn.js index 3e0a794c5..4210b3a7b 100644 --- a/modules/actions/unrestrict_turn.js +++ b/modules/actions/unrestrict_turn.js @@ -8,19 +8,19 @@ import { actionDeleteRelation } from './delete_relation'; // from: { node: , way: }, // via: { node: }, // to: { node: , way: }, -// restriction: +// restrictionID: // } // -// In the simple case, `restriction` is a reference to a `no_*` restriction +// In the simple case, `restrictionID` is a reference to a `no_*` restriction // on the turn itself. In this case, it is simply deleted. // -// The more complex case is where `restriction` references an `only_*` +// The more complex case is where `restrictionID` references an `only_*` // restriction on a different turn in the same intersection. In that case, // that restriction is also deleted, but at the same time restrictions on // the turns other than the first two are created. // export function actionUnrestrictTurn(turn) { return function(graph) { - return actionDeleteRelation(turn.restriction)(graph); + return actionDeleteRelation(turn.restrictionID)(graph); }; } diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 7b97f9af0..236fa9c5f 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -471,7 +471,7 @@ export function osmIntersection(graph, startVertexId) { var turn = pathToTurn(currPath); if (turn) { if (matchedRestriction) { - turn.restriction = matchedRestriction.id; + turn.restrictionID = matchedRestriction.id; turn.only = matchedRestriction.only; turn.direct = matchedRestriction.direct; turn.indirect = matchedRestriction.indirect; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 81df760e8..8ea0b5b95 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -1,3 +1,5 @@ +import _cloneDeep from 'lodash-es/cloneDeep'; + import { dispatch as d3_dispatch } from 'd3-dispatch'; import { @@ -206,7 +208,18 @@ export function uiFieldRestrictions(field, context) { } else if (datum instanceof osmTurn) { var actions; - if (datum.restriction) { + datum.restriction = osmInferRestriction(vgraph, datum.from, datum.to, projection); + + if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state + var datumOnly = _cloneDeep(datum); + datumOnly.only = true; + datumOnly.restriction = datumOnly.restriction.replace(/^no\_/, 'only_'); + actions = _intersection.actions.concat([ + actionUnrestrictTurn(datum, projection), + actionRestrictTurn(datumOnly, projection), + t('operations.restriction.annotation.create') + ]); + } else if (datum.restrictionID) { actions = _intersection.actions.concat([ actionUnrestrictTurn(datum, projection), t('operations.restriction.annotation.delete') @@ -250,14 +263,14 @@ export function uiFieldRestrictions(field, context) { .classed('related', true); var turnType = { - 'no_left_turn': 'Left Turns', - 'no_right_turn': 'Right Turns', - 'no_u_turn': 'U-Turns', + 'no_left_turn': 'Left Turn', + 'no_right_turn': 'Right Turn', + 'no_u_turn': 'U-Turn', 'no_straight_on': 'Continuing' }[osmInferRestriction(vgraph, datum.from, datum.to, projection)]; var restrictType = 'IS'; - if (datum.restriction) { + if (datum.restrictionID) { if (datum.only) { restrictType = 'IS ONLY'; } if (datum.direct) { restrictType = 'IS NOT'; } if (datum.indirect) { restrictType = 'IS NOT '; } diff --git a/test/spec/actions/unrestrict_turn.js b/test/spec/actions/unrestrict_turn.js index 991439da8..9ab094c6e 100644 --- a/test/spec/actions/unrestrict_turn.js +++ b/test/spec/actions/unrestrict_turn.js @@ -1,24 +1,21 @@ describe('iD.actionUnrestrictTurn', function() { it('removes a restriction from a restricted turn', function() { // u====*--->w - var graph = iD.Graph([ - iD.Node({id: 'u'}), - iD.Node({id: '*'}), - iD.Node({id: 'w'}), - iD.Way({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - iD.Way({id: '-', nodes: ['*', 'w'], tags: {highway: 'residential'}}), - iD.Relation({id: 'r', tags: {type: 'restriction'}, members: [ - {id: '=', role: 'from', type: 'way'}, - {id: '-', role: 'to', type: 'way'}, - {id: '*', role: 'via', type: 'node'} - ]}) - ]), - action = iD.actionUnrestrictTurn({ - restriction: 'r' - }); + var graph = iD.coreGraph([ + iD.osmNode({ id: 'u' }), + iD.osmNode({ id: '*' }), + iD.osmNode({ id: 'w' }), + iD.osmWay({ id: '=', nodes: ['u', '*'], tags: { highway: 'residential' } }), + iD.osmWay({ id: '-', nodes: ['*', 'w'], tags: { highway: 'residential' } }), + iD.osmRelation({ id: 'r', tags: { type: 'restriction' }, members: [ + { id: '=', role: 'from', type: 'way' }, + { id: '-', role: 'to', type: 'way' }, + { id: '*', role: 'via', type: 'node' } + ]}) + ]); + var action = iD.actionUnrestrictTurn({ restrictionID: 'r' }); graph = action(graph); - expect(graph.hasEntity('r')).to.be.undefined; }); }); diff --git a/test/spec/osm/intersection.js b/test/spec/osm/intersection.js index a0a3818e4..e27772754 100644 --- a/test/spec/osm/intersection.js +++ b/test/spec/osm/intersection.js @@ -338,7 +338,7 @@ describe('iD.osmIntersection', function() { expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); expect(turns[1].key).to.eql('=,*,-'); expect(turns[1].u).to.be.not.ok; - expect(turns[1].restriction).to.eql('r'); + expect(turns[1].restrictionID).to.eql('r'); expect(turns[1].direct).to.be.true; expect(turns[1].indirect).to.be.not.ok; expect(turns[1].only).to.be.not.ok; @@ -372,7 +372,7 @@ describe('iD.osmIntersection', function() { expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); expect(turns[1].key).to.eql('=,*,~'); - expect(turns[1].restriction).to.eql('r'); + expect(turns[1].restrictionID).to.eql('r'); expect(turns[1].u).to.be.not.ok; expect(turns[1].direct).to.be.not.ok; expect(turns[1].indirect).to.be.true; @@ -380,7 +380,7 @@ describe('iD.osmIntersection', function() { expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); expect(turns[2].key).to.eql('=,*,-'); - expect(turns[2].restriction).to.eql('r'); + expect(turns[2].restrictionID).to.eql('r'); expect(turns[2].u).to.be.not.ok; expect(turns[2].direct).to.be.not.ok; expect(turns[2].indirect).to.be.not.ok; From e38f6cfbfd1ad6d0bc075c4f4e57a7ec9c45a3b1 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 8 Feb 2018 19:48:13 +0000 Subject: [PATCH 029/157] chore(package): update @std/esm to version 0.21.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 43a04f61c..3b215366c 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "@mapbox/maki": "^4.0.0", - "@std/esm": "^0.20.0", + "@std/esm": "^0.21.0", "chai": "^4.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", From 4b2b568ab6d24664b97505a375413ccf31d96a6e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 8 Feb 2018 15:06:34 -0500 Subject: [PATCH 030/157] Upgrade to xmlbuilder 9.0.6 (closes #4781) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3b215366c..972a618b0 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "svg-sprite": "1.3.7", "uglify-js": "^3.0.0", "xml2js": "^0.4.17", - "xmlbuilder": "^9.0.1" + "xmlbuilder": "^9.0.6" }, "greenkeeper": { "label": "chore-greenkeeper" From 44ef1a83d8cfb6c49fa1204bbb54f4b0c067901a Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 8 Feb 2018 15:08:47 -0500 Subject: [PATCH 031/157] Change caption on `shop=agrarian` preset to "Farm Supply Shop" (closes #4775) --- data/presets.yaml | 4 ++-- data/presets/presets.json | 2 +- data/presets/presets/shop/agrarian.json | 2 +- dist/locales/en.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 6bd963f23..01f5ae4e6 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -4841,9 +4841,9 @@ en: terms: '' shop/agrarian: # shop=agrarian - name: Agriculture Shop + name: Farm Supply Shop # 'terms: agricultural inputs,agricultural machines,seeds,pesticides,fertilizer,agricultural tools' - terms: '' + terms: '' shop/alcohol: # shop=alcohol name: Liquor Store diff --git a/data/presets/presets.json b/data/presets/presets.json index d12cbee66..4dabe56fa 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -15707,7 +15707,7 @@ "tags": { "shop": "agrarian" }, - "name": "Agriculture Shop" + "name": "Farm Supply Shop" }, "shop/alcohol": { "icon": "alcohol-shop", diff --git a/data/presets/presets/shop/agrarian.json b/data/presets/presets/shop/agrarian.json index 17eef7a25..60698feef 100644 --- a/data/presets/presets/shop/agrarian.json +++ b/data/presets/presets/shop/agrarian.json @@ -24,5 +24,5 @@ "tags": { "shop": "agrarian" }, - "name": "Agriculture Shop" + "name": "Farm Supply Shop" } diff --git a/dist/locales/en.json b/dist/locales/en.json index 949e10dd6..6ca789488 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -5530,7 +5530,7 @@ "terms": "" }, "shop/agrarian": { - "name": "Agriculture Shop", + "name": "Farm Supply Shop", "terms": "agricultural inputs,agricultural machines,seeds,pesticides,fertilizer,agricultural tools" }, "shop/alcohol": { From 9453feddbb38d9d81619e026eba175ecbfaa8ff2 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 8 Feb 2018 15:13:24 -0500 Subject: [PATCH 032/157] Use "gaming" icon for Amusement Arcade preset --- data/presets/presets.json | 2 +- data/presets/presets/leisure/amusement_arcade.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 7e0230cbc..642304d1b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -9300,7 +9300,7 @@ "name": "Adult Gaming Center" }, "leisure/amusement_arcade": { - "icon": "poi-dice", + "icon": "gaming", "fields": [ "name", "operator", diff --git a/data/presets/presets/leisure/amusement_arcade.json b/data/presets/presets/leisure/amusement_arcade.json index b8066ecbf..06f07920c 100644 --- a/data/presets/presets/leisure/amusement_arcade.json +++ b/data/presets/presets/leisure/amusement_arcade.json @@ -1,5 +1,5 @@ { - "icon": "poi-dice", + "icon": "gaming", "fields": [ "name", "operator", From 78fddaf39e513719581611d7fff7613b37e3f15d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20=27Natsuysaumi=27=20Kuranowski?= Date: Fri, 9 Feb 2018 21:56:56 +0100 Subject: [PATCH 033/157] PL Address Format fix --- data/address-formats.json | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/data/address-formats.json b/data/address-formats.json index 43024db05..92fed5f7c 100644 --- a/data/address-formats.json +++ b/data/address-formats.json @@ -24,7 +24,7 @@ ] }, { - "countryCodes": ["at", "ch", "de", "si"], + "countryCodes": ["at", "ch", "de", "si", "pl"], "format": [ ["street", "housenumber"], ["postcode", "city"] @@ -42,14 +42,6 @@ ["postcode", "city"] ] }, - { - "countryCodes": ["pl"], - "format": [ - ["street", "housenumber"], - ["postcode"], - ["place", "city"] - ] - }, { "countryCodes": ["fr", "lu", "mo"], "format": [ From 47eb5256cc85e2025e4c7d68e8f389f742a49e8f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Feb 2018 16:22:49 -0500 Subject: [PATCH 034/157] WIP: add detail slider to restriction editor --- css/80_app.css | 12 +++-- modules/osm/intersection.js | 13 ++++- modules/ui/fields/restrictions.js | 82 ++++++++++++++++++++++--------- 3 files changed, 79 insertions(+), 28 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 78792e46a..e851b66ec 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1834,7 +1834,11 @@ input[type=number] { /* Restrictions editor */ -.form-field-restrictions .preset-input-wrap { +.form-field-restrictions .restriction-detail { + height: 30px; +} + +.form-field-restrictions .restriction-container { position: relative; height: 400px; } @@ -1844,7 +1848,7 @@ input[type=number] { height: 100%; } -.form-field-restrictions .restriction-help { +.restriction-container .restriction-help { z-index: 1; position: absolute; top: 0; @@ -1856,11 +1860,11 @@ input[type=number] { text-align: center; } -.form-field-restrictions .restriction-help span { +.restriction-help span { margin: 2px; } -.form-field-restrictions .restriction-help span.qualifier { +.restriction-help span.qualifier { color: #666; font-weight: bold; } diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 236fa9c5f..6947e1240 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -29,7 +29,12 @@ export function osmTurn(turn) { } -export function osmIntersection(graph, startVertexId) { +// +// detail = 0 - via node only +// detail = 1 - via node / 1 via way +// detail = 2 - via node / up to 2 via ways +// +export function osmIntersection(graph, startVertexId, detail) { var vgraph = coreGraph(); // virtual graph var i, j, k; @@ -101,6 +106,7 @@ export function osmIntersection(graph, startVertexId) { ways.push(way); // it's a road, or it's already in a turn restriction hasWays = true; + if (!detail) continue; // check the way's children for more key vertices nodes = _uniq(graph.childNodes(way)); @@ -384,7 +390,10 @@ export function osmIntersection(graph, startVertexId) { var start = vgraph.entity(fromWayId); if (!start || !(start.__from || start.__via)) return []; - var maxPathLength = 7; // from-*-via-*-via-*-to (2 vias max) + // detail=0 from-*-to (0 vias) + // detail=1 from-*-via-*-to (1 via max) + // detail=2 from-*-via-*-via-*-to (2 vias max) + var maxPathLength = (detail * 2) + 3; var maxStepDist = 30; // meters var turns = []; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 8ea0b5b95..1ce8d6c12 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -52,8 +52,9 @@ export function uiFieldRestrictions(field, context) { var breathe = behaviorBreathe(context); var hover = behaviorHover(context); + var _detail = 0; var _initialized = false; - var _wrap = d3_select(null); + var _container = d3_select(null); var _graph; var _vertexID; var _intersection; @@ -71,27 +72,72 @@ export function uiFieldRestrictions(field, context) { var wrap = selection.selectAll('.preset-input-wrap') .data([0]); - _wrap = wrap.enter() + wrap = wrap.enter() .append('div') .attr('class', 'preset-input-wrap') .merge(wrap); - var help = _wrap.selectAll('.restriction-help') + var detailEnter = wrap.selectAll('.restriction-detail') + .data([0]) + .enter() + .append('div') + .attr('class', 'restriction-detail'); + + detailEnter + .append('span') + .attr('class', 'restriction-detail-label') + .text('Max Detail: '); + + detailEnter + .append('input') + .attr('class', 'restriction-detail-input') + .attr('type', 'range') + .attr('min', '0') + .attr('max', '2') + .attr('step', '1') + .on('input', function(d) { + var val = d3_select(this).property('value'); + _detail = +val; + _intersection = null; + _container.selectAll('.layer-osm *').remove(); + selection.call(restrictions); + }); + + detailEnter + .append('span') + .attr('class', 'restriction-detail-text'); + + // update + wrap.selectAll('.restriction-detail-input') + .property('value', _detail); + + var t = ['via node only', 'via 1 way', 'via 2 ways']; + wrap.selectAll('.restriction-detail-text') + .text(t[_detail]); + + + var container = wrap.selectAll('.restriction-container') .data([0]); - help.enter() + var containerEnter = container.enter() + .append('div') + .attr('class', 'restriction-container'); + + containerEnter .append('div') .attr('class', 'restriction-help'); + _container = containerEnter + .merge(container); // try to reuse the intersection, but always rebuild it if the graph has changed if (context.graph() !== _graph || !_intersection) { _graph = context.graph(); - _intersection = osmIntersection(_graph, _vertexID); + _intersection = osmIntersection(_graph, _vertexID, _detail); } var ok = (_intersection.vertices.length && _intersection.ways.length); - _wrap + _container .call(renderViewer); } @@ -103,7 +149,7 @@ export function uiFieldRestrictions(field, context) { var filter = utilFunctor(true); var projection = geoRawMercator(); - var d = utilGetDimensions(_wrap); + var d = utilGetDimensions(_container); var c = geoVecScale(d, 0.5); var z = 22; @@ -155,18 +201,13 @@ export function uiFieldRestrictions(field, context) { .call(breathe) .call(hover); -// entity editor will redraw all fields anyway? - // context.history() - // .on('change.restrictions', redraw); - d3_select(window) .on('resize.restrictions', function() { - utilSetDimensions(_wrap, null); + utilSetDimensions(_container, null); redraw(); }); } - surface .call(utilSetDimensions, d) .call(drawVertices, vgraph, _intersection.vertices, filter, extent, z) @@ -240,7 +281,7 @@ export function uiFieldRestrictions(field, context) { function mouseover() { - var help = _wrap.selectAll('.restriction-help').html(''); + var help = _container.selectAll('.restriction-help').html(''); var div, d; var datum = d3_event.target.__data__; @@ -321,7 +362,7 @@ export function uiFieldRestrictions(field, context) { // ' VIA ' + (datum.via.node || datum.via.ways.join(',')) + // ' TO ' + datum.to.way; - // _wrap.selectAll('.restriction-help') + // _container.selectAll('.restriction-help') // .text(str); // return; @@ -341,7 +382,7 @@ export function uiFieldRestrictions(field, context) { // ); // } - // _wrap.selectAll('.restriction-help') + // _container.selectAll('.restriction-help') // .text(t('operations.restriction.help.' + // (datum.restriction ? 'toggle_off' : 'toggle_on'), // { restriction: preset.name() }) @@ -351,7 +392,7 @@ export function uiFieldRestrictions(field, context) { function mouseout() { - var help = _wrap.selectAll('.restriction-help').html(''); + var help = _container.selectAll('.restriction-help').html(''); var div = help.append('div'); var d; @@ -366,7 +407,7 @@ export function uiFieldRestrictions(field, context) { div.append('span').text('way'); } - // _wrap.selectAll('.restriction-help') + // _container.selectAll('.restriction-help') // .text(t('operations.restriction.help.' + // (_fromWayID ? 'toggle' : 'select')) // ); @@ -375,7 +416,7 @@ export function uiFieldRestrictions(field, context) { function redraw() { if (context.hasEntity(_vertexID)) { - _wrap.call(renderViewer); + _container.call(renderViewer); } } } @@ -412,9 +453,6 @@ export function uiFieldRestrictions(field, context) { .on('mouseover.restrictions', null) .on('mouseout.restrictions', null); - // context.history() - // .on('change.restrictions', null); - d3_select(window) .on('resize.restrictions', null); }; From 3bd8d8d43d839a40c216e05ba5beca0544c24420 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Feb 2018 17:39:36 -0500 Subject: [PATCH 035/157] Style tweaks, persist max detail to localstorage --- css/80_app.css | 7 +++++++ modules/ui/fields/restrictions.js | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index e851b66ec..8a251a902 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1835,9 +1835,16 @@ input[type=number] { /* Restrictions editor */ .form-field-restrictions .restriction-detail { + padding: 5px 10px; + background-color: #fff; height: 30px; } +.restriction-detail input { + margin: 0px 10px; + vertical-align: middle; +} + .form-field-restrictions .restriction-container { position: relative; height: 400px; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 1ce8d6c12..56809ac5d 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -51,8 +51,9 @@ export function uiFieldRestrictions(field, context) { var dispatch = d3_dispatch('change'); var breathe = behaviorBreathe(context); var hover = behaviorHover(context); + var storedDetail = context.storage('turn-restriction-detail'); - var _detail = 0; + var _detail = storedDetail !== null ? (+storedDetail) : 0; var _initialized = false; var _container = d3_select(null); var _graph; @@ -95,11 +96,12 @@ export function uiFieldRestrictions(field, context) { .attr('min', '0') .attr('max', '2') .attr('step', '1') - .on('input', function(d) { + .on('input', function() { var val = d3_select(this).property('value'); _detail = +val; _intersection = null; _container.selectAll('.layer-osm *').remove(); + context.storage('turn-restriction-detail', _detail); selection.call(restrictions); }); @@ -135,6 +137,7 @@ export function uiFieldRestrictions(field, context) { _graph = context.graph(); _intersection = osmIntersection(_graph, _vertexID, _detail); } + var ok = (_intersection.vertices.length && _intersection.ways.length); _container @@ -208,6 +211,13 @@ export function uiFieldRestrictions(field, context) { }); } + + // This can happen if we've lowered the detail while a FROM way + // is selected, and that way is no longer part of the intersection. + if (_fromWayID && !vgraph.hasEntity(_fromWayID)) { + _fromWayID = null; + } + surface .call(utilSetDimensions, d) .call(drawVertices, vgraph, _intersection.vertices, filter, extent, z) From 4e1bafc22132d61ae51b2aa278d508174b4ab997 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Feb 2018 17:58:06 -0500 Subject: [PATCH 036/157] Trying help text with color hint --- css/80_app.css | 9 +++++++++ modules/ui/fields/restrictions.js | 28 +++++++++++++++------------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 8a251a902..7af6387bb 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1875,6 +1875,15 @@ input[type=number] { color: #666; font-weight: bold; } +.restriction-help span.qualifier.allow { + color: #8cd05f; +} +.restriction-help span.qualifier.restrict { + color: #e06d5f; +} +.restriction-help span.qualifier.only { + color: #7092ff; +} /* Changeset editor while comment text is empty */ diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 56809ac5d..8efba00cb 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -320,24 +320,29 @@ export function uiFieldRestrictions(field, context) { 'no_straight_on': 'Continuing' }[osmInferRestriction(vgraph, datum.from, datum.to, projection)]; - var restrictType = 'IS'; + var restrictType = ''; + var klass = 'allow'; if (datum.restrictionID) { - if (datum.only) { restrictType = 'IS ONLY'; } - if (datum.direct) { restrictType = 'IS NOT'; } - if (datum.indirect) { restrictType = 'IS NOT '; } + if (datum.direct) { restrictType = 'NO'; klass = 'restrict'; } + if (datum.indirect) { restrictType = 'NO'; klass = 'restrict'; } + if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } } + var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); - d = display(vgraph.entity(datum.from.way), vgraph); div = help.append('div'); - div.append('span').text(turnType); - // div.append('span').text('Travel'); + div.append('span') + .attr('class', 'qualifier ' + klass) + .text(s); + + div = help.append('div'); + d = display(vgraph.entity(datum.from.way), vgraph); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); - div.append('span').attr('class', 'qualifier').text(restrictType); - div.append('span').text('allowed...'); - div = help.append('div'); + d = display(vgraph.entity(datum.to.way), vgraph); + div.append('span').attr('class', 'qualifier').text('TO'); + div.append('span').text(d.name || d.type); if (datum.via.ways) { div = help.append('div'); @@ -354,9 +359,6 @@ export function uiFieldRestrictions(field, context) { prev = curr; } } - d = display(vgraph.entity(datum.to.way), vgraph); - div.append('span').attr('class', 'qualifier').text('TO'); - div.append('span').text(d.name || d.type); //DEBUG From 957896656aadacd64817ecef8da189f162ae15e4 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Feb 2018 22:11:22 -0500 Subject: [PATCH 037/157] Detail slider affects turns, but not geometry (I decided that the larger context of the intersection is important and shouldn't be hidden from the user) Also - show detail slider only if the intersection is complex - hide the restriction editor completely if there is no real intersection (e.g. junction of `highway=path`) --- modules/osm/intersection.js | 15 ++++----- modules/ui/fields/restrictions.js | 56 ++++++++++++++++++++----------- 2 files changed, 43 insertions(+), 28 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 6947e1240..409471add 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -29,12 +29,7 @@ export function osmTurn(turn) { } -// -// detail = 0 - via node only -// detail = 1 - via node / 1 via way -// detail = 2 - via node / up to 2 via ways -// -export function osmIntersection(graph, startVertexId, detail) { +export function osmIntersection(graph, startVertexId) { var vgraph = coreGraph(); // virtual graph var i, j, k; @@ -106,7 +101,6 @@ export function osmIntersection(graph, startVertexId, detail) { ways.push(way); // it's a road, or it's already in a turn restriction hasWays = true; - if (!detail) continue; // check the way's children for more key vertices nodes = _uniq(graph.childNodes(way)); @@ -380,8 +374,13 @@ export function osmIntersection(graph, startVertexId, detail) { // // For each path found, generate and return a `osmTurn` datastructure. // - intersection.turns = function(fromWayId) { + // detail = 0 - via node only + // detail = 1 - via node / 1 via way + // detail = 2 - via node / up to 2 via ways + // + intersection.turns = function(fromWayId, detail) { if (!fromWayId) return []; + if (!detail) detail = 0; var vgraph = intersection.graph; var keyVertexIds = intersection.vertices.map(function(v) { return v.id; }); diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 8efba00cb..5ce901041 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -63,13 +63,34 @@ export function uiFieldRestrictions(field, context) { function restrictions(selection) { + // try to reuse the intersection, but always rebuild it if the graph has changed + if (_vertexID && (context.graph() !== _graph || !_intersection)) { + _graph = context.graph(); + _intersection = osmIntersection(_graph, _vertexID); + } + + // It's possible for there to be no actual intersection here. + // for example, a vertex of two `highway=path` + // In this case, hide the field. + var isOK = (_intersection && _intersection.vertices.length && _intersection.ways.length); + d3_select(selection.node().parentNode).classed('hide', !isOK) + // if form field is hidden or has detached from dom, clean up. - if (!d3_select('.inspector-wrap.inspector-hidden').empty() || - !selection.node().parentNode || !selection.node().parentNode.parentNode) { + if (!isOK || + !d3_select('.inspector-wrap.inspector-hidden').empty() || + !selection.node().parentNode || + !selection.node().parentNode.parentNode) { selection.call(restrictions.off); return; } + + + + var isComplex = (isOK && _intersection.vertices.length > 1); + + + var wrap = selection.selectAll('.preset-input-wrap') .data([0]); @@ -78,18 +99,22 @@ export function uiFieldRestrictions(field, context) { .attr('class', 'preset-input-wrap') .merge(wrap); - var detailEnter = wrap.selectAll('.restriction-detail') - .data([0]) - .enter() + var detailControl = wrap.selectAll('.restriction-detail') + .data(isComplex ? [0]: []); + + detailControl.exit() + .remove(); + + var detailControlEnter = detailControl.enter() .append('div') .attr('class', 'restriction-detail'); - detailEnter + detailControlEnter .append('span') .attr('class', 'restriction-detail-label') .text('Max Detail: '); - detailEnter + detailControlEnter .append('input') .attr('class', 'restriction-detail-input') .attr('type', 'range') @@ -99,13 +124,12 @@ export function uiFieldRestrictions(field, context) { .on('input', function() { var val = d3_select(this).property('value'); _detail = +val; - _intersection = null; - _container.selectAll('.layer-osm *').remove(); + _container.selectAll('.layer-osm .layer-turns *').remove(); context.storage('turn-restriction-detail', _detail); selection.call(restrictions); }); - detailEnter + detailControlEnter .append('span') .attr('class', 'restriction-detail-text'); @@ -132,14 +156,6 @@ export function uiFieldRestrictions(field, context) { _container = containerEnter .merge(container); - // try to reuse the intersection, but always rebuild it if the graph has changed - if (context.graph() !== _graph || !_intersection) { - _graph = context.graph(); - _intersection = osmIntersection(_graph, _vertexID, _detail); - } - - var ok = (_intersection.vertices.length && _intersection.ways.length); - _container .call(renderViewer); } @@ -177,7 +193,7 @@ export function uiFieldRestrictions(field, context) { projection.scale(geoZoomToScale(z)); } - var padTop = 30; // reserve top space for hints + var padTop = 30; // reserve top space for hint text var extentCenter = projection(extent.center()); extentCenter[1] = extentCenter[1] - padTop; @@ -222,7 +238,7 @@ export function uiFieldRestrictions(field, context) { .call(utilSetDimensions, d) .call(drawVertices, vgraph, _intersection.vertices, filter, extent, z) .call(drawLines, vgraph, _intersection.ways, filter) - .call(drawTurns, vgraph, _intersection.turns(_fromWayID)); + .call(drawTurns, vgraph, _intersection.turns(_fromWayID, _detail)); surface .on('click.restrictions', click) From ca9aac501b4af6584b52a7d5a288dc7282db8efc Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Feb 2018 23:12:02 -0500 Subject: [PATCH 038/157] Adjust text hint colors, change "Continue" to "Straight on" --- css/80_app.css | 7 ++++--- modules/ui/fields/restrictions.js | 12 ++++-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 7af6387bb..234a4c7f3 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1841,6 +1841,7 @@ input[type=number] { } .restriction-detail input { + width: 60px; margin: 0px 10px; vertical-align: middle; } @@ -1876,13 +1877,13 @@ input[type=number] { font-weight: bold; } .restriction-help span.qualifier.allow { - color: #8cd05f; + color: #8b5; } .restriction-help span.qualifier.restrict { - color: #e06d5f; + color: #d76; } .restriction-help span.qualifier.only { - color: #7092ff; + color: #78f; } /* Changeset editor while comment text is empty */ diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 5ce901041..c4b21f654 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -73,7 +73,7 @@ export function uiFieldRestrictions(field, context) { // for example, a vertex of two `highway=path` // In this case, hide the field. var isOK = (_intersection && _intersection.vertices.length && _intersection.ways.length); - d3_select(selection.node().parentNode).classed('hide', !isOK) + d3_select(selection.node().parentNode).classed('hide', !isOK); // if form field is hidden or has detached from dom, clean up. if (!isOK || @@ -85,12 +85,6 @@ export function uiFieldRestrictions(field, context) { } - - - var isComplex = (isOK && _intersection.vertices.length > 1); - - - var wrap = selection.selectAll('.preset-input-wrap') .data([0]); @@ -99,6 +93,8 @@ export function uiFieldRestrictions(field, context) { .attr('class', 'preset-input-wrap') .merge(wrap); + var isComplex = (isOK && _intersection.vertices.length > 1); + var detailControl = wrap.selectAll('.restriction-detail') .data(isComplex ? [0]: []); @@ -333,7 +329,7 @@ export function uiFieldRestrictions(field, context) { 'no_left_turn': 'Left Turn', 'no_right_turn': 'Right Turn', 'no_u_turn': 'U-Turn', - 'no_straight_on': 'Continuing' + 'no_straight_on': 'Straight On' }[osmInferRestriction(vgraph, datum.from, datum.to, projection)]; var restrictType = ''; From a10954b2ad21ff63da0b213d381a405176a4a17f Mon Sep 17 00:00:00 2001 From: hikemaniac <31667811+hikemaniac@users.noreply.github.com> Date: Sat, 10 Feb 2018 11:49:58 +0100 Subject: [PATCH 039/157] Added religion and denomination fields. --- data/presets/presets/historic/wayside_shrine.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/presets/presets/historic/wayside_shrine.json b/data/presets/presets/historic/wayside_shrine.json index 524ee646e..dada64bbc 100644 --- a/data/presets/presets/historic/wayside_shrine.json +++ b/data/presets/presets/historic/wayside_shrine.json @@ -2,6 +2,8 @@ "icon": "landmark", "fields": [ "name", + "religion", + "denomination", "inscription" ], "geometry": [ From 21ab63d9ca15b517b9ece5e94256406389149fbe Mon Sep 17 00:00:00 2001 From: hikemaniac <31667811+hikemaniac@users.noreply.github.com> Date: Sat, 10 Feb 2018 11:52:25 +0100 Subject: [PATCH 040/157] Added religion and denomination fields. --- data/presets/presets.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/presets/presets.json b/data/presets/presets.json index 642304d1b..67951fbc4 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -8241,6 +8241,8 @@ "icon": "landmark", "fields": [ "name", + "religion", + "denomination" "inscription" ], "geometry": [ From 746c34ecd27a816ff4dd4a8b6a248a5a4c37b3d7 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 10 Feb 2018 10:19:14 -0500 Subject: [PATCH 041/157] npm run build --- data/presets/presets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 67951fbc4..b924ecfb5 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -8242,7 +8242,7 @@ "fields": [ "name", "religion", - "denomination" + "denomination", "inscription" ], "geometry": [ From aa34a055f6e83667899a24ad329d97c883b6a632 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 10 Feb 2018 10:41:10 -0500 Subject: [PATCH 042/157] Capitalize "Wholesale" --- data/presets.yaml | 2 +- data/presets/fields.json | 2 +- data/presets/fields/wholesale.json | 4 ++-- dist/locales/en.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 5fe76eebf..b367bee15 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -1622,7 +1622,7 @@ en: label: Wheelchair Access wholesale: # wholesale=* - label: wholesale + label: Wholesale width: # width=* label: Width (Meters) diff --git a/data/presets/fields.json b/data/presets/fields.json index 9572dd677..24ad0e858 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -2205,7 +2205,7 @@ "wholesale": { "key": "wholesale", "type": "typeCombo", - "label": "wholesale" + "label": "Wholesale" }, "width": { "key": "width", diff --git a/data/presets/fields/wholesale.json b/data/presets/fields/wholesale.json index 9612b71db..d3d1fd999 100644 --- a/data/presets/fields/wholesale.json +++ b/data/presets/fields/wholesale.json @@ -1,5 +1,5 @@ { "key": "wholesale", "type": "typeCombo", - "label": "wholesale" -} \ No newline at end of file + "label": "Wholesale" +} diff --git a/dist/locales/en.json b/dist/locales/en.json index 10539519a..bf48be27f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2643,7 +2643,7 @@ "label": "Wheelchair Access" }, "wholesale": { - "label": "wholesale" + "label": "Wholesale" }, "width": { "label": "Width (Meters)" From 013253ecde6eeb2e20ea92332079fac6a4ef0d80 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 11 Feb 2018 22:24:06 -0500 Subject: [PATCH 043/157] Improve combobox option visibility (closes #4761) This improves the usability of the combobox when it appears over other rows of fields (e.g. raw tag editor) 1. shrink size on left/right to provide more separation from content beneath 2. adjust box shadow for slightly more visibility 3. shrink size of first option by one pixel, so that the combobox options will never perfectly line up with rows that they cover --- css/80_app.css | 5 +++-- modules/lib/d3.combobox.js | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 63208b068..6fc8cc30b 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1883,7 +1883,7 @@ input[type=number] { div.combobox { z-index: 9999; display: none; - box-shadow: 0 0 10px 0 rgba(0,0,0,.1); + box-shadow: 0 4px 10px 1px rgba(0,0,0,.2); margin-top: -1px; background: white; max-height: 120px; @@ -1896,7 +1896,7 @@ div.combobox { .combobox a { display: block; padding: 5px 10px; - border-top:1px solid #ccc; + border-top: 1px solid #ccc; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; @@ -1909,6 +1909,7 @@ div.combobox { .combobox a:first-child { border-top: 0; + padding: 4px 10px; } .combobox-caret { diff --git a/modules/lib/d3.combobox.js b/modules/lib/d3.combobox.js index 92cd0a736..60c2ecbdc 100644 --- a/modules/lib/d3.combobox.js +++ b/modules/lib/d3.combobox.js @@ -265,8 +265,8 @@ export function d3combobox() { var rect = node.getBoundingClientRect(); wrapper - .style('left', rect.left + 'px') - .style('width', rect.width + 'px') + .style('left', (rect.left + 5) + 'px') + .style('width', (rect.width - 10) + 'px') .style('top', rect.height + rect.top + 'px'); } From aa3b4882de0714d6b90f95cfbda35db9eb9659bc Mon Sep 17 00:00:00 2001 From: James Kingdom Date: Mon, 12 Feb 2018 19:28:17 +0000 Subject: [PATCH 044/157] Change max nodes per request (closes #4793) --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index dda44dd4e..9c122687a 100644 --- a/API.md +++ b/API.md @@ -296,4 +296,4 @@ var id = iD.Context() ``` -This should be set with caution for performance reasons. The OpenStreetMap API has a limitation of 50000 nodes per request. +This should be set with caution for performance reasons. The OpenStreetMap API has a limitation of 10000 nodes per request. From 777585317a2b05b35f22bec5d370ce7ddc37e65e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 12 Feb 2018 14:42:39 -0500 Subject: [PATCH 045/157] Better inference of u-turns via way --- modules/osm/intersection.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 409471add..4f91320e9 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -604,7 +604,9 @@ export function osmInferRestriction(graph, from, to, projection) { if (fromNode === toNode) return 'no_u_turn'; if ((angle < 23 || angle > 336) && fromOneWay && toOneWay) - return 'no_u_turn'; + return 'no_u_turn'; // wider tolerance for u-turn if both ways are oneway + if ((angle < 40 || angle > 319) && fromOneWay && toOneWay && from.vertex !== to.vertex) + return 'no_u_turn'; // even wider tolerance for u-turn if there is a via way (from !== to) if (angle < 158) return 'no_right_turn'; if (angle > 202) From c9dac2221813810b4c7d614e7c9594f901fc123e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 12 Feb 2018 14:43:14 -0500 Subject: [PATCH 046/157] Render turn indicators slightly closer to turning vertex --- modules/svg/turns.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 62c43aa03..313731d15 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -69,7 +69,7 @@ export function svgTurns(projection) { var p = projection(v.loc); var q = projection(t.loc); var mid = geoVecLength(p, q) / 2; - var r = turn.u ? 0 : Math.min(mid, 60); + var r = turn.u ? 0 : Math.min(mid, 40); return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')'; From 73f78c3622b949270758306c88910214aeb41d37 Mon Sep 17 00:00:00 2001 From: James Kingdom Date: Mon, 12 Feb 2018 19:54:19 +0000 Subject: [PATCH 047/157] Revert max nodes to 50k --- API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/API.md b/API.md index 9c122687a..dda44dd4e 100644 --- a/API.md +++ b/API.md @@ -296,4 +296,4 @@ var id = iD.Context() ``` -This should be set with caution for performance reasons. The OpenStreetMap API has a limitation of 10000 nodes per request. +This should be set with caution for performance reasons. The OpenStreetMap API has a limitation of 50000 nodes per request. From 1174424f50601ddf470b31d8e0c0206b3ebd582b Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 12 Feb 2018 15:35:45 -0500 Subject: [PATCH 048/157] Adjust padding and sizing constants, return to col4 sidebar I really want the sidebar back to col4, so the user sees more main map. This makes it very tricky to fit all of the intersection in the turn restriction editor. --- modules/svg/turns.js | 2 +- modules/ui/fields/restrictions.js | 2 +- modules/ui/init.js | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 313731d15..1746a8639 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -69,7 +69,7 @@ export function svgTurns(projection) { var p = projection(v.loc); var q = projection(t.loc); var mid = geoVecLength(p, q) / 2; - var r = turn.u ? 0 : Math.min(mid, 40); + var r = turn.u ? 0 : Math.min(mid, 50); return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')'; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index c4b21f654..2317c2f5b 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -178,7 +178,7 @@ export function uiFieldRestrictions(field, context) { // If this is a large intersection, adjust zoom to fit extent if (_intersection.vertices.length > 1) { - var padding = 220; + var padding = 150; // in z22 pixels var tl = projection([extent[0][0], extent[1][1]]); var br = projection([extent[1][0], extent[0][1]]); var hFactor = (br[0] - tl[0]) / (d[0] - padding); diff --git a/modules/ui/init.js b/modules/ui/init.js index 3ceebb45c..adeb376fb 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -68,7 +68,7 @@ export function uiInit(context) { container .append('div') .attr('id', 'sidebar') - .attr('class', 'col5') + .attr('class', 'col4') .call(ui.sidebar); var content = container @@ -94,7 +94,7 @@ export function uiInit(context) { bar .append('div') - .attr('class', 'spacer col5'); + .attr('class', 'spacer col4'); var limiter = bar.append('div') .attr('class', 'limiter'); From 1612326ffab460ffc3ffcadaa244a8e8b11e83d6 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 13 Feb 2018 17:25:49 -0500 Subject: [PATCH 049/157] Move dist/via sliders to bottom, add imperial/metric conversion --- css/80_app.css | 35 +++++- modules/osm/intersection.js | 29 ++--- modules/ui/fields/restrictions.js | 182 +++++++++++++++++++++--------- 3 files changed, 170 insertions(+), 76 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 234a4c7f3..0a9ddb54d 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1834,21 +1834,44 @@ input[type=number] { /* Restrictions editor */ -.form-field-restrictions .restriction-detail { - padding: 5px 10px; +.form-field-restrictions .restriction-controls-container { background-color: #fff; - height: 30px; + border-top: 1px solid #ccc; + width: 100%; + padding: 5px; } -.restriction-detail input { +.restriction-controls-container .restriction-controls { + display: table; +} + +.restriction-controls .restriction-control { + display: table-row; + padding: 5px 10px; + height: 25px; +} + +.restriction-control input, +.restriction-control span { + display: table-cell; + text-align: start; + padding: 0px 5px; +} + +.restriction-control span.restriction-control-label { + text-align: end; +} + +.restriction-control input { width: 60px; - margin: 0px 10px; + padding: 0; + margin: 0px 5px; vertical-align: middle; } .form-field-restrictions .restriction-container { position: relative; - height: 400px; + height: 370px; } .form-field-restrictions svg.surface { diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 4f91320e9..c728e500f 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -29,8 +29,9 @@ export function osmTurn(turn) { } -export function osmIntersection(graph, startVertexId) { - var vgraph = coreGraph(); // virtual graph +export function osmIntersection(graph, startVertexId, maxDistance) { + maxDistance = maxDistance || 30; // in meters + var vgraph = coreGraph(); // virtual graph var i, j, k; @@ -63,7 +64,6 @@ export function osmIntersection(graph, startVertexId) { } - var distCutoff = 30; // meters var startNode = graph.entity(startVertexId); var checkVertices = [startNode]; var checkWays; @@ -109,7 +109,7 @@ export function osmIntersection(graph, startVertexId) { if (node === vertex) continue; // same thing if (vertices.indexOf(node) !== -1) continue; // seen it already if (node.loc && startNode.loc && - geoSphericalDistance(node.loc, startNode.loc) > distCutoff) continue; // too far from start + geoSphericalDistance(node.loc, startNode.loc) > maxDistance) continue; // too far from start // a key vertex will have parents that are also roads var hasParents = false; @@ -355,7 +355,6 @@ export function osmIntersection(graph, startVertexId) { }); - // OK! Here is our intersection.. var intersection = { graph: vgraph, @@ -374,13 +373,9 @@ export function osmIntersection(graph, startVertexId) { // // For each path found, generate and return a `osmTurn` datastructure. // - // detail = 0 - via node only - // detail = 1 - via node / 1 via way - // detail = 2 - via node / up to 2 via ways - // - intersection.turns = function(fromWayId, detail) { + intersection.turns = function(fromWayId, maxViaWay) { if (!fromWayId) return []; - if (!detail) detail = 0; + if (!maxViaWay) maxViaWay = 0; var vgraph = intersection.graph; var keyVertexIds = intersection.vertices.map(function(v) { return v.id; }); @@ -389,11 +384,11 @@ export function osmIntersection(graph, startVertexId) { var start = vgraph.entity(fromWayId); if (!start || !(start.__from || start.__via)) return []; - // detail=0 from-*-to (0 vias) - // detail=1 from-*-via-*-to (1 via max) - // detail=2 from-*-via-*-via-*-to (2 vias max) - var maxPathLength = (detail * 2) + 3; - var maxStepDist = 30; // meters + // maxViaWay=0 from-*-to (0 vias) + // maxViaWay=1 from-*-via-*-to (1 via max) + // maxViaWay=2 from-*-via-*-via-*-to (2 vias max) + var maxPathLength = (maxViaWay * 2) + 3; + var maxDistance = 30; // meters var turns = []; step(start); @@ -499,7 +494,7 @@ export function osmIntersection(graph, startVertexId) { nextNodes = []; if (currPath.length > 1) { - if (dist > maxStepDist) return; // the next node is too far + if (dist > maxDistance) return; // the next node is too far if (!entity.__via) return; // this way is a leaf / can't be a via } diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 2317c2f5b..acb2c5295 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -41,6 +41,8 @@ import { utilRebind } from '../../util'; +import { utilDetect } from '../../util/detect'; + import { utilGetDimensions, utilSetDimensions @@ -51,11 +53,15 @@ export function uiFieldRestrictions(field, context) { var dispatch = d3_dispatch('change'); var breathe = behaviorBreathe(context); var hover = behaviorHover(context); - var storedDetail = context.storage('turn-restriction-detail'); + var storedViaWay = context.storage('turn-restriction-via-way'); + var storedDistance = context.storage('turn-restriction-distance'); + var isImperial = (utilDetect().locale.toLowerCase() === 'en-us'); - var _detail = storedDetail !== null ? (+storedDetail) : 0; + var _maxViaWay = storedViaWay !== null ? (+storedViaWay) : 1; + var _maxDistance = storedDistance ? (+storedDistance) : 30; var _initialized = false; - var _container = d3_select(null); + var _parent = d3_select(null); // the entire field + var _container = d3_select(null); // just the map var _graph; var _vertexID; var _intersection; @@ -63,10 +69,12 @@ export function uiFieldRestrictions(field, context) { function restrictions(selection) { + _parent = selection; + // try to reuse the intersection, but always rebuild it if the graph has changed if (_vertexID && (context.graph() !== _graph || !_intersection)) { _graph = context.graph(); - _intersection = osmIntersection(_graph, _vertexID); + _intersection = osmIntersection(_graph, _vertexID, _maxDistance); } // It's possible for there to be no actual intersection here. @@ -95,52 +103,10 @@ export function uiFieldRestrictions(field, context) { var isComplex = (isOK && _intersection.vertices.length > 1); - var detailControl = wrap.selectAll('.restriction-detail') - .data(isComplex ? [0]: []); - - detailControl.exit() - .remove(); - - var detailControlEnter = detailControl.enter() - .append('div') - .attr('class', 'restriction-detail'); - - detailControlEnter - .append('span') - .attr('class', 'restriction-detail-label') - .text('Max Detail: '); - - detailControlEnter - .append('input') - .attr('class', 'restriction-detail-input') - .attr('type', 'range') - .attr('min', '0') - .attr('max', '2') - .attr('step', '1') - .on('input', function() { - var val = d3_select(this).property('value'); - _detail = +val; - _container.selectAll('.layer-osm .layer-turns *').remove(); - context.storage('turn-restriction-detail', _detail); - selection.call(restrictions); - }); - - detailControlEnter - .append('span') - .attr('class', 'restriction-detail-text'); - - // update - wrap.selectAll('.restriction-detail-input') - .property('value', _detail); - - var t = ['via node only', 'via 1 way', 'via 2 ways']; - wrap.selectAll('.restriction-detail-text') - .text(t[_detail]); - - var container = wrap.selectAll('.restriction-container') .data([0]); + // enter var containerEnter = container.enter() .append('div') .attr('class', 'restriction-container'); @@ -149,11 +115,121 @@ export function uiFieldRestrictions(field, context) { .append('div') .attr('class', 'restriction-help'); + // update _container = containerEnter - .merge(container); - - _container + .merge(container) .call(renderViewer); + + + var controls = wrap.selectAll('.restriction-controls') + .data([0]); + + // enter/update + controls.enter() + .append('div') + .attr('class', 'restriction-controls-container') + .append('div') + .attr('class', 'restriction-controls') + .merge(controls) + .call(renderControls); + } + + + function renderControls(selection) { + var distControl = selection.selectAll('.restriction-distance') + .data([0]); + + distControl.exit() + .remove(); + + var distControlEnter = distControl.enter() + .append('div') + .attr('class', 'restriction-control restriction-distance'); + + distControlEnter + .append('span') + .attr('class', 'restriction-control-label restriction-distance-label') + .text('Distance:'); + + distControlEnter + .append('input') + .attr('class', 'restriction-distance-input') + .attr('type', 'range') + .attr('min', '20') + .attr('max', '50') + .attr('step', '5') + .on('input', function() { + var val = d3_select(this).property('value'); + _maxDistance = +val; + _intersection = null; + _container.selectAll('.layer-osm .layer-turns *').remove(); + context.storage('turn-restriction-distance', _maxDistance); + _parent.call(restrictions); + }); + + distControlEnter + .append('span') + .attr('class', 'restriction-distance-text'); + + // update + selection.selectAll('.restriction-distance-input') + .property('value', _maxDistance); + + var distDisplay; + if (isImperial) { // imprecise conversion for prettier display + var distToFeet = { + 20: 70, 25: 85, 30: 100, 35: 115, 40: 130, 45: 145, 50: 160 + }[_maxDistance]; + distDisplay = 'Up to ' + distToFeet + ' feet'; + } else { + distDisplay = 'Up to ' + _maxDistance + ' meters'; + } + + selection.selectAll('.restriction-distance-text') + .text(distDisplay); + + + var viaControl = selection.selectAll('.restriction-via-way') + .data([0]); + + viaControl.exit() + .remove(); + + var viaControlEnter = viaControl.enter() + .append('div') + .attr('class', 'restriction-control restriction-via-way'); + + viaControlEnter + .append('span') + .attr('class', 'restriction-control-label restriction-via-way-label') + .text('Via:'); + + viaControlEnter + .append('input') + .attr('class', 'restriction-via-way-input') + .attr('type', 'range') + .attr('min', '0') + .attr('max', '2') + .attr('step', '1') + .on('input', function() { + var val = d3_select(this).property('value'); + _maxViaWay = +val; + _container.selectAll('.layer-osm .layer-turns *').remove(); + context.storage('turn-restriction-via-way', _maxViaWay); + _parent.call(restrictions); + }); + + viaControlEnter + .append('span') + .attr('class', 'restriction-via-way-text'); + + // update + selection.selectAll('.restriction-via-way-input') + .property('value', _maxViaWay); + + var t = ['Node only', 'Up to 1 way', 'Up to 2 ways']; + selection.selectAll('.restriction-via-way-text') + .text(t[_maxViaWay]); } @@ -234,7 +310,7 @@ export function uiFieldRestrictions(field, context) { .call(utilSetDimensions, d) .call(drawVertices, vgraph, _intersection.vertices, filter, extent, z) .call(drawLines, vgraph, _intersection.ways, filter) - .call(drawTurns, vgraph, _intersection.turns(_fromWayID, _detail)); + .call(drawTurns, vgraph, _intersection.turns(_fromWayID, _maxViaWay)); surface .on('click.restrictions', click) @@ -455,11 +531,11 @@ export function uiFieldRestrictions(field, context) { restrictions.entity = function(_) { - if (!_vertexID || _vertexID !== _.id) { + // if (!_vertexID || _vertexID !== _.id) { _intersection = null; _fromWayID = null; _vertexID = _.id; - } + // } }; From 0381bad22d987b27bb6b8315b6dac9560a052c76 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 13 Feb 2018 17:45:45 -0500 Subject: [PATCH 050/157] Adjust constants, trying to avoid crunched turn indicator on leaf way --- modules/svg/turns.js | 8 ++++++-- modules/ui/fields/restrictions.js | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 1746a8639..257d16a94 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -63,13 +63,17 @@ export function svgTurns(projection) { groups .attr('transform', function (turn) { + var pxOffset = 50; + var way = graph.entity(turn.to.way); var t = graph.entity(turn.to.node); var v = graph.entity(turn.to.vertex); var a = geoAngle(v, t, projection); var p = projection(v.loc); var q = projection(t.loc); - var mid = geoVecLength(p, q) / 2; - var r = turn.u ? 0 : Math.min(mid, 50); + var mid = geoVecLength(p, q) / 2; // midpoint of destination way + var r = turn.u ? 0 + : !way.__via ? pxOffset // leaf way: put marker at pxOffset + : Math.min(mid, pxOffset); // via way: prefer pxOffset, fallback to midpoint return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')'; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index acb2c5295..2e6905bcc 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -254,7 +254,7 @@ export function uiFieldRestrictions(field, context) { // If this is a large intersection, adjust zoom to fit extent if (_intersection.vertices.length > 1) { - var padding = 150; // in z22 pixels + var padding = 160; // in z22 pixels var tl = projection([extent[0][0], extent[1][1]]); var br = projection([extent[1][0], extent[0][1]]); var hFactor = (br[0] - tl[0]) / (d[0] - padding); From dbdbad29c2d0d4c6faa9cc5100987fb97f1d0281 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 14 Feb 2018 21:53:56 -0500 Subject: [PATCH 051/157] Make sure container has dimensions the first time --- css/80_app.css | 4 ++++ modules/ui/fields/restrictions.js | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 0a9ddb54d..0124cdb5e 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1873,6 +1873,10 @@ input[type=number] { position: relative; height: 370px; } +/* zero width space, so container takes up space */ +.form-field-restrictions .restriction-container:after { + content: '\200b'; +} .form-field-restrictions svg.surface { width: 100%; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 2e6905bcc..9581d42dd 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -240,7 +240,7 @@ export function uiFieldRestrictions(field, context) { var filter = utilFunctor(true); var projection = geoRawMercator(); - var d = utilGetDimensions(_container); + var d = utilGetDimensions(selection); var c = geoVecScale(d, 0.5); var z = 22; From a80f5b0957d1e3f060218416373f618773bafe57 Mon Sep 17 00:00:00 2001 From: vershwal Date: Thu, 15 Feb 2018 17:55:04 +0530 Subject: [PATCH 052/157] fixes 4795 : Added check for properties --- modules/svg/gpx.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/svg/gpx.js b/modules/svg/gpx.js index e3f33601f..9940395fb 100644 --- a/modules/svg/gpx.js +++ b/modules/svg/gpx.js @@ -110,7 +110,10 @@ export function svgGpx(projection, context, dispatch) { .attr('class', textClass) .merge(labels) .text(function(d) { - return d.properties.desc || d.properties.name; + if(d.properties) { + return d.properties.desc || d.properties.name; + } + return null; }) .attr('x', function(d) { var centroid = getPath.centroid(d); From 050907e2525ed0dd037f380b4dd84e6d0cebea3e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Feb 2018 08:27:39 -0500 Subject: [PATCH 053/157] Move event bindings to update selection, so callbacks use correct vars When they are on the enter selection, they can stay "sticky" which has the effect where you might move a slider and it puts the intersection back to how it previously was (or returns to a previous intersection) --- modules/ui/fields/restrictions.js | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 9581d42dd..bebbff44b 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -157,7 +157,15 @@ export function uiFieldRestrictions(field, context) { .attr('type', 'range') .attr('min', '20') .attr('max', '50') - .attr('step', '5') + .attr('step', '5'); + + distControlEnter + .append('span') + .attr('class', 'restriction-distance-text'); + + // update + selection.selectAll('.restriction-distance-input') + .property('value', _maxDistance) .on('input', function() { var val = d3_select(this).property('value'); _maxDistance = +val; @@ -167,14 +175,6 @@ export function uiFieldRestrictions(field, context) { _parent.call(restrictions); }); - distControlEnter - .append('span') - .attr('class', 'restriction-distance-text'); - - // update - selection.selectAll('.restriction-distance-input') - .property('value', _maxDistance); - var distDisplay; if (isImperial) { // imprecise conversion for prettier display var distToFeet = { @@ -210,14 +210,7 @@ export function uiFieldRestrictions(field, context) { .attr('type', 'range') .attr('min', '0') .attr('max', '2') - .attr('step', '1') - .on('input', function() { - var val = d3_select(this).property('value'); - _maxViaWay = +val; - _container.selectAll('.layer-osm .layer-turns *').remove(); - context.storage('turn-restriction-via-way', _maxViaWay); - _parent.call(restrictions); - }); + .attr('step', '1'); viaControlEnter .append('span') @@ -225,7 +218,14 @@ export function uiFieldRestrictions(field, context) { // update selection.selectAll('.restriction-via-way-input') - .property('value', _maxViaWay); + .property('value', _maxViaWay) + .on('input', function() { + var val = d3_select(this).property('value'); + _maxViaWay = +val; + _container.selectAll('.layer-osm .layer-turns *').remove(); + context.storage('turn-restriction-via-way', _maxViaWay); + _parent.call(restrictions); + }); var t = ['Node only', 'Up to 1 way', 'Up to 2 ways']; selection.selectAll('.restriction-via-way-text') From 4a7fa802250ce468fb32e3fa5aa10adcf057d015 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Feb 2018 08:31:31 -0500 Subject: [PATCH 054/157] eslint --- modules/svg/gpx.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/svg/gpx.js b/modules/svg/gpx.js index 9940395fb..30e9be404 100644 --- a/modules/svg/gpx.js +++ b/modules/svg/gpx.js @@ -110,7 +110,7 @@ export function svgGpx(projection, context, dispatch) { .attr('class', textClass) .merge(labels) .text(function(d) { - if(d.properties) { + if (d.properties) { return d.properties.desc || d.properties.name; } return null; From d030251fbb15a1174ecdd3a012065d97c3edffda Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Feb 2018 13:39:39 -0500 Subject: [PATCH 055/157] Ignore pointer events on restriction help This prevents flickering when hovering over a turn restriction that is up underneath where the help is drawn --- css/80_app.css | 1 + 1 file changed, 1 insertion(+) diff --git a/css/80_app.css b/css/80_app.css index 0124cdb5e..42c33da6f 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1893,6 +1893,7 @@ input[type=number] { background-color: rgba(255, 255, 255, .8); color: #888; text-align: center; + pointer-events: none; } .restriction-help span { From 9cb3e7d03ad0aed5d999e601396ad51fd668496b Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Feb 2018 13:40:32 -0500 Subject: [PATCH 056/157] Adjust calculation for turn indicator placement This helps move the indicator a bit further away in cases where turn.to.node is right up very close to the turning vertex --- modules/svg/turns.js | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 257d16a94..baae52635 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -1,4 +1,4 @@ -import { geoAngle, geoVecLength } from '../geo'; +import { geoAngle, geoPathLength } from '../geo'; export function svgTurns(projection) { @@ -63,19 +63,23 @@ export function svgTurns(projection) { groups .attr('transform', function (turn) { - var pxOffset = 50; - var way = graph.entity(turn.to.way); - var t = graph.entity(turn.to.node); - var v = graph.entity(turn.to.vertex); - var a = geoAngle(v, t, projection); - var p = projection(v.loc); - var q = projection(t.loc); - var mid = geoVecLength(p, q) / 2; // midpoint of destination way - var r = turn.u ? 0 - : !way.__via ? pxOffset // leaf way: put marker at pxOffset - : Math.min(mid, pxOffset); // via way: prefer pxOffset, fallback to midpoint + var pxRadius = 50; + var toWay = graph.entity(turn.to.way); + var toPoints = graph.childNodes(toWay) + .map(function (n) { return n.loc; }) + .map(projection); + var toLength = geoPathLength(toPoints); + var mid = toLength / 2; // midpoint of destination way - return 'translate(' + (r * Math.cos(a) + p[0]) + ',' + (r * Math.sin(a) + p[1]) + ') ' + + var toNode = graph.entity(turn.to.node); + var toVertex = graph.entity(turn.to.vertex); + var a = geoAngle(toVertex, toNode, projection); + var o = projection(toVertex.loc); + var r = turn.u ? 0 // u-turn: no radius + : !toWay.__via ? pxRadius // leaf way: put marker at pxRadius + : Math.min(mid, pxRadius); // via way: prefer pxRadius, fallback to mid for very short ways + + return 'translate(' + (r * Math.cos(a) + o[0]) + ',' + (r * Math.sin(a) + o[1]) + ') ' + 'rotate(' + a * 180 / Math.PI + ')'; }); From f7e6eae065fd81a98d1150937825624c3873a022 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Feb 2018 17:27:45 -0500 Subject: [PATCH 057/157] Support Only Via paths, render indirect turn restriction with opacity --- modules/osm/intersection.js | 60 +++++++++++++++++++------------ modules/svg/turns.js | 5 ++- modules/ui/fields/restrictions.js | 10 +++--- 3 files changed, 47 insertions(+), 28 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index c728e500f..0e17947c3 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -433,31 +433,42 @@ export function osmIntersection(graph, startVertexId, maxDistance) { isLocalVia = _every(v, function(via) { return keyWayIds.indexOf(via.id) !== -1; }); } - // Does this path match the turn restriction? - var isMatch = false; - if ( // match via node, to way - v.length === 1 && - v[0].type === 'node' && - v[0].id === entity.id && - t.id === way.id - ) { - isMatch = true; - } else if ( // match via ways, to way - _every(v, function(via) { return currPath.indexOf(via.id) !== -1; }) && - t.id === way.id - ) { - isMatch = true; + // Does the current path match this turn restriction? + var isDirectMatch = false; + var isAlongOnlyPath = false; + + if (t.id === way.id) { // match TO + if (v.length === 1 && v[0].type === 'node' && v[0].id === entity.id) { + isDirectMatch = true; // match VIA node + } else if (_every(v, function(via) { return currPath.indexOf(via.id) !== -1; })) { + isDirectMatch = true; // match all VIA ways + } + + } else if (isOnly) { + for (k = 0; k < v.length; k++) { + // way doesn't match TO, but is one of the via ways along the path of an "only" + if (v[k].type === 'way' && v[k].id === way.id) { + isAlongOnlyPath = true; + break; + } + } } - if (isMatch && isOnly) { - restrict = { id: restriction.id, only: true }; + if (isDirectMatch) { + if (isOnly) { + restrict = { id: restriction.id, direct: true, only: true }; + } else { + restrict = { id: restriction.id, direct: true, no: true }; + } break; - } else if (isMatch && !isOnly) { - restrict = { id: restriction.id, direct: true }; - break; - } else if (!isMatch && isOnly && isLocalVia) { - restrict = { id: restriction.id, indirect: true }; - // no break - keep looking for a "better" direct or only + + } else { // indirect match, caused by presence of an "only" + if (isAlongOnlyPath) { + restrict = { id: restriction.id, indirect: true, only: true }; + } else if (isOnly && isLocalVia) { + restrict = { id: restriction.id, indirect: true, no: true }; + } + // no break - keep looking for a "better" direct match } } @@ -475,6 +486,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { if (turn) { if (matchedRestriction) { turn.restrictionID = matchedRestriction.id; + turn.no = matchedRestriction.no; turn.only = matchedRestriction.only; turn.direct = matchedRestriction.direct; turn.indirect = matchedRestriction.indirect; @@ -485,7 +497,9 @@ export function osmIntersection(graph, startVertexId, maxDistance) { if (currPath[0] === currPath[2]) return; // we made a u-turn - stop here } - if (matchedRestriction) return; // don't advance any further + if (matchedRestriction && + (matchedRestriction.direct || matchedRestriction.no) + ) return; // don't advance any further // which nodes can we step into? var n1 = vgraph.entity(entity.first()), diff --git a/modules/svg/turns.js b/modules/svg/turns.js index baae52635..0022ef4a6 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -7,7 +7,7 @@ export function svgTurns(projection) { function icon(turn) { var u = turn.u ? '-u' : ''; - if (turn.direct || turn.indirect) return '#turn-no' + u; + if (turn.no) return '#turn-no' + u; if (turn.only) return '#turn-only' + u; return '#turn-yes' + u; } @@ -62,6 +62,9 @@ export function svgTurns(projection) { .merge(enter); groups + .attr('opacity', function (turn) { + return turn.indirect ? '0.7' : null; + }) .attr('transform', function (turn) { var pxRadius = 50; var toWay = graph.entity(turn.to.way); diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index bebbff44b..3589cc6ae 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -349,7 +349,9 @@ export function uiFieldRestrictions(field, context) { var actions; datum.restriction = osmInferRestriction(vgraph, datum.from, datum.to, projection); - if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state + if (datum.restrictionID && datum.indirect) { + return; + } else if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state var datumOnly = _cloneDeep(datum); datumOnly.only = true; datumOnly.restriction = datumOnly.restriction.replace(/^no\_/, 'only_'); @@ -411,12 +413,12 @@ export function uiFieldRestrictions(field, context) { var restrictType = ''; var klass = 'allow'; if (datum.restrictionID) { - if (datum.direct) { restrictType = 'NO'; klass = 'restrict'; } - if (datum.indirect) { restrictType = 'NO'; klass = 'restrict'; } - if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } + if (datum.no) { restrictType = 'NO'; klass = 'restrict'; } + if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } } var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); + if (datum.indirect) { s += ' (indirect)'; } div = help.append('div'); div.append('span') From a2b6a3b09b45da3d2a30b8141e2c1c01ee0c8e59 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Feb 2018 22:18:01 -0500 Subject: [PATCH 058/157] Flag restriction as indirect if from doesn't match --- modules/osm/intersection.js | 44 +++++++++++++++---------------- modules/svg/turns.js | 2 +- modules/ui/fields/restrictions.js | 4 +-- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 0e17947c3..c4785a599 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -420,6 +420,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { var restrict = undefined; for (var j = 0; j < currRestrictions.length; j++) { var restriction = currRestrictions[j]; + var f = restriction.memberByRole('from'); var v = restriction.membersByRole('via'); var t = restriction.memberByRole('to'); var isOnly = /^only_/.test(restriction.tags.restriction); @@ -434,14 +435,15 @@ export function osmIntersection(graph, startVertexId, maxDistance) { } // Does the current path match this turn restriction? - var isDirectMatch = false; + var matchesFrom = (f.id === fromWayId); + var matchesViaTo = false; var isAlongOnlyPath = false; - if (t.id === way.id) { // match TO + if (t.id === way.id) { // match VIA, TO if (v.length === 1 && v[0].type === 'node' && v[0].id === entity.id) { - isDirectMatch = true; // match VIA node + matchesViaTo = true; // match VIA node } else if (_every(v, function(via) { return currPath.indexOf(via.id) !== -1; })) { - isDirectMatch = true; // match all VIA ways + matchesViaTo = true; // match all VIA ways } } else if (isOnly) { @@ -454,22 +456,23 @@ export function osmIntersection(graph, startVertexId, maxDistance) { } } - if (isDirectMatch) { + if (matchesViaTo) { if (isOnly) { - restrict = { id: restriction.id, direct: true, only: true }; + restrict = { id: restriction.id, direct: matchesFrom, only: true, end: true }; } else { - restrict = { id: restriction.id, direct: true, no: true }; + restrict = { id: restriction.id, direct: matchesFrom, no: true, end: true }; } - break; - - } else { // indirect match, caused by presence of an "only" + } else { // indirect - caused by a different nearby restriction if (isAlongOnlyPath) { - restrict = { id: restriction.id, indirect: true, only: true }; + restrict = { id: restriction.id, direct: false, only: true, end: false }; } else if (isOnly && isLocalVia) { - restrict = { id: restriction.id, indirect: true, no: true }; + restrict = { id: restriction.id, direct: false, no: true, end: true }; } - // no break - keep looking for a "better" direct match } + + // stop looking if we find a "direct" restriction (matching FROM, VIA, TO) + if (restrict && restrict.direct) + break; } nextWays.push({ way: way, restrict: restrict }); @@ -489,23 +492,20 @@ export function osmIntersection(graph, startVertexId, maxDistance) { turn.no = matchedRestriction.no; turn.only = matchedRestriction.only; turn.direct = matchedRestriction.direct; - turn.indirect = matchedRestriction.indirect; } turns.push(osmTurn(turn)); } - if (currPath[0] === currPath[2]) return; // we made a u-turn - stop here + if (currPath[0] === currPath[2]) return; // if we made a u-turn - stop here } - if (matchedRestriction && - (matchedRestriction.direct || matchedRestriction.no) - ) return; // don't advance any further + if (matchedRestriction && matchedRestriction.end) return; // don't advance any further // which nodes can we step into? - var n1 = vgraph.entity(entity.first()), - n2 = vgraph.entity(entity.last()), - dist = n1.loc && n2.loc && geoSphericalDistance(n1.loc, n2.loc), - nextNodes = []; + var n1 = vgraph.entity(entity.first()); + var n2 = vgraph.entity(entity.last()); + var dist = n1.loc && n2.loc && geoSphericalDistance(n1.loc, n2.loc); + var nextNodes = []; if (currPath.length > 1) { if (dist > maxDistance) return; // the next node is too far diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 0022ef4a6..1ed10706b 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -63,7 +63,7 @@ export function svgTurns(projection) { groups .attr('opacity', function (turn) { - return turn.indirect ? '0.7' : null; + return turn.direct === false ? '0.7' : null; }) .attr('transform', function (turn) { var pxRadius = 50; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 3589cc6ae..4757ab419 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -349,7 +349,7 @@ export function uiFieldRestrictions(field, context) { var actions; datum.restriction = osmInferRestriction(vgraph, datum.from, datum.to, projection); - if (datum.restrictionID && datum.indirect) { + if (datum.restrictionID && !datum.direct) { return; } else if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state var datumOnly = _cloneDeep(datum); @@ -418,7 +418,7 @@ export function uiFieldRestrictions(field, context) { } var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); - if (datum.indirect) { s += ' (indirect)'; } + if (datum.direct === false) { s += ' (indirect)'; } div = help.append('div'); div.append('span') From 5e9db0d409d2504bed7f36e826e50f3f5eda5332 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 16 Feb 2018 00:03:04 -0500 Subject: [PATCH 059/157] Move help display code, fix display of indirect only restrictions "indirect only" means an only restriction elsewhere in the intersection that affects the selected from way. | | ---+--F--+--- A | ---v--T--+--- B | In the above example - 'only_straight_on' restriction "FROM way A VIA node V TO way B" - way F is selected This would indirectly prevent a u-turn "FROM way F VIA way A TO way T" We want to display the straight on restriction in the UI as "only_straight_on FROM way A VIA node V TO way B" not "only_left_turn FROM way F VIA way A TO way B" --- modules/ui/fields/restrictions.js | 198 +++++++++++++----------------- 1 file changed, 85 insertions(+), 113 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 4757ab419..c4be98774 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -381,115 +381,8 @@ export function uiFieldRestrictions(field, context) { function mouseover() { - var help = _container.selectAll('.restriction-help').html(''); - var div, d; - var datum = d3_event.target.__data__; - var entity = datum && datum.properties && datum.properties.entity; - if (entity) { - datum = entity; - } - - surface.selectAll('.related') - .classed('related', false); - - if (datum instanceof osmWay) { - d = display(vgraph.entity(datum.id), vgraph); - div = help.append('div'); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(d.name || d.type); - - } else if (datum instanceof osmTurn) { - surface.selectAll(utilEntitySelector(datum.key.split(','))) - .classed('related', true); - - var turnType = { - 'no_left_turn': 'Left Turn', - 'no_right_turn': 'Right Turn', - 'no_u_turn': 'U-Turn', - 'no_straight_on': 'Straight On' - }[osmInferRestriction(vgraph, datum.from, datum.to, projection)]; - - var restrictType = ''; - var klass = 'allow'; - if (datum.restrictionID) { - if (datum.no) { restrictType = 'NO'; klass = 'restrict'; } - if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } - } - - var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); - if (datum.direct === false) { s += ' (indirect)'; } - - div = help.append('div'); - div.append('span') - .attr('class', 'qualifier ' + klass) - .text(s); - - div = help.append('div'); - d = display(vgraph.entity(datum.from.way), vgraph); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(d.name || d.type); - - d = display(vgraph.entity(datum.to.way), vgraph); - div.append('span').attr('class', 'qualifier').text('TO'); - div.append('span').text(d.name || d.type); - - if (datum.via.ways) { - div = help.append('div'); - div.append('span').attr('class', 'qualifier').text('VIA'); - - var curr, prev; - for (var i = 0; i < datum.via.ways.length; i++) { - d = display(vgraph.entity(datum.via.ways[i]), vgraph); - curr = d.name || d.type; - if (curr === prev) continue; // collapse identical names - - if (prev) div.append('span').text(','); - div.append('span').text(curr); - prev = curr; - } - } - - - //DEBUG - // var str = ''; - // if (datum.restriction) { - // if (datum.only) { str += 'ONLY_ '; } - // if (datum.direct) { str += 'NO_ '; } - // if (datum.indirect) { str += 'indirect '; } - // str += datum.restriction; - // } - - // str += ' FROM ' + datum.from.way + - // ' VIA ' + (datum.via.node || datum.via.ways.join(',')) + - // ' TO ' + datum.to.way; - - // _container.selectAll('.restriction-help') - // .text(str); - -// return; - // var presets = context.presets(), - // preset; - - // if (datum.restriction) { - // preset = presets.match(vgraph.entity(datum.restriction), vgraph); - // } else { - // preset = presets.item('type/restriction/' + - // osmInferRestriction( - // vgraph, - // datum.from, - // datum.to, - // projection - // ) - // ); - // } - - // _container.selectAll('.restriction-help') - // .text(t('operations.restriction.help.' + - // (datum.restriction ? 'toggle_off' : 'toggle_on'), - // { restriction: preset.name() }) - // ); - } + updateHelp(datum); } @@ -508,11 +401,6 @@ export function uiFieldRestrictions(field, context) { div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text('way'); } - - // _container.selectAll('.restriction-help') - // .text(t('operations.restriction.help.' + - // (_fromWayID ? 'toggle' : 'select')) - // ); } @@ -521,6 +409,90 @@ export function uiFieldRestrictions(field, context) { _container.call(renderViewer); } } + + + function updateHelp(datum) { + var help = _container.selectAll('.restriction-help').html(''); + var div, d; + + var entity = datum && datum.properties && datum.properties.entity; + if (entity) { + datum = entity; + } + + surface.selectAll('.related') + .classed('related', false); + + if (datum instanceof osmWay) { + d = display(vgraph.entity(datum.id), vgraph); + div = help.append('div'); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(d.name || d.type); + + } else if (datum instanceof osmTurn) { + surface.selectAll(utilEntitySelector(datum.key.split(','))) + .classed('related', true); + + var fromWayID = datum.from.way; + var viaWayIDs = datum.via.ways; + var toWayID = datum.to.way; + var restrictionType = osmInferRestriction(vgraph, datum.from, datum.to, projection); + + if (datum.restrictionID && datum.only && datum.direct === false) { + var r = vgraph.entity(datum.restrictionID); + fromWayID = r.memberByRole('from').id; + viaWayIDs = r.membersByRole('via').map(function (m) { return m.id; }); + toWayID = r.memberByRole('to').id; + restrictionType = r.tags.restriction.replace(/^only/, 'no'); + } + + var turnType = { + 'no_left_turn': 'Left Turn', + 'no_right_turn': 'Right Turn', + 'no_u_turn': 'U-Turn', + 'no_straight_on': 'Straight On' + }[restrictionType]; + + var restrictType = ''; + var klass = 'allow'; + if (datum.no) { restrictType = 'NO'; klass = 'restrict'; } + if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } + + var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); + if (datum.direct === false) { s += ' (indirect)'; } + + div = help.append('div'); + div.append('span') + .attr('class', 'qualifier ' + klass) + .text(s); + + div = help.append('div'); + d = display(vgraph.entity(fromWayID), vgraph); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(d.name || d.type); + + d = display(vgraph.entity(toWayID), vgraph); + div.append('span').attr('class', 'qualifier').text('TO'); + div.append('span').text(d.name || d.type); + + if (viaWayIDs) { + div = help.append('div'); + div.append('span').attr('class', 'qualifier').text('VIA'); + + var curr, prev; + for (var i = 0; i < viaWayIDs.length; i++) { + d = display(vgraph.entity(viaWayIDs[i]), vgraph); + curr = d.name || d.type; + if (curr === prev) continue; // collapse identical names + + if (prev) div.append('span').text(','); + div.append('span').text(curr); + prev = curr; + } + } + } + + } } From 28cb6aa1e1fbf22cdfc475b41cac5c144c2ec4ef Mon Sep 17 00:00:00 2001 From: Benoit Costamagna Date: Fri, 16 Feb 2018 11:52:05 +0100 Subject: [PATCH 060/157] reduced search priority for boat builder --- data/presets/presets.json | 1 + data/presets/presets/craft/boatbuilder.json | 1 + 2 files changed, 2 insertions(+) diff --git a/data/presets/presets.json b/data/presets/presets.json index b924ecfb5..57635ddfb 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -5207,6 +5207,7 @@ "tags": { "craft": "boatbuilder" }, + "matchScore": 0.4, "name": "Boat Builder" }, "craft/bookbinder": { diff --git a/data/presets/presets/craft/boatbuilder.json b/data/presets/presets/craft/boatbuilder.json index 4a66954b2..c199fceec 100644 --- a/data/presets/presets/craft/boatbuilder.json +++ b/data/presets/presets/craft/boatbuilder.json @@ -14,5 +14,6 @@ "tags": { "craft": "boatbuilder" }, + "matchScore": 0.4, "name": "Boat Builder" } From ca493ec47c8428ce22e208a6e13e647325f27cf9 Mon Sep 17 00:00:00 2001 From: Jordane Pelloux-Prayer Date: Fri, 16 Feb 2018 12:57:00 +0100 Subject: [PATCH 061/157] fixes #4804: do not stop mapillary autoplaying if _mlyViewer is not initialized --- modules/services/mapillary.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/mapillary.js b/modules/services/mapillary.js index 287c892b1..2c7bedf3c 100644 --- a/modules/services/mapillary.js +++ b/modules/services/mapillary.js @@ -491,7 +491,7 @@ export default { hideViewer: function() { _mlySelectedImage = null; - if (!_mlyFallback) { + if (!_mlyFallback && _mlyViewer) { _mlyViewer.getComponent('sequence').stop(); } From aff9258deeea371b02220b72ebe507e3be144fe9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 16 Feb 2018 11:42:44 -0500 Subject: [PATCH 062/157] Indirect restrictions now include only the partial path This lets us properly infer the actual turn taken through the indirect restriction using osmInferRestriction (an improvement over 5e9db0d) --- modules/osm/intersection.js | 34 ++++++++++++++++++++----------- modules/ui/fields/restrictions.js | 20 ++++++------------ 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index c4785a599..1673bbb45 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -401,13 +401,14 @@ export function osmIntersection(graph, startVertexId, maxDistance) { if (currPath.length >= maxPathLength) return; currPath.push(entity.id); currRestrictions = _clone(currRestrictions || []); + var i, j; if (entity.type === 'node') { var parents = vgraph.parentWays(entity); var nextWays = []; // which ways can we step into? - for (var i = 0; i < parents.length; i++) { + for (i = 0; i < parents.length; i++) { var way = parents[i]; // if next way is a oneway incoming to this vertex, skip @@ -418,7 +419,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { // Check all "current" restrictions (where we've already walked the `from`) var restrict = undefined; - for (var j = 0; j < currRestrictions.length; j++) { + for (j = 0; j < currRestrictions.length; j++) { var restriction = currRestrictions[j]; var f = restriction.memberByRole('from'); var v = restriction.membersByRole('via'); @@ -458,15 +459,15 @@ export function osmIntersection(graph, startVertexId, maxDistance) { if (matchesViaTo) { if (isOnly) { - restrict = { id: restriction.id, direct: matchesFrom, only: true, end: true }; + restrict = { id: restriction.id, direct: matchesFrom, from: f.id, only: true, end: true }; } else { - restrict = { id: restriction.id, direct: matchesFrom, no: true, end: true }; + restrict = { id: restriction.id, direct: matchesFrom, from: f.id, no: true, end: true }; } } else { // indirect - caused by a different nearby restriction if (isAlongOnlyPath) { - restrict = { id: restriction.id, direct: false, only: true, end: false }; + restrict = { id: restriction.id, direct: false, from: f.id, only: true, end: false }; } else if (isOnly && isLocalVia) { - restrict = { id: restriction.id, direct: false, no: true, end: true }; + restrict = { id: restriction.id, direct: false, from: f.id, no: true, end: true }; } } @@ -485,7 +486,19 @@ export function osmIntersection(graph, startVertexId, maxDistance) { } else { // entity.type === 'way' if (currPath.length >= 3) { // this is a "complete" path.. - var turn = pathToTurn(currPath); + var turnPath = _clone(currPath); + + // an indirect restriction - only include the partial path (starting at FROM) + if (matchedRestriction && matchedRestriction.direct === false) { + for (i = 0; i < turnPath.length; i++) { + if (i > 0 && turnPath[i] === matchedRestriction.from) { + turnPath = turnPath.slice(i); + break; + } + } + } + + var turn = pathToTurn(turnPath); if (turn) { if (matchedRestriction) { turn.restrictionID = matchedRestriction.id; @@ -583,7 +596,6 @@ export function osmIntersection(graph, startVertexId, maxDistance) { var nodes = vgraph.entity(wayId).nodes; return affixId === nodes[0] ? nodes[1] : nodes[nodes.length - 2]; } - } }; @@ -602,10 +614,8 @@ export function osmInferRestriction(graph, from, to, projection) { var fromOneWay = (fromWay.tags.oneway === 'yes'); var toOneWay = (toWay.tags.oneway === 'yes'); - var angle = geoAngle(fromVertex, fromNode, projection) - - geoAngle(toVertex, toNode, projection); - - angle = angle * 180 / Math.PI; + var angle = (geoAngle(fromVertex, fromNode, projection) - + geoAngle(toVertex, toNode, projection)) * 180 / Math.PI; while (angle < 0) angle += 360; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index c4be98774..0550cff63 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -254,7 +254,7 @@ export function uiFieldRestrictions(field, context) { // If this is a large intersection, adjust zoom to fit extent if (_intersection.vertices.length > 1) { - var padding = 160; // in z22 pixels + var padding = 180; // in z22 pixels var tl = projection([extent[0][0], extent[1][1]]); var br = projection([extent[1][0], extent[0][1]]); var hFactor = (br[0] - tl[0]) / (d[0] - padding); @@ -265,7 +265,7 @@ export function uiFieldRestrictions(field, context) { projection.scale(geoZoomToScale(z)); } - var padTop = 30; // reserve top space for hint text + var padTop = 35; // reserve top space for hint text var extentCenter = projection(extent.center()); extentCenter[1] = extentCenter[1] - padTop; @@ -351,10 +351,10 @@ export function uiFieldRestrictions(field, context) { if (datum.restrictionID && !datum.direct) { return; - } else if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state + } else if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state var datumOnly = _cloneDeep(datum); datumOnly.only = true; - datumOnly.restriction = datumOnly.restriction.replace(/^no\_/, 'only_'); + datumOnly.restriction = datumOnly.restriction.replace(/^no/, 'only'); actions = _intersection.actions.concat([ actionUnrestrictTurn(datum, projection), actionRestrictTurn(datumOnly, projection), @@ -438,20 +438,12 @@ export function uiFieldRestrictions(field, context) { var toWayID = datum.to.way; var restrictionType = osmInferRestriction(vgraph, datum.from, datum.to, projection); - if (datum.restrictionID && datum.only && datum.direct === false) { - var r = vgraph.entity(datum.restrictionID); - fromWayID = r.memberByRole('from').id; - viaWayIDs = r.membersByRole('via').map(function (m) { return m.id; }); - toWayID = r.memberByRole('to').id; - restrictionType = r.tags.restriction.replace(/^only/, 'no'); - } - var turnType = { 'no_left_turn': 'Left Turn', 'no_right_turn': 'Right Turn', 'no_u_turn': 'U-Turn', 'no_straight_on': 'Straight On' - }[restrictionType]; + }[restrictionType.replace(/^only/, 'no')]; var restrictType = ''; var klass = 'allow'; @@ -475,7 +467,7 @@ export function uiFieldRestrictions(field, context) { div.append('span').attr('class', 'qualifier').text('TO'); div.append('span').text(d.name || d.type); - if (viaWayIDs) { + if (viaWayIDs && viaWayIDs.length) { div = help.append('div'); div.append('span').attr('class', 'qualifier').text('VIA'); From b84b64c79c72b8209d496dd01c8d61435dc06f31 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 16 Feb 2018 13:26:41 -0500 Subject: [PATCH 063/157] Avoid user-select as a byproduct of using the control and clicking --- css/80_app.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/css/80_app.css b/css/80_app.css index 42c33da6f..ee4a32e3d 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1894,6 +1894,11 @@ input[type=number] { color: #888; text-align: center; pointer-events: none; + + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; } .restriction-help span { From d940200ef0e1c5cdad1630ca6cdfa5b27218a79e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 16 Feb 2018 13:27:23 -0500 Subject: [PATCH 064/157] osmInferRestriction can just take a turn, instead of from/to This is better because it makes explicit that osmInferRestriction needs an actual turn now (from/to with vertex, etc) --- modules/actions/restrict_turn.js | 2 +- modules/osm/intersection.js | 16 ++++++++-------- modules/ui/fields/restrictions.js | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/actions/restrict_turn.js b/modules/actions/restrict_turn.js index 60284c381..50490012d 100644 --- a/modules/actions/restrict_turn.js +++ b/modules/actions/restrict_turn.js @@ -52,7 +52,7 @@ export function actionRestrictTurn(turn, projection, restrictionID) { id: restrictionID, tags: { type: 'restriction', - restriction: turn.restriction || osmInferRestriction(graph, turn.from, turn.to, projection) + restriction: turn.restriction || osmInferRestriction(graph, turn, projection) }, members: members })); diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 1673bbb45..170552a70 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -604,13 +604,13 @@ export function osmIntersection(graph, startVertexId, maxDistance) { } -export function osmInferRestriction(graph, from, to, projection) { - var fromWay = graph.entity(from.way); - var fromNode = graph.entity(from.node); - var fromVertex = graph.entity(from.vertex); - var toWay = graph.entity(to.way); - var toNode = graph.entity(to.node); - var toVertex = graph.entity(to.vertex); +export function osmInferRestriction(graph, turn, projection) { + var fromWay = graph.entity(turn.from.way); + var fromNode = graph.entity(turn.from.node); + var fromVertex = graph.entity(turn.from.vertex); + var toWay = graph.entity(turn.to.way); + var toNode = graph.entity(turn.to.node); + var toVertex = graph.entity(turn.to.vertex); var fromOneWay = (fromWay.tags.oneway === 'yes'); var toOneWay = (toWay.tags.oneway === 'yes'); @@ -624,7 +624,7 @@ export function osmInferRestriction(graph, from, to, projection) { return 'no_u_turn'; if ((angle < 23 || angle > 336) && fromOneWay && toOneWay) return 'no_u_turn'; // wider tolerance for u-turn if both ways are oneway - if ((angle < 40 || angle > 319) && fromOneWay && toOneWay && from.vertex !== to.vertex) + if ((angle < 40 || angle > 319) && fromOneWay && toOneWay && turn.from.vertex !== turn.to.vertex) return 'no_u_turn'; // even wider tolerance for u-turn if there is a via way (from !== to) if (angle < 158) return 'no_right_turn'; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 0550cff63..f29caccbb 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -347,7 +347,7 @@ export function uiFieldRestrictions(field, context) { } else if (datum instanceof osmTurn) { var actions; - datum.restriction = osmInferRestriction(vgraph, datum.from, datum.to, projection); + datum.restriction = osmInferRestriction(vgraph, datum, projection); if (datum.restrictionID && !datum.direct) { return; @@ -436,7 +436,7 @@ export function uiFieldRestrictions(field, context) { var fromWayID = datum.from.way; var viaWayIDs = datum.via.ways; var toWayID = datum.to.way; - var restrictionType = osmInferRestriction(vgraph, datum.from, datum.to, projection); + var restrictionType = osmInferRestriction(vgraph, datum, projection); var turnType = { 'no_left_turn': 'Left Turn', From 63a41956db7d43df7302f0b23e09a01cc83b4732 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Mon, 19 Feb 2018 05:44:58 +0000 Subject: [PATCH 065/157] chore(package): update @std/esm to version 0.22.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 972a618b0..0e61e2e38 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "@mapbox/maki": "^4.0.0", - "@std/esm": "^0.21.0", + "@std/esm": "^0.22.0", "chai": "^4.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", From 200098dff9b1f8778639ac84dccd069502af1bbf Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 19 Feb 2018 21:30:47 -0500 Subject: [PATCH 066/157] Render restriction paths with red/green/blue shadow --- css/20_map.css | 32 +++++++- css/80_app.css | 4 +- modules/osm/intersection.js | 18 ++++- modules/svg/turns.js | 20 ++--- modules/ui/fields/restrictions.js | 124 ++++++++++++++++++++++-------- 5 files changed, 146 insertions(+), 52 deletions(-) diff --git a/css/20_map.css b/css/20_map.css index 5cd5771ac..e4531ed65 100644 --- a/css/20_map.css +++ b/css/20_map.css @@ -26,6 +26,11 @@ pointer-events: none; } +.lasso #map { + pointer-events: visibleStroke; +} + + /* `.target` objects are interactive */ /* They can be picked up, clicked, hovered, or things can connect to them */ .node.target { @@ -242,7 +247,7 @@ text.point { } -/* Turns */ +/* Turn Restrictions */ g.turn rect, g.turn circle { @@ -255,9 +260,30 @@ g.turn circle { pointer-events: none; } -.lasso #map { - pointer-events: visibleStroke; +/* Turn restriction paths and vertices */ +.surface.tr path.shadow.selected, +.surface.tr path.shadow.related, +.surface.tr g.vertex.selected .shadow, +.surface.tr g.vertex.related .shadow { + stroke-opacity: 0.7; + stroke: #777; } +.surface.tr path.shadow.related.allow, +.surface.tr g.vertex.related.allow .shadow { + stroke: #7a4; + /*stroke: #8cd05f;*/ +} +.surface.tr path.shadow.related.restrict, +.surface.tr g.vertex.related.restrict .shadow { + stroke: #d75; + /*stroke: #e06d5f;*/ +} +.surface.tr path.shadow.related.only, +.surface.tr g.vertex.related.only .shadow { + stroke: #78f; + /*stroke: #7092ff;*/ +} + /* GPX Paths */ diff --git a/css/80_app.css b/css/80_app.css index ee4a32e3d..0a43ff642 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1910,10 +1910,10 @@ input[type=number] { font-weight: bold; } .restriction-help span.qualifier.allow { - color: #8b5; + color: #7a4; } .restriction-help span.qualifier.restrict { - color: #d76; + color: #d75; } .restriction-help span.qualifier.only { color: #78f; diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 170552a70..2c337f7ed 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -210,7 +210,6 @@ export function osmIntersection(graph, startVertexId, maxDistance) { vertexIds.forEach(function(id) { var vertex = vgraph.entity(id); var parents = vgraph.parentWays(vertex); - vertices.push(vertex); ways = ways.concat(parents); }); @@ -243,8 +242,21 @@ export function osmIntersection(graph, startVertexId, maxDistance) { __from: __from, __via: __via, __to: __to, - __oneWay: __oneWay + __oneWay: __oneWay, + __fromOnly: fromOnly(way) }); + + function fromOnly(way) { + var parents = vgraph.parentRelations(way); + for (var i = 0; i < parents.length; i++) { + var r = parents[i]; + var f = r.memberByRole('from'); + if (r.isRestriction() && /^only_/.test(r.tags.restriction) && f.id === way.id) { + return r.id; + } + } + return null; + } } ways = []; @@ -583,7 +595,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { } return { - key: path.join(','), + key: path.join('_'), path: path, from: { node: fromNodeId, way: fromWayId, vertex: fromVertexId }, via: { node: viaNodeId, ways: viaWayIds }, diff --git a/modules/svg/turns.js b/modules/svg/turns.js index 1ed10706b..007733afc 100644 --- a/modules/svg/turns.js +++ b/modules/svg/turns.js @@ -30,10 +30,10 @@ export function svgTurns(projection) { var enter = groups.enter() .append('g') - .attr('class', 'turn'); + .attr('class', function(d) { return 'turn ' + d.key; }); var nEnter = enter - .filter(function (turn) { return !turn.u; }); + .filter(function(d) { return !d.u; }); nEnter.append('rect') .attr('transform', 'translate(-22, -12)') @@ -47,7 +47,7 @@ export function svgTurns(projection) { var uEnter = enter - .filter(function (turn) { return turn.u; }); + .filter(function(d) { return d.u; }); uEnter.append('circle') .attr('r', '16'); @@ -62,23 +62,23 @@ export function svgTurns(projection) { .merge(enter); groups - .attr('opacity', function (turn) { - return turn.direct === false ? '0.7' : null; + .attr('opacity', function(d) { + return d.direct === false ? '0.7' : null; }) - .attr('transform', function (turn) { + .attr('transform', function(d) { var pxRadius = 50; - var toWay = graph.entity(turn.to.way); + var toWay = graph.entity(d.to.way); var toPoints = graph.childNodes(toWay) .map(function (n) { return n.loc; }) .map(projection); var toLength = geoPathLength(toPoints); var mid = toLength / 2; // midpoint of destination way - var toNode = graph.entity(turn.to.node); - var toVertex = graph.entity(turn.to.vertex); + var toNode = graph.entity(d.to.node); + var toVertex = graph.entity(d.to.vertex); var a = geoAngle(toVertex, toNode, projection); var o = projection(toVertex.loc); - var r = turn.u ? 0 // u-turn: no radius + var r = d.u ? 0 // u-turn: no radius : !toWay.__via ? pxRadius // leaf way: put marker at pxRadius : Math.min(mid, pxRadius); // via way: prefer pxRadius, fallback to mid for very short ways diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index f29caccbb..1044b72a7 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -283,7 +283,8 @@ export function uiFieldRestrictions(field, context) { selection .call(drawLayers); - var surface = selection.selectAll('.surface'); + var surface = selection.selectAll('.surface') + .classed('tr', true); if (firstTime) { _initialized = true; @@ -314,20 +315,26 @@ export function uiFieldRestrictions(field, context) { surface .on('click.restrictions', click) - .on('mouseover.restrictions', mouseover) - .on('mouseout.restrictions', mouseout); + .on('mouseover.restrictions', mouseover); surface .selectAll('.selected') .classed('selected', false); + surface + .selectAll('.related') + .classed('related', false); + if (_fromWayID) { + var way = vgraph.entity(_fromWayID); surface .selectAll('.' + _fromWayID) - .classed('selected', true); + .classed('selected', true) + .classed('related', true) + .classed('only', !!way.__fromOnly); } - mouseout(); + updateHelp(null); function click() { @@ -351,6 +358,7 @@ export function uiFieldRestrictions(field, context) { if (datum.restrictionID && !datum.direct) { return; + } else if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state var datumOnly = _cloneDeep(datum); datumOnly.only = true; @@ -371,8 +379,15 @@ export function uiFieldRestrictions(field, context) { t('operations.restriction.annotation.create') ]); } + context.perform.apply(context, actions); + // At this point the datum will be changed, but will have same key.. + // Refresh it and update the help.. + var s = surface.selectAll('.' + datum.key); + datum = s.empty() ? null : s.datum(); + updateHelp(datum); + } else { _fromWayID = null; redraw(); @@ -386,24 +401,6 @@ export function uiFieldRestrictions(field, context) { } - function mouseout() { - var help = _container.selectAll('.restriction-help').html(''); - var div = help.append('div'); - var d; - - if (_fromWayID) { - d = display(vgraph.entity(_fromWayID), vgraph); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(d.name || d.type); - - } else { - div.append('span').text('Click to select the'); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text('way'); - } - } - - function redraw() { if (context.hasEntity(_vertexID)) { _container.call(renderViewer); @@ -413,7 +410,7 @@ export function uiFieldRestrictions(field, context) { function updateHelp(datum) { var help = _container.selectAll('.restriction-help').html(''); - var div, d; + var div, d, turnType, r; var entity = datum && datum.properties && datum.properties.entity; if (entity) { @@ -421,24 +418,44 @@ export function uiFieldRestrictions(field, context) { } surface.selectAll('.related') - .classed('related', false); + .classed('related', false) + .classed('allow', false) + .classed('restrict', false) + .classed('only', false); + if (datum instanceof osmWay) { + surface.selectAll('.' + datum.id) + .classed('related', true) + .classed('only', !!datum.__fromOnly); + + if (datum.__fromOnly) { + r = vgraph.entity(datum.__fromOnly); + + turnType = { + 'only_left_turn': 'Left Turn', + 'only_right_turn': 'Right Turn', + 'only_u_turn': 'U-Turn', + 'only_straight_on': 'Straight On' + }[r.tags.restriction]; + + div = help.append('div'); + div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); + } + d = display(vgraph.entity(datum.id), vgraph); div = help.append('div'); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); - } else if (datum instanceof osmTurn) { - surface.selectAll(utilEntitySelector(datum.key.split(','))) - .classed('related', true); + } else if (datum instanceof osmTurn) { var fromWayID = datum.from.way; var viaWayIDs = datum.via.ways; var toWayID = datum.to.way; var restrictionType = osmInferRestriction(vgraph, datum, projection); - var turnType = { + turnType = { 'no_left_turn': 'Left Turn', 'no_right_turn': 'Right Turn', 'no_u_turn': 'U-Turn', @@ -450,13 +467,19 @@ export function uiFieldRestrictions(field, context) { if (datum.no) { restrictType = 'NO'; klass = 'restrict'; } if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } + var alongIDs = datum.path.slice(); + surface.selectAll(utilEntitySelector(alongIDs)) + .classed('related', true) + .classed('allow', (klass === 'allow')) + .classed('restrict', (klass === 'restrict')) + .classed('only', (klass === 'only')); + + var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); if (datum.direct === false) { s += ' (indirect)'; } div = help.append('div'); - div.append('span') - .attr('class', 'qualifier ' + klass) - .text(s); + div.append('span').attr('class', 'qualifier ' + klass).text(s); div = help.append('div'); d = display(vgraph.entity(fromWayID), vgraph); @@ -482,6 +505,40 @@ export function uiFieldRestrictions(field, context) { prev = curr; } } + + } else { // datum is empty surface + if (_fromWayID) { + var way = vgraph.entity(_fromWayID); + surface + .selectAll('.' + _fromWayID) + .classed('selected', true) + .classed('related', true) + .classed('only', !!way.__fromOnly); + + if (way.__fromOnly) { + r = vgraph.entity(way.__fromOnly); + + turnType = { + 'only_left_turn': 'Left Turn', + 'only_right_turn': 'Right Turn', + 'only_u_turn': 'U-Turn', + 'only_straight_on': 'Straight On' + }[r.tags.restriction]; + + div = help.append('div'); + div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); + } + + d = display(vgraph.entity(_fromWayID), vgraph); + div = help.append('div'); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(d.name || d.type); + } else { + div = help.append('div'); + div.append('span').text('Click to select the'); + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text('way'); + } } } @@ -516,8 +573,7 @@ export function uiFieldRestrictions(field, context) { .call(hover.off) .call(breathe.off) .on('click.restrictions', null) - .on('mouseover.restrictions', null) - .on('mouseout.restrictions', null); + .on('mouseover.restrictions', null); d3_select(window) .on('resize.restrictions', null); From eb3c1f07ec72428eed8b0d01ebf61c99a1355ead Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 09:10:17 -0500 Subject: [PATCH 067/157] Always restyle a selected from way (don't reset it to grey) --- modules/ui/fields/restrictions.js | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 1044b72a7..bfe00e777 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -410,7 +410,7 @@ export function uiFieldRestrictions(field, context) { function updateHelp(datum) { var help = _container.selectAll('.restriction-help').html(''); - var div, d, turnType, r; + var div, d, turnType, way, r; var entity = datum && datum.properties && datum.properties.entity; if (entity) { @@ -423,6 +423,16 @@ export function uiFieldRestrictions(field, context) { .classed('restrict', false) .classed('only', false); + if (_fromWayID) { + way = vgraph.entity(_fromWayID); + surface + .selectAll('.' + _fromWayID) + .classed('selected', true) + .classed('related', true) + .classed('only', !!way.__fromOnly); + } + + if (datum instanceof osmWay) { surface.selectAll('.' + datum.id) @@ -508,13 +518,6 @@ export function uiFieldRestrictions(field, context) { } else { // datum is empty surface if (_fromWayID) { - var way = vgraph.entity(_fromWayID); - surface - .selectAll('.' + _fromWayID) - .classed('selected', true) - .classed('related', true) - .classed('only', !!way.__fromOnly); - if (way.__fromOnly) { r = vgraph.entity(way.__fromOnly); @@ -533,6 +536,7 @@ export function uiFieldRestrictions(field, context) { div = help.append('div'); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); + } else { div = help.append('div'); div.append('span').text('Click to select the'); From 4ce0b62d051547d3772ef37952af47b9bbac2d5c Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 10:38:50 -0500 Subject: [PATCH 068/157] Remove unneeded hover behavior, don't hover a way that can't be a FROM --- modules/ui/fields/restrictions.js | 45 ++++++++++--------------------- 1 file changed, 14 insertions(+), 31 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index bfe00e777..a3a9e7bd7 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -9,7 +9,7 @@ import { import { t } from '../../util/locale'; import { actionRestrictTurn, actionUnrestrictTurn } from '../../actions'; -import { behaviorBreathe, behaviorHover } from '../../behavior'; +import { behaviorBreathe } from '../../behavior'; import { geoExtent, @@ -52,7 +52,6 @@ import { export function uiFieldRestrictions(field, context) { var dispatch = d3_dispatch('change'); var breathe = behaviorBreathe(context); - var hover = behaviorHover(context); var storedViaWay = context.storage('turn-restriction-via-way'); var storedDistance = context.storage('turn-restriction-distance'); var isImperial = (utilDetect().locale.toLowerCase() === 'en-us'); @@ -290,8 +289,7 @@ export function uiFieldRestrictions(field, context) { _initialized = true; surface - .call(breathe) - .call(hover); + .call(breathe); d3_select(window) .on('resize.restrictions', function() { @@ -409,6 +407,13 @@ export function uiFieldRestrictions(field, context) { function updateHelp(datum) { + var turns = { + 'no_left_turn': 'Left Turn', + 'no_right_turn': 'Right Turn', + 'no_u_turn': 'U-Turn', + 'no_straight_on': 'Straight On' + }; + var help = _container.selectAll('.restriction-help').html(''); var div, d, turnType, way, r; @@ -433,22 +438,14 @@ export function uiFieldRestrictions(field, context) { } - - if (datum instanceof osmWay) { + if (datum instanceof osmWay && datum.__from) { surface.selectAll('.' + datum.id) .classed('related', true) .classed('only', !!datum.__fromOnly); if (datum.__fromOnly) { r = vgraph.entity(datum.__fromOnly); - - turnType = { - 'only_left_turn': 'Left Turn', - 'only_right_turn': 'Right Turn', - 'only_u_turn': 'U-Turn', - 'only_straight_on': 'Straight On' - }[r.tags.restriction]; - + turnType = turns[r.tags.restriction.replace(/^only/, 'no')]; div = help.append('div'); div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); } @@ -464,13 +461,7 @@ export function uiFieldRestrictions(field, context) { var viaWayIDs = datum.via.ways; var toWayID = datum.to.way; var restrictionType = osmInferRestriction(vgraph, datum, projection); - - turnType = { - 'no_left_turn': 'Left Turn', - 'no_right_turn': 'Right Turn', - 'no_u_turn': 'U-Turn', - 'no_straight_on': 'Straight On' - }[restrictionType.replace(/^only/, 'no')]; + turnType = turns[restrictionType.replace(/^only/, 'no')]; var restrictType = ''; var klass = 'allow'; @@ -520,14 +511,7 @@ export function uiFieldRestrictions(field, context) { if (_fromWayID) { if (way.__fromOnly) { r = vgraph.entity(way.__fromOnly); - - turnType = { - 'only_left_turn': 'Left Turn', - 'only_right_turn': 'Right Turn', - 'only_u_turn': 'U-Turn', - 'only_straight_on': 'Straight On' - }[r.tags.restriction]; - + turnType = turns[r.tags.restriction.replace(/^only/, 'no')]; div = help.append('div'); div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); } @@ -539,7 +523,7 @@ export function uiFieldRestrictions(field, context) { } else { div = help.append('div'); - div.append('span').text('Click to select the'); + div.append('span').text('Click to select a'); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text('way'); } @@ -574,7 +558,6 @@ export function uiFieldRestrictions(field, context) { if (!_initialized) return; selection.selectAll('.surface') - .call(hover.off) .call(breathe.off) .on('click.restrictions', null) .on('mouseover.restrictions', null); From bbeb34626b221bcccad9b9e4f7265161f7f01992 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 10:47:03 -0500 Subject: [PATCH 069/157] Show really thick path shadows in the turn restriction editor --- css/20_map.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/css/20_map.css b/css/20_map.css index e4531ed65..ac7e1efac 100644 --- a/css/20_map.css +++ b/css/20_map.css @@ -261,6 +261,11 @@ g.turn circle { } /* Turn restriction paths and vertices */ +.surface.tr path.shadow.selected, +.surface.tr path.shadow.related { + stroke-width: 30px; +} + .surface.tr path.shadow.selected, .surface.tr path.shadow.related, .surface.tr g.vertex.selected .shadow, From bd46d0cc4a8a106fa462dcf7ee36660aae51ebf6 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 13:57:51 -0500 Subject: [PATCH 070/157] Highlight restriction when hovering on from --- modules/ui/fields/restrictions.js | 45 ++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index a3a9e7bd7..0dfbead6c 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -415,7 +415,7 @@ export function uiFieldRestrictions(field, context) { }; var help = _container.selectAll('.restriction-help').html(''); - var div, d, turnType, way, r; + var div, d, turnType, way, r, i; var entity = datum && datum.properties && datum.properties.entity; if (entity) { @@ -439,22 +439,53 @@ export function uiFieldRestrictions(field, context) { if (datum instanceof osmWay && datum.__from) { - surface.selectAll('.' + datum.id) + way = datum; + surface.selectAll('.' + way.id) .classed('related', true) - .classed('only', !!datum.__fromOnly); + .classed('only', !!way.__fromOnly); - if (datum.__fromOnly) { - r = vgraph.entity(datum.__fromOnly); + if (way.__fromOnly) { + r = vgraph.entity(way.__fromOnly); turnType = turns[r.tags.restriction.replace(/^only/, 'no')]; div = help.append('div'); div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); } - d = display(vgraph.entity(datum.id), vgraph); + d = display(vgraph.entity(way.id), vgraph); div = help.append('div'); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); + // highlight all TOs and ONLY VIAs? + var parents = vgraph.parentRelations(way); + for (i = 0; i < parents.length; i++) { + r = parents[i]; + var f = r.memberByRole('from'); + + if (r.isRestriction() && f.id === way.id) { + var kl = 'allow'; + if (/^no_/.test(r.tags.restriction)) { kl = 'restrict'; } + if (/^only_/.test(r.tags.restriction)) { kl = 'only'; } + + var t = r.memberByRole('to'); + surface.selectAll('.' + t.id) + .classed('related', true) + .classed('allow', (kl === 'allow')) + .classed('restrict', (kl === 'restrict')) + .classed('only', (kl === 'only')); + + var v = r.membersByRole('via'); + if (kl === 'only' && v.length) { + var vIDs = v.map(function (m) { return m.id; }); + surface.selectAll(utilEntitySelector(vIDs)) + .classed('related', true) + .classed('allow', (kl === 'allow')) + .classed('restrict', (kl === 'restrict')) + .classed('only', (kl === 'only')); + } + } + } + } else if (datum instanceof osmTurn) { var fromWayID = datum.from.way; @@ -496,7 +527,7 @@ export function uiFieldRestrictions(field, context) { div.append('span').attr('class', 'qualifier').text('VIA'); var curr, prev; - for (var i = 0; i < viaWayIDs.length; i++) { + for (i = 0; i < viaWayIDs.length; i++) { d = display(vgraph.entity(viaWayIDs[i]), vgraph); curr = d.name || d.type; if (curr === prev) continue; // collapse identical names From 7559ff68df738cf8f8aebcc967a9c9d111868538 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 15:45:44 -0500 Subject: [PATCH 071/157] Highlight all the paths when hoving on the from --- css/20_map.css | 3 +- modules/ui/fields/restrictions.js | 52 ++++++++++++++----------------- 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/css/20_map.css b/css/20_map.css index ac7e1efac..00e615c22 100644 --- a/css/20_map.css +++ b/css/20_map.css @@ -261,9 +261,10 @@ g.turn circle { } /* Turn restriction paths and vertices */ +.surface.tr .way.target, .surface.tr path.shadow.selected, .surface.tr path.shadow.related { - stroke-width: 30px; + stroke-width: 25px; } .surface.tr path.shadow.selected, diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 0dfbead6c..2646a3f5c 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -407,7 +407,7 @@ export function uiFieldRestrictions(field, context) { function updateHelp(datum) { - var turns = { + var turnTypes = { 'no_left_turn': 'Left Turn', 'no_right_turn': 'Right Turn', 'no_u_turn': 'U-Turn', @@ -440,13 +440,14 @@ export function uiFieldRestrictions(field, context) { if (datum instanceof osmWay && datum.__from) { way = datum; + surface.selectAll('.' + way.id) .classed('related', true) .classed('only', !!way.__fromOnly); if (way.__fromOnly) { r = vgraph.entity(way.__fromOnly); - turnType = turns[r.tags.restriction.replace(/^only/, 'no')]; + turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; div = help.append('div'); div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); } @@ -456,34 +457,29 @@ export function uiFieldRestrictions(field, context) { div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); - // highlight all TOs and ONLY VIAs? - var parents = vgraph.parentRelations(way); - for (i = 0; i < parents.length; i++) { - r = parents[i]; - var f = r.memberByRole('from'); + // highlight all paths on hover? + var turns = _intersection.turns(way.id, _maxViaWay); - if (r.isRestriction() && f.id === way.id) { - var kl = 'allow'; - if (/^no_/.test(r.tags.restriction)) { kl = 'restrict'; } - if (/^only_/.test(r.tags.restriction)) { kl = 'only'; } + for (i = 0; i < turns.length; i++) { + var turn = turns[i]; + var ids = [turn.to.way]; + var kl = 'allow'; + if (turn.no) { kl = 'restrict'; } + if (turn.only) { kl = 'only'; } - var t = r.memberByRole('to'); - surface.selectAll('.' + t.id) - .classed('related', true) - .classed('allow', (kl === 'allow')) - .classed('restrict', (kl === 'restrict')) - .classed('only', (kl === 'only')); + if (turn.only || turns.length === 1) { + var v = turn.via.node ? [turn.via.node] + : turn.via.ways ? turn.via.ways + : []; - var v = r.membersByRole('via'); - if (kl === 'only' && v.length) { - var vIDs = v.map(function (m) { return m.id; }); - surface.selectAll(utilEntitySelector(vIDs)) - .classed('related', true) - .classed('allow', (kl === 'allow')) - .classed('restrict', (kl === 'restrict')) - .classed('only', (kl === 'only')); - } + ids = ids.concat(v); } + + surface.selectAll(utilEntitySelector(ids)) + .classed('related', true) + .classed('allow', (kl === 'allow')) + .classed('restrict', (kl === 'restrict')) + .classed('only', (kl === 'only')); } @@ -492,7 +488,7 @@ export function uiFieldRestrictions(field, context) { var viaWayIDs = datum.via.ways; var toWayID = datum.to.way; var restrictionType = osmInferRestriction(vgraph, datum, projection); - turnType = turns[restrictionType.replace(/^only/, 'no')]; + turnType = turnTypes[restrictionType.replace(/^only/, 'no')]; var restrictType = ''; var klass = 'allow'; @@ -542,7 +538,7 @@ export function uiFieldRestrictions(field, context) { if (_fromWayID) { if (way.__fromOnly) { r = vgraph.entity(way.__fromOnly); - turnType = turns[r.tags.restriction.replace(/^only/, 'no')]; + turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; div = help.append('div'); div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); } From 104e8cea5cdcf295b8a948500eab8066440ebcd3 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 16:16:10 -0500 Subject: [PATCH 072/157] Adjust color for better visibility --- css/20_map.css | 9 +++------ css/80_app.css | 4 ++-- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/css/20_map.css b/css/20_map.css index 00e615c22..44c4f50ae 100644 --- a/css/20_map.css +++ b/css/20_map.css @@ -276,18 +276,15 @@ g.turn circle { } .surface.tr path.shadow.related.allow, .surface.tr g.vertex.related.allow .shadow { - stroke: #7a4; - /*stroke: #8cd05f;*/ + stroke: #5b3; } .surface.tr path.shadow.related.restrict, .surface.tr g.vertex.related.restrict .shadow { - stroke: #d75; - /*stroke: #e06d5f;*/ + stroke: #d53; } .surface.tr path.shadow.related.only, .surface.tr g.vertex.related.only .shadow { - stroke: #78f; - /*stroke: #7092ff;*/ + stroke: #68f; } diff --git a/css/80_app.css b/css/80_app.css index 0a43ff642..34f9c3273 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1910,10 +1910,10 @@ input[type=number] { font-weight: bold; } .restriction-help span.qualifier.allow { - color: #7a4; + color: #8b5; } .restriction-help span.qualifier.restrict { - color: #d75; + color: #d53; } .restriction-help span.qualifier.only { color: #78f; From 419d1e124b94f13e97a841d790bd20ff64ba59aa Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 20 Feb 2018 17:01:11 -0500 Subject: [PATCH 073/157] Remove fromOnly highlighting (was confusing), try to simplify --- modules/ui/fields/restrictions.js | 79 +++++++++++++++++-------------- 1 file changed, 43 insertions(+), 36 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 2646a3f5c..e35d4c36f 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -328,8 +328,8 @@ export function uiFieldRestrictions(field, context) { surface .selectAll('.' + _fromWayID) .classed('selected', true) - .classed('related', true) - .classed('only', !!way.__fromOnly); + .classed('related', true); + // .classed('only', !!way.__fromOnly); } updateHelp(null); @@ -433,8 +433,8 @@ export function uiFieldRestrictions(field, context) { surface .selectAll('.' + _fromWayID) .classed('selected', true) - .classed('related', true) - .classed('only', !!way.__fromOnly); + .classed('related', true); + // .classed('only', !!way.__fromOnly); } @@ -442,45 +442,52 @@ export function uiFieldRestrictions(field, context) { way = datum; surface.selectAll('.' + way.id) - .classed('related', true) - .classed('only', !!way.__fromOnly); + .classed('related', true); + // .classed('only', !!way.__fromOnly); - if (way.__fromOnly) { - r = vgraph.entity(way.__fromOnly); - turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; + // if (way.__fromOnly) { + // r = vgraph.entity(way.__fromOnly); + // turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; + // div = help.append('div'); + // div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); + // } + + if (!_fromWayID || _fromWayID !== way.id) { div = help.append('div'); - div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); + div.append('span').text('Click to select'); } - d = display(vgraph.entity(way.id), vgraph); div = help.append('div'); + d = display(vgraph.entity(way.id), vgraph); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); // highlight all paths on hover? - var turns = _intersection.turns(way.id, _maxViaWay); + if (!_fromWayID) { + var turns = _intersection.turns(way.id, _maxViaWay); - for (i = 0; i < turns.length; i++) { - var turn = turns[i]; - var ids = [turn.to.way]; - var kl = 'allow'; - if (turn.no) { kl = 'restrict'; } - if (turn.only) { kl = 'only'; } + for (i = 0; i < turns.length; i++) { + var turn = turns[i]; + var ids = [turn.to.way]; + var kl = 'allow'; + if (turn.no) { kl = 'restrict'; } + if (turn.only) { kl = 'only'; } - if (turn.only || turns.length === 1) { - var v = turn.via.node ? [turn.via.node] - : turn.via.ways ? turn.via.ways - : []; + if (turn.only || turns.length === 1) { + var v = turn.via.node ? [turn.via.node] + : turn.via.ways ? turn.via.ways + : []; - ids = ids.concat(v); - } + ids = ids.concat(v); + } - surface.selectAll(utilEntitySelector(ids)) - .classed('related', true) - .classed('allow', (kl === 'allow')) - .classed('restrict', (kl === 'restrict')) - .classed('only', (kl === 'only')); + surface.selectAll(utilEntitySelector(ids)) + .classed('related', true) + .classed('allow', (kl === 'allow')) + .classed('restrict', (kl === 'restrict')) + .classed('only', (kl === 'only')); } + } } else if (datum instanceof osmTurn) { @@ -536,15 +543,15 @@ export function uiFieldRestrictions(field, context) { } else { // datum is empty surface if (_fromWayID) { - if (way.__fromOnly) { - r = vgraph.entity(way.__fromOnly); - turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; - div = help.append('div'); - div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); - } + // if (way.__fromOnly) { + // r = vgraph.entity(way.__fromOnly); + // turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; + // div = help.append('div'); + // div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); + // } - d = display(vgraph.entity(_fromWayID), vgraph); div = help.append('div'); + d = display(vgraph.entity(_fromWayID), vgraph); div.append('span').attr('class', 'qualifier').text('FROM'); div.append('span').text(d.name || d.type); From 156d0fd681806b9a97c7c66ce606d5608aac284d Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 21 Feb 2018 00:33:41 -0500 Subject: [PATCH 074/157] Drop confusing fromOnly code, consolidate path highlighting code --- modules/osm/intersection.js | 15 +--- modules/ui/fields/restrictions.js | 128 +++++++++++++----------------- 2 files changed, 56 insertions(+), 87 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 2c337f7ed..9e4784985 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -242,21 +242,8 @@ export function osmIntersection(graph, startVertexId, maxDistance) { __from: __from, __via: __via, __to: __to, - __oneWay: __oneWay, - __fromOnly: fromOnly(way) + __oneWay: __oneWay }); - - function fromOnly(way) { - var parents = vgraph.parentRelations(way); - for (var i = 0; i < parents.length; i++) { - var r = parents[i]; - var f = r.memberByRole('from'); - if (r.isRestriction() && /^only_/.test(r.tags.restriction) && f.id === way.id) { - return r.id; - } - } - return null; - } } ways = []; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index e35d4c36f..2f6b8564b 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -329,10 +329,9 @@ export function uiFieldRestrictions(field, context) { .selectAll('.' + _fromWayID) .classed('selected', true) .classed('related', true); - // .classed('only', !!way.__fromOnly); } - updateHelp(null); + updateHints(null); function click() { @@ -384,7 +383,7 @@ export function uiFieldRestrictions(field, context) { // Refresh it and update the help.. var s = surface.selectAll('.' + datum.key); datum = s.empty() ? null : s.datum(); - updateHelp(datum); + updateHints(datum); } else { _fromWayID = null; @@ -395,7 +394,7 @@ export function uiFieldRestrictions(field, context) { function mouseover() { var datum = d3_event.target.__data__; - updateHelp(datum); + updateHints(datum); } @@ -406,7 +405,42 @@ export function uiFieldRestrictions(field, context) { } - function updateHelp(datum) { + function highlightPathsFrom(wayID) { + surface.selectAll('.related') + .classed('related', false) + .classed('allow', false) + .classed('restrict', false) + .classed('only', false); + + surface.selectAll('.' + wayID) + .classed('related', true); + + if (wayID) { + var turns = _intersection.turns(wayID, _maxViaWay); + for (var i = 0; i < turns.length; i++) { + var turn = turns[i]; + var ids = [turn.to.way]; + var klass = (turn.no ? 'restrict' : (turn.only ? 'only' : 'allow')); + + if (turn.only || turns.length === 1) { + if (turn.via.ways) { + ids = ids.concat(turn.via.ways); + } + } else if (turn.to.way === wayID) { + continue; + } + + surface.selectAll(utilEntitySelector(ids)) + .classed('related', true) + .classed('allow', (klass === 'allow')) + .classed('restrict', (klass === 'restrict')) + .classed('only', (klass === 'only')); + } + } + } + + + function updateHints(datum) { var turnTypes = { 'no_left_turn': 'Left Turn', 'no_right_turn': 'Right Turn', @@ -415,79 +449,35 @@ export function uiFieldRestrictions(field, context) { }; var help = _container.selectAll('.restriction-help').html(''); - var div, d, turnType, way, r, i; + var div, turnType; var entity = datum && datum.properties && datum.properties.entity; if (entity) { datum = entity; } - surface.selectAll('.related') - .classed('related', false) - .classed('allow', false) - .classed('restrict', false) - .classed('only', false); - if (_fromWayID) { way = vgraph.entity(_fromWayID); surface .selectAll('.' + _fromWayID) .classed('selected', true) .classed('related', true); - // .classed('only', !!way.__fromOnly); } if (datum instanceof osmWay && datum.__from) { way = datum; + highlightPathsFrom(_fromWayID ? null : way.id); surface.selectAll('.' + way.id) .classed('related', true); - // .classed('only', !!way.__fromOnly); - - // if (way.__fromOnly) { - // r = vgraph.entity(way.__fromOnly); - // turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; - // div = help.append('div'); - // div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); - // } - - if (!_fromWayID || _fromWayID !== way.id) { - div = help.append('div'); - div.append('span').text('Click to select'); - } div = help.append('div'); - d = display(vgraph.entity(way.id), vgraph); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(d.name || d.type); - - // highlight all paths on hover? - if (!_fromWayID) { - var turns = _intersection.turns(way.id, _maxViaWay); - - for (i = 0; i < turns.length; i++) { - var turn = turns[i]; - var ids = [turn.to.way]; - var kl = 'allow'; - if (turn.no) { kl = 'restrict'; } - if (turn.only) { kl = 'only'; } - - if (turn.only || turns.length === 1) { - var v = turn.via.node ? [turn.via.node] - : turn.via.ways ? turn.via.ways - : []; - - ids = ids.concat(v); - } - - surface.selectAll(utilEntitySelector(ids)) - .classed('related', true) - .classed('allow', (kl === 'allow')) - .classed('restrict', (kl === 'restrict')) - .classed('only', (kl === 'only')); + if (!_fromWayID || _fromWayID !== way.id) { + div.append('span').text('Click to select'); } - } + div.append('span').attr('class', 'qualifier').text('FROM'); + div.append('span').text(displayName(vgraph.entity(way.id), vgraph)); } else if (datum instanceof osmTurn) { @@ -502,6 +492,8 @@ export function uiFieldRestrictions(field, context) { if (datum.no) { restrictType = 'NO'; klass = 'restrict'; } if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } + + highlightPathsFrom(null); var alongIDs = datum.path.slice(); surface.selectAll(utilEntitySelector(alongIDs)) .classed('related', true) @@ -517,22 +509,19 @@ export function uiFieldRestrictions(field, context) { div.append('span').attr('class', 'qualifier ' + klass).text(s); div = help.append('div'); - d = display(vgraph.entity(fromWayID), vgraph); div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(d.name || d.type); + div.append('span').text(displayName(vgraph.entity(fromWayID), vgraph)); - d = display(vgraph.entity(toWayID), vgraph); div.append('span').attr('class', 'qualifier').text('TO'); - div.append('span').text(d.name || d.type); + div.append('span').text(displayName(vgraph.entity(toWayID), vgraph)); if (viaWayIDs && viaWayIDs.length) { div = help.append('div'); div.append('span').attr('class', 'qualifier').text('VIA'); var curr, prev; - for (i = 0; i < viaWayIDs.length; i++) { - d = display(vgraph.entity(viaWayIDs[i]), vgraph); - curr = d.name || d.type; + for (var i = 0; i < viaWayIDs.length; i++) { + curr = displayName(vgraph.entity(viaWayIDs[i]), vgraph); if (curr === prev) continue; // collapse identical names if (prev) div.append('span').text(','); @@ -542,18 +531,11 @@ export function uiFieldRestrictions(field, context) { } } else { // datum is empty surface + highlightPathsFrom(null); if (_fromWayID) { - // if (way.__fromOnly) { - // r = vgraph.entity(way.__fromOnly); - // turnType = turnTypes[r.tags.restriction.replace(/^only/, 'no')]; - // div = help.append('div'); - // div.append('span').attr('class', 'qualifier only').text('ONLY ' + turnType); - // } - div = help.append('div'); - d = display(vgraph.entity(_fromWayID), vgraph); div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(d.name || d.type); + div.append('span').text(displayName(vgraph.entity(_fromWayID), vgraph)); } else { div = help.append('div'); @@ -567,11 +549,11 @@ export function uiFieldRestrictions(field, context) { } - function display(entity, graph) { + function displayName(entity, graph) { var name = utilDisplayName(entity) || ''; var matched = context.presets().match(entity, graph); var type = (matched && matched.name()) || utilDisplayType(entity.id); - return { name: name, type: type }; + return name || type; } From 8a7a4cb33d6638fbf0431cb99b153864f5249a1a Mon Sep 17 00:00:00 2001 From: Steeven Bosse Date: Thu, 22 Feb 2018 21:20:55 -0500 Subject: [PATCH 075/157] Issue #4819 : Increase max height of combobox, so they can show more item --- css/80_app.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 6fc8cc30b..aa53474eb 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1886,7 +1886,7 @@ div.combobox { box-shadow: 0 4px 10px 1px rgba(0,0,0,.2); margin-top: -1px; background: white; - max-height: 120px; + max-height: 245px; overflow-y: auto; overflow-x: hidden; border: 1px solid #ccc; From aaed678468b78372d066dc1d30419bc46999c612 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 22 Feb 2018 22:26:45 -0500 Subject: [PATCH 076/157] Localize all the strings --- css/80_app.css | 8 +- data/core.yaml | 37 +++++- dist/locales/en.json | 42 ++++++- modules/ui/fields/restrictions.js | 190 ++++++++++++++++++------------ 4 files changed, 184 insertions(+), 93 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 34f9c3273..ece0e1834 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1905,17 +1905,17 @@ input[type=number] { margin: 2px; } -.restriction-help span.qualifier { +.restriction-help .qualifier { color: #666; font-weight: bold; } -.restriction-help span.qualifier.allow { +.restriction-help .qualifier.allow { color: #8b5; } -.restriction-help span.qualifier.restrict { +.restriction-help .qualifier.restrict { color: #d53; } -.restriction-help span.qualifier.only { +.restriction-help .qualifier.only { color: #78f; } diff --git a/data/core.yaml b/data/core.yaml index cc9511458..94f603eb8 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -219,14 +219,41 @@ en: multiple_ways: There are too many lines here to split. connected_to_hidden: This can't be split because it is connected to a hidden feature. restriction: - help: - select: Click to select a road segment. - toggle: Click to toggle turn restrictions. - toggle_on: 'Click to add a "{restriction}" restriction.' - toggle_off: 'Click to remove the "{restriction}" restriction.' annotation: create: Added a turn restriction delete: Deleted a turn restriction + restriction: + controls: + distance: Distance + distance_up_to: "Up to {distance}" + via: Via + via_node_only: "Node only" + via_up_to_one: "Up to 1 way" + via_up_to_multiple: "Up to {num} ways" + help: + no: NO + only: ONLY + allowed: Allowed + indirect: "(indirect)" + turn: + left_turn: Left Turn + right_turn: Right Turn + u_turn: U-Turn + straight_on: Straight On + no_turn_string: "{no} {turn} {indirect}" + only_turn_string: "{only} {turn} {indirect}" + allowed_turn_string: "{turn} {allowed} {indirect}" + from: FROM + via: VIA + to: TO + from_name: "{from} {fromName}" + from_name_to_name: "{from} {fromName} {to} {toName}" + via_names: "{via} {viaNames}" + select_from: "Click to select a {from} segment" + select_from_name: "Click to select {from} {fromName}" + toggle: Click to toggle turn restrictions. + toggle_on: 'Click to add a "{restriction}" restriction.' + toggle_off: 'Click to remove the "{restriction}" restriction.' undo: tooltip: "Undo: {action}" nothing: Nothing to undo. diff --git a/dist/locales/en.json b/dist/locales/en.json index 7b2314259..7ae8fdecb 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -285,18 +285,48 @@ "connected_to_hidden": "This can't be split because it is connected to a hidden feature." }, "restriction": { - "help": { - "select": "Click to select a road segment.", - "toggle": "Click to toggle turn restrictions.", - "toggle_on": "Click to add a \"{restriction}\" restriction.", - "toggle_off": "Click to remove the \"{restriction}\" restriction." - }, "annotation": { "create": "Added a turn restriction", "delete": "Deleted a turn restriction" } } }, + "restriction": { + "controls": { + "distance": "Distance", + "distance_up_to": "Up to {distance}", + "via": "Via", + "via_node_only": "Node only", + "via_up_to_one": "Up to 1 way", + "via_up_to_multiple": "Up to {num} ways" + }, + "help": { + "no": "NO", + "only": "ONLY", + "allowed": "Allowed", + "indirect": "(indirect)", + "turn": { + "left_turn": "Left Turn", + "right_turn": "Right Turn", + "u_turn": "U-Turn", + "straight_on": "Straight On" + }, + "no_turn_string": "{no} {turn} {indirect}", + "only_turn_string": "{only} {turn} {indirect}", + "allowed_turn_string": "{turn} {allowed} {indirect}", + "from": "FROM", + "via": "VIA", + "to": "TO", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Click to select a {from} segment", + "select_from_name": "Click to select {from} {fromName}", + "toggle": "Click to toggle turn restrictions.", + "toggle_on": "Click to add a \"{restriction}\" restriction.", + "toggle_off": "Click to remove the \"{restriction}\" restriction." + } + }, "undo": { "tooltip": "Undo: {action}", "nothing": "Nothing to undo." diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 2f6b8564b..af8a2413c 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -54,7 +54,6 @@ export function uiFieldRestrictions(field, context) { var breathe = behaviorBreathe(context); var storedViaWay = context.storage('turn-restriction-via-way'); var storedDistance = context.storage('turn-restriction-distance'); - var isImperial = (utilDetect().locale.toLowerCase() === 'en-us'); var _maxViaWay = storedViaWay !== null ? (+storedViaWay) : 1; var _maxDistance = storedDistance ? (+storedDistance) : 30; @@ -119,7 +118,6 @@ export function uiFieldRestrictions(field, context) { .merge(container) .call(renderViewer); - var controls = wrap.selectAll('.restriction-controls') .data([0]); @@ -148,7 +146,7 @@ export function uiFieldRestrictions(field, context) { distControlEnter .append('span') .attr('class', 'restriction-control-label restriction-distance-label') - .text('Distance:'); + .text(t('restriction.controls.distance') + ':'); distControlEnter .append('input') @@ -174,18 +172,8 @@ export function uiFieldRestrictions(field, context) { _parent.call(restrictions); }); - var distDisplay; - if (isImperial) { // imprecise conversion for prettier display - var distToFeet = { - 20: 70, 25: 85, 30: 100, 35: 115, 40: 130, 45: 145, 50: 160 - }[_maxDistance]; - distDisplay = 'Up to ' + distToFeet + ' feet'; - } else { - distDisplay = 'Up to ' + _maxDistance + ' meters'; - } - selection.selectAll('.restriction-distance-text') - .text(distDisplay); + .text(displayMaxDistance(_maxDistance)); var viaControl = selection.selectAll('.restriction-via-way') @@ -201,7 +189,7 @@ export function uiFieldRestrictions(field, context) { viaControlEnter .append('span') .attr('class', 'restriction-control-label restriction-via-way-label') - .text('Via:'); + .text(t('restriction.controls.via') + ':'); viaControlEnter .append('input') @@ -226,9 +214,8 @@ export function uiFieldRestrictions(field, context) { _parent.call(restrictions); }); - var t = ['Node only', 'Up to 1 way', 'Up to 2 ways']; selection.selectAll('.restriction-via-way-text') - .text(t[_maxViaWay]); + .text(displayMaxVia(_maxViaWay)); } @@ -441,15 +428,12 @@ export function uiFieldRestrictions(field, context) { function updateHints(datum) { - var turnTypes = { - 'no_left_turn': 'Left Turn', - 'no_right_turn': 'Right Turn', - 'no_u_turn': 'U-Turn', - 'no_straight_on': 'Straight On' - }; - var help = _container.selectAll('.restriction-help').html(''); - var div, turnType; + + var placeholders = {}; + ['from', 'via', 'to'].forEach(function(k) { + placeholders[k] = '' + t('restriction.help.' + k) + ''; + }); var entity = datum && datum.properties && datum.properties.entity; if (entity) { @@ -464,7 +448,7 @@ export function uiFieldRestrictions(field, context) { .classed('related', true); } - + // Hovering a way if (datum instanceof osmWay && datum.__from) { way = datum; @@ -472,26 +456,75 @@ export function uiFieldRestrictions(field, context) { surface.selectAll('.' + way.id) .classed('related', true); - div = help.append('div'); - if (!_fromWayID || _fromWayID !== way.id) { - div.append('span').text('Click to select'); - } - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(displayName(vgraph.entity(way.id), vgraph)); + var clickSelect = (!_fromWayID || _fromWayID !== way.id); + help + .append('div') // "Click to select FROM {fromName}." / "FROM {fromName}" + .html(t('restriction.help.' + (clickSelect ? 'select_from_name' : 'from_name'), { + from: placeholders.from, + fromName: displayName(way.id, vgraph) + })); + // Hovering a turn arrow } else if (datum instanceof osmTurn) { - var fromWayID = datum.from.way; - var viaWayIDs = datum.via.ways; - var toWayID = datum.to.way; var restrictionType = osmInferRestriction(vgraph, datum, projection); - turnType = turnTypes[restrictionType.replace(/^only/, 'no')]; + var turnType = restrictionType.replace(/^(only|no)\_/, ''); + var indirect = (datum.direct === false ? t('restriction.help.indirect') : ''); + var klass, turnHtml; - var restrictType = ''; - var klass = 'allow'; - if (datum.no) { restrictType = 'NO'; klass = 'restrict'; } - if (datum.only) { restrictType = 'ONLY'; klass = 'only'; } + if (datum.no) { + klass = 'restrict'; + turnHtml = t('restriction.help.no_turn_string', { + no: t('restriction.help.no'), + turn: t('restriction.help.turn.' + turnType), + indirect: indirect + }); + } else if (datum.only) { + klass = 'only'; + turnHtml = t('restriction.help.only_turn_string', { + only: t('restriction.help.only'), + turn: t('restriction.help.turn.' + turnType), + indirect: indirect + }); + } else { + klass = 'allow'; + turnHtml = t('restriction.help.allowed_turn_string', { + allowed: t('restriction.help.allowed'), + turn: t('restriction.help.turn.' + turnType), + indirect: indirect + }); + } + help + .append('div') // Turn Description + .attr('class', 'qualifier ' + klass) + .html(turnHtml); + + help + .append('div') // "FROM {fromName} TO {toName}" + .html(t('restriction.help.from_name_to_name', { + from: placeholders.from, + fromName: displayName(datum.from.way, vgraph), + to: placeholders.to, + toName: displayName(datum.to.way, vgraph) + })); + + if (datum.via.ways && datum.via.ways.length) { + var names = []; + for (var i = 0; i < datum.via.ways.length; i++) { + var prev = names[names.length - 1]; + var curr = displayName(datum.via.ways[i], vgraph); + if (!prev || curr !== prev) // collapse identical names + names.push(curr); + } + + help + .append('div') // "VIA {viaNames}" + .html(t('restriction.help.via_names', { + via: placeholders.via, + viaNames: names.join(', ') + })); + } highlightPathsFrom(null); var alongIDs = datum.path.slice(); @@ -502,54 +535,55 @@ export function uiFieldRestrictions(field, context) { .classed('only', (klass === 'only')); - var s = (klass === 'allow' ? turnType + ' Allowed' : restrictType + ' ' + turnType); - if (datum.direct === false) { s += ' (indirect)'; } - - div = help.append('div'); - div.append('span').attr('class', 'qualifier ' + klass).text(s); - - div = help.append('div'); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(displayName(vgraph.entity(fromWayID), vgraph)); - - div.append('span').attr('class', 'qualifier').text('TO'); - div.append('span').text(displayName(vgraph.entity(toWayID), vgraph)); - - if (viaWayIDs && viaWayIDs.length) { - div = help.append('div'); - div.append('span').attr('class', 'qualifier').text('VIA'); - - var curr, prev; - for (var i = 0; i < viaWayIDs.length; i++) { - curr = displayName(vgraph.entity(viaWayIDs[i]), vgraph); - if (curr === prev) continue; // collapse identical names - - if (prev) div.append('span').text(','); - div.append('span').text(curr); - prev = curr; - } - } - - } else { // datum is empty surface + // Hovering empty surface + } else { highlightPathsFrom(null); if (_fromWayID) { - div = help.append('div'); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text(displayName(vgraph.entity(_fromWayID), vgraph)); + help + .append('div') // "FROM {fromName}" + .html(t('restriction.help.from_name', { + from: placeholders.from, + fromName: displayName(_fromWayID, vgraph) + })); } else { - div = help.append('div'); - div.append('span').text('Click to select a'); - div.append('span').attr('class', 'qualifier').text('FROM'); - div.append('span').text('way'); + help + .append('div') // "Click to select a FROM segment." + .html(t('restriction.help.select_from', { + from: placeholders.from + })); } } - } } - function displayName(entity, graph) { + function displayMaxDistance(maxDist) { + var isImperial = (utilDetect().locale.toLowerCase() === 'en-us'); + var opts; + + if (isImperial) { + var distToFeet = { // imprecise conversion for prettier display + 20: 70, 25: 85, 30: 100, 35: 115, 40: 130, 45: 145, 50: 160 + }[maxDist]; + opts = { distance: t('units.feet', { quantity: distToFeet }) }; + } else { + opts = { distance: t('units.meters', { quantity: maxDist }) }; + } + + return t('restriction.controls.distance_up_to', opts); + } + + + function displayMaxVia(maxVia) { + return maxVia === 0 ? t('restriction.controls.via_node_only') + : maxVia === 1 ? t('restriction.controls.via_up_to_one') + : t('restriction.controls.via_up_to_multiple', { num: maxVia }); + } + + + function displayName(entityID, graph) { + var entity = graph.entity(entityID); var name = utilDisplayName(entity) || ''; var matched = context.presets().match(entity, graph); var type = (matched && matched.name()) || utilDisplayType(entity.id); From c63f79a75332ab9b2c3779131e136922398a17e3 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 22 Feb 2018 22:36:04 -0500 Subject: [PATCH 077/157] Remove isComplex, not used This was used to decide whether to show the "Max Via" control. (It's not really needed for a simple intersection) However since we added the "Max Distance" control, it just makes sense to show both sliders, since the distance can affect the complexity. --- modules/ui/fields/restrictions.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index af8a2413c..27541876e 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -99,8 +99,6 @@ export function uiFieldRestrictions(field, context) { .attr('class', 'preset-input-wrap') .merge(wrap); - var isComplex = (isOK && _intersection.vertices.length > 1); - var container = wrap.selectAll('.restriction-container') .data([0]); From 46cc6cc262cf29dfe0aa350621adbab0e0d1fcd0 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 23 Feb 2018 11:30:54 -0500 Subject: [PATCH 078/157] Update tests to use '_' id separators instead of ',' (using ',' with css selectors was problematic) --- test/spec/osm/intersection.js | 74 +++++++++++++++++------------------ 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/test/spec/osm/intersection.js b/test/spec/osm/intersection.js index e27772754..ec2651859 100644 --- a/test/spec/osm/intersection.js +++ b/test/spec/osm/intersection.js @@ -81,11 +81,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].key).to.eql('=_*_-'); expect(turns[1].u).to.be.not.ok; }); @@ -103,11 +103,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].key).to.eql('=_*_-'); expect(turns[1].u).to.be.not.ok; }); @@ -130,15 +130,15 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(3); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('-,*,='); + expect(turns[0].key).to.eql('-_*_='); expect(turns[0].u).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('-,*,-'); + expect(turns[1].key).to.eql('-_*_-'); expect(turns[1].u).to.be.true; expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[2].key).to.match(/^-,\*,w-\d+$/); // new way + expect(turns[2].key).to.match(/^-\_\*\_w-\d+$/); // new way expect(turns[2].u).to.be.not.ok; }); @@ -161,15 +161,15 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(3); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].key).to.eql('=_*_-'); expect(turns[1].u).to.be.not.ok; expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[2].key).to.match(/^=,\*,w-\d+$/); // new way + expect(turns[2].key).to.match(/^=\_\*\_w-\d+$/); // new way expect(turns[2].u).to.be.not.ok; }); @@ -187,7 +187,7 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(1); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].key).to.eql('=_*_-'); expect(turns[0].u).to.be.not.ok; }); @@ -205,7 +205,7 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(1); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].key).to.eql('=_*_-'); expect(turns[0].u).to.be.not.ok; }); @@ -247,11 +247,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].key).to.eql('=_*_-'); expect(turns[1].u).to.be.not.ok; }); @@ -269,11 +269,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].key).to.eql('=_*_-'); expect(turns[1].u).to.be.not.ok; }); @@ -291,7 +291,7 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(1); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; }); @@ -309,7 +309,7 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(1); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; }); @@ -332,11 +332,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,-'); + expect(turns[1].key).to.eql('=_*_-'); expect(turns[1].u).to.be.not.ok; expect(turns[1].restrictionID).to.eql('r'); expect(turns[1].direct).to.be.true; @@ -367,11 +367,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(3); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,='); + expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,~'); + expect(turns[1].key).to.eql('=_*_~'); expect(turns[1].restrictionID).to.eql('r'); expect(turns[1].u).to.be.not.ok; expect(turns[1].direct).to.be.not.ok; @@ -379,7 +379,7 @@ describe('iD.osmIntersection', function() { expect(turns[1].only).to.be.not.ok; expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[2].key).to.eql('=,*,-'); + expect(turns[2].key).to.eql('=_*_-'); expect(turns[2].restrictionID).to.eql('r'); expect(turns[2].u).to.be.not.ok; expect(turns[2].direct).to.be.not.ok; @@ -407,15 +407,15 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(3); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].key).to.eql('=_*_-'); expect(turns[0].u).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,='); + expect(turns[1].key).to.eql('=_*_='); expect(turns[1].u).to.be.true; expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[2].key).to.match(/^=,\*,w-\d+$/); // new way + expect(turns[2].key).to.match(/^=\_\*\_w-\d+$/); // new way expect(turns[2].u).to.be.not.ok; }); @@ -439,15 +439,15 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(3); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('-,*,-'); + expect(turns[0].key).to.eql('-_*_-'); expect(turns[0].u).to.be.true; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('-,*,='); + expect(turns[1].key).to.eql('-_*_='); expect(turns[1].u).to.be.not.ok; expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[2].key).to.match(/^-,\*,w-\d+$/); // new way + expect(turns[2].key).to.match(/^-\_\*\_w-\d+$/); // new way expect(turns[2].u).to.be.not.ok; }); @@ -471,11 +471,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].key).to.eql('=_*_-'); expect(turns[0].u).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,='); + expect(turns[1].key).to.eql('=_*_='); expect(turns[1].u).to.be.true; }); @@ -499,11 +499,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql('=,*,-'); + expect(turns[0].key).to.eql('=_*_-'); expect(turns[0].u).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql('=,*,='); + expect(turns[1].key).to.eql('=_*_='); expect(turns[1].u).to.be.true; }); @@ -529,11 +529,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql(newWay.id + ',*,-'); + expect(turns[0].key).to.eql(newWay.id + '_*_-'); expect(turns[0].u).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql(newWay.id + ',*,='); + expect(turns[1].key).to.eql(newWay.id + '_*_='); expect(turns[1].u).to.be.not.ok; }); @@ -559,11 +559,11 @@ describe('iD.osmIntersection', function() { expect(turns.length).to.eql(2); expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[0].key).to.eql(newWay.id + ',*,-'); + expect(turns[0].key).to.eql(newWay.id + '_*_-'); expect(turns[0].u).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); - expect(turns[1].key).to.eql(newWay.id + ',*,='); + expect(turns[1].key).to.eql(newWay.id + '_*_='); expect(turns[1].u).to.be.not.ok; }); From 7fa27217b6f9c5d9df1412f39e90dad0b6571db7 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 23 Feb 2018 11:59:44 -0500 Subject: [PATCH 079/157] Return an indirect u-turn restriction for an only restriction --- modules/osm/intersection.js | 2 +- test/spec/osm/intersection.js | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 9e4784985..17c42beb2 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -490,7 +490,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { // an indirect restriction - only include the partial path (starting at FROM) if (matchedRestriction && matchedRestriction.direct === false) { for (i = 0; i < turnPath.length; i++) { - if (i > 0 && turnPath[i] === matchedRestriction.from) { + if (turnPath[i] === matchedRestriction.from) { turnPath = turnPath.slice(i); break; } diff --git a/test/spec/osm/intersection.js b/test/spec/osm/intersection.js index ec2651859..9f287e328 100644 --- a/test/spec/osm/intersection.js +++ b/test/spec/osm/intersection.js @@ -340,7 +340,6 @@ describe('iD.osmIntersection', function() { expect(turns[1].u).to.be.not.ok; expect(turns[1].restrictionID).to.eql('r'); expect(turns[1].direct).to.be.true; - expect(turns[1].indirect).to.be.not.ok; expect(turns[1].only).to.be.not.ok; }); @@ -369,21 +368,21 @@ describe('iD.osmIntersection', function() { expect(turns[0]).to.be.an.instanceOf(iD.osmTurn); expect(turns[0].key).to.eql('=_*_='); expect(turns[0].u).to.be.true; + expect(turns[1].direct).to.be.false; + expect(turns[1].only).to.be.not.ok; expect(turns[1]).to.be.an.instanceOf(iD.osmTurn); expect(turns[1].key).to.eql('=_*_~'); expect(turns[1].restrictionID).to.eql('r'); expect(turns[1].u).to.be.not.ok; - expect(turns[1].direct).to.be.not.ok; - expect(turns[1].indirect).to.be.true; + expect(turns[1].direct).to.be.false; expect(turns[1].only).to.be.not.ok; expect(turns[2]).to.be.an.instanceOf(iD.osmTurn); expect(turns[2].key).to.eql('=_*_-'); expect(turns[2].restrictionID).to.eql('r'); expect(turns[2].u).to.be.not.ok; - expect(turns[2].direct).to.be.not.ok; - expect(turns[2].indirect).to.be.not.ok; + expect(turns[2].direct).to.be.true; expect(turns[2].only).to.be.true; }); From 57d2aee6c800cc3f9085659670f922aae263be45 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 23 Feb 2018 15:09:05 -0500 Subject: [PATCH 080/157] Add uiFieldHelp component, currently just for turn restrictions field --- css/80_app.css | 17 +++++- modules/ui/field.js | 61 +++++++++++++++------- modules/ui/field_help.js | 101 ++++++++++++++++++++++++++++++++++++ modules/ui/index.js | 1 + modules/ui/tag_reference.js | 73 +++++++++++++------------- 5 files changed, 195 insertions(+), 58 deletions(-) create mode 100644 modules/ui/field_help.js diff --git a/css/80_app.css b/css/80_app.css index ece0e1834..fb49f255c 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1266,6 +1266,7 @@ a.hide-toggle { border-top: 0; border-radius: 0 0 4px 4px; overflow: hidden; + position: relative; } .form-field textarea { @@ -1988,7 +1989,7 @@ div.combobox { } .combobox-caret::after { - content:""; + content: ""; height: 0; width: 0; position: absolute; left: 0; right: 0; bottom: 0; top: 0; @@ -1998,6 +1999,20 @@ div.combobox { border-right: 5px solid transparent; } +/* Field Help */ + +.field-help-body { + display: block; + position: absolute; + overflow: hidden; + top: 0; + width: 100%; + height: 100%; + z-index: 2; + padding: 10px; + background: rgba(255,255,255,0.95); +} + /* Raw Tag Editor */ .tag-list { diff --git a/modules/ui/field.js b/modules/ui/field.js index bffaf4a9d..eee682068 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -11,6 +11,7 @@ import { import { textDirection } from '../util/locale'; import { svgIcon } from '../svg'; +import { uiFieldHelp } from './field_help'; import { uiFields } from './fields'; import { uiTagReference } from './tag_reference'; import { utilRebind } from '../util'; @@ -25,11 +26,11 @@ export function uiField(context, presetField, entity, options) { info: true }, options); - var dispatch = d3_dispatch('change'), - field = _clone(presetField), - show = options.show, - state = '', - tags = {}; + var dispatch = d3_dispatch('change'); + var field = _clone(presetField); + var _show = options.show; + var _state = ''; + var _tags = {}; field.impl = uiFields[field.type](field, context) @@ -48,14 +49,14 @@ export function uiField(context, presetField, entity, options) { if (!entity) return false; var original = context.graph().base().entities[entity.id]; return _some(field.keys, function(key) { - return original ? tags[key] !== original.tags[key] : tags[key]; + return original ? _tags[key] !== original.tags[key] : _tags[key]; }); } function isPresent() { return _some(field.keys, function(key) { - return tags[key]; + return _tags[key]; }); } @@ -65,8 +66,8 @@ export function uiField(context, presetField, entity, options) { d3_event.preventDefault(); if (!entity) return false; - var original = context.graph().base().entities[entity.id], - t = {}; + var original = context.graph().base().entities[entity.id]; + var t = {}; d.keys.forEach(function(key) { t[key] = original ? original.tags[key] : undefined; }); @@ -143,14 +144,25 @@ export function uiField(context, presetField, entity, options) { .classed('modified', isModified()) .classed('present', isPresent()) .each(function(d) { + var reference, help; + + // instantiate field help + if (options.wrap && field.type === 'restrictions') { + help = uiFieldHelp('restrictions'); + if (_state === 'hover') { + help.showing(false); + } + } + + // instantiate tag reference if (options.wrap && options.info) { var referenceKey = d.key; if (d.type === 'multiCombo') { // lookup key without the trailing ':' referenceKey = referenceKey.replace(/:$/, ''); } - var reference = uiTagReference(d.reference || { key: referenceKey }, context); - if (state === 'hover') { + reference = uiTagReference(d.reference || { key: referenceKey }, context); + if (_state === 'hover') { reference.showing(false); } } @@ -158,35 +170,44 @@ export function uiField(context, presetField, entity, options) { d3_select(this) .call(d.impl); - if (options.wrap && options.info) { + // add field help components + if (help) { + d3_select(this) + .call(help.body) + .select('.form-label-button-wrap') + .call(help.button); + } + + // add tag reference components + if (reference) { d3_select(this) .call(reference.body) .select('.form-label-button-wrap') .call(reference.button); } - d.impl.tags(tags); + d.impl.tags(_tags); }); }; field.state = function(_) { - if (!arguments.length) return state; - state = _; + if (!arguments.length) return _state; + _state = _; return field; }; field.tags = function(_) { - if (!arguments.length) return tags; - tags = _; + if (!arguments.length) return _tags; + _tags = _; return field; }; field.show = function() { - show = true; - if (field.default && field.key && tags[field.key] !== field.default) { + _show = true; + if (field.default && field.key && _tags[field.key] !== field.default) { var t = {}; t[field.key] = field.default; dispatch.call('change', this, t); @@ -195,7 +216,7 @@ export function uiField(context, presetField, entity, options) { field.isShown = function() { - return show || _some(field.keys, function(key) { return !!tags[key]; }); + return _show || _some(field.keys, function(key) { return !!_tags[key]; }); }; diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js new file mode 100644 index 000000000..71aebf076 --- /dev/null +++ b/modules/ui/field_help.js @@ -0,0 +1,101 @@ +import { + event as d3_event, + select as d3_select +} from 'd3-selection'; + +import { t } from '../util/locale'; +import { svgIcon } from '../svg'; + + +export function uiFieldHelp(fieldName) { + var fieldHelp = {}; + var _body = d3_select(null); + var _showing; + + + function show() { + _body + .classed('hide', false) + .transition() + .duration(200) + .style('height', '100%'); + + _showing = true; + } + + + function hide() { + _body + .transition() + .duration(200) + .style('height', '0px') + .on('end', function () { + _body.classed('hide', true); + }); + + _showing = false; + } + + + fieldHelp.button = function(selection) { + var button = selection.selectAll('.field-help-button') + .data([0]); + + // enter/update + button.enter() + .append('button') + .attr('class', 'field-help-button') + .attr('tabindex', -1) + .call(svgIcon('#icon-help')) + .merge(button) + .on('click', function () { + d3_event.stopPropagation(); + d3_event.preventDefault(); + if (_showing) { + hide(); + } else { + show(); + } + }); + }; + + + fieldHelp.body = function(selection) { + // this control expects the field to have a preset-input-wrap div + var wrap = selection.selectAll('.preset-input-wrap'); + if (wrap.empty()) return; + + _body = wrap.selectAll('.field-help-body') + .data([0]); + + var enter = _body.enter() + .append('div') + .attr('class', 'field-help-body cf hide') + .style('height', '0px'); + +//debug +for (var i = 0; i < 15; i++) { + enter + .append('p') + .attr('class', 'field-help-description') + .text('lorem ipsum'); +} + + _body = _body + .merge(enter); + + if (_showing === false) { + hide(); + } + }; + + + fieldHelp.showing = function(_) { + if (!arguments.length) return _showing; + _showing = _; + return fieldHelp; + }; + + + return fieldHelp; +} diff --git a/modules/ui/index.js b/modules/ui/index.js index 8a3dd80c6..d908b7078 100644 --- a/modules/ui/index.js +++ b/modules/ui/index.js @@ -19,6 +19,7 @@ export { uiEntityEditor } from './entity_editor'; export { uiFeatureInfo } from './feature_info'; export { uiFeatureList } from './feature_list'; export { uiField } from './field'; +export { uiFieldHelp } from './field_help'; export { uiFlash } from './flash'; export { uiFormFields } from './form_fields'; export { uiFullScreen } from './full_screen'; diff --git a/modules/ui/tag_reference.js b/modules/ui/tag_reference.js index 4c5b39dcd..81cf4659b 100644 --- a/modules/ui/tag_reference.js +++ b/modules/ui/tag_reference.js @@ -13,17 +13,18 @@ import { svgIcon } from '../svg'; export function uiTagReference(tag) { - var taginfo = services.taginfo, - tagReference = {}, - button = d3_select(null), - body = d3_select(null), - loaded, - showing; + var taginfo = services.taginfo; + var tagReference = {}; + + var _button = d3_select(null); + var _body = d3_select(null); + var _loaded; + var _showing; function findLocal(data) { - var locale = utilDetect().locale.toLowerCase(), - localized; + var locale = utilDetect().locale.toLowerCase(); + var localized; if (locale !== 'pt-br') { // see #3776, prefer 'pt' over 'pt-br' localized = _find(data, function(d) { @@ -52,7 +53,7 @@ export function uiTagReference(tag) { function load(param) { if (!taginfo) return; - button + _button .classed('tag-reference-loading', true); taginfo.docs(param, function show(err, data) { @@ -61,13 +62,13 @@ export function uiTagReference(tag) { docs = findLocal(data); } - body.html(''); + _body.html(''); if (!docs || !docs.title) { if (param.hasOwnProperty('value')) { load(_omit(param, 'value')); // retry with key only } else { - body + _body .append('p') .attr('class', 'tag-reference-description') .text(t('inspector.no_documentation_key')); @@ -77,7 +78,7 @@ export function uiTagReference(tag) { } if (docs.image && docs.image.thumb_url_prefix) { - body + _body .append('img') .attr('class', 'tag-reference-wiki-image') .attr('src', docs.image.thumb_url_prefix + '100' + docs.image.thumb_url_suffix) @@ -87,12 +88,12 @@ export function uiTagReference(tag) { done(); } - body + _body .append('p') .attr('class', 'tag-reference-description') .text(docs.description || t('inspector.documentation_redirect')); - body + _body .append('a') .attr('class', 'tag-reference-link') .attr('target', '_blank') @@ -104,7 +105,7 @@ export function uiTagReference(tag) { // Add link to info about "good changeset comments" - #2923 if (param.key === 'comment') { - body + _body .append('a') .attr('class', 'tag-reference-comment-link') .attr('target', '_blank') @@ -119,54 +120,54 @@ export function uiTagReference(tag) { function done() { - loaded = true; + _loaded = true; - button + _button .classed('tag-reference-loading', false); - body + _body .classed('expanded', true) .transition() .duration(200) .style('max-height', '200px') .style('opacity', '1'); - showing = true; + _showing = true; } function hide() { - body + _body .transition() .duration(200) .style('max-height', '0px') .style('opacity', '0') .on('end', function () { - body.classed('expanded', false); + _body.classed('expanded', false); }); - showing = false; + _showing = false; } tagReference.button = function(selection) { - button = selection.selectAll('.tag-reference-button') + _button = selection.selectAll('.tag-reference-button') .data([0]); - button = button.enter() + _button = _button.enter() .append('button') .attr('class', 'tag-reference-button') .attr('tabindex', -1) .call(svgIcon('#icon-inspect')) - .merge(button); + .merge(_button); - button + _button .on('click', function () { d3_event.stopPropagation(); d3_event.preventDefault(); - if (showing) { + if (_showing) { hide(); - } else if (loaded) { + } else if (_loaded) { done(); } else { load(tag); @@ -176,31 +177,29 @@ export function uiTagReference(tag) { tagReference.body = function(selection) { - var tagid = tag.rtype || (tag.key + '-' + tag.value); - - body = selection.selectAll('.tag-reference-body') + _body = selection.selectAll('.tag-reference-body') .data([tagid], function(d) { return d; }); - body.exit() + _body.exit() .remove(); - body = body.enter() + _body = _body.enter() .append('div') .attr('class', 'tag-reference-body cf') .style('max-height', '0') .style('opacity', '0') - .merge(body); + .merge(_body); - if (showing === false) { + if (_showing === false) { hide(); } }; tagReference.showing = function(_) { - if (!arguments.length) return showing; - showing = _; + if (!arguments.length) return _showing; + _showing = _; return tagReference; }; From b3b2be95b11e4e6dcd65a504c770b5dd3edc5a8e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 24 Feb 2018 12:14:18 -0500 Subject: [PATCH 081/157] WIP: Add content for turn restriction field help --- data/core.yaml | 26 ++++++++ dist/locales/en.json | 31 ++++++++++ modules/ui/field_help.js | 126 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 176 insertions(+), 7 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 94f603eb8..dc0d97aa9 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -742,6 +742,32 @@ en: using: "To use a GPS trace for mapping, drag and drop the data file onto the map editor. If it's recognized, it will be drawn on the map as a bright purple line. Click the {data} **Map data** panel on the side of the map to enable, disable, or zoom to your GPS data." tracing: "The GPS track isn't sent to OpenStreetMap - the best way to use it is to draw on the map, using it as a guide for the new features that you add." upload: "You can also [upload your GPS data to OpenStreetMap](https://www.openstreetmap.org/trace/create) for other users to use." + field: + restrictions: + title: Editing Turn Restrictions + inspecting: + title: Inspecting + about: "To inspect turn restrictions, hover over a starting segment." + shadow: "All paths starting from that segment will be drawn with a line shadow." + from: "{from} Starting segment" + allow: "{allowed} Allowed" + restrict: "{restricted} Restricted" + only: "{only} Only" + modifying: + title: Modifying + about: "To modify turn restrictions, click on a starting segment." + indicators: "All of the possible TO destinations from that segment will appear as turn indicators." + indicators2: "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." + allow: "{allowed} Allowed" + restrict: "{restricted} Restricted" + only: "{only} Only" + tips: + title: Tips + tip1: "* Prefer simple restrictions over complex ones." + tip2: For example, avoid using a via-way restriction if a simpler turn restriction will do. + tip3: "* Some restrictions are \"(indirect)\". These restrictions exist because of another nearby restriction." + tip4: "For example, a route with an \"Only Straight On\" turn restriction will indirectly create \"No Turn\" restrictions." + tip5: "* You may not edit an indirect restriction. Instead, edit the nearby direct restriction." intro: done: done ok: OK diff --git a/dist/locales/en.json b/dist/locales/en.json index 7ae8fdecb..b367ceeca 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -882,6 +882,37 @@ "using": "To use a GPS trace for mapping, drag and drop the data file onto the map editor. If it's recognized, it will be drawn on the map as a bright purple line. Click the {data} **Map data** panel on the side of the map to enable, disable, or zoom to your GPS data.", "tracing": "The GPS track isn't sent to OpenStreetMap - the best way to use it is to draw on the map, using it as a guide for the new features that you add.", "upload": "You can also [upload your GPS data to OpenStreetMap](https://www.openstreetmap.org/trace/create) for other users to use." + }, + "field": { + "restrictions": { + "title": "Editing Turn Restrictions", + "inspecting": { + "title": "Inspecting", + "about": "To inspect turn restrictions, hover over a starting segment.", + "shadow": "All paths starting from that segment will be drawn with a line shadow.", + "from": "{from} Starting segment", + "allow": "{allowed} Allowed", + "restrict": "{restricted} Restricted", + "only": "{only} Only" + }, + "modifying": { + "title": "Modifying", + "about": "To modify turn restrictions, click on a starting segment.", + "indicators": "All of the possible TO destinations from that segment will appear as turn indicators.", + "indicators2": "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", + "allow": "{allowed} Allowed", + "restrict": "{restricted} Restricted", + "only": "{only} Only" + }, + "tips": { + "title": "Tips", + "tip1": "* Prefer simple restrictions over complex ones.", + "tip2": "For example, avoid using a via-way restriction if a simpler turn restriction will do.", + "tip3": "* Some restrictions are \"(indirect)\". These restrictions exist because of another nearby restriction.", + "tip4": "For example, a route with an \"Only Straight On\" turn restriction will indirectly create \"No Turn\" restrictions.", + "tip5": "* You may not edit an indirect restriction. Instead, edit the nearby direct restriction." + } + } } }, "intro": { diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index 71aebf076..0530f7571 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -3,16 +3,75 @@ import { select as d3_select } from 'd3-selection'; -import { t } from '../util/locale'; +import marked from 'marked'; +import { t, textDirection } from '../util/locale'; import { svgIcon } from '../svg'; +// This currently only works with the 'restrictions' field +var fieldHelpKeys = { + restrictions: [ + ['inspecting',[ + 'title', + 'about', + 'shadow', + 'from', + 'allow', + 'restrict', + 'only' + ]], + ['modifying',[ + 'title', + 'about', + 'indicators', + 'indicators2', + 'allow', + 'restrict', + 'only' + ]], + ['tips',[ + 'title', + 'tip1', + 'tip2', + 'tip3', + 'tip4', + 'tip5' + ]] + ] +}; + +var fieldHelpHeadings = { + 'help.field.restrictions.inspecting.title': 3, + 'help.field.restrictions.modifying.title': 3, + 'help.field.restrictions.tips.title': 3 +}; + +var replacements = {}; + + export function uiFieldHelp(fieldName) { var fieldHelp = {}; var _body = d3_select(null); var _showing; + // For each section, squash all the texts into a single markdown document + var docs = fieldHelpKeys[fieldName].map(function(key) { + var helpkey = 'help.field.' + fieldName + '.' + key[0]; + var text = key[1].reduce(function(all, part) { + var subkey = helpkey + '.' + part; + var depth = fieldHelpHeadings[subkey]; // is this subkey a heading? + var hhh = depth ? Array(depth + 1).join('#') + ' ' : ''; // if so, prepend with some ##'s + return all + hhh + t(subkey, replacements) + '\n\n'; + }, ''); + + return { + title: t(helpkey + '.title'), + html: marked(text.trim()) + }; + }); + + function show() { _body .classed('hide', false) @@ -37,6 +96,53 @@ export function uiFieldHelp(fieldName) { } + function clickHelp(d, i) { + var rtl = (textDirection === 'rtl'); + + _body.selectAll('.field-help-content').html(d.html); + var nav = _body.selectAll('.field-help-nav').html(''); + + if (rtl) { + nav.call(drawNext).call(drawPrevious); + } else { + nav.call(drawPrevious).call(drawNext); + } + + function drawNext(selection) { + if (i < docs.length - 1) { + var nextLink = selection + .append('a') + .attr('class', 'next') + .on('click', function() { + clickHelp(docs[i + 1], i + 1); + }); + + nextLink + .append('span') + .text(docs[i + 1].title) + .call(svgIcon((rtl ? '#icon-backward' : '#icon-forward'), 'inline')); + } + } + + + function drawPrevious(selection) { + if (i > 0) { + var prevLink = selection + .append('a') + .attr('class', 'previous') + .on('click', function() { + clickHelp(docs[i - 1], i - 1); + }); + + prevLink + .call(svgIcon((rtl ? '#icon-forward' : '#icon-backward'), 'inline')) + .append('span') + .text(docs[i - 1].title); + } + } + } + + fieldHelp.button = function(selection) { var button = selection.selectAll('.field-help-button') .data([0]); @@ -73,17 +179,23 @@ export function uiFieldHelp(fieldName) { .attr('class', 'field-help-body cf hide') .style('height', '0px'); -//debug -for (var i = 0; i < 15; i++) { enter - .append('p') - .attr('class', 'field-help-description') - .text('lorem ipsum'); -} + .append('h2') + .text(t('help.field.' + fieldName + '.title')); + + enter + .append('div') + .attr('class', 'field-help-content'); + + enter + .append('div') + .attr('class', 'field-help-nav'); _body = _body .merge(enter); + clickHelp(docs[0], 0); + if (_showing === false) { hide(); } From 8655ec6baf17b4c1c232eb6a22e47c6289ba8084 Mon Sep 17 00:00:00 2001 From: Jon D Date: Sun, 25 Feb 2018 15:44:41 +0000 Subject: [PATCH 082/157] Start adding flow annotations, plus updates to build and linting processes to support --- .eslintrc | 14 +++++++-- .flowconfig | 11 +++++++ build_src.js | 18 +++++++----- modules/util/locale.js | 18 +++++++----- modules/util/units.js | 65 +++++++++++++++++++++++++++--------------- package.json | 10 +++++-- 6 files changed, 95 insertions(+), 41 deletions(-) create mode 100644 .flowconfig diff --git a/.eslintrc b/.eslintrc index 73157aef2..285c1bd4c 100644 --- a/.eslintrc +++ b/.eslintrc @@ -5,15 +5,20 @@ "es6": true }, "extends": [ - "eslint:recommended" + "eslint:recommended", + "plugin:flowtype/recommended" ], "globals": { "d3": false }, + "parser": "babel-eslint", "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, + "plugins": [ + "flowtype" + ], "rules": { "dot-notation": "error", "eqeqeq": ["error", "smart"], @@ -67,5 +72,10 @@ "space-unary-ops": "error", "wrap-regex": "off", "quotes": ["error", "single"] + }, + "settings": { + "flowtype": { + "onlyFilesWithFlowAnnotation": true + } } -} +} \ No newline at end of file diff --git a/.flowconfig b/.flowconfig new file mode 100644 index 000000000..1fed44533 --- /dev/null +++ b/.flowconfig @@ -0,0 +1,11 @@ +[ignore] + +[include] + +[libs] + +[lints] + +[options] + +[strict] diff --git a/build_src.js b/build_src.js index 8f8315781..60581e94f 100644 --- a/build_src.js +++ b/build_src.js @@ -7,12 +7,13 @@ const commonjs = require('rollup-plugin-commonjs'); const json = require('rollup-plugin-json'); const includePaths = require('rollup-plugin-includepaths'); const colors = require('colors/safe'); +const flow = require('rollup-plugin-flow'); module.exports = function buildSrc() { var cache; var building = false; - return function() { + return function () { if (building) return; // Start clean @@ -28,9 +29,10 @@ module.exports = function buildSrc() { .rollup({ input: './modules/id.js', plugins: [ + flow(), includePaths({ paths: [ - 'node_modules/d3/node_modules' // for npm 2 + 'node_modules/d3/node_modules' // for npm 2 ] }), nodeResolve({ @@ -43,7 +45,7 @@ module.exports = function buildSrc() { ], cache: cache }) - .then(function(bundle) { + .then(function (bundle) { cache = bundle; return bundle.write({ format: 'iife', @@ -52,11 +54,11 @@ module.exports = function buildSrc() { strict: false }); }) - .then(function() { + .then(function () { building = false; console.timeEnd(colors.green('src built')); }) - .catch(function(err) { + .catch(function (err) { building = false; cache = undefined; console.error(err); @@ -67,5 +69,7 @@ module.exports = function buildSrc() { function unlink(f) { - try { fs.unlinkSync(f); } catch (e) { /* noop */ } -} + try { + fs.unlinkSync(f); + } catch (e) { /* noop */ } +} \ No newline at end of file diff --git a/modules/util/locale.js b/modules/util/locale.js index 4081c39b0..21e8ebb54 100644 --- a/modules/util/locale.js +++ b/modules/util/locale.js @@ -1,9 +1,10 @@ +// @flow var translations = Object.create(null); export var currentLocale = 'en'; export var textDirection = 'ltr'; -export function setLocale(_) { +export function setLocale(_: any): void { if (translations[_] !== undefined) { currentLocale = _; } else if (translations[_.split('-')[0]]) { @@ -11,7 +12,7 @@ export function setLocale(_) { } } -export function addTranslation(id, value) { +export function addTranslation(id: string, value: string): void { translations[id] = value; } @@ -22,12 +23,14 @@ export function addTranslation(id, value) { * @param {string} s string identifier * @returns {string?} locale string */ -export function t(s, o, loc) { +export function t(s: string, o: any, loc?: string): string { loc = loc || currentLocale; var path = s .split('.') - .map(function(s) { return s.replace('', '.'); }) + .map(function (s) { + return s.replace('', '.'); + }) .reverse(); var rep = translations[loc]; @@ -35,7 +38,8 @@ export function t(s, o, loc) { while (rep !== undefined && path.length) rep = rep[path.pop()]; if (rep !== undefined) { - if (o) for (var k in o) rep = rep.replace('{' + k + '}', o[k]); + if (o) + for (var k in o) rep = rep.replace('{' + k + '}', o[k]); return rep; } @@ -59,6 +63,6 @@ export function t(s, o, loc) { * @param {string} s ltr or rtl */ -export function setTextDirection(dir) { +export function setTextDirection(dir: string): void { textDirection = dir; -} +} \ No newline at end of file diff --git a/modules/util/units.js b/modules/util/units.js index b27e7c4b7..e3eaa347a 100644 --- a/modules/util/units.js +++ b/modules/util/units.js @@ -1,5 +1,6 @@ -import { t } from 'locale'; -import { utilDetect } from 'detect'; +// @flow +import { t } from './locale'; +import { utilDetect } from './detect'; var OSM_PRECISION = 7; var locale = utilDetect().locale; @@ -10,7 +11,7 @@ var locale = utilDetect().locale; * @param {Number} m area in meters * @param {Boolean} isImperial true for U.S. customary units; false for metric */ -export function displayLength(m, isImperial) { +export function displayLength(m: number, isImperial: boolean): string { var d = m * (isImperial ? 3.28084 : 1), unit; @@ -31,7 +32,9 @@ export function displayLength(m, isImperial) { } return t('units.' + unit, { - quantity: d.toLocaleString(locale, { maximumSignificantDigits: 4 }) + quantity: d.toLocaleString(locale, { + maximumSignificantDigits: 4 + }) }); } @@ -41,12 +44,14 @@ export function displayLength(m, isImperial) { * @param {Number} m2 area in square meters * @param {Boolean} isImperial true for U.S. customary units; false for metric */ -export function displayArea(m2, isImperial) { +export function displayArea(m2: number, isImperial: boolean): string { var d = m2 * (isImperial ? 10.7639111056 : 1), - d1, d2, unit1, unit2, area; + d1, d2, area; + var unit1: string = ''; + var unit2: string = ''; if (isImperial) { - if (d >= 6969600) { // > 0.25mi² show mi² + if (d >= 6969600) { // > 0.25mi² show mi² d1 = d / 27878400; unit1 = 'square_miles'; } else { @@ -54,13 +59,13 @@ export function displayArea(m2, isImperial) { unit1 = 'square_feet'; } - if (d > 4356 && d < 43560000) { // 0.1 - 1000 acres + if (d > 4356 && d < 43560000) { // 0.1 - 1000 acres d2 = d / 43560; unit2 = 'acres'; } } else { - if (d >= 250000) { // > 0.25km² show km² + if (d >= 250000) { // > 0.25km² show km² d1 = d / 1000000; unit1 = 'square_kilometers'; } else { @@ -68,21 +73,25 @@ export function displayArea(m2, isImperial) { unit1 = 'square_meters'; } - if (d > 1000 && d < 10000000) { // 0.1 - 1000 hectares + if (d > 1000 && d < 10000000) { // 0.1 - 1000 hectares d2 = d / 10000; unit2 = 'hectares'; } } area = t('units.' + unit1, { - quantity: d1.toLocaleString(locale, { maximumSignificantDigits: 4 }) + quantity: d1.toLocaleString(locale, { + maximumSignificantDigits: 4 + }) }); if (d2) { return t('units.area_pair', { area1: area, area2: t('units.' + unit2, { - quantity: d2.toLocaleString(locale, { maximumSignificantDigits: 2 }) + quantity: d2.toLocaleString(locale, { + maximumSignificantDigits: 2 + }) }) }); } else { @@ -90,16 +99,16 @@ export function displayArea(m2, isImperial) { } } -function wrap(x, min, max) { +function wrap(x: number, min: number, max: number): number { var d = max - min; return ((x - min) % d + d) % d + min; } -function clamp(x, min, max) { +function clamp(x: number, min: number, max: number): number { return Math.max(min, Math.min(x, max)); } -function displayCoordinate(deg, pos, neg) { +function displayCoordinate(deg: number, pos: any, neg: any): string { var min = (Math.abs(deg) - Math.floor(Math.abs(deg))) * 60, sec = (min - Math.floor(min)) * 60, displayDegrees = t('units.arcdegrees', { @@ -109,11 +118,17 @@ function displayCoordinate(deg, pos, neg) { if (Math.floor(sec) > 0) { displayCoordinate = displayDegrees + - t('units.arcminutes', { quantity: Math.floor(min).toLocaleString(locale) }) + - t('units.arcseconds', { quantity: Math.round(sec).toLocaleString(locale) }); + t('units.arcminutes', { + quantity: Math.floor(min).toLocaleString(locale) + }) + + t('units.arcseconds', { + quantity: Math.round(sec).toLocaleString(locale) + }); } else if (Math.floor(min) > 0) { displayCoordinate = displayDegrees + - t('units.arcminutes', { quantity: Math.round(min).toLocaleString(locale) }); + t('units.arcminutes', { + quantity: Math.round(min).toLocaleString(locale) + }); } else { displayCoordinate = t('units.arcdegrees', { quantity: Math.round(Math.abs(deg)).toLocaleString(locale) @@ -135,7 +150,7 @@ function displayCoordinate(deg, pos, neg) { * * @param {Array} coord longitude and latitude */ -export function dmsCoordinatePair(coord) { +export function dmsCoordinatePair(coord: number[]): string { return t('units.coordinate_pair', { latitude: displayCoordinate(clamp(coord[1], -90, 90), 'north', 'south'), longitude: displayCoordinate(wrap(coord[0], -180, 180), 'east', 'west') @@ -147,9 +162,13 @@ export function dmsCoordinatePair(coord) { * * @param {Array} coord longitude and latitude */ -export function decimalCoordinatePair(coord) { +export function decimalCoordinatePair(coord: number[]): string { return t('units.coordinate_pair', { - latitude: clamp(coord[1], -90, 90).toLocaleString(locale, { maximumFractionDigits: OSM_PRECISION }), - longitude: wrap(coord[0], -180, 180).toLocaleString(locale, { maximumFractionDigits: OSM_PRECISION }) + latitude: clamp(coord[1], -90, 90).toLocaleString(locale, { + maximumFractionDigits: OSM_PRECISION + }), + longitude: wrap(coord[0], -180, 180).toLocaleString(locale, { + maximumFractionDigits: OSM_PRECISION + }) }); -} +} \ No newline at end of file diff --git a/package.json b/package.json index 0e61e2e38..83869e97c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ ], "license": "ISC", "scripts": { - "all": "npm-run-all -s clean build dist", + "all": "npm-run-all -s clean flow build dist", "build": "node development_server.js", "clean": "shx rm -f dist/*.js dist/*.map dist/*.css dist/img/*.svg", "dist": "npm-run-all -p dist:**", @@ -23,7 +23,8 @@ "start": "node development_server.js develop", "test": "npm-run-all -s lint build test:**", "test:phantom": "phantomjs --web-security=no node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html spec", - "translations": "node data/update_locales" + "translations": "node data/update_locales", + "flow": "flow" }, "dependencies": { "@mapbox/sexagesimal": "1.1.0", @@ -39,6 +40,7 @@ "devDependencies": { "@mapbox/maki": "^4.0.0", "@std/esm": "^0.22.0", + "babel-eslint": "^8.2.2", "chai": "^4.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", @@ -46,6 +48,9 @@ "ecstatic": "^3.0.0", "editor-layer-index": "osmlab/editor-layer-index.git#gh-pages", "eslint": "^4.3.0", + "eslint-plugin-flowtype": "^2.46.1", + "flow-bin": "^0.66.0", + "flow-remove-types": "^1.2.3", "gaze": "^1.1.1", "glob": "^7.1.0", "happen": "^0.3.1", @@ -62,6 +67,7 @@ "request": "^2.81.0", "rollup": "~0.55.0", "rollup-plugin-commonjs": "~8.3.0", + "rollup-plugin-flow": "^1.1.1", "rollup-plugin-includepaths": "~0.2.2", "rollup-plugin-json": "~2.2.0", "rollup-plugin-node-resolve": "~3.0.0", From 2b96a8ee0b0c16b0b3078ac1dcf8e20328138269 Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Sat, 17 Feb 2018 16:12:14 +0100 Subject: [PATCH 083/157] load WMS tiles if EPSG:3857 (or equivalent) is supported --- data/imagery.json | 60711 ++++++++++++++++++++---- data/update_imagery.js | 23 +- modules/renderer/background_source.js | 25 +- 3 files changed, 52497 insertions(+), 8262 deletions(-) diff --git a/data/imagery.json b/data/imagery.json index d6d598278..e625121ec 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -323,7 +323,7 @@ "id": "OS7", "name": "7th Series (OS7)", "type": "tms", - "template": "http://ooc.openstreetmap.org/os7/{zoom}/{x}/{y}.jpg", + "template": "https://ooc.openstreetmap.org/os7/{zoom}/{x}/{y}.jpg", "polygon": [ [ [ @@ -1343,6 +1343,425 @@ ] ] }, + { + "id": "AGIV10cm", + "name": "AGIV Flanders 2013-2015 aerial imagery 10cm", + "type": "wms", + "template": "https://geoservices.informatievlaanderen.be/raadpleegdiensten/OGW/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=OGWRGB13_15VL&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 5.9849448, + 50.7072276 + ], + [ + 5.9849448, + 50.7671973 + ], + [ + 5.9107871, + 50.8227527 + ], + [ + 5.7556052, + 50.8353303 + ], + [ + 5.7542319, + 50.8626424 + ], + [ + 5.8331961, + 50.9332328 + ], + [ + 5.8551688, + 51.026611 + ], + [ + 5.9094138, + 51.0775439 + ], + [ + 5.9121604, + 51.1822548 + ], + [ + 5.8785147, + 51.2080728 + ], + [ + 5.7741446, + 51.2368858 + ], + [ + 5.684194, + 51.2407548 + ], + [ + 5.6230826, + 51.2699769 + ], + [ + 5.6230826, + 51.2978925 + ], + [ + 5.5399985, + 51.34724 + ], + [ + 5.4473013, + 51.3485267 + ], + [ + 5.3985495, + 51.321071 + ], + [ + 5.3120322, + 51.3232166 + ], + [ + 5.2667136, + 51.3618196 + ], + [ + 5.1994223, + 51.3725369 + ], + [ + 5.1829428, + 51.3961061 + ], + [ + 5.1589102, + 51.4923992 + ], + [ + 5.0833792, + 51.5308596 + ], + [ + 5.0325675, + 51.539829 + ], + [ + 4.9556632, + 51.5052229 + ], + [ + 4.9014182, + 51.5056503 + ], + [ + 4.8382468, + 51.5436725 + ], + [ + 4.7709555, + 51.5586163 + ], + [ + 4.711904, + 51.5470886 + ], + [ + 4.6404929, + 51.4966741 + ], + [ + 4.6144003, + 51.4971016 + ], + [ + 4.5656485, + 51.5317139 + ], + [ + 4.4825644, + 51.5304324 + ], + [ + 4.4262595, + 51.5218884 + ], + [ + 4.3006034, + 51.4697351 + ], + [ + 4.2951102, + 51.4256575 + ], + [ + 4.181127, + 51.4243731 + ], + [ + 4.1371817, + 51.3952492 + ], + [ + 4.138555, + 51.3506709 + ], + [ + 4.0520377, + 51.3004685 + ], + [ + 3.933248, + 51.272984 + ], + [ + 3.8652701, + 51.2708361 + ], + [ + 3.8632102, + 51.2901637 + ], + [ + 3.7629599, + 51.3240748 + ], + [ + 3.5933585, + 51.359247 + ], + [ + 3.4773154, + 51.3313688 + ], + [ + 3.425817, + 51.3973913 + ], + [ + 3.2356162, + 51.3515286 + ], + [ + 3.2260031, + 51.3656781 + ], + [ + 3.1779379, + 51.3618196 + ], + [ + 3.1600852, + 51.3322268 + ], + [ + 3.0625815, + 51.3021857 + ], + [ + 2.7508444, + 51.1702014 + ], + [ + 2.4700064, + 51.0745241 + ], + [ + 2.4926657, + 50.9937771 + ], + [ + 2.5311179, + 50.9557299 + ], + [ + 2.5091452, + 50.9115907 + ], + [ + 2.5304312, + 50.8214514 + ], + [ + 2.5990958, + 50.7641572 + ], + [ + 2.6650138, + 50.7645915 + ], + [ + 2.7700705, + 50.66677 + ], + [ + 2.8970999, + 50.6589354 + ], + [ + 2.991857, + 50.7254874 + ], + [ + 3.1133933, + 50.7263567 + ], + [ + 3.2369895, + 50.7059231 + ], + [ + 3.3626456, + 50.6585001 + ], + [ + 3.4711356, + 50.7020092 + ], + [ + 3.6393637, + 50.6672052 + ], + [ + 3.6984152, + 50.681565 + ], + [ + 3.727941, + 50.7124454 + ], + [ + 3.8185782, + 50.6841754 + ], + [ + 3.8748831, + 50.6415206 + ], + [ + 4.0925498, + 50.642827 + ], + [ + 4.150228, + 50.6632881 + ], + [ + 4.2065329, + 50.6441333 + ], + [ + 4.3136496, + 50.642827 + ], + [ + 4.452352, + 50.6876557 + ], + [ + 4.5347495, + 50.6780842 + ], + [ + 4.6130271, + 50.6954855 + ], + [ + 4.6768851, + 50.6959204 + ], + [ + 4.7270102, + 50.732007 + ], + [ + 4.7805686, + 50.732007 + ], + [ + 4.7997946, + 50.7128802 + ], + [ + 4.8622794, + 50.7128802 + ], + [ + 4.8856253, + 50.6954855 + ], + [ + 4.9611563, + 50.6954855 + ], + [ + 5.0311942, + 50.6576295 + ], + [ + 5.1074118, + 50.6502288 + ], + [ + 5.2007956, + 50.6489227 + ], + [ + 5.2358145, + 50.6654643 + ], + [ + 5.3250784, + 50.6658995 + ], + [ + 5.3669638, + 50.6820001 + ], + [ + 5.4212088, + 50.6641586 + ], + [ + 5.5221457, + 50.6746032 + ], + [ + 5.622396, + 50.7241834 + ], + [ + 5.6752677, + 50.69853 + ], + [ + 5.7398123, + 50.6972252 + ], + [ + 5.7727713, + 50.6719923 + ], + [ + 5.8125968, + 50.6602413 + ], + [ + 5.9080405, + 50.659806 + ], + [ + 5.9849448, + 50.7072276 + ] + ] + ], + "terms_text": "Orthophoto Flanders © AGIV", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAABm0lEQVQ4y6WTPUgCYRjHf5oFJVfRUZKVHYFBoBAUFLZE0FBD0NQHRENESzS019LSFNHWx1DQEhGRg0JFREM11FJuLWem4GB5HULdwdkgHprn5LO97/O8v+fj/7y2bDabpQKzFx5S6ntlgE81xvHtclHAbuSNloNT5q/uywP021cAvO4hAPYu5/hI5e6GWpsBCEfjxNSMNUALPvJ7eA3AQPcML3KIzbNhlvdEWmu+6RCcAISiCWtA3fosPztBfrYvAGgX/QCIggdR8DDe6Qbg5E0uAdjyKhhykq+uBeySi9qVCfSAB61HRBQ8RFJpRs6vALiZHMUnNpYO0Ujn+jPkJJnVfbTBNeqfFQB8YqP56H8VJqBKcuHcWsQuuXIOyUX1sN8MnPJKlnOwWS2SIScx0hkcvV3mXUzN0HcSAuBoNMBYZxsADittVXcT/XcPKE/PltqHowkTYLcMkOMoml52+wr9jnIZAJZ8XjYGe0vaUDSdsBxnulsqrUDRdMLReNHg8tYhOAs2M2HdQiSVBqChprpI7/9q5JPYKv3OfxL1n52ATYYBAAAAAElFTkSuQmCC" + }, { "id": "AGRI-black_and_white-2.5m", "name": "AGRI black-and-white 2.5m", @@ -1570,6 +1989,4668 @@ ], "terms_text": "AGRI" }, + { + "id": "alagoas_litoral", + "name": "Alagoas Litoral 2006", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Ortofotos%202006&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -35.523842344, + -9.48089222803 + ], + [ + -35.52360077082, + -9.44514935417 + ], + [ + -35.51571944592, + -9.44517914145 + ], + [ + -35.51584023251, + -9.44228976382 + ], + [ + -35.50542238925, + -9.44237912638 + ], + [ + -35.50518081607, + -9.43064264549 + ], + [ + -35.4933437304, + -9.43073201107 + ], + [ + -35.49304176392, + -9.39820141319 + ], + [ + -35.48929737968, + -9.39817162186 + ], + [ + -35.48920678974, + -9.38628467767 + ], + [ + -35.4854020122, + -9.38634426236 + ], + [ + -35.48525102896, + -9.37809168429 + ], + [ + -35.48126507154, + -9.37812147735 + ], + [ + -35.48114428495, + -9.36986870367 + ], + [ + -35.47697714765, + -9.36995808494 + ], + [ + -35.47685636106, + -9.36385031181 + ], + [ + -35.47459161253, + -9.36388010609 + ], + [ + -35.47447082594, + -9.36152635042 + ], + [ + -35.47211548746, + -9.36140717249 + ], + [ + -35.47205509417, + -9.35917257881 + ], + [ + -35.46976014899, + -9.35920237349 + ], + [ + -35.46966955904, + -9.35681879126 + ], + [ + -35.46652910774, + -9.3567592015 + ], + [ + -35.46640832115, + -9.35288584487 + ], + [ + -35.46387180279, + -9.35276666399 + ], + [ + -35.46387180279, + -9.35118751337 + ], + [ + -35.44134510403, + -9.3513066948 + ], + [ + -35.44125451409, + -9.34540716508 + ], + [ + -35.43177276689, + -9.34537736922 + ], + [ + -35.4317123736, + -9.33602134361 + ], + [ + -35.39463089092, + -9.33631931008 + ], + [ + -35.39441951439, + -9.30124690873 + ], + [ + -35.38164633265, + -9.30142570645 + ], + [ + -35.38146515277, + -9.28637657868 + ], + [ + -35.37799253835, + -9.28625737508 + ], + [ + -35.3779623417, + -9.28110178087 + ], + [ + -35.36941669056, + -9.28122098621 + ], + [ + -35.36920531403, + -9.27260829561 + ], + [ + -35.35966317354, + -9.2727573059 + ], + [ + -35.35969337019, + -9.2646510545 + ], + [ + -35.35051358946, + -9.26474046271 + ], + [ + -35.35036260622, + -9.25562070859 + ], + [ + -35.34115262885, + -9.25565051209 + ], + [ + -35.34118282549, + -9.24501050089 + ], + [ + -35.31775022732, + -9.24518932726 + ], + [ + -35.31759924408, + -9.22566691185 + ], + [ + -35.30292367358, + -9.22578613599 + ], + [ + -35.30283308363, + -9.2113001083 + ], + [ + -35.307936317, + -9.2113597228 + ], + [ + -35.30784572706, + -9.19979432149 + ], + [ + -35.29102619461, + -9.19988374615 + ], + [ + -35.29090540802, + -9.19660482728 + ], + [ + -35.29018068849, + -9.19669425274 + ], + [ + -35.28996931196, + -9.16515547298 + ], + [ + -35.27758868663, + -9.16521509525 + ], + [ + -35.27749809669, + -9.16417170413 + ], + [ + -35.27541452804, + -9.16420151535 + ], + [ + -35.27535413474, + -9.16151849576 + ], + [ + -35.27375371245, + -9.16148868432 + ], + [ + -35.2736631225, + -9.15838828064 + ], + [ + -35.27182112703, + -9.15841809234 + ], + [ + -35.27185132368, + -9.15728524588 + ], + [ + -35.27148896391, + -9.15728524588 + ], + [ + -35.27142857062, + -9.15469161013 + ], + [ + -35.26964696844, + -9.1546319861 + ], + [ + -35.26958657514, + -9.15361837601 + ], + [ + -35.26919401873, + -9.15361837601 + ], + [ + -35.26907323214, + -9.13158654923 + ], + [ + -35.26403039207, + -9.13164617712 + ], + [ + -35.26400019542, + -9.12317891652 + ], + [ + -35.26055777765, + -9.12320873117 + ], + [ + -35.260527581, + -9.11781223884 + ], + [ + -35.25599808393, + -9.11784205394 + ], + [ + -35.25572631411, + -9.08945695375 + ], + [ + -35.25113642374, + -9.08954640613 + ], + [ + -35.25107603045, + -9.08650501259 + ], + [ + -35.25026072098, + -9.08647519487 + ], + [ + -35.25029091762, + -9.08474576336 + ], + [ + -35.24449316137, + -9.08477558121 + ], + [ + -35.24449316137, + -9.07988541975 + ], + [ + -35.24092995701, + -9.07997487452 + ], + [ + -35.24080917042, + -9.0731166106 + ], + [ + -35.237336556, + -9.0731166106 + ], + [ + -35.23718557277, + -9.06321662455 + ], + [ + -35.23655144318, + -9.06321662455 + ], + [ + -35.23652124653, + -9.04654705576 + ], + [ + -35.23322981199, + -9.04651723473 + ], + [ + -35.23332040193, + -9.04344565539 + ], + [ + -35.23060270369, + -9.04347547668 + ], + [ + -35.23060270369, + -9.04013547745 + ], + [ + -35.22897208475, + -9.04007583433 + ], + [ + -35.22900228139, + -9.03834617941 + ], + [ + -35.22504652062, + -9.03825671427 + ], + [ + -35.22501632397, + -9.03166605486 + ], + [ + -35.22229862573, + -9.03160641033 + ], + [ + -35.22232882238, + -9.02012465516 + ], + [ + -35.21834286496, + -9.02009483194 + ], + [ + -35.21831266831, + -9.01341436936 + ], + [ + -35.21671224601, + -9.01341436936 + ], + [ + -35.21668204936, + -9.00998461959 + ], + [ + -35.21175999588, + -9.00998461959 + ], + [ + -35.21172979923, + -9.00646536424 + ], + [ + -35.20970662388, + -9.00652501292 + ], + [ + -35.20973682052, + -9.00437765419 + ], + [ + -35.20765325187, + -9.00431800516 + ], + [ + -35.20768344852, + -9.00226010741 + ], + [ + -35.20566027316, + -9.00226010741 + ], + [ + -35.20563007651, + -8.99987412434 + ], + [ + -35.20390886763, + -8.99987412434 + ], + [ + -35.20393906427, + -8.99784602637 + ], + [ + -35.20212726545, + -8.99790567647 + ], + [ + -35.20212726545, + -8.9957880918 + ], + [ + -35.1984432745, + -8.99581791702 + ], + [ + -35.1984432745, + -8.99361084394 + ], + [ + -35.19433653049, + -8.99361084394 + ], + [ + -35.19427613719, + -8.99122480384 + ], + [ + -35.19065253954, + -8.99131428063 + ], + [ + -35.19062234289, + -8.98833170914 + ], + [ + -35.18766307147, + -8.98842118664 + ], + [ + -35.18763287482, + -8.98543859134 + ], + [ + -35.1847339967, + -8.98540876526 + ], + [ + -35.1846736034, + -8.98254545043 + ], + [ + -35.18237865822, + -8.98251562411 + ], + [ + -35.18234846157, + -8.9805172554 + ], + [ + -35.17950997674, + -8.98060673484 + ], + [ + -35.1794797801, + -8.97741528813 + ], + [ + -35.17809073433, + -8.97744511486 + ], + [ + -35.17803034103, + -8.97306055853 + ], + [ + -35.17558441262, + -8.97303073144 + ], + [ + -35.17549382268, + -8.96912336076 + ], + [ + -35.17292710767, + -8.96909353334 + ], + [ + -35.17283651773, + -8.96291920489 + ], + [ + -35.17063216249, + -8.96288937697 + ], + [ + -35.17048117925, + -8.95579026036 + ], + [ + -35.16851839719, + -8.95564111777 + ], + [ + -35.16851839719, + -8.94806459361 + ], + [ + -35.16794466089, + -8.94800493531 + ], + [ + -35.16791446424, + -8.9399509755 + ], + [ + -35.16244887111, + -8.9399509755 + ], + [ + -35.16241867447, + -8.92977886806 + ], + [ + -35.15870448687, + -8.9298086987 + ], + [ + -35.15873468352, + -8.92661680615 + ], + [ + -35.15547344563, + -8.92667646795 + ], + [ + -35.15550364227, + -8.92378285946 + ], + [ + -35.15348046692, + -8.92381269059 + ], + [ + -35.15338987697, + -8.92065057698 + ], + [ + -35.15130630832, + -8.92062074559 + ], + [ + -35.15121571838, + -8.91193970728 + ], + [ + -35.1526349608, + -8.91193970728 + ], + [ + -35.1526349608, + -8.90821067559 + ], + [ + -35.15438636633, + -8.908240508 + ], + [ + -35.15429577639, + -8.90215464709 + ], + [ + -35.15592639533, + -8.90212481419 + ], + [ + -35.15592639533, + -8.90051383392 + ], + [ + -35.15767780087, + -8.90048400089 + ], + [ + -35.15773819416, + -8.89905201236 + ], + [ + -35.15958018964, + -8.89908184551 + ], + [ + -35.15954999299, + -8.89747085185 + ], + [ + -35.16139198846, + -8.89750068513 + ], + [ + -35.16133159517, + -8.89624768526 + ], + [ + -35.16362654035, + -8.89624768526 + ], + [ + -35.1635963437, + -8.89526318235 + ], + [ + -35.16552892912, + -8.89526318235 + ], + [ + -35.16549873247, + -8.89314500045 + ], + [ + -35.16794466089, + -8.89314500045 + ], + [ + -35.16791446424, + -8.89147431313 + ], + [ + -35.17023960607, + -8.89153398066 + ], + [ + -35.17026980272, + -8.89040029582 + ], + [ + -35.17301769761, + -8.89043012968 + ], + [ + -35.17301769761, + -8.88875942997 + ], + [ + -35.17790955445, + -8.88875942997 + ], + [ + -35.17793975109, + -8.88795391132 + ], + [ + -35.17893624045, + -8.88792407726 + ], + [ + -35.17893624045, + -8.8889085999 + ], + [ + -35.17966095998, + -8.88893843387 + ], + [ + -35.17978174657, + -8.88858042598 + ], + [ + -35.18098961245, + -8.88861025998 + ], + [ + -35.18098961245, + -8.88816274965 + ], + [ + -35.1851869464, + -8.88816274965 + ], + [ + -35.1851869464, + -8.88896826785 + ], + [ + -35.18591166594, + -8.88899810182 + ], + [ + -35.18591166594, + -8.88971411645 + ], + [ + -35.18932388706, + -8.88971411645 + ], + [ + -35.1894748703, + -8.88929644142 + ], + [ + -35.19013919653, + -8.88926660747 + ], + [ + -35.19016939318, + -8.88831191982 + ], + [ + -35.19071293283, + -8.88831191982 + ], + [ + -35.19077332612, + -8.8878942432 + ], + [ + -35.1915282423, + -8.88792407726 + ], + [ + -35.19155843895, + -8.88619369772 + ], + [ + -35.19753737508, + -8.8860743609 + ], + [ + -35.19756757173, + -8.88729756147 + ], + [ + -35.19968133703, + -8.88729756147 + ], + [ + -35.19974173032, + -8.88777490693 + ], + [ + -35.20079861297, + -8.88777490693 + ], + [ + -35.20079861297, + -8.88822241773 + ], + [ + -35.20330493468, + -8.88822241773 + ], + [ + -35.20336532798, + -8.88869976198 + ], + [ + -35.20563007651, + -8.88861025998 + ], + [ + -35.20556968322, + -8.88983345208 + ], + [ + -35.20741167869, + -8.88980361818 + ], + [ + -35.20744187534, + -8.89022129263 + ], + [ + -35.21124665288, + -8.8902511265 + ], + [ + -35.21127684953, + -8.8876854047 + ], + [ + -35.21245451877, + -8.88777490693 + ], + [ + -35.21248471541, + -8.88861025998 + ], + [ + -35.21622909966, + -8.88858042598 + ], + [ + -35.21622909966, + -8.88747656609 + ], + [ + -35.21870522472, + -8.887446732 + ], + [ + -35.21870522472, + -8.88896826785 + ], + [ + -35.22136252967, + -8.88896826785 + ], + [ + -35.22263078885, + -8.88792407726 + ], + [ + -35.22401983462, + -8.88747656609 + ], + [ + -35.22453317762, + -8.88762573654 + ], + [ + -35.22643556639, + -8.88717822501 + ], + [ + -35.22706969598, + -8.88598485826 + ], + [ + -35.2331090254, + -8.88446331002 + ], + [ + -35.23932953471, + -8.88338927217 + ], + [ + -35.24129231678, + -8.88416496649 + ], + [ + -35.25010973774, + -8.88514949923 + ], + [ + -35.25623965711, + -8.88505999636 + ], + [ + -35.26167505359, + -8.88294175546 + ], + [ + -35.2616146603, + -8.88094284086 + ], + [ + -35.26406058872, + -8.88109201397 + ], + [ + -35.26877126567, + -8.87930193267 + ], + [ + -35.27420666215, + -8.87748200772 + ], + [ + -35.27810202963, + -8.87518471252 + ], + [ + -35.28498686518, + -8.87506537212 + ], + [ + -35.28501706183, + -8.875811249 + ], + [ + -35.28809711983, + -8.87578141395 + ], + [ + -35.29404585932, + -8.87545322829 + ], + [ + -35.30781553041, + -8.87208184942 + ], + [ + -35.31756904744, + -8.86960550716 + ], + [ + -35.32783590746, + -8.86715898394 + ], + [ + -35.33206343806, + -8.8661445671 + ], + [ + -35.34103184226, + -8.86375769289 + ], + [ + -35.34710136833, + -8.86244490546 + ], + [ + -35.3522046017, + -8.86113211335 + ], + [ + -35.35256696146, + -8.86390687298 + ], + [ + -35.34903395375, + -8.86611473127 + ], + [ + -35.34495740639, + -8.87205201407 + ], + [ + -35.34326639415, + -8.87488636144 + ], + [ + -35.3431758042, + -8.8756919088 + ], + [ + -35.34380993379, + -8.87667646429 + ], + [ + -35.34480642315, + -8.87679580417 + ], + [ + -35.34888297051, + -8.87721349344 + ], + [ + -35.35042299952, + -8.87781019157 + ], + [ + -35.35253676482, + -8.87891408057 + ], + [ + -35.35398620388, + -8.88010747033 + ], + [ + -35.35576780606, + -8.88252407272 + ], + [ + -35.35754940824, + -8.88395612587 + ], + [ + -35.36035769642, + -8.88511966494 + ], + [ + -35.36114280925, + -8.88508983065 + ], + [ + -35.36120320254, + -8.88586552137 + ], + [ + -35.36174674219, + -8.8858953556 + ], + [ + -35.36177693884, + -8.88777490693 + ], + [ + -35.36253185502, + -8.88783457507 + ], + [ + -35.36247146172, + -8.89099697249 + ], + [ + -35.36310559131, + -8.89111630771 + ], + [ + -35.36310559131, + -8.89481568015 + ], + [ + -35.36440404714, + -8.89487534714 + ], + [ + -35.36506837338, + -8.8966951857 + ], + [ + -35.3663668292, + -8.90021550347 + ], + [ + -35.36754449844, + -8.90427277684 + ], + [ + -35.36793705485, + -8.90782285411 + ], + [ + -35.36863157774, + -8.90916531133 + ], + [ + -35.37207399551, + -8.91155188976 + ], + [ + -35.37409717087, + -8.91349097325 + ], + [ + -35.37276851839, + -8.91599685052 + ], + [ + -35.37261753516, + -8.91817456324 + ], + [ + -35.37083593298, + -8.92229129973 + ], + [ + -35.37062455645, + -8.92485677869 + ], + [ + -35.37234576533, + -8.93037548043 + ], + [ + -35.37153045586, + -8.93192666805 + ], + [ + -35.37153045586, + -8.93362700074 + ], + [ + -35.37171163574, + -8.93386564329 + ], + [ + -35.37171163574, + -8.94362002373 + ], + [ + -35.36817862803, + -8.94376917125 + ], + [ + -35.36814843138, + -8.9450518374 + ], + [ + -35.36926570733, + -8.94511149618 + ], + [ + -35.36920531403, + -8.94863134694 + ], + [ + -35.37077553968, + -8.94872083423 + ], + [ + -35.37080573633, + -8.95182304658 + ], + [ + -35.3721947821, + -8.9517633889 + ], + [ + -35.37222497875, + -8.9552831753 + ], + [ + -35.37319127145, + -8.95531300385 + ], + [ + -35.37313087816, + -8.95737116808 + ], + [ + -35.37439913734, + -8.95737116808 + ], + [ + -35.37445953063, + -8.96011536892 + ], + [ + -35.37566739652, + -8.96017502523 + ], + [ + -35.37569759317, + -8.96205419397 + ], + [ + -35.3768752624, + -8.96208402197 + ], + [ + -35.3769356557, + -8.964440426 + ], + [ + -35.37781135847, + -8.964440426 + ], + [ + -35.37775096517, + -8.96617043441 + ], + [ + -35.38074043324, + -8.96617043441 + ], + [ + -35.38074043324, + -8.96330696774 + ], + [ + -35.38288439518, + -8.96327713984 + ], + [ + -35.38291459183, + -8.95981708722 + ], + [ + -35.38542091354, + -8.9598469154 + ], + [ + -35.38542091354, + -8.95722202613 + ], + [ + -35.38723271237, + -8.95722202613 + ], + [ + -35.38720251572, + -8.95406020253 + ], + [ + -35.38946726426, + -8.95409003118 + ], + [ + -35.38946726426, + -8.9508386936 + ], + [ + -35.39158102956, + -8.95086852252 + ], + [ + -35.39158102956, + -8.94791544785 + ], + [ + -35.39586895345, + -8.94791544785 + ], + [ + -35.39580856016, + -8.94651347472 + ], + [ + -35.39719760593, + -8.94654330399 + ], + [ + -35.39710701598, + -8.94472371393 + ], + [ + -35.39837527516, + -8.94469388451 + ], + [ + -35.39837527516, + -8.93914556972 + ], + [ + -35.4010741005, + -8.93915302719 + ], + [ + -35.40106277676, + -8.93895167547 + ], + [ + -35.4016667097, + -8.93893676052 + ], + [ + -35.40172710299, + -8.93687849204 + ], + [ + -35.40236123258, + -8.93687849204 + ], + [ + -35.40236123258, + -8.9362818903 + ], + [ + -35.40323693535, + -8.93640121073 + ], + [ + -35.40329732865, + -8.93583443836 + ], + [ + -35.40426362135, + -8.93580460821 + ], + [ + -35.40420322806, + -8.93362700074 + ], + [ + -35.40574325706, + -8.93359717041 + ], + [ + -35.40577345371, + -8.93124056665 + ], + [ + -35.40809859554, + -8.93133005821 + ], + [ + -35.40803820225, + -8.92927174677 + ], + [ + -35.40936685472, + -8.92930157745 + ], + [ + -35.40927626478, + -8.92739240878 + ], + [ + -35.41084649043, + -8.92742223962 + ], + [ + -35.41084649043, + -8.92542356812 + ], + [ + -35.41238651943, + -8.92545339912 + ], + [ + -35.41235632279, + -8.92390218397 + ], + [ + -35.41335281214, + -8.92387235285 + ], + [ + -35.41329241885, + -8.92193332448 + ], + [ + -35.41522500426, + -8.92196315577 + ], + [ + -35.41522500426, + -8.91999428582 + ], + [ + -35.41655365674, + -8.92002411726 + ], + [ + -35.41655365674, + -8.91754809927 + ], + [ + -35.4196035181, + -8.91754809927 + ], + [ + -35.41966391139, + -8.91963630832 + ], + [ + -35.42183806999, + -8.91963630832 + ], + [ + -35.42186826663, + -8.92264927462 + ], + [ + -35.42389144199, + -8.92267910584 + ], + [ + -35.42392163864, + -8.92512525801 + ], + [ + -35.4253710777, + -8.92512525801 + ], + [ + -35.4253710777, + -8.92766088623 + ], + [ + -35.42724326982, + -8.92766088623 + ], + [ + -35.42727346647, + -8.92986835998 + ], + [ + -35.42814916924, + -8.92983852934 + ], + [ + -35.42817936588, + -8.93159853276 + ], + [ + -35.42987037812, + -8.93153887177 + ], + [ + -35.42990057477, + -8.93407445539 + ], + [ + -35.43141040713, + -8.93407445539 + ], + [ + -35.43141040713, + -8.9355957971 + ], + [ + -35.43225591325, + -8.93556596693 + ], + [ + -35.43228610989, + -8.93586426851 + ], + [ + -35.43340338584, + -8.93583443836 + ], + [ + -35.43340338584, + -8.94001063511 + ], + [ + -35.4343394819, + -8.94004046492 + ], + [ + -35.4343394819, + -8.94096518765 + ], + [ + -35.43530577461, + -8.94096518765 + ], + [ + -35.43533597125, + -8.94260581897 + ], + [ + -35.43566813437, + -8.94263564856 + ], + [ + -35.43569833102, + -8.94329189897 + ], + [ + -35.43627206732, + -8.94332172851 + ], + [ + -35.43624187067, + -8.94421661344 + ], + [ + -35.43729875332, + -8.94421661344 + ], + [ + -35.43726855667, + -8.94520098434 + ], + [ + -35.43823484938, + -8.94520098434 + ], + [ + -35.43826504603, + -8.94684159657 + ], + [ + -35.4390199622, + -8.94687142582 + ], + [ + -35.4390199622, + -8.94797510616 + ], + [ + -35.44025802474, + -8.94797510616 + ], + [ + -35.44031841803, + -8.94952621882 + ], + [ + -35.44158667721, + -8.94955604785 + ], + [ + -35.4416470705, + -8.95152475808 + ], + [ + -35.4427341498, + -8.95152475808 + ], + [ + -35.4427341498, + -8.95334431412 + ], + [ + -35.44436476875, + -8.95334431412 + ], + [ + -35.44436476875, + -8.95498488964 + ], + [ + -35.44569342122, + -8.95501471821 + ], + [ + -35.44563302793, + -8.9567447715 + ], + [ + -35.44720325358, + -8.95680442836 + ], + [ + -35.44717305693, + -8.95865378627 + ], + [ + -35.44895465911, + -8.95871344282 + ], + [ + -35.44892446246, + -8.95999605627 + ], + [ + -35.45100803112, + -8.95993639993 + ], + [ + -35.45097783447, + -8.96101021254 + ], + [ + -35.45469202207, + -8.96095055636 + ], + [ + -35.45466182542, + -8.96235247383 + ], + [ + -35.46048977832, + -8.96235247383 + ], + [ + -35.46055017161, + -8.96557388071 + ], + [ + -35.46652910774, + -8.96548439758 + ], + [ + -35.46658950104, + -8.9688549139 + ], + [ + -35.46770677698, + -8.96882508646 + ], + [ + -35.46773697363, + -8.97052524668 + ], + [ + -35.47389708964, + -8.97052524668 + ], + [ + -35.47398767958, + -8.97529758369 + ], + [ + -35.47791324371, + -8.97520810295 + ], + [ + -35.47797363701, + -8.97816095576 + ], + [ + -35.48410355637, + -8.97813112908 + ], + [ + -35.48416394967, + -8.98200857638 + ], + [ + -35.49083740868, + -8.98194892366 + ], + [ + -35.49083740868, + -8.98561754775 + ], + [ + -35.49720890123, + -8.98561754775 + ], + [ + -35.49720890123, + -8.99068794266 + ], + [ + -35.5022517413, + -8.99056864006 + ], + [ + -35.50234233124, + -8.99566879088 + ], + [ + -35.5064792719, + -8.99566879088 + ], + [ + -35.50650946855, + -8.99856182695 + ], + [ + -35.51203545497, + -8.99850217696 + ], + [ + -35.51206565162, + -9.00163378838 + ], + [ + -35.51662534534, + -9.00166361312 + ], + [ + -35.51665554198, + -9.00616712068 + ], + [ + -35.52118503905, + -9.00613729631 + ], + [ + -35.5212152357, + -9.00738991769 + ], + [ + -35.5312707192, + -9.00733026915 + ], + [ + -35.5312707192, + -9.01064074815 + ], + [ + -35.54818084159, + -9.01049162813 + ], + [ + -35.54818084159, + -9.01359331193 + ], + [ + -35.56968085435, + -9.01344419313 + ], + [ + -35.56974124764, + -9.01738090893 + ], + [ + -35.58574547062, + -9.01732126204 + ], + [ + -35.58577566727, + -9.01994571582 + ], + [ + -35.60957062521, + -9.01982642288 + ], + [ + -35.60954042856, + -9.02301749544 + ], + [ + -35.62910785591, + -9.02286838053 + ], + [ + -35.62904746261, + -9.02507527493 + ], + [ + -35.65220829096, + -9.02489633805 + ], + [ + -35.65223848761, + -9.02758038195 + ], + [ + -35.67552010255, + -9.02740144631 + ], + [ + -35.6755502992, + -9.03056262951 + ], + [ + -35.68294847774, + -9.03056262951 + ], + [ + -35.68297867439, + -9.03435004835 + ], + [ + -35.69128275235, + -9.03432022631 + ], + [ + -35.69128275235, + -9.03766027947 + ], + [ + -35.69949624037, + -9.03760063593 + ], + [ + -35.69949624037, + -9.04034422831 + ], + [ + -35.70668304239, + -9.04031440677 + ], + [ + -35.70671323904, + -9.04517528582 + ], + [ + -35.71115214617, + -9.04517528582 + ], + [ + -35.71133332605, + -9.06691424164 + ], + [ + -35.70870621775, + -9.06691424164 + ], + [ + -35.70876661104, + -9.07869268732 + ], + [ + -35.7065622558, + -9.07872250568 + ], + [ + -35.7065622558, + -9.08653483029 + ], + [ + -35.70429750727, + -9.08653483029 + ], + [ + -35.70432770391, + -9.09103727588 + ], + [ + -35.69991899343, + -9.09106709321 + ], + [ + -35.69988879679, + -9.09559929877 + ], + [ + -35.69535929972, + -9.09556948181 + ], + [ + -35.69541969301, + -9.1000121806 + ], + [ + -35.69092039259, + -9.10013144692 + ], + [ + -35.69101098253, + -9.10206951907 + ], + [ + -35.63366754962, + -9.10245713224 + ], + [ + -35.63369774627, + -9.10540894182 + ], + [ + -35.62584661802, + -9.10552820634 + ], + [ + -35.62590701131, + -9.10964280796 + ], + [ + -35.6223136103, + -9.10964280796 + ], + [ + -35.62234380695, + -9.11202806257 + ], + [ + -35.61989787853, + -9.11199824698 + ], + [ + -35.61989787853, + -9.11500960843 + ], + [ + -35.61473425187, + -9.11506923909 + ], + [ + -35.61473425187, + -9.11706686056 + ], + [ + -35.61177498045, + -9.11700723023 + ], + [ + -35.6118051771, + -9.11819983493 + ], + [ + -35.60960082186, + -9.11825946506 + ], + [ + -35.60963101851, + -9.12571315292 + ], + [ + -35.59975671489, + -9.12583241066 + ], + [ + -35.59978691154, + -9.12923123948 + ], + [ + -35.59634449377, + -9.12926105363 + ], + [ + -35.59640488706, + -9.13501513686 + ], + [ + -35.59196597993, + -9.13507476418 + ], + [ + -35.59208676652, + -9.14899746988 + ], + [ + -35.59018437775, + -9.14896765739 + ], + [ + -35.5901541811, + -9.15108433815 + ], + [ + -35.60159871037, + -9.15105452583 + ], + [ + -35.60153831707, + -9.14911671983 + ], + [ + -35.60552427449, + -9.14911671983 + ], + [ + -35.60549407785, + -9.14556901687 + ], + [ + -35.61183537375, + -9.14553920409 + ], + [ + -35.61183537375, + -9.14234922223 + ], + [ + -35.61760293335, + -9.14237903528 + ], + [ + -35.6175727367, + -9.13853313161 + ], + [ + -35.62400462254, + -9.13853313161 + ], + [ + -35.62397442589, + -9.13465737274 + ], + [ + -35.63176516085, + -9.13465737274 + ], + [ + -35.63164437426, + -9.13063250159 + ], + [ + -35.6392237327, + -9.13060268756 + ], + [ + -35.63919353605, + -9.12878402702 + ], + [ + -35.66386419676, + -9.12869458446 + ], + [ + -35.66380380346, + -9.12610074043 + ], + [ + -35.71278276511, + -9.12577278179 + ], + [ + -35.71275256846, + -9.12407335495 + ], + [ + -35.72425749102, + -9.12401372579 + ], + [ + -35.71963740401, + -9.15323081845 + ], + [ + -35.72111703972, + -9.15320100631 + ], + [ + -35.72123782631, + -9.17257836825 + ], + [ + -35.72066409001, + -9.17254855774 + ], + [ + -35.72081507325, + -9.18557551362 + ], + [ + -35.71211843887, + -9.18566494187 + ], + [ + -35.71329610811, + -9.34415573683 + ], + [ + -35.69040704959, + -9.34433451257 + ], + [ + -35.69064862276, + -9.3718946735 + ], + [ + -35.68898780717, + -9.3718946735 + ], + [ + -35.68901800382, + -9.37597637093 + ], + [ + -35.68756856476, + -9.37597637093 + ], + [ + -35.6876591547, + -9.38232227231 + ], + [ + -35.6849716531, + -9.38235206501 + ], + [ + -35.6850320464, + -9.39093225328 + ], + [ + -35.68168021856, + -9.39099183718 + ], + [ + -35.68177080851, + -9.39936327296 + ], + [ + -35.67715072149, + -9.39933348173 + ], + [ + -35.67724131144, + -9.40889633403 + ], + [ + -35.6729231909, + -9.40892612443 + ], + [ + -35.67301378084, + -9.41753544361 + ], + [ + -35.6697223463, + -9.41759502292 + ], + [ + -35.66978273959, + -9.42498277846 + ], + [ + -35.66721602459, + -9.42498277846 + ], + [ + -35.66727641788, + -9.43269804791 + ], + [ + -35.6607539421, + -9.43287677797 + ], + [ + -35.6607539421, + -9.43704711987 + ], + [ + -35.65130239155, + -9.43707690785 + ], + [ + -35.65142317814, + -9.44211103864 + ], + [ + -35.64514227553, + -9.44217061371 + ], + [ + -35.64523286547, + -9.44651956613 + ], + [ + -35.63644564116, + -9.44660892759 + ], + [ + -35.63644564116, + -9.44991528532 + ], + [ + -35.62711487719, + -9.4500046459 + ], + [ + -35.62726586043, + -9.46504667925 + ], + [ + -35.62086417124, + -9.46510625035 + ], + [ + -35.62092456453, + -9.47219513764 + ], + [ + -35.60938944533, + -9.47222492257 + ], + [ + -35.60938944533, + -9.47529275674 + ], + [ + -35.59673705018, + -9.47535232607 + ], + [ + -35.59673705018, + -9.47350567221 + ], + [ + -35.57843788202, + -9.47371416589 + ], + [ + -35.57846807866, + -9.47594801874 + ], + [ + -35.57267032241, + -9.47603737255 + ], + [ + -35.57270051906, + -9.48041568084 + ], + [ + -35.56823141529, + -9.48047524927 + ], + [ + -35.56826161193, + -9.48881472807 + ], + [ + -35.54168856246, + -9.48893386201 + ], + [ + -35.54162816916, + -9.48071352291 + ], + [ + -35.523842344, + -9.48089222803 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "arapiraca_al", + "name": "Arapiraca AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Arapiraca&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.60875162133, + -9.83071802463 + ], + [ + -36.60783704041, + -9.74047303963 + ], + [ + -36.61718167158, + -9.74051223078 + ], + [ + -36.61630685505, + -9.65075247124 + ], + [ + -36.70736730351, + -9.64977242883 + ], + [ + -36.70832164882, + -9.74043384847 + ], + [ + -36.69897701764, + -9.74047303963 + ], + [ + -36.69997112734, + -9.82967973955 + ], + [ + -36.60875162133, + -9.83071802463 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "CRAIG-Auvergne-2016", + "name": "Auvergne - 2016 - 25 cm - CRAIG", + "type": "tms", + "template": "http://tiles.craig.fr/ortho/tms/1.0.0/ortho_2016/webmercator/{zoom-1}/{x}/{-y}.jpeg", + "endDate": "2016-01-01T00:00:00.000Z", + "startDate": "2016-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 2.493891, + 46.6682909 + ], + [ + 2.7136176, + 46.8414109 + ], + [ + 3.6474555, + 46.8075834 + ], + [ + 4.0484565, + 46.4832686 + ], + [ + 4.0374701, + 46.2482538 + ], + [ + 4.4604438, + 46.2596487 + ], + [ + 4.4934028, + 46.1455925 + ], + [ + 4.3835395, + 46.0922853 + ], + [ + 4.4549506, + 45.6908367 + ], + [ + 4.7625678, + 45.5717589 + ], + [ + 4.8120063, + 45.344428 + ], + [ + 4.2242377, + 44.8441895 + ], + [ + 3.8616889, + 44.6959969 + ], + [ + 3.3782905, + 44.8052283 + ], + [ + 3.3343451, + 44.8909082 + ], + [ + 3.1805365, + 44.8247122 + ], + [ + 3.0322211, + 44.6061167 + ], + [ + 2.927851, + 44.6022057 + ], + [ + 2.7191108, + 44.8519786 + ], + [ + 2.5103705, + 44.6022057 + ], + [ + 2.125849, + 44.5826468 + ], + [ + 2.0049994, + 44.9725746 + ], + [ + 2.3071235, + 45.4678399 + ], + [ + 2.4334662, + 45.4408666 + ], + [ + 2.4114936, + 45.7291949 + ], + [ + 2.3455756, + 45.8240183 + ], + [ + 2.5488227, + 45.9797905 + ], + [ + 2.4609321, + 46.2216563 + ], + [ + 2.2137397, + 46.3393472 + ], + [ + 2.2782844, + 46.5390305 + ], + [ + 2.5488227, + 46.5664179 + ], + [ + 2.493891, + 46.6682909 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", + "terms_text": "CRAIG - IGN -TopoGEODIS - Feder Auvergne-Rhône-Alpes 2016" + }, + { + "id": "BANO", + "name": "BANO", + "type": "tms", + "template": "http://{switch:a,b,c}.layers.openstreetmap.fr/bano/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 12, + 20 + ], + "polygon": [ + [ + [ + -2.7, + 43.9 + ], + [ + -6.3, + 48.98 + ], + [ + -2.25, + 50.09 + ], + [ + 1.31, + 50.88 + ], + [ + 2.358164, + 51.32937 + ], + [ + 2.548804, + 51.09759 + ], + [ + 2.570482, + 51.07409 + ], + [ + 2.587412, + 51.01763 + ], + [ + 2.598448, + 51.0051 + ], + [ + 2.615575, + 50.99749 + ], + [ + 2.639859, + 50.95766 + ], + [ + 2.642247, + 50.94578 + ], + [ + 2.624519, + 50.9256 + ], + [ + 2.61962, + 50.91067 + ], + [ + 2.623964, + 50.86071 + ], + [ + 2.627811, + 50.85054 + ], + [ + 2.637859, + 50.83696 + ], + [ + 2.651102, + 50.82906 + ], + [ + 2.732666, + 50.81738 + ], + [ + 2.79995, + 50.73795 + ], + [ + 2.816552, + 50.73092 + ], + [ + 2.852648, + 50.73335 + ], + [ + 2.890719, + 50.7162 + ], + [ + 2.904925, + 50.71536 + ], + [ + 2.916096, + 50.72418 + ], + [ + 2.935084, + 50.75592 + ], + [ + 3.007184, + 50.78377 + ], + [ + 3.082183, + 50.78749 + ], + [ + 3.092439, + 50.79092 + ], + [ + 3.114119, + 50.80566 + ], + [ + 3.148768, + 50.80195 + ], + [ + 3.215401, + 50.73111 + ], + [ + 3.221487, + 50.7267 + ], + [ + 3.270507, + 50.70375 + ], + [ + 3.275448, + 50.67757 + ], + [ + 3.265761, + 50.6604 + ], + [ + 3.265877, + 50.64054 + ], + [ + 3.289219, + 50.60028 + ], + [ + 3.292195, + 50.55037 + ], + [ + 3.305598, + 50.53267 + ], + [ + 3.375514, + 50.50839 + ], + [ + 3.389804, + 50.50884 + ], + [ + 3.474798, + 50.54445 + ], + [ + 3.52173, + 50.53459 + ], + [ + 3.532662, + 50.51873 + ], + [ + 3.547788, + 50.51012 + ], + [ + 3.615234, + 50.50558 + ], + [ + 3.673778, + 50.45642 + ], + [ + 3.684152, + 50.35277 + ], + [ + 3.690097, + 50.34044 + ], + [ + 3.702583, + 50.33482 + ], + [ + 3.715758, + 50.33854 + ], + [ + 3.749349, + 50.36279 + ], + [ + 3.841089, + 50.36558 + ], + [ + 3.901887, + 50.3436 + ], + [ + 3.913173, + 50.34291 + ], + [ + 4.026717, + 50.36904 + ], + [ + 4.13761, + 50.29984 + ], + [ + 4.143881, + 50.29727 + ], + [ + 4.214438, + 50.28167 + ], + [ + 4.229037, + 50.26664 + ], + [ + 4.230782, + 50.25233 + ], + [ + 4.170843, + 50.18579 + ], + [ + 4.166015, + 50.16888 + ], + [ + 4.176401, + 50.1547 + ], + [ + 4.211948, + 50.13602 + ], + [ + 4.240742, + 50.07102 + ], + [ + 4.231934, + 50.05551 + ], + [ + 4.181645, + 50.03436 + ], + [ + 4.17177, + 50.02537 + ], + [ + 4.169755, + 50.01217 + ], + [ + 4.176498, + 50.00065 + ], + [ + 4.206331, + 49.97546 + ], + [ + 4.221639, + 49.97089 + ], + [ + 4.308774, + 49.98145 + ], + [ + 4.445423, + 49.9523 + ], + [ + 4.454691, + 49.95251 + ], + [ + 4.658098, + 50.00609 + ], + [ + 4.669358, + 50.01392 + ], + [ + 4.672929, + 50.02716 + ], + [ + 4.66924, + 50.06972 + ], + [ + 4.695168, + 50.10472 + ], + [ + 4.831227, + 50.17941 + ], + [ + 4.881497, + 50.16436 + ], + [ + 4.904786, + 50.14451 + ], + [ + 4.904264, + 50.12639 + ], + [ + 4.880762, + 50.0815 + ], + [ + 4.862772, + 50.0745 + ], + [ + 4.851037, + 50.06216 + ], + [ + 4.843307, + 50.03884 + ], + [ + 4.843307, + 50.03883 + ], + [ + 4.843295, + 50.03881 + ], + [ + 4.826781, + 49.989 + ], + [ + 4.826618, + 49.97692 + ], + [ + 4.833433, + 49.96696 + ], + [ + 4.896542, + 49.91753 + ], + [ + 4.897546, + 49.89424 + ], + [ + 4.879134, + 49.86942 + ], + [ + 4.876249, + 49.85111 + ], + [ + 4.889238, + 49.81266 + ], + [ + 4.897691, + 49.80204 + ], + [ + 4.910979, + 49.79926 + ], + [ + 4.995343, + 49.81116 + ], + [ + 5.01867, + 49.79272 + ], + [ + 5.026862, + 49.78886 + ], + [ + 5.099438, + 49.77323 + ], + [ + 5.134584, + 49.73462 + ], + [ + 5.141201, + 49.72984 + ], + [ + 5.187609, + 49.70906 + ], + [ + 5.196025, + 49.70732 + ], + [ + 5.281572, + 49.70836 + ], + [ + 5.333628, + 49.67308 + ], + [ + 5.343996, + 49.65049 + ], + [ + 5.354398, + 49.64041 + ], + [ + 5.431412, + 49.60791 + ], + [ + 5.482051, + 49.52815 + ], + [ + 5.492943, + 49.51979 + ], + [ + 5.50666, + 49.52042 + ], + [ + 5.55401, + 49.54025 + ], + [ + 5.59311, + 49.53424 + ], + [ + 5.607602, + 49.53761 + ], + [ + 5.640997, + 49.56095 + ], + [ + 5.706759, + 49.55267 + ], + [ + 5.715782, + 49.55361 + ], + [ + 5.775261, + 49.57414 + ], + [ + 5.839902, + 49.55321 + ], + [ + 5.861263, + 49.52038 + ], + [ + 5.875997, + 49.5114 + ], + [ + 5.975162, + 49.50129 + ], + [ + 5.998015, + 49.47317 + ], + [ + 6.016266, + 49.46597 + ], + [ + 6.08635, + 49.47562 + ], + [ + 6.093186, + 49.47787 + ], + [ + 6.173966, + 49.52187 + ], + [ + 6.246435, + 49.52511 + ], + [ + 6.333999, + 49.48235 + ], + [ + 6.344229, + 49.48037 + ], + [ + 6.435145, + 49.487 + ], + [ + 6.5451, + 49.44384 + ], + [ + 6.606389, + 49.37868 + ], + [ + 6.604972, + 49.33739 + ], + [ + 6.616267, + 49.31869 + ], + [ + 6.670133, + 49.29269 + ], + [ + 6.729955, + 49.22917 + ], + [ + 6.743276, + 49.19086 + ], + [ + 6.760259, + 49.17752 + ], + [ + 6.809042, + 49.17284 + ], + [ + 6.824733, + 49.17826 + ], + [ + 6.830928, + 49.19366 + ], + [ + 6.829819, + 49.21802 + ], + [ + 6.851186, + 49.23136 + ], + [ + 6.884528, + 49.2239 + ], + [ + 6.893221, + 49.22389 + ], + [ + 6.937527, + 49.23369 + ], + [ + 7.040549, + 49.19794 + ], + [ + 7.046296, + 49.17503 + ], + [ + 7.054777, + 49.16313 + ], + [ + 7.069081, + 49.16018 + ], + [ + 7.104945, + 49.16634 + ], + [ + 7.143153, + 49.14159 + ], + [ + 7.153499, + 49.13839 + ], + [ + 7.286827, + 49.13488 + ], + [ + 7.29893, + 49.13856 + ], + [ + 7.360948, + 49.18259 + ], + [ + 7.450116, + 49.19517 + ], + [ + 7.50113, + 49.17672 + ], + [ + 7.543788, + 49.10572 + ], + [ + 7.557903, + 49.09626 + ], + [ + 7.629604, + 49.08527 + ], + [ + 7.647217, + 49.06722 + ], + [ + 7.661197, + 49.06119 + ], + [ + 7.754008, + 49.05963 + ], + [ + 7.760731, + 49.06067 + ], + [ + 7.802913, + 49.07489 + ], + [ + 7.855253, + 49.05329 + ], + [ + 7.867297, + 49.05227 + ], + [ + 7.93826, + 49.06832 + ], + [ + 8.080685, + 49.00688 + ], + [ + 8.222498, + 48.98787 + ], + [ + 8.23704, + 48.97683 + ], + [ + 8.235894, + 48.95817 + ], + [ + 8.208878, + 48.94863 + ], + [ + 8.200888, + 48.94339 + ], + [ + 8.158243, + 48.89753 + ], + [ + 8.100873, + 48.7993 + ], + [ + 7.990709, + 48.74478 + ], + [ + 7.985341, + 48.7409 + ], + [ + 7.904217, + 48.65865 + ], + [ + 7.856051, + 48.63606 + ], + [ + 7.848405, + 48.62977 + ], + [ + 7.818424, + 48.58883 + ], + [ + 7.81456, + 48.57704 + ], + [ + 7.814491, + 48.50968 + ], + [ + 7.785465, + 48.48337 + ], + [ + 7.780554, + 48.47652 + ], + [ + 7.745059, + 48.39484 + ], + [ + 7.743573, + 48.38427 + ], + [ + 7.751593, + 48.32322 + ], + [ + 7.71085, + 48.29841 + ], + [ + 7.702411, + 48.28803 + ], + [ + 7.676613, + 48.21555 + ], + [ + 7.596051, + 48.11698 + ], + [ + 7.591652, + 48.10648 + ], + [ + 7.585216, + 48.04694 + ], + [ + 7.591268, + 48.03035 + ], + [ + 7.624373, + 47.99865 + ], + [ + 7.632049, + 47.97081 + ], + [ + 7.575545, + 47.87436 + ], + [ + 7.572802, + 47.86435 + ], + [ + 7.572673, + 47.83631 + ], + [ + 7.545808, + 47.78793 + ], + [ + 7.544185, + 47.77232 + ], + [ + 7.557581, + 47.72899 + ], + [ + 7.535257, + 47.6989 + ], + [ + 7.531364, + 47.68564 + ], + [ + 7.536998, + 47.67302 + ], + [ + 7.600164, + 47.60822 + ], + [ + 7.589675, + 47.56755 + ], + [ + 7.554237, + 47.55128 + ], + [ + 7.54511, + 47.54283 + ], + [ + 7.512557, + 47.48439 + ], + [ + 7.387471, + 47.42111 + ], + [ + 7.326527, + 47.4273 + ], + [ + 7.244354, + 47.40939 + ], + [ + 7.167083, + 47.4335 + ], + [ + 7.152115, + 47.47612 + ], + [ + 7.14279, + 47.48707 + ], + [ + 7.128529, + 47.48893 + ], + [ + 7.080105, + 47.47718 + ], + [ + 7.035575, + 47.48695 + ], + [ + 7.021019, + 47.48458 + ], + [ + 7.012048, + 47.47287 + ], + [ + 7.002995, + 47.44095 + ], + [ + 6.955099, + 47.40808 + ], + [ + 6.947157, + 47.39698 + ], + [ + 6.94818, + 47.38337 + ], + [ + 6.957691, + 47.37359 + ], + [ + 6.971263, + 47.37218 + ], + [ + 7.018004, + 47.38386 + ], + [ + 7.05623, + 47.37035 + ], + [ + 7.070073, + 47.35005 + ], + [ + 7.05958, + 47.32257 + ], + [ + 6.974243, + 47.27856 + ], + [ + 6.963469, + 47.26233 + ], + [ + 6.961339, + 47.23479 + ], + [ + 6.89443, + 47.19393 + ], + [ + 6.889128, + 47.18922 + ], + [ + 6.855453, + 47.14636 + ], + [ + 6.769073, + 47.10751 + ], + [ + 6.760108, + 47.09953 + ], + [ + 6.725613, + 47.0418 + ], + [ + 6.623551, + 46.9811 + ], + [ + 6.481204, + 46.9445 + ], + [ + 6.46892, + 46.93522 + ], + [ + 6.466862, + 46.91997 + ], + [ + 6.475476, + 46.88771 + ], + [ + 6.453496, + 46.8239 + ], + [ + 6.45644, + 46.80534 + ], + [ + 6.467224, + 46.79104 + ], + [ + 6.460984, + 46.76887 + ], + [ + 6.15817, + 46.59343 + ], + [ + 6.148724, + 46.58069 + ], + [ + 6.15152, + 46.56508 + ], + [ + 6.165489, + 46.54399 + ], + [ + 6.158111, + 46.52456 + ], + [ + 6.101739, + 46.46979 + ], + [ + 6.095717, + 46.45418 + ], + [ + 6.097044, + 46.43317 + ], + [ + 6.108289, + 46.41643 + ], + [ + 6.166216, + 46.38839 + ], + [ + 6.178173, + 46.36922 + ], + [ + 6.137482, + 46.31297 + ], + [ + 6.133713, + 46.30227 + ], + [ + 6.130383, + 46.23737 + ], + [ + 6.110298, + 46.22344 + ], + [ + 6.088648, + 46.23081 + ], + [ + 6.077173, + 46.23123 + ], + [ + 6.018573, + 46.21601 + ], + [ + 6.006813, + 46.20752 + ], + [ + 6.003882, + 46.19332 + ], + [ + 6.007866, + 46.16977 + ], + [ + 6.017834, + 46.15564 + ], + [ + 6.03509, + 46.15456 + ], + [ + 6.055639, + 46.16288 + ], + [ + 6.124683, + 46.15415 + ], + [ + 6.137776, + 46.15702 + ], + [ + 6.240258, + 46.22094 + ], + [ + 6.249058, + 46.23299 + ], + [ + 6.247073, + 46.24777 + ], + [ + 6.21148, + 46.31057 + ], + [ + 6.212186, + 46.32485 + ], + [ + 6.239462, + 46.36705 + ], + [ + 6.316478, + 46.41557 + ], + [ + 6.410826, + 46.42495 + ], + [ + 6.417483, + 46.42682 + ], + [ + 6.504978, + 46.46871 + ], + [ + 6.630473, + 46.47435 + ], + [ + 6.746646, + 46.45695 + ], + [ + 6.822442, + 46.42925 + ], + [ + 6.818324, + 46.38181 + ], + [ + 6.804843, + 46.36179 + ], + [ + 6.801885, + 46.34639 + ], + [ + 6.810949, + 46.33359 + ], + [ + 6.864911, + 46.30038 + ], + [ + 6.875036, + 46.28007 + ], + [ + 6.860917, + 46.2439 + ], + [ + 6.826978, + 46.21188 + ], + [ + 6.820746, + 46.19862 + ], + [ + 6.818627, + 46.16592 + ], + [ + 6.822593, + 46.15261 + ], + [ + 6.834266, + 46.14509 + ], + [ + 6.903819, + 46.12971 + ], + [ + 6.904911, + 46.09595 + ], + [ + 6.909323, + 46.08406 + ], + [ + 6.920006, + 46.07721 + ], + [ + 6.948976, + 46.0699 + ], + [ + 7.015561, + 46.00883 + ], + [ + 7.051911, + 45.93066 + ], + [ + 7.045335, + 45.92217 + ], + [ + 7.044967, + 45.92064 + ], + [ + 7.043936, + 45.92036 + ], + [ + 6.995822, + 45.85822 + ], + [ + 6.940965, + 45.83551 + ], + [ + 6.843757, + 45.82387 + ], + [ + 6.831016, + 45.81711 + ], + [ + 6.826141, + 45.80353 + ], + [ + 6.82787, + 45.73217 + ], + [ + 6.83174, + 45.72082 + ], + [ + 6.841405, + 45.71373 + ], + [ + 6.907294, + 45.69124 + ], + [ + 6.92419, + 45.66935 + ], + [ + 6.942468, + 45.66172 + ], + [ + 6.971313, + 45.66528 + ], + [ + 7.00597, + 45.64945 + ], + [ + 7.011511, + 45.63652 + ], + [ + 6.997797, + 45.60877 + ], + [ + 6.996431, + 45.59465 + ], + [ + 7.015803, + 45.52354 + ], + [ + 7.027743, + 45.5102 + ], + [ + 7.107198, + 45.47877 + ], + [ + 7.122797, + 45.44924 + ], + [ + 7.13304, + 45.44001 + ], + [ + 7.185604, + 45.41894 + ], + [ + 7.19515, + 45.40409 + ], + [ + 7.170749, + 45.35069 + ], + [ + 7.142319, + 45.32298 + ], + [ + 7.136488, + 45.30576 + ], + [ + 7.14458, + 45.25048 + ], + [ + 7.084166, + 45.20279 + ], + [ + 6.992792, + 45.19823 + ], + [ + 6.981064, + 45.19368 + ], + [ + 6.900091, + 45.12689 + ], + [ + 6.85843, + 45.11699 + ], + [ + 6.782826, + 45.14228 + ], + [ + 6.770557, + 45.14242 + ], + [ + 6.677507, + 45.11356 + ], + [ + 6.665295, + 45.10289 + ], + [ + 6.665008, + 45.08667 + ], + [ + 6.68237, + 45.04558 + ], + [ + 6.696016, + 45.03395 + ], + [ + 6.757442, + 45.01884 + ], + [ + 6.783751, + 44.9146 + ], + [ + 6.794195, + 44.90161 + ], + [ + 6.866981, + 44.86519 + ], + [ + 6.879801, + 44.86346 + ], + [ + 6.936325, + 44.87461 + ], + [ + 7.017954, + 44.84402 + ], + [ + 7.034535, + 44.82282 + ], + [ + 7.037114, + 44.75009 + ], + [ + 7.049604, + 44.73226 + ], + [ + 7.072236, + 44.72311 + ], + [ + 7.086508, + 44.6968 + ], + [ + 7.086656, + 44.68085 + ], + [ + 7.07671, + 44.67134 + ], + [ + 6.990071, + 44.67203 + ], + [ + 6.974128, + 44.66431 + ], + [ + 6.970564, + 44.64696 + ], + [ + 6.978189, + 44.61784 + ], + [ + 6.94659, + 44.57124 + ], + [ + 6.882347, + 44.53479 + ], + [ + 6.872327, + 44.5195 + ], + [ + 6.878925, + 44.50245 + ], + [ + 6.958945, + 44.43129 + ], + [ + 6.958723, + 44.42908 + ], + [ + 6.921668, + 44.41436 + ], + [ + 6.912225, + 44.40659 + ], + [ + 6.909075, + 44.39477 + ], + [ + 6.90972, + 44.38195 + ], + [ + 6.91637, + 44.36804 + ], + [ + 6.999091, + 44.29414 + ], + [ + 7.011806, + 44.256 + ], + [ + 7.019835, + 44.24558 + ], + [ + 7.032595, + 44.2424 + ], + [ + 7.073117, + 44.2461 + ], + [ + 7.165097, + 44.22112 + ], + [ + 7.245331, + 44.18544 + ], + [ + 7.260526, + 44.16682 + ], + [ + 7.275371, + 44.15947 + ], + [ + 7.338779, + 44.1574 + ], + [ + 7.362775, + 44.13834 + ], + [ + 7.377763, + 44.13416 + ], + [ + 7.56283, + 44.15792 + ], + [ + 7.5642, + 44.15836 + ], + [ + 7.564785, + 44.15817 + ], + [ + 7.605476, + 44.1634 + ], + [ + 7.616198, + 44.16827 + ], + [ + 7.639891, + 44.18928 + ], + [ + 7.686079, + 44.1861 + ], + [ + 7.69422, + 44.17795 + ], + [ + 7.68937, + 44.13869 + ], + [ + 7.694448, + 44.12276 + ], + [ + 7.727862, + 44.08615 + ], + [ + 7.724032, + 44.05704 + ], + [ + 7.686028, + 44.02371 + ], + [ + 7.680769, + 44.0164 + ], + [ + 7.660161, + 43.9672 + ], + [ + 7.596244, + 43.94466 + ], + [ + 7.584187, + 43.93287 + ], + [ + 7.568576, + 43.89159 + ], + [ + 7.527096, + 43.87434 + ], + [ + 7.516489, + 43.86397 + ], + [ + 7.51594, + 43.84915 + ], + [ + 7.53622, + 43.79234 + ], + [ + 9.8, + 43.1 + ], + [ + 9.63227, + 41.43244 + ], + [ + 9.369681, + 41.35052 + ], + [ + 9.273114, + 41.29196 + ], + [ + 8.941857, + 41.27688 + ], + [ + 5.8, + 41.64 + ], + [ + 3.173576, + 42.41768 + ], + [ + 3.160814, + 42.42757 + ], + [ + 3.094399, + 42.41457 + ], + [ + 3.034016, + 42.45331 + ], + [ + 3.022142, + 42.45645 + ], + [ + 2.878221, + 42.4487 + ], + [ + 2.870188, + 42.44653 + ], + [ + 2.784238, + 42.40256 + ], + [ + 2.741304, + 42.41128 + ], + [ + 2.729276, + 42.40998 + ], + [ + 2.693308, + 42.39417 + ], + [ + 2.683779, + 42.3854 + ], + [ + 2.681621, + 42.37263 + ], + [ + 2.685852, + 42.34679 + ], + [ + 2.66719, + 42.33008 + ], + [ + 2.581057, + 42.34418 + ], + [ + 2.567769, + 42.34173 + ], + [ + 2.533803, + 42.32197 + ], + [ + 2.477948, + 42.32986 + ], + [ + 2.419327, + 42.37658 + ], + [ + 2.41222, + 42.38021 + ], + [ + 2.267193, + 42.42055 + ], + [ + 2.259731, + 42.42117 + ], + [ + 2.206944, + 42.41558 + ], + [ + 2.206525, + 42.41526 + ], + [ + 2.205257, + 42.41541 + ], + [ + 2.160278, + 42.41065 + ], + [ + 2.148808, + 42.40545 + ], + [ + 2.093931, + 42.35474 + ], + [ + 2.008614, + 42.33818 + ], + [ + 1.964998, + 42.36473 + ], + [ + 1.930762, + 42.42442 + ], + [ + 1.920889, + 42.43302 + ], + [ + 1.884665, + 42.44761 + ], + [ + 1.884588, + 42.44762 + ], + [ + 1.884444, + 42.4477 + ], + [ + 1.827736, + 42.47056 + ], + [ + 1.725668, + 42.48452 + ], + [ + 1.715606, + 42.50125 + ], + [ + 1.727195, + 42.56103 + ], + [ + 1.724794, + 42.57499 + ], + [ + 1.710109, + 42.59992 + ], + [ + 1.69377, + 42.60975 + ], + [ + 1.602827, + 42.61382 + ], + [ + 1.560687, + 42.6392 + ], + [ + 1.546365, + 42.64166 + ], + [ + 1.504443, + 42.6331 + ], + [ + 1.492096, + 42.62502 + ], + [ + 1.472384, + 42.59703 + ], + [ + 1.437922, + 42.59264 + ], + [ + 1.419356, + 42.60643 + ], + [ + 1.38032, + 42.67415 + ], + [ + 1.373353, + 42.68127 + ], + [ + 1.333134, + 42.70563 + ], + [ + 1.323642, + 42.7085 + ], + [ + 1.232212, + 42.71248 + ], + [ + 1.165543, + 42.69928 + ], + [ + 1.085465, + 42.76635 + ], + [ + 1.075637, + 42.77079 + ], + [ + 0.9593748, + 42.78852 + ], + [ + 0.9507323, + 42.78794 + ], + [ + 0.9226515, + 42.7797 + ], + [ + 0.8460624, + 42.8157 + ], + [ + 0.7151135, + 42.8464 + ], + [ + 0.7001699, + 42.84402 + ], + [ + 0.6911674, + 42.83186 + ], + [ + 0.6740937, + 42.76479 + ], + [ + 0.6747382, + 42.75286 + ], + [ + 0.6919171, + 42.70684 + ], + [ + 0.6689955, + 42.67901 + ], + [ + 0.4302428, + 42.67863 + ], + [ + 0.3715037, + 42.70308 + ], + [ + 0.3595376, + 42.70415 + ], + [ + 0.3491168, + 42.69817 + ], + [ + 0.3256688, + 42.67274 + ], + [ + 0.2957095, + 42.66388 + ], + [ + 0.2459353, + 42.70175 + ], + [ + 0.2397249, + 42.70494 + ], + [ + 0.189669, + 42.72039 + ], + [ + 0.1791886, + 42.72075 + ], + [ + -0.01993262, + 42.67389 + ], + [ + -0.06725834, + 42.6848 + ], + [ + -0.1694885, + 42.77157 + ], + [ + -0.2998662, + 42.82697 + ], + [ + -0.3168349, + 42.82635 + ], + [ + -0.3920752, + 42.78766 + ], + [ + -0.4435404, + 42.78453 + ], + [ + -0.488418, + 42.80255 + ], + [ + -0.508683, + 42.79935 + ], + [ + -0.5449894, + 42.76906 + ], + [ + -0.5672068, + 42.76937 + ], + [ + -0.6744552, + 42.86392 + ], + [ + -0.6809365, + 42.86775 + ], + [ + -0.7337233, + 42.88666 + ], + [ + -0.747598, + 42.93879 + ], + [ + -0.757105, + 42.95107 + ], + [ + -0.7725328, + 42.95284 + ], + [ + -0.8211401, + 42.93865 + ], + [ + -0.9450847, + 42.94192 + ], + [ + -1.023131, + 42.98206 + ], + [ + -1.108517, + 43.00409 + ], + [ + -1.115597, + 43.00461 + ], + [ + -1.147753, + 43.00124 + ], + [ + -1.158452, + 43.01452 + ], + [ + -1.167362, + 43.02083 + ], + [ + -1.216216, + 43.0381 + ], + [ + -1.226121, + 43.03898 + ], + [ + -1.262362, + 43.03303 + ], + [ + -1.306428, + 43.05531 + ], + [ + -1.319918, + 43.05696 + ], + [ + -1.331346, + 43.0496 + ], + [ + -1.354196, + 43.0197 + ], + [ + -1.438684, + 43.03371 + ], + [ + -1.4775, + 43.06889 + ], + [ + -1.48311, + 43.08561 + ], + [ + -1.476407, + 43.10248 + ], + [ + -1.434786, + 43.13087 + ], + [ + -1.427318, + 43.1404 + ], + [ + -1.394112, + 43.22935 + ], + [ + -1.395313, + 43.24596 + ], + [ + -1.408677, + 43.25591 + ], + [ + -1.526287, + 43.28099 + ], + [ + -1.546257, + 43.2737 + ], + [ + -1.571485, + 43.2412 + ], + [ + -1.610526, + 43.24223 + ], + [ + -1.650003, + 43.29323 + ], + [ + -1.669527, + 43.30065 + ], + [ + -1.733594, + 43.28856 + ], + [ + -1.756061, + 43.31966 + ], + [ + -1.762973, + 43.32565 + ], + [ + -1.791557, + 43.34067 + ], + [ + -1.800991, + 43.37017 + ], + [ + -1.785091, + 43.39037 + ], + [ + -1.783502, + 43.39686 + ], + [ + -2.7, + 43.9 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/WikiProject_Base_Adresses_Nationale_Ouverte_(BANO)", + "terms_text": "Tiles © cquest@Openstreetmap France, data © OpenStreetMap contributors, ODBL", + "description": "French address registry or Base Adresses Nationale Ouverte", + "overlay": true + }, { "id": "lu.geoportail.opendata.basemap", "name": "Basemap geoportail.lu", @@ -5264,7 +10345,4743 @@ 50.568462 ] ] - ] + ], + "best": true + }, + { + "id": "route500hydro", + "name": "BD Carthage", + "type": "tms", + "template": "http://{switch:a,b,c}.tile.openstreetmap.fr/route500hydro/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 6, + 20 + ], + "polygon": [ + [ + [ + -2.7, + 43.9 + ], + [ + -6.3, + 48.98 + ], + [ + -2.25, + 50.09 + ], + [ + 1.31, + 50.88 + ], + [ + 2.358164, + 51.32937 + ], + [ + 2.548804, + 51.09759 + ], + [ + 2.570482, + 51.07409 + ], + [ + 2.587412, + 51.01763 + ], + [ + 2.598448, + 51.0051 + ], + [ + 2.615575, + 50.99749 + ], + [ + 2.639859, + 50.95766 + ], + [ + 2.642247, + 50.94578 + ], + [ + 2.624519, + 50.9256 + ], + [ + 2.61962, + 50.91067 + ], + [ + 2.623964, + 50.86071 + ], + [ + 2.627811, + 50.85054 + ], + [ + 2.637859, + 50.83696 + ], + [ + 2.651102, + 50.82906 + ], + [ + 2.732666, + 50.81738 + ], + [ + 2.79995, + 50.73795 + ], + [ + 2.816552, + 50.73092 + ], + [ + 2.852648, + 50.73335 + ], + [ + 2.890719, + 50.7162 + ], + [ + 2.904925, + 50.71536 + ], + [ + 2.916096, + 50.72418 + ], + [ + 2.935084, + 50.75592 + ], + [ + 3.007184, + 50.78377 + ], + [ + 3.082183, + 50.78749 + ], + [ + 3.092439, + 50.79092 + ], + [ + 3.114119, + 50.80566 + ], + [ + 3.148768, + 50.80195 + ], + [ + 3.215401, + 50.73111 + ], + [ + 3.221487, + 50.7267 + ], + [ + 3.270507, + 50.70375 + ], + [ + 3.275448, + 50.67757 + ], + [ + 3.265761, + 50.6604 + ], + [ + 3.265877, + 50.64054 + ], + [ + 3.289219, + 50.60028 + ], + [ + 3.292195, + 50.55037 + ], + [ + 3.305598, + 50.53267 + ], + [ + 3.375514, + 50.50839 + ], + [ + 3.389804, + 50.50884 + ], + [ + 3.474798, + 50.54445 + ], + [ + 3.52173, + 50.53459 + ], + [ + 3.532662, + 50.51873 + ], + [ + 3.547788, + 50.51012 + ], + [ + 3.615234, + 50.50558 + ], + [ + 3.673778, + 50.45642 + ], + [ + 3.684152, + 50.35277 + ], + [ + 3.690097, + 50.34044 + ], + [ + 3.702583, + 50.33482 + ], + [ + 3.715758, + 50.33854 + ], + [ + 3.749349, + 50.36279 + ], + [ + 3.841089, + 50.36558 + ], + [ + 3.901887, + 50.3436 + ], + [ + 3.913173, + 50.34291 + ], + [ + 4.026717, + 50.36904 + ], + [ + 4.13761, + 50.29984 + ], + [ + 4.143881, + 50.29727 + ], + [ + 4.214438, + 50.28167 + ], + [ + 4.229037, + 50.26664 + ], + [ + 4.230782, + 50.25233 + ], + [ + 4.170843, + 50.18579 + ], + [ + 4.166015, + 50.16888 + ], + [ + 4.176401, + 50.1547 + ], + [ + 4.211948, + 50.13602 + ], + [ + 4.240742, + 50.07102 + ], + [ + 4.231934, + 50.05551 + ], + [ + 4.181645, + 50.03436 + ], + [ + 4.17177, + 50.02537 + ], + [ + 4.169755, + 50.01217 + ], + [ + 4.176498, + 50.00065 + ], + [ + 4.206331, + 49.97546 + ], + [ + 4.221639, + 49.97089 + ], + [ + 4.308774, + 49.98145 + ], + [ + 4.445423, + 49.9523 + ], + [ + 4.454691, + 49.95251 + ], + [ + 4.658098, + 50.00609 + ], + [ + 4.669358, + 50.01392 + ], + [ + 4.672929, + 50.02716 + ], + [ + 4.66924, + 50.06972 + ], + [ + 4.695168, + 50.10472 + ], + [ + 4.831227, + 50.17941 + ], + [ + 4.881497, + 50.16436 + ], + [ + 4.904786, + 50.14451 + ], + [ + 4.904264, + 50.12639 + ], + [ + 4.880762, + 50.0815 + ], + [ + 4.862772, + 50.0745 + ], + [ + 4.851037, + 50.06216 + ], + [ + 4.843307, + 50.03884 + ], + [ + 4.843307, + 50.03883 + ], + [ + 4.843295, + 50.03881 + ], + [ + 4.826781, + 49.989 + ], + [ + 4.826618, + 49.97692 + ], + [ + 4.833433, + 49.96696 + ], + [ + 4.896542, + 49.91753 + ], + [ + 4.897546, + 49.89424 + ], + [ + 4.879134, + 49.86942 + ], + [ + 4.876249, + 49.85111 + ], + [ + 4.889238, + 49.81266 + ], + [ + 4.897691, + 49.80204 + ], + [ + 4.910979, + 49.79926 + ], + [ + 4.995343, + 49.81116 + ], + [ + 5.01867, + 49.79272 + ], + [ + 5.026862, + 49.78886 + ], + [ + 5.099438, + 49.77323 + ], + [ + 5.134584, + 49.73462 + ], + [ + 5.141201, + 49.72984 + ], + [ + 5.187609, + 49.70906 + ], + [ + 5.196025, + 49.70732 + ], + [ + 5.281572, + 49.70836 + ], + [ + 5.333628, + 49.67308 + ], + [ + 5.343996, + 49.65049 + ], + [ + 5.354398, + 49.64041 + ], + [ + 5.431412, + 49.60791 + ], + [ + 5.482051, + 49.52815 + ], + [ + 5.492943, + 49.51979 + ], + [ + 5.50666, + 49.52042 + ], + [ + 5.55401, + 49.54025 + ], + [ + 5.59311, + 49.53424 + ], + [ + 5.607602, + 49.53761 + ], + [ + 5.640997, + 49.56095 + ], + [ + 5.706759, + 49.55267 + ], + [ + 5.715782, + 49.55361 + ], + [ + 5.775261, + 49.57414 + ], + [ + 5.839902, + 49.55321 + ], + [ + 5.861263, + 49.52038 + ], + [ + 5.875997, + 49.5114 + ], + [ + 5.975162, + 49.50129 + ], + [ + 5.998015, + 49.47317 + ], + [ + 6.016266, + 49.46597 + ], + [ + 6.08635, + 49.47562 + ], + [ + 6.093186, + 49.47787 + ], + [ + 6.173966, + 49.52187 + ], + [ + 6.246435, + 49.52511 + ], + [ + 6.333999, + 49.48235 + ], + [ + 6.344229, + 49.48037 + ], + [ + 6.435145, + 49.487 + ], + [ + 6.5451, + 49.44384 + ], + [ + 6.606389, + 49.37868 + ], + [ + 6.604972, + 49.33739 + ], + [ + 6.616267, + 49.31869 + ], + [ + 6.670133, + 49.29269 + ], + [ + 6.729955, + 49.22917 + ], + [ + 6.743276, + 49.19086 + ], + [ + 6.760259, + 49.17752 + ], + [ + 6.809042, + 49.17284 + ], + [ + 6.824733, + 49.17826 + ], + [ + 6.830928, + 49.19366 + ], + [ + 6.829819, + 49.21802 + ], + [ + 6.851186, + 49.23136 + ], + [ + 6.884528, + 49.2239 + ], + [ + 6.893221, + 49.22389 + ], + [ + 6.937527, + 49.23369 + ], + [ + 7.040549, + 49.19794 + ], + [ + 7.046296, + 49.17503 + ], + [ + 7.054777, + 49.16313 + ], + [ + 7.069081, + 49.16018 + ], + [ + 7.104945, + 49.16634 + ], + [ + 7.143153, + 49.14159 + ], + [ + 7.153499, + 49.13839 + ], + [ + 7.286827, + 49.13488 + ], + [ + 7.29893, + 49.13856 + ], + [ + 7.360948, + 49.18259 + ], + [ + 7.450116, + 49.19517 + ], + [ + 7.50113, + 49.17672 + ], + [ + 7.543788, + 49.10572 + ], + [ + 7.557903, + 49.09626 + ], + [ + 7.629604, + 49.08527 + ], + [ + 7.647217, + 49.06722 + ], + [ + 7.661197, + 49.06119 + ], + [ + 7.754008, + 49.05963 + ], + [ + 7.760731, + 49.06067 + ], + [ + 7.802913, + 49.07489 + ], + [ + 7.855253, + 49.05329 + ], + [ + 7.867297, + 49.05227 + ], + [ + 7.93826, + 49.06832 + ], + [ + 8.080685, + 49.00688 + ], + [ + 8.222498, + 48.98787 + ], + [ + 8.23704, + 48.97683 + ], + [ + 8.235894, + 48.95817 + ], + [ + 8.208878, + 48.94863 + ], + [ + 8.200888, + 48.94339 + ], + [ + 8.158243, + 48.89753 + ], + [ + 8.100873, + 48.7993 + ], + [ + 7.990709, + 48.74478 + ], + [ + 7.985341, + 48.7409 + ], + [ + 7.904217, + 48.65865 + ], + [ + 7.856051, + 48.63606 + ], + [ + 7.848405, + 48.62977 + ], + [ + 7.818424, + 48.58883 + ], + [ + 7.81456, + 48.57704 + ], + [ + 7.814491, + 48.50968 + ], + [ + 7.785465, + 48.48337 + ], + [ + 7.780554, + 48.47652 + ], + [ + 7.745059, + 48.39484 + ], + [ + 7.743573, + 48.38427 + ], + [ + 7.751593, + 48.32322 + ], + [ + 7.71085, + 48.29841 + ], + [ + 7.702411, + 48.28803 + ], + [ + 7.676613, + 48.21555 + ], + [ + 7.596051, + 48.11698 + ], + [ + 7.591652, + 48.10648 + ], + [ + 7.585216, + 48.04694 + ], + [ + 7.591268, + 48.03035 + ], + [ + 7.624373, + 47.99865 + ], + [ + 7.632049, + 47.97081 + ], + [ + 7.575545, + 47.87436 + ], + [ + 7.572802, + 47.86435 + ], + [ + 7.572673, + 47.83631 + ], + [ + 7.545808, + 47.78793 + ], + [ + 7.544185, + 47.77232 + ], + [ + 7.557581, + 47.72899 + ], + [ + 7.535257, + 47.6989 + ], + [ + 7.531364, + 47.68564 + ], + [ + 7.536998, + 47.67302 + ], + [ + 7.600164, + 47.60822 + ], + [ + 7.589675, + 47.56755 + ], + [ + 7.554237, + 47.55128 + ], + [ + 7.54511, + 47.54283 + ], + [ + 7.512557, + 47.48439 + ], + [ + 7.387471, + 47.42111 + ], + [ + 7.326527, + 47.4273 + ], + [ + 7.244354, + 47.40939 + ], + [ + 7.167083, + 47.4335 + ], + [ + 7.152115, + 47.47612 + ], + [ + 7.14279, + 47.48707 + ], + [ + 7.128529, + 47.48893 + ], + [ + 7.080105, + 47.47718 + ], + [ + 7.035575, + 47.48695 + ], + [ + 7.021019, + 47.48458 + ], + [ + 7.012048, + 47.47287 + ], + [ + 7.002995, + 47.44095 + ], + [ + 6.955099, + 47.40808 + ], + [ + 6.947157, + 47.39698 + ], + [ + 6.94818, + 47.38337 + ], + [ + 6.957691, + 47.37359 + ], + [ + 6.971263, + 47.37218 + ], + [ + 7.018004, + 47.38386 + ], + [ + 7.05623, + 47.37035 + ], + [ + 7.070073, + 47.35005 + ], + [ + 7.05958, + 47.32257 + ], + [ + 6.974243, + 47.27856 + ], + [ + 6.963469, + 47.26233 + ], + [ + 6.961339, + 47.23479 + ], + [ + 6.89443, + 47.19393 + ], + [ + 6.889128, + 47.18922 + ], + [ + 6.855453, + 47.14636 + ], + [ + 6.769073, + 47.10751 + ], + [ + 6.760108, + 47.09953 + ], + [ + 6.725613, + 47.0418 + ], + [ + 6.623551, + 46.9811 + ], + [ + 6.481204, + 46.9445 + ], + [ + 6.46892, + 46.93522 + ], + [ + 6.466862, + 46.91997 + ], + [ + 6.475476, + 46.88771 + ], + [ + 6.453496, + 46.8239 + ], + [ + 6.45644, + 46.80534 + ], + [ + 6.467224, + 46.79104 + ], + [ + 6.460984, + 46.76887 + ], + [ + 6.15817, + 46.59343 + ], + [ + 6.148724, + 46.58069 + ], + [ + 6.15152, + 46.56508 + ], + [ + 6.165489, + 46.54399 + ], + [ + 6.158111, + 46.52456 + ], + [ + 6.101739, + 46.46979 + ], + [ + 6.095717, + 46.45418 + ], + [ + 6.097044, + 46.43317 + ], + [ + 6.108289, + 46.41643 + ], + [ + 6.166216, + 46.38839 + ], + [ + 6.178173, + 46.36922 + ], + [ + 6.137482, + 46.31297 + ], + [ + 6.133713, + 46.30227 + ], + [ + 6.130383, + 46.23737 + ], + [ + 6.110298, + 46.22344 + ], + [ + 6.088648, + 46.23081 + ], + [ + 6.077173, + 46.23123 + ], + [ + 6.018573, + 46.21601 + ], + [ + 6.006813, + 46.20752 + ], + [ + 6.003882, + 46.19332 + ], + [ + 6.007866, + 46.16977 + ], + [ + 6.017834, + 46.15564 + ], + [ + 6.03509, + 46.15456 + ], + [ + 6.055639, + 46.16288 + ], + [ + 6.124683, + 46.15415 + ], + [ + 6.137776, + 46.15702 + ], + [ + 6.240258, + 46.22094 + ], + [ + 6.249058, + 46.23299 + ], + [ + 6.247073, + 46.24777 + ], + [ + 6.21148, + 46.31057 + ], + [ + 6.212186, + 46.32485 + ], + [ + 6.239462, + 46.36705 + ], + [ + 6.316478, + 46.41557 + ], + [ + 6.410826, + 46.42495 + ], + [ + 6.417483, + 46.42682 + ], + [ + 6.504978, + 46.46871 + ], + [ + 6.630473, + 46.47435 + ], + [ + 6.746646, + 46.45695 + ], + [ + 6.822442, + 46.42925 + ], + [ + 6.818324, + 46.38181 + ], + [ + 6.804843, + 46.36179 + ], + [ + 6.801885, + 46.34639 + ], + [ + 6.810949, + 46.33359 + ], + [ + 6.864911, + 46.30038 + ], + [ + 6.875036, + 46.28007 + ], + [ + 6.860917, + 46.2439 + ], + [ + 6.826978, + 46.21188 + ], + [ + 6.820746, + 46.19862 + ], + [ + 6.818627, + 46.16592 + ], + [ + 6.822593, + 46.15261 + ], + [ + 6.834266, + 46.14509 + ], + [ + 6.903819, + 46.12971 + ], + [ + 6.904911, + 46.09595 + ], + [ + 6.909323, + 46.08406 + ], + [ + 6.920006, + 46.07721 + ], + [ + 6.948976, + 46.0699 + ], + [ + 7.015561, + 46.00883 + ], + [ + 7.051911, + 45.93066 + ], + [ + 7.045335, + 45.92217 + ], + [ + 7.044967, + 45.92064 + ], + [ + 7.043936, + 45.92036 + ], + [ + 6.995822, + 45.85822 + ], + [ + 6.940965, + 45.83551 + ], + [ + 6.843757, + 45.82387 + ], + [ + 6.831016, + 45.81711 + ], + [ + 6.826141, + 45.80353 + ], + [ + 6.82787, + 45.73217 + ], + [ + 6.83174, + 45.72082 + ], + [ + 6.841405, + 45.71373 + ], + [ + 6.907294, + 45.69124 + ], + [ + 6.92419, + 45.66935 + ], + [ + 6.942468, + 45.66172 + ], + [ + 6.971313, + 45.66528 + ], + [ + 7.00597, + 45.64945 + ], + [ + 7.011511, + 45.63652 + ], + [ + 6.997797, + 45.60877 + ], + [ + 6.996431, + 45.59465 + ], + [ + 7.015803, + 45.52354 + ], + [ + 7.027743, + 45.5102 + ], + [ + 7.107198, + 45.47877 + ], + [ + 7.122797, + 45.44924 + ], + [ + 7.13304, + 45.44001 + ], + [ + 7.185604, + 45.41894 + ], + [ + 7.19515, + 45.40409 + ], + [ + 7.170749, + 45.35069 + ], + [ + 7.142319, + 45.32298 + ], + [ + 7.136488, + 45.30576 + ], + [ + 7.14458, + 45.25048 + ], + [ + 7.084166, + 45.20279 + ], + [ + 6.992792, + 45.19823 + ], + [ + 6.981064, + 45.19368 + ], + [ + 6.900091, + 45.12689 + ], + [ + 6.85843, + 45.11699 + ], + [ + 6.782826, + 45.14228 + ], + [ + 6.770557, + 45.14242 + ], + [ + 6.677507, + 45.11356 + ], + [ + 6.665295, + 45.10289 + ], + [ + 6.665008, + 45.08667 + ], + [ + 6.68237, + 45.04558 + ], + [ + 6.696016, + 45.03395 + ], + [ + 6.757442, + 45.01884 + ], + [ + 6.783751, + 44.9146 + ], + [ + 6.794195, + 44.90161 + ], + [ + 6.866981, + 44.86519 + ], + [ + 6.879801, + 44.86346 + ], + [ + 6.936325, + 44.87461 + ], + [ + 7.017954, + 44.84402 + ], + [ + 7.034535, + 44.82282 + ], + [ + 7.037114, + 44.75009 + ], + [ + 7.049604, + 44.73226 + ], + [ + 7.072236, + 44.72311 + ], + [ + 7.086508, + 44.6968 + ], + [ + 7.086656, + 44.68085 + ], + [ + 7.07671, + 44.67134 + ], + [ + 6.990071, + 44.67203 + ], + [ + 6.974128, + 44.66431 + ], + [ + 6.970564, + 44.64696 + ], + [ + 6.978189, + 44.61784 + ], + [ + 6.94659, + 44.57124 + ], + [ + 6.882347, + 44.53479 + ], + [ + 6.872327, + 44.5195 + ], + [ + 6.878925, + 44.50245 + ], + [ + 6.958945, + 44.43129 + ], + [ + 6.958723, + 44.42908 + ], + [ + 6.921668, + 44.41436 + ], + [ + 6.912225, + 44.40659 + ], + [ + 6.909075, + 44.39477 + ], + [ + 6.90972, + 44.38195 + ], + [ + 6.91637, + 44.36804 + ], + [ + 6.999091, + 44.29414 + ], + [ + 7.011806, + 44.256 + ], + [ + 7.019835, + 44.24558 + ], + [ + 7.032595, + 44.2424 + ], + [ + 7.073117, + 44.2461 + ], + [ + 7.165097, + 44.22112 + ], + [ + 7.245331, + 44.18544 + ], + [ + 7.260526, + 44.16682 + ], + [ + 7.275371, + 44.15947 + ], + [ + 7.338779, + 44.1574 + ], + [ + 7.362775, + 44.13834 + ], + [ + 7.377763, + 44.13416 + ], + [ + 7.56283, + 44.15792 + ], + [ + 7.5642, + 44.15836 + ], + [ + 7.564785, + 44.15817 + ], + [ + 7.605476, + 44.1634 + ], + [ + 7.616198, + 44.16827 + ], + [ + 7.639891, + 44.18928 + ], + [ + 7.686079, + 44.1861 + ], + [ + 7.69422, + 44.17795 + ], + [ + 7.68937, + 44.13869 + ], + [ + 7.694448, + 44.12276 + ], + [ + 7.727862, + 44.08615 + ], + [ + 7.724032, + 44.05704 + ], + [ + 7.686028, + 44.02371 + ], + [ + 7.680769, + 44.0164 + ], + [ + 7.660161, + 43.9672 + ], + [ + 7.596244, + 43.94466 + ], + [ + 7.584187, + 43.93287 + ], + [ + 7.568576, + 43.89159 + ], + [ + 7.527096, + 43.87434 + ], + [ + 7.516489, + 43.86397 + ], + [ + 7.51594, + 43.84915 + ], + [ + 7.53622, + 43.79234 + ], + [ + 9.8, + 43.1 + ], + [ + 9.63227, + 41.43244 + ], + [ + 9.369681, + 41.35052 + ], + [ + 9.273114, + 41.29196 + ], + [ + 8.941857, + 41.27688 + ], + [ + 5.8, + 41.64 + ], + [ + 3.173576, + 42.41768 + ], + [ + 3.160814, + 42.42757 + ], + [ + 3.094399, + 42.41457 + ], + [ + 3.034016, + 42.45331 + ], + [ + 3.022142, + 42.45645 + ], + [ + 2.878221, + 42.4487 + ], + [ + 2.870188, + 42.44653 + ], + [ + 2.784238, + 42.40256 + ], + [ + 2.741304, + 42.41128 + ], + [ + 2.729276, + 42.40998 + ], + [ + 2.693308, + 42.39417 + ], + [ + 2.683779, + 42.3854 + ], + [ + 2.681621, + 42.37263 + ], + [ + 2.685852, + 42.34679 + ], + [ + 2.66719, + 42.33008 + ], + [ + 2.581057, + 42.34418 + ], + [ + 2.567769, + 42.34173 + ], + [ + 2.533803, + 42.32197 + ], + [ + 2.477948, + 42.32986 + ], + [ + 2.419327, + 42.37658 + ], + [ + 2.41222, + 42.38021 + ], + [ + 2.267193, + 42.42055 + ], + [ + 2.259731, + 42.42117 + ], + [ + 2.206944, + 42.41558 + ], + [ + 2.206525, + 42.41526 + ], + [ + 2.205257, + 42.41541 + ], + [ + 2.160278, + 42.41065 + ], + [ + 2.148808, + 42.40545 + ], + [ + 2.093931, + 42.35474 + ], + [ + 2.008614, + 42.33818 + ], + [ + 1.964998, + 42.36473 + ], + [ + 1.930762, + 42.42442 + ], + [ + 1.920889, + 42.43302 + ], + [ + 1.884665, + 42.44761 + ], + [ + 1.884588, + 42.44762 + ], + [ + 1.884444, + 42.4477 + ], + [ + 1.827736, + 42.47056 + ], + [ + 1.725668, + 42.48452 + ], + [ + 1.715606, + 42.50125 + ], + [ + 1.727195, + 42.56103 + ], + [ + 1.724794, + 42.57499 + ], + [ + 1.710109, + 42.59992 + ], + [ + 1.69377, + 42.60975 + ], + [ + 1.602827, + 42.61382 + ], + [ + 1.560687, + 42.6392 + ], + [ + 1.546365, + 42.64166 + ], + [ + 1.504443, + 42.6331 + ], + [ + 1.492096, + 42.62502 + ], + [ + 1.472384, + 42.59703 + ], + [ + 1.437922, + 42.59264 + ], + [ + 1.419356, + 42.60643 + ], + [ + 1.38032, + 42.67415 + ], + [ + 1.373353, + 42.68127 + ], + [ + 1.333134, + 42.70563 + ], + [ + 1.323642, + 42.7085 + ], + [ + 1.232212, + 42.71248 + ], + [ + 1.165543, + 42.69928 + ], + [ + 1.085465, + 42.76635 + ], + [ + 1.075637, + 42.77079 + ], + [ + 0.9593748, + 42.78852 + ], + [ + 0.9507323, + 42.78794 + ], + [ + 0.9226515, + 42.7797 + ], + [ + 0.8460624, + 42.8157 + ], + [ + 0.7151135, + 42.8464 + ], + [ + 0.7001699, + 42.84402 + ], + [ + 0.6911674, + 42.83186 + ], + [ + 0.6740937, + 42.76479 + ], + [ + 0.6747382, + 42.75286 + ], + [ + 0.6919171, + 42.70684 + ], + [ + 0.6689955, + 42.67901 + ], + [ + 0.4302428, + 42.67863 + ], + [ + 0.3715037, + 42.70308 + ], + [ + 0.3595376, + 42.70415 + ], + [ + 0.3491168, + 42.69817 + ], + [ + 0.3256688, + 42.67274 + ], + [ + 0.2957095, + 42.66388 + ], + [ + 0.2459353, + 42.70175 + ], + [ + 0.2397249, + 42.70494 + ], + [ + 0.189669, + 42.72039 + ], + [ + 0.1791886, + 42.72075 + ], + [ + -0.01993262, + 42.67389 + ], + [ + -0.06725834, + 42.6848 + ], + [ + -0.1694885, + 42.77157 + ], + [ + -0.2998662, + 42.82697 + ], + [ + -0.3168349, + 42.82635 + ], + [ + -0.3920752, + 42.78766 + ], + [ + -0.4435404, + 42.78453 + ], + [ + -0.488418, + 42.80255 + ], + [ + -0.508683, + 42.79935 + ], + [ + -0.5449894, + 42.76906 + ], + [ + -0.5672068, + 42.76937 + ], + [ + -0.6744552, + 42.86392 + ], + [ + -0.6809365, + 42.86775 + ], + [ + -0.7337233, + 42.88666 + ], + [ + -0.747598, + 42.93879 + ], + [ + -0.757105, + 42.95107 + ], + [ + -0.7725328, + 42.95284 + ], + [ + -0.8211401, + 42.93865 + ], + [ + -0.9450847, + 42.94192 + ], + [ + -1.023131, + 42.98206 + ], + [ + -1.108517, + 43.00409 + ], + [ + -1.115597, + 43.00461 + ], + [ + -1.147753, + 43.00124 + ], + [ + -1.158452, + 43.01452 + ], + [ + -1.167362, + 43.02083 + ], + [ + -1.216216, + 43.0381 + ], + [ + -1.226121, + 43.03898 + ], + [ + -1.262362, + 43.03303 + ], + [ + -1.306428, + 43.05531 + ], + [ + -1.319918, + 43.05696 + ], + [ + -1.331346, + 43.0496 + ], + [ + -1.354196, + 43.0197 + ], + [ + -1.438684, + 43.03371 + ], + [ + -1.4775, + 43.06889 + ], + [ + -1.48311, + 43.08561 + ], + [ + -1.476407, + 43.10248 + ], + [ + -1.434786, + 43.13087 + ], + [ + -1.427318, + 43.1404 + ], + [ + -1.394112, + 43.22935 + ], + [ + -1.395313, + 43.24596 + ], + [ + -1.408677, + 43.25591 + ], + [ + -1.526287, + 43.28099 + ], + [ + -1.546257, + 43.2737 + ], + [ + -1.571485, + 43.2412 + ], + [ + -1.610526, + 43.24223 + ], + [ + -1.650003, + 43.29323 + ], + [ + -1.669527, + 43.30065 + ], + [ + -1.733594, + 43.28856 + ], + [ + -1.756061, + 43.31966 + ], + [ + -1.762973, + 43.32565 + ], + [ + -1.791557, + 43.34067 + ], + [ + -1.800991, + 43.37017 + ], + [ + -1.785091, + 43.39037 + ], + [ + -1.783502, + 43.39686 + ], + [ + -2.7, + 43.9 + ] + ] + ], + "terms_url": "http://www.sandre.eaufrance.fr/actualite/la-bd-carthage-en-licence-ouverte-open-licence", + "terms_text": "Tiles © cquest@Openstreetmap France, data © Onema - IGN, LO/OL", + "overlay": true + }, + { + "id": "fr.ign.bdortho", + "name": "BDOrtho IGN", + "type": "tms", + "template": "https://proxy-ign.openstreetmap.fr/94GjiyqD/bdortho/{zoom}/{x}/{y}.jpg", + "scaleExtent": [ + 2, + 21 + ], + "polygon": [ + [ + [ + -2.7, + 43.9 + ], + [ + -6.3, + 48.98 + ], + [ + -2.25, + 50.09 + ], + [ + 1.31, + 50.88 + ], + [ + 2.358164, + 51.32937 + ], + [ + 2.548804, + 51.09759 + ], + [ + 2.570482, + 51.07409 + ], + [ + 2.587412, + 51.01763 + ], + [ + 2.598448, + 51.0051 + ], + [ + 2.615575, + 50.99749 + ], + [ + 2.639859, + 50.95766 + ], + [ + 2.642247, + 50.94578 + ], + [ + 2.624519, + 50.9256 + ], + [ + 2.61962, + 50.91067 + ], + [ + 2.623964, + 50.86071 + ], + [ + 2.627811, + 50.85054 + ], + [ + 2.637859, + 50.83696 + ], + [ + 2.651102, + 50.82906 + ], + [ + 2.732666, + 50.81738 + ], + [ + 2.79995, + 50.73795 + ], + [ + 2.816552, + 50.73092 + ], + [ + 2.852648, + 50.73335 + ], + [ + 2.890719, + 50.7162 + ], + [ + 2.904925, + 50.71536 + ], + [ + 2.916096, + 50.72418 + ], + [ + 2.935084, + 50.75592 + ], + [ + 3.007184, + 50.78377 + ], + [ + 3.082183, + 50.78749 + ], + [ + 3.092439, + 50.79092 + ], + [ + 3.114119, + 50.80566 + ], + [ + 3.148768, + 50.80195 + ], + [ + 3.215401, + 50.73111 + ], + [ + 3.221487, + 50.7267 + ], + [ + 3.270507, + 50.70375 + ], + [ + 3.275448, + 50.67757 + ], + [ + 3.265761, + 50.6604 + ], + [ + 3.265877, + 50.64054 + ], + [ + 3.289219, + 50.60028 + ], + [ + 3.292195, + 50.55037 + ], + [ + 3.305598, + 50.53267 + ], + [ + 3.375514, + 50.50839 + ], + [ + 3.389804, + 50.50884 + ], + [ + 3.474798, + 50.54445 + ], + [ + 3.52173, + 50.53459 + ], + [ + 3.532662, + 50.51873 + ], + [ + 3.547788, + 50.51012 + ], + [ + 3.615234, + 50.50558 + ], + [ + 3.673778, + 50.45642 + ], + [ + 3.684152, + 50.35277 + ], + [ + 3.690097, + 50.34044 + ], + [ + 3.702583, + 50.33482 + ], + [ + 3.715758, + 50.33854 + ], + [ + 3.749349, + 50.36279 + ], + [ + 3.841089, + 50.36558 + ], + [ + 3.901887, + 50.3436 + ], + [ + 3.913173, + 50.34291 + ], + [ + 4.026717, + 50.36904 + ], + [ + 4.13761, + 50.29984 + ], + [ + 4.143881, + 50.29727 + ], + [ + 4.214438, + 50.28167 + ], + [ + 4.229037, + 50.26664 + ], + [ + 4.230782, + 50.25233 + ], + [ + 4.170843, + 50.18579 + ], + [ + 4.166015, + 50.16888 + ], + [ + 4.176401, + 50.1547 + ], + [ + 4.211948, + 50.13602 + ], + [ + 4.240742, + 50.07102 + ], + [ + 4.231934, + 50.05551 + ], + [ + 4.181645, + 50.03436 + ], + [ + 4.17177, + 50.02537 + ], + [ + 4.169755, + 50.01217 + ], + [ + 4.176498, + 50.00065 + ], + [ + 4.206331, + 49.97546 + ], + [ + 4.221639, + 49.97089 + ], + [ + 4.308774, + 49.98145 + ], + [ + 4.445423, + 49.9523 + ], + [ + 4.454691, + 49.95251 + ], + [ + 4.658098, + 50.00609 + ], + [ + 4.669358, + 50.01392 + ], + [ + 4.672929, + 50.02716 + ], + [ + 4.66924, + 50.06972 + ], + [ + 4.695168, + 50.10472 + ], + [ + 4.831227, + 50.17941 + ], + [ + 4.881497, + 50.16436 + ], + [ + 4.904786, + 50.14451 + ], + [ + 4.904264, + 50.12639 + ], + [ + 4.880762, + 50.0815 + ], + [ + 4.862772, + 50.0745 + ], + [ + 4.851037, + 50.06216 + ], + [ + 4.843307, + 50.03884 + ], + [ + 4.843307, + 50.03883 + ], + [ + 4.843295, + 50.03881 + ], + [ + 4.826781, + 49.989 + ], + [ + 4.826618, + 49.97692 + ], + [ + 4.833433, + 49.96696 + ], + [ + 4.896542, + 49.91753 + ], + [ + 4.897546, + 49.89424 + ], + [ + 4.879134, + 49.86942 + ], + [ + 4.876249, + 49.85111 + ], + [ + 4.889238, + 49.81266 + ], + [ + 4.897691, + 49.80204 + ], + [ + 4.910979, + 49.79926 + ], + [ + 4.995343, + 49.81116 + ], + [ + 5.01867, + 49.79272 + ], + [ + 5.026862, + 49.78886 + ], + [ + 5.099438, + 49.77323 + ], + [ + 5.134584, + 49.73462 + ], + [ + 5.141201, + 49.72984 + ], + [ + 5.187609, + 49.70906 + ], + [ + 5.196025, + 49.70732 + ], + [ + 5.281572, + 49.70836 + ], + [ + 5.333628, + 49.67308 + ], + [ + 5.343996, + 49.65049 + ], + [ + 5.354398, + 49.64041 + ], + [ + 5.431412, + 49.60791 + ], + [ + 5.482051, + 49.52815 + ], + [ + 5.492943, + 49.51979 + ], + [ + 5.50666, + 49.52042 + ], + [ + 5.55401, + 49.54025 + ], + [ + 5.59311, + 49.53424 + ], + [ + 5.607602, + 49.53761 + ], + [ + 5.640997, + 49.56095 + ], + [ + 5.706759, + 49.55267 + ], + [ + 5.715782, + 49.55361 + ], + [ + 5.775261, + 49.57414 + ], + [ + 5.839902, + 49.55321 + ], + [ + 5.861263, + 49.52038 + ], + [ + 5.875997, + 49.5114 + ], + [ + 5.975162, + 49.50129 + ], + [ + 5.998015, + 49.47317 + ], + [ + 6.016266, + 49.46597 + ], + [ + 6.08635, + 49.47562 + ], + [ + 6.093186, + 49.47787 + ], + [ + 6.173966, + 49.52187 + ], + [ + 6.246435, + 49.52511 + ], + [ + 6.333999, + 49.48235 + ], + [ + 6.344229, + 49.48037 + ], + [ + 6.435145, + 49.487 + ], + [ + 6.5451, + 49.44384 + ], + [ + 6.606389, + 49.37868 + ], + [ + 6.604972, + 49.33739 + ], + [ + 6.616267, + 49.31869 + ], + [ + 6.670133, + 49.29269 + ], + [ + 6.729955, + 49.22917 + ], + [ + 6.743276, + 49.19086 + ], + [ + 6.760259, + 49.17752 + ], + [ + 6.809042, + 49.17284 + ], + [ + 6.824733, + 49.17826 + ], + [ + 6.830928, + 49.19366 + ], + [ + 6.829819, + 49.21802 + ], + [ + 6.851186, + 49.23136 + ], + [ + 6.884528, + 49.2239 + ], + [ + 6.893221, + 49.22389 + ], + [ + 6.937527, + 49.23369 + ], + [ + 7.040549, + 49.19794 + ], + [ + 7.046296, + 49.17503 + ], + [ + 7.054777, + 49.16313 + ], + [ + 7.069081, + 49.16018 + ], + [ + 7.104945, + 49.16634 + ], + [ + 7.143153, + 49.14159 + ], + [ + 7.153499, + 49.13839 + ], + [ + 7.286827, + 49.13488 + ], + [ + 7.29893, + 49.13856 + ], + [ + 7.360948, + 49.18259 + ], + [ + 7.450116, + 49.19517 + ], + [ + 7.50113, + 49.17672 + ], + [ + 7.543788, + 49.10572 + ], + [ + 7.557903, + 49.09626 + ], + [ + 7.629604, + 49.08527 + ], + [ + 7.647217, + 49.06722 + ], + [ + 7.661197, + 49.06119 + ], + [ + 7.754008, + 49.05963 + ], + [ + 7.760731, + 49.06067 + ], + [ + 7.802913, + 49.07489 + ], + [ + 7.855253, + 49.05329 + ], + [ + 7.867297, + 49.05227 + ], + [ + 7.93826, + 49.06832 + ], + [ + 8.080685, + 49.00688 + ], + [ + 8.222498, + 48.98787 + ], + [ + 8.23704, + 48.97683 + ], + [ + 8.235894, + 48.95817 + ], + [ + 8.208878, + 48.94863 + ], + [ + 8.200888, + 48.94339 + ], + [ + 8.158243, + 48.89753 + ], + [ + 8.100873, + 48.7993 + ], + [ + 7.990709, + 48.74478 + ], + [ + 7.985341, + 48.7409 + ], + [ + 7.904217, + 48.65865 + ], + [ + 7.856051, + 48.63606 + ], + [ + 7.848405, + 48.62977 + ], + [ + 7.818424, + 48.58883 + ], + [ + 7.81456, + 48.57704 + ], + [ + 7.814491, + 48.50968 + ], + [ + 7.785465, + 48.48337 + ], + [ + 7.780554, + 48.47652 + ], + [ + 7.745059, + 48.39484 + ], + [ + 7.743573, + 48.38427 + ], + [ + 7.751593, + 48.32322 + ], + [ + 7.71085, + 48.29841 + ], + [ + 7.702411, + 48.28803 + ], + [ + 7.676613, + 48.21555 + ], + [ + 7.596051, + 48.11698 + ], + [ + 7.591652, + 48.10648 + ], + [ + 7.585216, + 48.04694 + ], + [ + 7.591268, + 48.03035 + ], + [ + 7.624373, + 47.99865 + ], + [ + 7.632049, + 47.97081 + ], + [ + 7.575545, + 47.87436 + ], + [ + 7.572802, + 47.86435 + ], + [ + 7.572673, + 47.83631 + ], + [ + 7.545808, + 47.78793 + ], + [ + 7.544185, + 47.77232 + ], + [ + 7.557581, + 47.72899 + ], + [ + 7.535257, + 47.6989 + ], + [ + 7.531364, + 47.68564 + ], + [ + 7.536998, + 47.67302 + ], + [ + 7.600164, + 47.60822 + ], + [ + 7.589675, + 47.56755 + ], + [ + 7.554237, + 47.55128 + ], + [ + 7.54511, + 47.54283 + ], + [ + 7.512557, + 47.48439 + ], + [ + 7.387471, + 47.42111 + ], + [ + 7.326527, + 47.4273 + ], + [ + 7.244354, + 47.40939 + ], + [ + 7.167083, + 47.4335 + ], + [ + 7.152115, + 47.47612 + ], + [ + 7.14279, + 47.48707 + ], + [ + 7.128529, + 47.48893 + ], + [ + 7.080105, + 47.47718 + ], + [ + 7.035575, + 47.48695 + ], + [ + 7.021019, + 47.48458 + ], + [ + 7.012048, + 47.47287 + ], + [ + 7.002995, + 47.44095 + ], + [ + 6.955099, + 47.40808 + ], + [ + 6.947157, + 47.39698 + ], + [ + 6.94818, + 47.38337 + ], + [ + 6.957691, + 47.37359 + ], + [ + 6.971263, + 47.37218 + ], + [ + 7.018004, + 47.38386 + ], + [ + 7.05623, + 47.37035 + ], + [ + 7.070073, + 47.35005 + ], + [ + 7.05958, + 47.32257 + ], + [ + 6.974243, + 47.27856 + ], + [ + 6.963469, + 47.26233 + ], + [ + 6.961339, + 47.23479 + ], + [ + 6.89443, + 47.19393 + ], + [ + 6.889128, + 47.18922 + ], + [ + 6.855453, + 47.14636 + ], + [ + 6.769073, + 47.10751 + ], + [ + 6.760108, + 47.09953 + ], + [ + 6.725613, + 47.0418 + ], + [ + 6.623551, + 46.9811 + ], + [ + 6.481204, + 46.9445 + ], + [ + 6.46892, + 46.93522 + ], + [ + 6.466862, + 46.91997 + ], + [ + 6.475476, + 46.88771 + ], + [ + 6.453496, + 46.8239 + ], + [ + 6.45644, + 46.80534 + ], + [ + 6.467224, + 46.79104 + ], + [ + 6.460984, + 46.76887 + ], + [ + 6.15817, + 46.59343 + ], + [ + 6.148724, + 46.58069 + ], + [ + 6.15152, + 46.56508 + ], + [ + 6.165489, + 46.54399 + ], + [ + 6.158111, + 46.52456 + ], + [ + 6.101739, + 46.46979 + ], + [ + 6.095717, + 46.45418 + ], + [ + 6.097044, + 46.43317 + ], + [ + 6.108289, + 46.41643 + ], + [ + 6.166216, + 46.38839 + ], + [ + 6.178173, + 46.36922 + ], + [ + 6.137482, + 46.31297 + ], + [ + 6.133713, + 46.30227 + ], + [ + 6.130383, + 46.23737 + ], + [ + 6.110298, + 46.22344 + ], + [ + 6.088648, + 46.23081 + ], + [ + 6.077173, + 46.23123 + ], + [ + 6.018573, + 46.21601 + ], + [ + 6.006813, + 46.20752 + ], + [ + 6.003882, + 46.19332 + ], + [ + 6.007866, + 46.16977 + ], + [ + 6.017834, + 46.15564 + ], + [ + 6.03509, + 46.15456 + ], + [ + 6.055639, + 46.16288 + ], + [ + 6.124683, + 46.15415 + ], + [ + 6.137776, + 46.15702 + ], + [ + 6.240258, + 46.22094 + ], + [ + 6.249058, + 46.23299 + ], + [ + 6.247073, + 46.24777 + ], + [ + 6.21148, + 46.31057 + ], + [ + 6.212186, + 46.32485 + ], + [ + 6.239462, + 46.36705 + ], + [ + 6.316478, + 46.41557 + ], + [ + 6.410826, + 46.42495 + ], + [ + 6.417483, + 46.42682 + ], + [ + 6.504978, + 46.46871 + ], + [ + 6.630473, + 46.47435 + ], + [ + 6.746646, + 46.45695 + ], + [ + 6.822442, + 46.42925 + ], + [ + 6.818324, + 46.38181 + ], + [ + 6.804843, + 46.36179 + ], + [ + 6.801885, + 46.34639 + ], + [ + 6.810949, + 46.33359 + ], + [ + 6.864911, + 46.30038 + ], + [ + 6.875036, + 46.28007 + ], + [ + 6.860917, + 46.2439 + ], + [ + 6.826978, + 46.21188 + ], + [ + 6.820746, + 46.19862 + ], + [ + 6.818627, + 46.16592 + ], + [ + 6.822593, + 46.15261 + ], + [ + 6.834266, + 46.14509 + ], + [ + 6.903819, + 46.12971 + ], + [ + 6.904911, + 46.09595 + ], + [ + 6.909323, + 46.08406 + ], + [ + 6.920006, + 46.07721 + ], + [ + 6.948976, + 46.0699 + ], + [ + 7.015561, + 46.00883 + ], + [ + 7.051911, + 45.93066 + ], + [ + 7.045335, + 45.92217 + ], + [ + 7.044967, + 45.92064 + ], + [ + 7.043936, + 45.92036 + ], + [ + 6.995822, + 45.85822 + ], + [ + 6.940965, + 45.83551 + ], + [ + 6.843757, + 45.82387 + ], + [ + 6.831016, + 45.81711 + ], + [ + 6.826141, + 45.80353 + ], + [ + 6.82787, + 45.73217 + ], + [ + 6.83174, + 45.72082 + ], + [ + 6.841405, + 45.71373 + ], + [ + 6.907294, + 45.69124 + ], + [ + 6.92419, + 45.66935 + ], + [ + 6.942468, + 45.66172 + ], + [ + 6.971313, + 45.66528 + ], + [ + 7.00597, + 45.64945 + ], + [ + 7.011511, + 45.63652 + ], + [ + 6.997797, + 45.60877 + ], + [ + 6.996431, + 45.59465 + ], + [ + 7.015803, + 45.52354 + ], + [ + 7.027743, + 45.5102 + ], + [ + 7.107198, + 45.47877 + ], + [ + 7.122797, + 45.44924 + ], + [ + 7.13304, + 45.44001 + ], + [ + 7.185604, + 45.41894 + ], + [ + 7.19515, + 45.40409 + ], + [ + 7.170749, + 45.35069 + ], + [ + 7.142319, + 45.32298 + ], + [ + 7.136488, + 45.30576 + ], + [ + 7.14458, + 45.25048 + ], + [ + 7.084166, + 45.20279 + ], + [ + 6.992792, + 45.19823 + ], + [ + 6.981064, + 45.19368 + ], + [ + 6.900091, + 45.12689 + ], + [ + 6.85843, + 45.11699 + ], + [ + 6.782826, + 45.14228 + ], + [ + 6.770557, + 45.14242 + ], + [ + 6.677507, + 45.11356 + ], + [ + 6.665295, + 45.10289 + ], + [ + 6.665008, + 45.08667 + ], + [ + 6.68237, + 45.04558 + ], + [ + 6.696016, + 45.03395 + ], + [ + 6.757442, + 45.01884 + ], + [ + 6.783751, + 44.9146 + ], + [ + 6.794195, + 44.90161 + ], + [ + 6.866981, + 44.86519 + ], + [ + 6.879801, + 44.86346 + ], + [ + 6.936325, + 44.87461 + ], + [ + 7.017954, + 44.84402 + ], + [ + 7.034535, + 44.82282 + ], + [ + 7.037114, + 44.75009 + ], + [ + 7.049604, + 44.73226 + ], + [ + 7.072236, + 44.72311 + ], + [ + 7.086508, + 44.6968 + ], + [ + 7.086656, + 44.68085 + ], + [ + 7.07671, + 44.67134 + ], + [ + 6.990071, + 44.67203 + ], + [ + 6.974128, + 44.66431 + ], + [ + 6.970564, + 44.64696 + ], + [ + 6.978189, + 44.61784 + ], + [ + 6.94659, + 44.57124 + ], + [ + 6.882347, + 44.53479 + ], + [ + 6.872327, + 44.5195 + ], + [ + 6.878925, + 44.50245 + ], + [ + 6.958945, + 44.43129 + ], + [ + 6.958723, + 44.42908 + ], + [ + 6.921668, + 44.41436 + ], + [ + 6.912225, + 44.40659 + ], + [ + 6.909075, + 44.39477 + ], + [ + 6.90972, + 44.38195 + ], + [ + 6.91637, + 44.36804 + ], + [ + 6.999091, + 44.29414 + ], + [ + 7.011806, + 44.256 + ], + [ + 7.019835, + 44.24558 + ], + [ + 7.032595, + 44.2424 + ], + [ + 7.073117, + 44.2461 + ], + [ + 7.165097, + 44.22112 + ], + [ + 7.245331, + 44.18544 + ], + [ + 7.260526, + 44.16682 + ], + [ + 7.275371, + 44.15947 + ], + [ + 7.338779, + 44.1574 + ], + [ + 7.362775, + 44.13834 + ], + [ + 7.377763, + 44.13416 + ], + [ + 7.56283, + 44.15792 + ], + [ + 7.5642, + 44.15836 + ], + [ + 7.564785, + 44.15817 + ], + [ + 7.605476, + 44.1634 + ], + [ + 7.616198, + 44.16827 + ], + [ + 7.639891, + 44.18928 + ], + [ + 7.686079, + 44.1861 + ], + [ + 7.69422, + 44.17795 + ], + [ + 7.68937, + 44.13869 + ], + [ + 7.694448, + 44.12276 + ], + [ + 7.727862, + 44.08615 + ], + [ + 7.724032, + 44.05704 + ], + [ + 7.686028, + 44.02371 + ], + [ + 7.680769, + 44.0164 + ], + [ + 7.660161, + 43.9672 + ], + [ + 7.596244, + 43.94466 + ], + [ + 7.584187, + 43.93287 + ], + [ + 7.568576, + 43.89159 + ], + [ + 7.527096, + 43.87434 + ], + [ + 7.516489, + 43.86397 + ], + [ + 7.51594, + 43.84915 + ], + [ + 7.53622, + 43.79234 + ], + [ + 9.8, + 43.1 + ], + [ + 9.63227, + 41.43244 + ], + [ + 9.369681, + 41.35052 + ], + [ + 9.273114, + 41.29196 + ], + [ + 8.941857, + 41.27688 + ], + [ + 5.8, + 41.64 + ], + [ + 3.173576, + 42.41768 + ], + [ + 3.160814, + 42.42757 + ], + [ + 3.094399, + 42.41457 + ], + [ + 3.034016, + 42.45331 + ], + [ + 3.022142, + 42.45645 + ], + [ + 2.878221, + 42.4487 + ], + [ + 2.870188, + 42.44653 + ], + [ + 2.784238, + 42.40256 + ], + [ + 2.741304, + 42.41128 + ], + [ + 2.729276, + 42.40998 + ], + [ + 2.693308, + 42.39417 + ], + [ + 2.683779, + 42.3854 + ], + [ + 2.681621, + 42.37263 + ], + [ + 2.685852, + 42.34679 + ], + [ + 2.66719, + 42.33008 + ], + [ + 2.581057, + 42.34418 + ], + [ + 2.567769, + 42.34173 + ], + [ + 2.533803, + 42.32197 + ], + [ + 2.477948, + 42.32986 + ], + [ + 2.419327, + 42.37658 + ], + [ + 2.41222, + 42.38021 + ], + [ + 2.267193, + 42.42055 + ], + [ + 2.259731, + 42.42117 + ], + [ + 2.206944, + 42.41558 + ], + [ + 2.206525, + 42.41526 + ], + [ + 2.205257, + 42.41541 + ], + [ + 2.160278, + 42.41065 + ], + [ + 2.148808, + 42.40545 + ], + [ + 2.093931, + 42.35474 + ], + [ + 2.008614, + 42.33818 + ], + [ + 1.964998, + 42.36473 + ], + [ + 1.930762, + 42.42442 + ], + [ + 1.920889, + 42.43302 + ], + [ + 1.884665, + 42.44761 + ], + [ + 1.884588, + 42.44762 + ], + [ + 1.884444, + 42.4477 + ], + [ + 1.827736, + 42.47056 + ], + [ + 1.725668, + 42.48452 + ], + [ + 1.715606, + 42.50125 + ], + [ + 1.727195, + 42.56103 + ], + [ + 1.724794, + 42.57499 + ], + [ + 1.710109, + 42.59992 + ], + [ + 1.69377, + 42.60975 + ], + [ + 1.602827, + 42.61382 + ], + [ + 1.560687, + 42.6392 + ], + [ + 1.546365, + 42.64166 + ], + [ + 1.504443, + 42.6331 + ], + [ + 1.492096, + 42.62502 + ], + [ + 1.472384, + 42.59703 + ], + [ + 1.437922, + 42.59264 + ], + [ + 1.419356, + 42.60643 + ], + [ + 1.38032, + 42.67415 + ], + [ + 1.373353, + 42.68127 + ], + [ + 1.333134, + 42.70563 + ], + [ + 1.323642, + 42.7085 + ], + [ + 1.232212, + 42.71248 + ], + [ + 1.165543, + 42.69928 + ], + [ + 1.085465, + 42.76635 + ], + [ + 1.075637, + 42.77079 + ], + [ + 0.9593748, + 42.78852 + ], + [ + 0.9507323, + 42.78794 + ], + [ + 0.9226515, + 42.7797 + ], + [ + 0.8460624, + 42.8157 + ], + [ + 0.7151135, + 42.8464 + ], + [ + 0.7001699, + 42.84402 + ], + [ + 0.6911674, + 42.83186 + ], + [ + 0.6740937, + 42.76479 + ], + [ + 0.6747382, + 42.75286 + ], + [ + 0.6919171, + 42.70684 + ], + [ + 0.6689955, + 42.67901 + ], + [ + 0.4302428, + 42.67863 + ], + [ + 0.3715037, + 42.70308 + ], + [ + 0.3595376, + 42.70415 + ], + [ + 0.3491168, + 42.69817 + ], + [ + 0.3256688, + 42.67274 + ], + [ + 0.2957095, + 42.66388 + ], + [ + 0.2459353, + 42.70175 + ], + [ + 0.2397249, + 42.70494 + ], + [ + 0.189669, + 42.72039 + ], + [ + 0.1791886, + 42.72075 + ], + [ + -0.01993262, + 42.67389 + ], + [ + -0.06725834, + 42.6848 + ], + [ + -0.1694885, + 42.77157 + ], + [ + -0.2998662, + 42.82697 + ], + [ + -0.3168349, + 42.82635 + ], + [ + -0.3920752, + 42.78766 + ], + [ + -0.4435404, + 42.78453 + ], + [ + -0.488418, + 42.80255 + ], + [ + -0.508683, + 42.79935 + ], + [ + -0.5449894, + 42.76906 + ], + [ + -0.5672068, + 42.76937 + ], + [ + -0.6744552, + 42.86392 + ], + [ + -0.6809365, + 42.86775 + ], + [ + -0.7337233, + 42.88666 + ], + [ + -0.747598, + 42.93879 + ], + [ + -0.757105, + 42.95107 + ], + [ + -0.7725328, + 42.95284 + ], + [ + -0.8211401, + 42.93865 + ], + [ + -0.9450847, + 42.94192 + ], + [ + -1.023131, + 42.98206 + ], + [ + -1.108517, + 43.00409 + ], + [ + -1.115597, + 43.00461 + ], + [ + -1.147753, + 43.00124 + ], + [ + -1.158452, + 43.01452 + ], + [ + -1.167362, + 43.02083 + ], + [ + -1.216216, + 43.0381 + ], + [ + -1.226121, + 43.03898 + ], + [ + -1.262362, + 43.03303 + ], + [ + -1.306428, + 43.05531 + ], + [ + -1.319918, + 43.05696 + ], + [ + -1.331346, + 43.0496 + ], + [ + -1.354196, + 43.0197 + ], + [ + -1.438684, + 43.03371 + ], + [ + -1.4775, + 43.06889 + ], + [ + -1.48311, + 43.08561 + ], + [ + -1.476407, + 43.10248 + ], + [ + -1.434786, + 43.13087 + ], + [ + -1.427318, + 43.1404 + ], + [ + -1.394112, + 43.22935 + ], + [ + -1.395313, + 43.24596 + ], + [ + -1.408677, + 43.25591 + ], + [ + -1.526287, + 43.28099 + ], + [ + -1.546257, + 43.2737 + ], + [ + -1.571485, + 43.2412 + ], + [ + -1.610526, + 43.24223 + ], + [ + -1.650003, + 43.29323 + ], + [ + -1.669527, + 43.30065 + ], + [ + -1.733594, + 43.28856 + ], + [ + -1.756061, + 43.31966 + ], + [ + -1.762973, + 43.32565 + ], + [ + -1.791557, + 43.34067 + ], + [ + -1.800991, + 43.37017 + ], + [ + -1.785091, + 43.39037 + ], + [ + -1.783502, + 43.39686 + ], + [ + -2.7, + 43.9 + ] + ], + [ + [ + -61.2750098, + 14.9021787 + ], + [ + -60.7236843, + 14.9010106 + ], + [ + -60.7248947, + 14.3668637 + ], + [ + -61.2762202, + 14.3680347 + ], + [ + -61.2750098, + 14.9021787 + ] + ], + [ + [ + -61.9280191, + 16.5861824 + ], + [ + -61.9268639, + 15.7393966 + ], + [ + -60.8812792, + 15.7407152 + ], + [ + -60.8824344, + 16.5874955 + ], + [ + -61.9280191, + 16.5861824 + ] + ], + [ + [ + -53.8934381, + 6.0040017 + ], + [ + -52.4652154, + 5.4464962 + ], + [ + -51.5203912, + 4.5107197 + ], + [ + -51.5368707, + 4.1163329 + ], + [ + -52.2345025, + 3.1021265 + ], + [ + -52.6409967, + 2.251623 + ], + [ + -52.9266412, + 2.0759672 + ], + [ + -53.7286431, + 2.2186891 + ], + [ + -54.2010552, + 2.0320501 + ], + [ + -54.8053033, + 2.2735786 + ], + [ + -54.3109185, + 2.8058902 + ], + [ + -54.3164117, + 3.2008539 + ], + [ + -54.124151, + 3.4640797 + ], + [ + -54.1296441, + 3.5956655 + ], + [ + -54.4207818, + 4.0012658 + ], + [ + -54.5800836, + 4.9596205 + ], + [ + -53.8934381, + 6.0040017 + ] + ], + [ + [ + 55.088162, + -20.7793549 + ], + [ + 55.9595858, + -20.7728126 + ], + [ + 55.9657599, + -21.4900002 + ], + [ + 55.0943361, + -21.496511 + ], + [ + 55.088162, + -20.7793549 + ] + ], + [ + [ + 44.9205447, + -12.5736261 + ], + [ + 45.3482619, + -12.5702887 + ], + [ + 45.3527389, + -13.116298 + ], + [ + 44.9250218, + -13.1196281 + ], + [ + 44.9205447, + -12.5736261 + ] + ], + [ + [ + -178.577276, + -14.7058162 + ], + [ + -178.4256804, + -14.0033368 + ], + [ + -176.3415582, + -12.8385765 + ], + [ + -175.7153375, + -12.9189012 + ], + [ + -175.9185845, + -13.587255 + ], + [ + -177.8463838, + -14.6498253 + ], + [ + -178.577276, + -14.7058162 + ] + ] + ], + "terms_url": "http://openstreetmap.fr/bdortho", + "terms_text": "BDOrtho IGN", + "best": true, + "icon": "http://www.ign.fr/institut/sites/all/themes/ign_institut/logo.png" }, { "id": "GRB", @@ -5278,296 +15095,408 @@ "polygon": [ [ [ - 2.522393220658428, - 51.101723961331 + 5.9849448, + 50.7072276 ], [ - 3.1260610915867457, - 51.34117672029327 + 5.9849448, + 50.7671973 ], [ - 3.174929443042849, - 51.382459567439525 + 5.9107871, + 50.8227527 ], [ - 3.3761520666856217, - 51.38784154353026 + 5.7556052, + 50.8353303 ], [ - 3.410647373595811, - 51.33040116175589 + 5.7542319, + 50.8626424 ], [ - 3.4020235468682634, - 51.28547573497245 + 5.8331961, + 50.9332328 ], [ - 3.4911364230529203, - 51.256700377228974 + 5.8551688, + 51.026611 ], [ - 3.4825125963253734, - 51.30345118353617 + 5.9094138, + 51.0775439 ], [ - 3.5773746903283947, - 51.323216048914524 + 5.9121604, + 51.1822548 ], [ - 3.813092620881357, - 51.27288873325703 + 5.8785147, + 51.2080728 ], [ - 3.8217164476089045, - 51.236906864834886 + 5.7741446, + 51.2368858 ], [ - 3.9309515861578386, - 51.236906864834886 + 5.684194, + 51.2407548 ], [ - 4.054559769252684, - 51.27468708752057 + 5.6230826, + 51.2699769 ], [ - 4.20116482362099, - 51.35194974615148 + 5.6230826, + 51.2978925 ], [ - 4.169544125619984, - 51.38066543475199 + 5.5399985, + 51.34724 ], [ - 4.342020660170932, - 51.395016527087456 + 5.4473013, + 51.3485267 ], [ - 4.3650175314443915, - 51.46491366130351 + 5.3985495, + 51.321071 ], [ - 4.5374940659953396, - 51.50071687469512 + 5.3120322, + 51.3232166 ], [ - 4.571989372905529, - 51.479238319799464 + 5.2667136, + 51.3618196 ], [ - 4.560490937268798, - 51.44879304380801 + 5.1994223, + 51.3725369 ], [ - 4.638105377816725, - 51.45058450468522 + 5.1829428, + 51.3961061 ], [ - 4.750215125274841, - 51.5239738914927 + 5.1589102, + 51.4923992 ], [ - 4.8364533925503155, - 51.507874144493115 + 5.0833792, + 51.5308596 ], [ - 5.080795149830825, - 51.49892738159079 + 5.0325675, + 51.539829 ], [ - 5.135412719105292, - 51.447001512638565 + 4.9556632, + 51.5052229 ], [ - 5.106666630013469, - 51.391429175957505 + 4.9014182, + 51.5056503 ], [ - 5.264770120018504, - 51.31782647548482 + 4.8382468, + 51.5436725 ], [ - 5.264770120018504, - 51.28727359653538 + 4.7709555, + 51.5586163 ], [ - 5.4085005654776275, - 51.292666758936925 + 4.711904, + 51.5470886 ], [ - 5.486115006025553, - 51.325012432665545 + 4.6404929, + 51.4966741 ], [ - 5.5809771000285755, - 51.28367780302667 + 4.6144003, + 51.4971016 ], [ - 5.583851708937758, - 51.23510703218069 + 4.5656485, + 51.5317139 ], [ - 5.767826679125435, - 51.20449910348059 + 4.4825644, + 51.5304324 ], [ - 5.8770618176743685, - 51.161253258857485 + 4.4262595, + 51.5218884 ], [ - 5.704585283123422, - 50.80292546633848 + 4.3006034, + 51.4697351 ], [ - 5.905807906766195, - 50.7865720955422 + 4.2951102, + 51.4256575 ], [ - 5.9374286047672005, - 50.732019528192964 + 4.181127, + 51.4243731 ], [ - 5.902933297857012, - 50.70107817444857 + 4.1371817, + 51.3952492 ], [ - 5.8138204216723555, - 50.69379488717487 + 4.138555, + 51.3506709 ], [ - 5.615472406938765, - 50.761122144578216 + 4.0520377, + 51.3004685 ], [ - 5.500488050571466, - 50.71200098472672 + 3.933248, + 51.272984 ], [ - 5.204403332925673, - 50.70289881954383 + 3.8652701, + 51.2708361 ], [ - 5.164158808197117, - 50.67558172042608 + 3.8632102, + 51.2901637 ], [ - 5.037676016193088, - 50.70107817444857 + 3.7629599, + 51.3240748 ], [ - 4.988807664736986, - 50.750210783384084 + 3.5933585, + 51.359247 ], [ - 4.916942442007425, - 50.72656077355532 + 3.4773154, + 51.3313688 ], [ - 4.790459650003396, - 50.766576871275696 + 3.425817, + 51.3973913 ], [ - 4.681224511454462, - 50.77021300246129 + 3.2356162, + 51.3515286 ], [ - 4.6697260758177315, - 50.73565834458533 + 3.2260031, + 51.3656781 ], [ - 4.287403090896464, - 50.67922491935501 + 3.1779379, + 51.3618196 ], [ - 3.91082932379356, - 50.677403355240585 + 3.1600852, + 51.3322268 ], [ - 3.718230526878334, - 50.752029520237265 + 3.0625815, + 51.3021857 ], [ - 3.6549891308763196, - 50.71200098472672 + 2.7508444, + 51.1702014 ], [ - 3.5342555566906557, - 50.710180693059606 + 2.4700064, + 51.0745241 ], [ - 3.514133294326379, - 50.741116039142966 + 2.4926657, + 50.9937771 ], [ - 3.45664111614273, - 50.74384464791457 + 2.5311179, + 50.9557299 ], [ - 3.373277457776438, - 50.69561581502901 + 2.5091452, + 50.9115907 ], [ - 3.310036061774423, - 50.70745012302645 + 2.5304312, + 50.8214514 ], [ - 3.2899137994101473, - 50.7365680045137 + 2.5990958, + 50.7641572 ], [ - 3.1648683118607086, - 50.742935129324266 + 2.6650138, + 50.7645915 ], [ - 3.1318103094051106, - 50.77203096207303 + 2.7700705, + 50.66677 ], [ - 3.080067349039826, - 50.76021296163662 + 2.8970999, + 50.6589354 ], [ - 2.8745328120332805, - 50.73929687829333 + 2.991857, + 50.7254874 ], [ - 2.8960923788521487, - 50.71109084772858 + 3.1133933, + 50.7263567 ], [ - 2.8745328120332805, - 50.69561581502901 + 3.2369895, + 50.7059231 ], [ - 2.796918371485353, - 50.70289881954383 + 3.3626456, + 50.6585001 ], [ - 2.699181668573149, - 50.80020030189157 + 3.4711356, + 50.7020092 ], [ - 2.6201299235706315, - 50.79747497850781 + 3.6393637, + 50.6672052 ], [ - 2.5698242676599374, - 50.85830267681076 + 3.6984152, + 50.681565 ], [ - 2.5669496587507554, - 50.923581424665855 + 3.727941, + 50.7124454 ], [ - 2.6028822701155367, - 50.94984841176044 + 3.8185782, + 50.6841754 ], [ - 2.549702005295661, - 50.996006093918574 + 3.8748831, + 50.6415206 ], [ - 2.522393220658428, - 51.101723961331 + 4.0925498, + 50.642827 + ], + [ + 4.150228, + 50.6632881 + ], + [ + 4.2065329, + 50.6441333 + ], + [ + 4.3136496, + 50.642827 + ], + [ + 4.452352, + 50.6876557 + ], + [ + 4.5347495, + 50.6780842 + ], + [ + 4.6130271, + 50.6954855 + ], + [ + 4.6768851, + 50.6959204 + ], + [ + 4.7270102, + 50.732007 + ], + [ + 4.7805686, + 50.732007 + ], + [ + 4.7997946, + 50.7128802 + ], + [ + 4.8622794, + 50.7128802 + ], + [ + 4.8856253, + 50.6954855 + ], + [ + 4.9611563, + 50.6954855 + ], + [ + 5.0311942, + 50.6576295 + ], + [ + 5.1074118, + 50.6502288 + ], + [ + 5.2007956, + 50.6489227 + ], + [ + 5.2358145, + 50.6654643 + ], + [ + 5.3250784, + 50.6658995 + ], + [ + 5.3669638, + 50.6820001 + ], + [ + 5.4212088, + 50.6641586 + ], + [ + 5.5221457, + 50.6746032 + ], + [ + 5.622396, + 50.7241834 + ], + [ + 5.6752677, + 50.69853 + ], + [ + 5.7398123, + 50.6972252 + ], + [ + 5.7727713, + 50.6719923 + ], + [ + 5.8125968, + 50.6602413 + ], + [ + 5.9080405, + 50.659806 + ], + [ + 5.9849448, + 50.7072276 ] ] ], @@ -6469,6 +16398,548 @@ "description": "Satellite and aerial imagery.", "icon": "data:image/png;base64,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" }, + { + "id": "Bordeaux_2012", + "name": "Bordeaux - 2012", + "type": "tms", + "template": "http://wms.openstreetmap.fr/tms/1.0.0/bordeaux_2012/{zoom}/{x}/{y}", + "endDate": "2012-01-01T00:00:00.000Z", + "startDate": "2012-01-01T00:00:00.000Z", + "scaleExtent": [ + 0, + 20 + ], + "polygon": [ + [ + [ + -0.5992269128228901, + 45.041932410852176 + ], + [ + -0.542312560140509, + 45.02756808640373 + ], + [ + -0.509790072893434, + 45.006014839274926 + ], + [ + -0.4772675856463589, + 45.002062530648324 + ], + [ + -0.47066145542429677, + 44.97366975755017 + ], + [ + -0.4554165395272304, + 44.95101733966983 + ], + [ + -0.4645634890654702, + 44.91792155099146 + ], + [ + -0.47320227474047455, + 44.91936089493768 + ], + [ + -0.48793902677430534, + 44.90928473014602 + ], + [ + -0.49810230403901634, + 44.89056716544938 + ], + [ + -0.48946351836401203, + 44.87796537368711 + ], + [ + -0.46659614451841236, + 44.87076311041642 + ], + [ + -0.4762512579198878, + 44.84734952959955 + ], + [ + -0.4950533208596031, + 44.839783107079846 + ], + [ + -0.4909880099537187, + 44.83185531284354 + ], + [ + -0.46964512769782574, + 44.825368124499924 + ], + [ + -0.4970859763125452, + 44.80445999547304 + ], + [ + -0.5245268249272648, + 44.80013322923096 + ], + [ + -0.5102982367566694, + 44.76767213918935 + ], + [ + -0.5346901021919757, + 44.76514662270613 + ], + [ + -0.5621309508066953, + 44.75107386670688 + ], + [ + -0.5600982953537531, + 44.7416901252491 + ], + [ + -0.5728023919346418, + 44.741329181695264 + ], + [ + -0.5946534380537702, + 44.760095258488434 + ], + [ + -0.6342902193861429, + 44.73988538494593 + ], + [ + -0.650043299146445, + 44.7770516622697 + ], + [ + -0.6790086393508712, + 44.77488729214841 + ], + [ + -0.688155588889111, + 44.779215951267936 + ], + [ + -0.7150882736405949, + 44.76839369504671 + ], + [ + -0.7516760717935543, + 44.74710400814933 + ], + [ + -0.7633638406479719, + 44.755765166198834 + ], + [ + -0.7384638113494302, + 44.77560875786918 + ], + [ + -0.7420209583920789, + 44.785708331523864 + ], + [ + -0.7277923702214837, + 44.81239155746571 + ], + [ + -0.7399883029391369, + 44.828611809936305 + ], + [ + -0.7643801683744431, + 44.82933260413425 + ], + [ + -0.8030006219803447, + 44.821763815493405 + ], + [ + -0.8400965839965395, + 44.82753060173851 + ], + [ + -0.8390802562700685, + 44.840143435448645 + ], + [ + -0.875668054423028, + 44.8502317148731 + ], + [ + -0.8853231678245034, + 44.85851719417739 + ], + [ + -0.88684765941421, + 44.887686999278294 + ], + [ + -0.8660129410215526, + 44.88696693520083 + ], + [ + -0.8456863864921306, + 44.8966870397005 + ], + [ + -0.8334904537744775, + 44.92763642292355 + ], + [ + -0.818245537877411, + 44.92763642292355 + ], + [ + -0.8019842942538735, + 44.92223947466319 + ], + [ + -0.7984271472112248, + 44.94849985224626 + ], + [ + -0.7872475422200427, + 44.948140202171814 + ], + [ + -0.7557413826994388, + 44.97007473283782 + ], + [ + -0.7216944038626572, + 44.95784996320919 + ], + [ + -0.6957780468376442, + 44.930874348504034 + ], + [ + -0.6886637527523465, + 44.93447182951288 + ], + [ + -0.6713861814023379, + 44.93267311717697 + ], + [ + -0.6693535259493957, + 44.940946727451696 + ], + [ + -0.6251432698479031, + 44.95065770536977 + ], + [ + -0.6322575639332009, + 44.95892872413991 + ], + [ + -0.6312412362067297, + 44.96719855081702 + ], + [ + -0.6002432405493613, + 44.967558081456815 + ], + [ + -0.5514595096787488, + 44.97834295278015 + ], + [ + -0.5407880685508023, + 44.97726455691398 + ], + [ + -0.5545084928581621, + 44.99739126890938 + ], + [ + -0.5936371103272993, + 45.01751091397198 + ], + [ + -0.6078656984978945, + 45.0340324785955 + ], + [ + -0.5992269128228901, + 45.041932410852176 + ] + ] + ], + "terms_text": "Communauté urbaine de Bordeaux - 2012" + }, + { + "id": "branquinha_al", + "name": "Branquinha AL", + "type": "wms", + "template": "http://geoserver.dados.al.gov.br:8080/geoserver/Alagoas/ows?service=WMS&version=1.1.0&request=GetMap&layers=Branquinha&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -35.96968237108, + -9.29279539826 + ], + [ + -35.97062650865, + -9.20260556139 + ], + [ + -35.97726765817, + -9.20263733363 + ], + [ + -35.98365131562, + -9.20270087809 + ], + [ + -35.98765317147, + -9.20265851512 + ], + [ + -35.99159065431, + -9.20274324105 + ], + [ + -36.00498024171, + -9.20283855771 + ], + [ + -36.01473275369, + -9.20293387434 + ], + [ + -36.01651374048, + -9.20295505581 + ], + [ + -36.01871315187, + -9.20293387434 + ], + [ + -36.02487150377, + -9.20285973919 + ], + [ + -36.02891627496, + -9.20296564655 + ], + [ + -36.03307906335, + -9.2028915114 + ], + [ + -36.03769246286, + -9.20294446508 + ], + [ + -36.04581419175, + -9.20299741875 + ], + [ + -36.05160776323, + -9.20305037241 + ], + [ + -36.05456892198, + -9.20300800948 + ], + [ + -36.06022301858, + -9.20303978168 + ], + [ + -36.06190744584, + -9.20303978168 + ], + [ + -36.06180015748, + -9.21318555747 + ], + [ + -36.06167141145, + -9.21805712081 + ], + [ + -36.06156412309, + -9.21914791817 + ], + [ + -36.06162849611, + -9.22156248675 + ], + [ + -36.06143537706, + -9.22276976485 + ], + [ + -36.06139246171, + -9.22716464584 + ], + [ + -36.06133881753, + -9.23226899309 + ], + [ + -36.06140319055, + -9.23391041686 + ], + [ + -36.06144610589, + -9.23493762655 + ], + [ + -36.06130663102, + -9.23646255088 + ], + [ + -36.0613280887, + -9.23773331611 + ], + [ + -36.06142464822, + -9.23904643537 + ], + [ + -36.06144610589, + -9.24133379272 + ], + [ + -36.0613602752, + -9.24229744345 + ], + [ + -36.06141391938, + -9.24357877714 + ], + [ + -36.06139246171, + -9.24530486392 + ], + [ + -36.06126371568, + -9.24726390922 + ], + [ + -36.06123152917, + -9.24948767715 + ], + [ + -36.06127444452, + -9.25106548492 + ], + [ + -36.0612100715, + -9.25517410549 + ], + [ + -36.06118861383, + -9.25794845615 + ], + [ + -36.06107059663, + -9.2594521027 + ], + [ + -36.0610920543, + -9.26183462807 + ], + [ + -36.06105986779, + -9.26492659247 + ], + [ + -36.06085601991, + -9.27145986606 + ], + [ + -36.06083456224, + -9.27510235154 + ], + [ + -36.06073800271, + -9.28273662427 + ], + [ + -36.06080237573, + -9.29234011263 + ], + [ + -36.06073800271, + -9.29363185173 + ], + [ + -36.05477276986, + -9.29356832368 + ], + [ + -36.04621115869, + -9.29349420762 + ], + [ + -36.03940907663, + -9.29348361961 + ], + [ + -36.03501025384, + -9.29338832751 + ], + [ + -36.02978531068, + -9.29340950353 + ], + [ + -36.02167431062, + -9.29332479942 + ], + [ + -36.01278010553, + -9.29328244736 + ], + [ + -36.0046798343, + -9.29320833124 + ], + [ + -35.99678341096, + -9.29314480312 + ], + [ + -35.98969165033, + -9.29312362708 + ], + [ + -35.98483148759, + -9.29304951092 + ], + [ + -35.98305050081, + -9.29289069053 + ], + [ + -35.98173085397, + -9.29294363067 + ], + [ + -35.97884479707, + -9.29281657433 + ], + [ + -35.96968237108, + -9.29279539826 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "British_Columbia_Mosaic", "name": "British Columbia Mosaic", @@ -7507,6 +17978,3000 @@ "terms_url": "http://imagery.paulnorman.ca/tiles/about.html", "terms_text": "Copyright Province of British Columbia, City of Surrey" }, + { + "id": "Budapest_XI_2015", + "name": "Budapest district XI orthophoto 2015", + "type": "wms", + "template": "http://terinfo.ujbuda.hu/mapproxy/service?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=orto2015_20160304&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:900913", + "startDate": "2015-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 19.047674, + 47.487889 + ], + [ + 19.051565, + 47.489898 + ], + [ + 19.064336, + 47.479203 + ], + [ + 19.066498, + 47.476323 + ], + [ + 19.067662, + 47.473428 + ], + [ + 19.068374, + 47.470774 + ], + [ + 19.06846, + 47.468765 + ], + [ + 19.067223, + 47.465006 + ], + [ + 19.056829, + 47.452588 + ], + [ + 19.054896, + 47.449065 + ], + [ + 19.05176, + 47.434991 + ], + [ + 19.048625, + 47.428997 + ], + [ + 19.043844, + 47.429684 + ], + [ + 19.040234, + 47.429319 + ], + [ + 19.035087, + 47.438181 + ], + [ + 19.032205, + 47.437794 + ], + [ + 19.025205, + 47.442004 + ], + [ + 19.020705, + 47.445763 + ], + [ + 19.019153, + 47.446579 + ], + [ + 19.015447, + 47.447588 + ], + [ + 19.01347, + 47.443613 + ], + [ + 19.012663, + 47.44271 + ], + [ + 19.011776, + 47.442473 + ], + [ + 19.011903, + 47.441883 + ], + [ + 19.009799, + 47.439443 + ], + [ + 19.005705, + 47.431105 + ], + [ + 19.000464, + 47.430974 + ], + [ + 18.995338, + 47.428211 + ], + [ + 18.975454, + 47.428179 + ], + [ + 18.973426, + 47.429037 + ], + [ + 18.973615, + 47.429982 + ], + [ + 18.975482, + 47.430671 + ], + [ + 18.977187, + 47.434024 + ], + [ + 18.978227, + 47.438171 + ], + [ + 18.977329, + 47.446572 + ], + [ + 18.970039, + 47.449876 + ], + [ + 18.968611, + 47.451422 + ], + [ + 18.975678, + 47.455063 + ], + [ + 18.975859, + 47.455563 + ], + [ + 18.976247, + 47.455842 + ], + [ + 18.97658, + 47.455945 + ], + [ + 18.977633, + 47.455967 + ], + [ + 18.980167, + 47.456049 + ], + [ + 18.981619, + 47.460669 + ], + [ + 18.977933, + 47.468574 + ], + [ + 18.968669, + 47.476431 + ], + [ + 18.977448, + 47.481943 + ], + [ + 18.980348, + 47.481687 + ], + [ + 18.985653, + 47.478204 + ], + [ + 18.989075, + 47.478377 + ], + [ + 18.991166, + 47.47898 + ], + [ + 18.991766, + 47.481021 + ], + [ + 18.992875, + 47.481817 + ], + [ + 18.998357, + 47.482378 + ], + [ + 18.999022, + 47.483001 + ], + [ + 19.003999, + 47.481886 + ], + [ + 19.004156, + 47.483992 + ], + [ + 19.010272, + 47.485348 + ], + [ + 19.012373, + 47.484043 + ], + [ + 19.0138, + 47.483506 + ], + [ + 19.016739, + 47.484651 + ], + [ + 19.016303, + 47.485392 + ], + [ + 19.016889, + 47.485946 + ], + [ + 19.018085, + 47.486054 + ], + [ + 19.021081, + 47.484921 + ], + [ + 19.021239, + 47.486124 + ], + [ + 19.023013, + 47.487414 + ], + [ + 19.026373, + 47.488854 + ], + [ + 19.029954, + 47.489037 + ], + [ + 19.031349, + 47.488554 + ], + [ + 19.031889, + 47.487587 + ], + [ + 19.032855, + 47.48712 + ], + [ + 19.03364, + 47.487018 + ], + [ + 19.035138, + 47.487249 + ], + [ + 19.035851, + 47.487292 + ], + [ + 19.03616, + 47.487507 + ], + [ + 19.036651, + 47.487668 + ], + [ + 19.037475, + 47.487738 + ], + [ + 19.038474, + 47.487368 + ], + [ + 19.039179, + 47.486793 + ], + [ + 19.041049, + 47.486492 + ], + [ + 19.04181, + 47.487373 + ], + [ + 19.04387, + 47.488104 + ], + [ + 19.045423, + 47.488169 + ], + [ + 19.046945, + 47.488104 + ], + [ + 19.047674, + 47.487889 + ] + ] + ], + "terms_url": "http://terinfo.ujbuda.hu/", + "terms_text": "Budapest XI. kerület önkormányzata", + "description": "5 cm resolution bald image" + }, + { + "id": "Budapest_XI_2017", + "name": "Budapest district XI orthophoto 2017", + "type": "wms", + "template": "http://terinfo.ujbuda.hu/mapproxy/service?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=orto_2017&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:900913", + "startDate": "2017-03-01T00:00:00.000Z", + "polygon": [ + [ + [ + 19.047674, + 47.487889 + ], + [ + 19.051565, + 47.489898 + ], + [ + 19.064336, + 47.479203 + ], + [ + 19.066498, + 47.476323 + ], + [ + 19.067662, + 47.473428 + ], + [ + 19.068374, + 47.470774 + ], + [ + 19.06846, + 47.468765 + ], + [ + 19.067223, + 47.465006 + ], + [ + 19.056829, + 47.452588 + ], + [ + 19.054896, + 47.449065 + ], + [ + 19.05176, + 47.434991 + ], + [ + 19.048625, + 47.428997 + ], + [ + 19.043844, + 47.429684 + ], + [ + 19.040234, + 47.429319 + ], + [ + 19.035087, + 47.438181 + ], + [ + 19.032205, + 47.437794 + ], + [ + 19.025205, + 47.442004 + ], + [ + 19.020705, + 47.445763 + ], + [ + 19.019153, + 47.446579 + ], + [ + 19.015447, + 47.447588 + ], + [ + 19.01347, + 47.443613 + ], + [ + 19.012663, + 47.44271 + ], + [ + 19.011776, + 47.442473 + ], + [ + 19.011903, + 47.441883 + ], + [ + 19.009799, + 47.439443 + ], + [ + 19.005705, + 47.431105 + ], + [ + 19.000464, + 47.430974 + ], + [ + 18.995338, + 47.428211 + ], + [ + 18.975454, + 47.428179 + ], + [ + 18.973426, + 47.429037 + ], + [ + 18.973615, + 47.429982 + ], + [ + 18.975482, + 47.430671 + ], + [ + 18.977187, + 47.434024 + ], + [ + 18.978227, + 47.438171 + ], + [ + 18.977329, + 47.446572 + ], + [ + 18.970039, + 47.449876 + ], + [ + 18.968611, + 47.451422 + ], + [ + 18.975678, + 47.455063 + ], + [ + 18.975859, + 47.455563 + ], + [ + 18.976247, + 47.455842 + ], + [ + 18.97658, + 47.455945 + ], + [ + 18.977633, + 47.455967 + ], + [ + 18.980167, + 47.456049 + ], + [ + 18.981619, + 47.460669 + ], + [ + 18.977933, + 47.468574 + ], + [ + 18.968669, + 47.476431 + ], + [ + 18.977448, + 47.481943 + ], + [ + 18.980348, + 47.481687 + ], + [ + 18.985653, + 47.478204 + ], + [ + 18.989075, + 47.478377 + ], + [ + 18.991166, + 47.47898 + ], + [ + 18.991766, + 47.481021 + ], + [ + 18.992875, + 47.481817 + ], + [ + 18.998357, + 47.482378 + ], + [ + 18.999022, + 47.483001 + ], + [ + 19.003999, + 47.481886 + ], + [ + 19.004156, + 47.483992 + ], + [ + 19.010272, + 47.485348 + ], + [ + 19.012373, + 47.484043 + ], + [ + 19.0138, + 47.483506 + ], + [ + 19.016739, + 47.484651 + ], + [ + 19.016303, + 47.485392 + ], + [ + 19.016889, + 47.485946 + ], + [ + 19.018085, + 47.486054 + ], + [ + 19.021081, + 47.484921 + ], + [ + 19.021239, + 47.486124 + ], + [ + 19.023013, + 47.487414 + ], + [ + 19.026373, + 47.488854 + ], + [ + 19.029954, + 47.489037 + ], + [ + 19.031349, + 47.488554 + ], + [ + 19.031889, + 47.487587 + ], + [ + 19.032855, + 47.48712 + ], + [ + 19.03364, + 47.487018 + ], + [ + 19.035138, + 47.487249 + ], + [ + 19.035851, + 47.487292 + ], + [ + 19.03616, + 47.487507 + ], + [ + 19.036651, + 47.487668 + ], + [ + 19.037475, + 47.487738 + ], + [ + 19.038474, + 47.487368 + ], + [ + 19.039179, + 47.486793 + ], + [ + 19.041049, + 47.486492 + ], + [ + 19.04181, + 47.487373 + ], + [ + 19.04387, + 47.488104 + ], + [ + 19.045423, + 47.488169 + ], + [ + 19.046945, + 47.488104 + ], + [ + 19.047674, + 47.487889 + ] + ] + ], + "terms_url": "http://terinfo.ujbuda.hu/", + "terms_text": "Budapest XI. kerület önkormányzata", + "best": true, + "description": "5 cm resolution bald image" + }, + { + "id": "Cadastre", + "name": "Cadastre", + "type": "tms", + "template": "http://tms.cadastre.openstreetmap.fr/*/tout/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 12, + 22 + ], + "polygon": [ + [ + [ + -2.7, + 43.9 + ], + [ + -6.3, + 48.98 + ], + [ + -2.25, + 50.09 + ], + [ + 1.31, + 50.88 + ], + [ + 2.358164, + 51.32937 + ], + [ + 2.548804, + 51.09759 + ], + [ + 2.570482, + 51.07409 + ], + [ + 2.587412, + 51.01763 + ], + [ + 2.598448, + 51.0051 + ], + [ + 2.615575, + 50.99749 + ], + [ + 2.639859, + 50.95766 + ], + [ + 2.642247, + 50.94578 + ], + [ + 2.624519, + 50.9256 + ], + [ + 2.61962, + 50.91067 + ], + [ + 2.623964, + 50.86071 + ], + [ + 2.627811, + 50.85054 + ], + [ + 2.637859, + 50.83696 + ], + [ + 2.651102, + 50.82906 + ], + [ + 2.732666, + 50.81738 + ], + [ + 2.79995, + 50.73795 + ], + [ + 2.816552, + 50.73092 + ], + [ + 2.852648, + 50.73335 + ], + [ + 2.890719, + 50.7162 + ], + [ + 2.904925, + 50.71536 + ], + [ + 2.916096, + 50.72418 + ], + [ + 2.935084, + 50.75592 + ], + [ + 3.007184, + 50.78377 + ], + [ + 3.082183, + 50.78749 + ], + [ + 3.092439, + 50.79092 + ], + [ + 3.114119, + 50.80566 + ], + [ + 3.148768, + 50.80195 + ], + [ + 3.215401, + 50.73111 + ], + [ + 3.221487, + 50.7267 + ], + [ + 3.270507, + 50.70375 + ], + [ + 3.275448, + 50.67757 + ], + [ + 3.265761, + 50.6604 + ], + [ + 3.265877, + 50.64054 + ], + [ + 3.289219, + 50.60028 + ], + [ + 3.292195, + 50.55037 + ], + [ + 3.305598, + 50.53267 + ], + [ + 3.375514, + 50.50839 + ], + [ + 3.389804, + 50.50884 + ], + [ + 3.474798, + 50.54445 + ], + [ + 3.52173, + 50.53459 + ], + [ + 3.532662, + 50.51873 + ], + [ + 3.547788, + 50.51012 + ], + [ + 3.615234, + 50.50558 + ], + [ + 3.673778, + 50.45642 + ], + [ + 3.684152, + 50.35277 + ], + [ + 3.690097, + 50.34044 + ], + [ + 3.702583, + 50.33482 + ], + [ + 3.715758, + 50.33854 + ], + [ + 3.749349, + 50.36279 + ], + [ + 3.841089, + 50.36558 + ], + [ + 3.901887, + 50.3436 + ], + [ + 3.913173, + 50.34291 + ], + [ + 4.026717, + 50.36904 + ], + [ + 4.13761, + 50.29984 + ], + [ + 4.143881, + 50.29727 + ], + [ + 4.214438, + 50.28167 + ], + [ + 4.229037, + 50.26664 + ], + [ + 4.230782, + 50.25233 + ], + [ + 4.170843, + 50.18579 + ], + [ + 4.166015, + 50.16888 + ], + [ + 4.176401, + 50.1547 + ], + [ + 4.211948, + 50.13602 + ], + [ + 4.240742, + 50.07102 + ], + [ + 4.231934, + 50.05551 + ], + [ + 4.181645, + 50.03436 + ], + [ + 4.17177, + 50.02537 + ], + [ + 4.169755, + 50.01217 + ], + [ + 4.176498, + 50.00065 + ], + [ + 4.206331, + 49.97546 + ], + [ + 4.221639, + 49.97089 + ], + [ + 4.308774, + 49.98145 + ], + [ + 4.445423, + 49.9523 + ], + [ + 4.454691, + 49.95251 + ], + [ + 4.658098, + 50.00609 + ], + [ + 4.669358, + 50.01392 + ], + [ + 4.672929, + 50.02716 + ], + [ + 4.66924, + 50.06972 + ], + [ + 4.695168, + 50.10472 + ], + [ + 4.831227, + 50.17941 + ], + [ + 4.881497, + 50.16436 + ], + [ + 4.904786, + 50.14451 + ], + [ + 4.904264, + 50.12639 + ], + [ + 4.880762, + 50.0815 + ], + [ + 4.862772, + 50.0745 + ], + [ + 4.851037, + 50.06216 + ], + [ + 4.843307, + 50.03884 + ], + [ + 4.843307, + 50.03883 + ], + [ + 4.843295, + 50.03881 + ], + [ + 4.826781, + 49.989 + ], + [ + 4.826618, + 49.97692 + ], + [ + 4.833433, + 49.96696 + ], + [ + 4.896542, + 49.91753 + ], + [ + 4.897546, + 49.89424 + ], + [ + 4.879134, + 49.86942 + ], + [ + 4.876249, + 49.85111 + ], + [ + 4.889238, + 49.81266 + ], + [ + 4.897691, + 49.80204 + ], + [ + 4.910979, + 49.79926 + ], + [ + 4.995343, + 49.81116 + ], + [ + 5.01867, + 49.79272 + ], + [ + 5.026862, + 49.78886 + ], + [ + 5.099438, + 49.77323 + ], + [ + 5.134584, + 49.73462 + ], + [ + 5.141201, + 49.72984 + ], + [ + 5.187609, + 49.70906 + ], + [ + 5.196025, + 49.70732 + ], + [ + 5.281572, + 49.70836 + ], + [ + 5.333628, + 49.67308 + ], + [ + 5.343996, + 49.65049 + ], + [ + 5.354398, + 49.64041 + ], + [ + 5.431412, + 49.60791 + ], + [ + 5.482051, + 49.52815 + ], + [ + 5.492943, + 49.51979 + ], + [ + 5.50666, + 49.52042 + ], + [ + 5.55401, + 49.54025 + ], + [ + 5.59311, + 49.53424 + ], + [ + 5.607602, + 49.53761 + ], + [ + 5.640997, + 49.56095 + ], + [ + 5.706759, + 49.55267 + ], + [ + 5.715782, + 49.55361 + ], + [ + 5.775261, + 49.57414 + ], + [ + 5.839902, + 49.55321 + ], + [ + 5.861263, + 49.52038 + ], + [ + 5.875997, + 49.5114 + ], + [ + 5.975162, + 49.50129 + ], + [ + 5.998015, + 49.47317 + ], + [ + 6.016266, + 49.46597 + ], + [ + 6.08635, + 49.47562 + ], + [ + 6.093186, + 49.47787 + ], + [ + 6.173966, + 49.52187 + ], + [ + 6.246435, + 49.52511 + ], + [ + 6.333999, + 49.48235 + ], + [ + 6.344229, + 49.48037 + ], + [ + 6.435145, + 49.487 + ], + [ + 6.5451, + 49.44384 + ], + [ + 6.606389, + 49.37868 + ], + [ + 6.604972, + 49.33739 + ], + [ + 6.616267, + 49.31869 + ], + [ + 6.670133, + 49.29269 + ], + [ + 6.729955, + 49.22917 + ], + [ + 6.743276, + 49.19086 + ], + [ + 6.760259, + 49.17752 + ], + [ + 6.809042, + 49.17284 + ], + [ + 6.824733, + 49.17826 + ], + [ + 6.830928, + 49.19366 + ], + [ + 6.829819, + 49.21802 + ], + [ + 6.851186, + 49.23136 + ], + [ + 6.884528, + 49.2239 + ], + [ + 6.893221, + 49.22389 + ], + [ + 6.937527, + 49.23369 + ], + [ + 7.040549, + 49.19794 + ], + [ + 7.046296, + 49.17503 + ], + [ + 7.054777, + 49.16313 + ], + [ + 7.069081, + 49.16018 + ], + [ + 7.104945, + 49.16634 + ], + [ + 7.143153, + 49.14159 + ], + [ + 7.153499, + 49.13839 + ], + [ + 7.286827, + 49.13488 + ], + [ + 7.29893, + 49.13856 + ], + [ + 7.360948, + 49.18259 + ], + [ + 7.450116, + 49.19517 + ], + [ + 7.50113, + 49.17672 + ], + [ + 7.543788, + 49.10572 + ], + [ + 7.557903, + 49.09626 + ], + [ + 7.629604, + 49.08527 + ], + [ + 7.647217, + 49.06722 + ], + [ + 7.661197, + 49.06119 + ], + [ + 7.754008, + 49.05963 + ], + [ + 7.760731, + 49.06067 + ], + [ + 7.802913, + 49.07489 + ], + [ + 7.855253, + 49.05329 + ], + [ + 7.867297, + 49.05227 + ], + [ + 7.93826, + 49.06832 + ], + [ + 8.080685, + 49.00688 + ], + [ + 8.222498, + 48.98787 + ], + [ + 8.23704, + 48.97683 + ], + [ + 8.235894, + 48.95817 + ], + [ + 8.208878, + 48.94863 + ], + [ + 8.200888, + 48.94339 + ], + [ + 8.158243, + 48.89753 + ], + [ + 8.100873, + 48.7993 + ], + [ + 7.990709, + 48.74478 + ], + [ + 7.985341, + 48.7409 + ], + [ + 7.904217, + 48.65865 + ], + [ + 7.856051, + 48.63606 + ], + [ + 7.848405, + 48.62977 + ], + [ + 7.818424, + 48.58883 + ], + [ + 7.81456, + 48.57704 + ], + [ + 7.814491, + 48.50968 + ], + [ + 7.785465, + 48.48337 + ], + [ + 7.780554, + 48.47652 + ], + [ + 7.745059, + 48.39484 + ], + [ + 7.743573, + 48.38427 + ], + [ + 7.751593, + 48.32322 + ], + [ + 7.71085, + 48.29841 + ], + [ + 7.702411, + 48.28803 + ], + [ + 7.676613, + 48.21555 + ], + [ + 7.596051, + 48.11698 + ], + [ + 7.591652, + 48.10648 + ], + [ + 7.585216, + 48.04694 + ], + [ + 7.591268, + 48.03035 + ], + [ + 7.624373, + 47.99865 + ], + [ + 7.632049, + 47.97081 + ], + [ + 7.575545, + 47.87436 + ], + [ + 7.572802, + 47.86435 + ], + [ + 7.572673, + 47.83631 + ], + [ + 7.545808, + 47.78793 + ], + [ + 7.544185, + 47.77232 + ], + [ + 7.557581, + 47.72899 + ], + [ + 7.535257, + 47.6989 + ], + [ + 7.531364, + 47.68564 + ], + [ + 7.536998, + 47.67302 + ], + [ + 7.600164, + 47.60822 + ], + [ + 7.589675, + 47.56755 + ], + [ + 7.554237, + 47.55128 + ], + [ + 7.54511, + 47.54283 + ], + [ + 7.512557, + 47.48439 + ], + [ + 7.387471, + 47.42111 + ], + [ + 7.326527, + 47.4273 + ], + [ + 7.244354, + 47.40939 + ], + [ + 7.167083, + 47.4335 + ], + [ + 7.152115, + 47.47612 + ], + [ + 7.14279, + 47.48707 + ], + [ + 7.128529, + 47.48893 + ], + [ + 7.080105, + 47.47718 + ], + [ + 7.035575, + 47.48695 + ], + [ + 7.021019, + 47.48458 + ], + [ + 7.012048, + 47.47287 + ], + [ + 7.002995, + 47.44095 + ], + [ + 6.955099, + 47.40808 + ], + [ + 6.947157, + 47.39698 + ], + [ + 6.94818, + 47.38337 + ], + [ + 6.957691, + 47.37359 + ], + [ + 6.971263, + 47.37218 + ], + [ + 7.018004, + 47.38386 + ], + [ + 7.05623, + 47.37035 + ], + [ + 7.070073, + 47.35005 + ], + [ + 7.05958, + 47.32257 + ], + [ + 6.974243, + 47.27856 + ], + [ + 6.963469, + 47.26233 + ], + [ + 6.961339, + 47.23479 + ], + [ + 6.89443, + 47.19393 + ], + [ + 6.889128, + 47.18922 + ], + [ + 6.855453, + 47.14636 + ], + [ + 6.769073, + 47.10751 + ], + [ + 6.760108, + 47.09953 + ], + [ + 6.725613, + 47.0418 + ], + [ + 6.623551, + 46.9811 + ], + [ + 6.481204, + 46.9445 + ], + [ + 6.46892, + 46.93522 + ], + [ + 6.466862, + 46.91997 + ], + [ + 6.475476, + 46.88771 + ], + [ + 6.453496, + 46.8239 + ], + [ + 6.45644, + 46.80534 + ], + [ + 6.467224, + 46.79104 + ], + [ + 6.460984, + 46.76887 + ], + [ + 6.15817, + 46.59343 + ], + [ + 6.148724, + 46.58069 + ], + [ + 6.15152, + 46.56508 + ], + [ + 6.165489, + 46.54399 + ], + [ + 6.158111, + 46.52456 + ], + [ + 6.101739, + 46.46979 + ], + [ + 6.095717, + 46.45418 + ], + [ + 6.097044, + 46.43317 + ], + [ + 6.108289, + 46.41643 + ], + [ + 6.166216, + 46.38839 + ], + [ + 6.178173, + 46.36922 + ], + [ + 6.137482, + 46.31297 + ], + [ + 6.133713, + 46.30227 + ], + [ + 6.130383, + 46.23737 + ], + [ + 6.110298, + 46.22344 + ], + [ + 6.088648, + 46.23081 + ], + [ + 6.077173, + 46.23123 + ], + [ + 6.018573, + 46.21601 + ], + [ + 6.006813, + 46.20752 + ], + [ + 6.003882, + 46.19332 + ], + [ + 6.007866, + 46.16977 + ], + [ + 6.017834, + 46.15564 + ], + [ + 6.03509, + 46.15456 + ], + [ + 6.055639, + 46.16288 + ], + [ + 6.124683, + 46.15415 + ], + [ + 6.137776, + 46.15702 + ], + [ + 6.240258, + 46.22094 + ], + [ + 6.249058, + 46.23299 + ], + [ + 6.247073, + 46.24777 + ], + [ + 6.21148, + 46.31057 + ], + [ + 6.212186, + 46.32485 + ], + [ + 6.239462, + 46.36705 + ], + [ + 6.316478, + 46.41557 + ], + [ + 6.410826, + 46.42495 + ], + [ + 6.417483, + 46.42682 + ], + [ + 6.504978, + 46.46871 + ], + [ + 6.630473, + 46.47435 + ], + [ + 6.746646, + 46.45695 + ], + [ + 6.822442, + 46.42925 + ], + [ + 6.818324, + 46.38181 + ], + [ + 6.804843, + 46.36179 + ], + [ + 6.801885, + 46.34639 + ], + [ + 6.810949, + 46.33359 + ], + [ + 6.864911, + 46.30038 + ], + [ + 6.875036, + 46.28007 + ], + [ + 6.860917, + 46.2439 + ], + [ + 6.826978, + 46.21188 + ], + [ + 6.820746, + 46.19862 + ], + [ + 6.818627, + 46.16592 + ], + [ + 6.822593, + 46.15261 + ], + [ + 6.834266, + 46.14509 + ], + [ + 6.903819, + 46.12971 + ], + [ + 6.904911, + 46.09595 + ], + [ + 6.909323, + 46.08406 + ], + [ + 6.920006, + 46.07721 + ], + [ + 6.948976, + 46.0699 + ], + [ + 7.015561, + 46.00883 + ], + [ + 7.051911, + 45.93066 + ], + [ + 7.045335, + 45.92217 + ], + [ + 7.044967, + 45.92064 + ], + [ + 7.043936, + 45.92036 + ], + [ + 6.995822, + 45.85822 + ], + [ + 6.940965, + 45.83551 + ], + [ + 6.843757, + 45.82387 + ], + [ + 6.831016, + 45.81711 + ], + [ + 6.826141, + 45.80353 + ], + [ + 6.82787, + 45.73217 + ], + [ + 6.83174, + 45.72082 + ], + [ + 6.841405, + 45.71373 + ], + [ + 6.907294, + 45.69124 + ], + [ + 6.92419, + 45.66935 + ], + [ + 6.942468, + 45.66172 + ], + [ + 6.971313, + 45.66528 + ], + [ + 7.00597, + 45.64945 + ], + [ + 7.011511, + 45.63652 + ], + [ + 6.997797, + 45.60877 + ], + [ + 6.996431, + 45.59465 + ], + [ + 7.015803, + 45.52354 + ], + [ + 7.027743, + 45.5102 + ], + [ + 7.107198, + 45.47877 + ], + [ + 7.122797, + 45.44924 + ], + [ + 7.13304, + 45.44001 + ], + [ + 7.185604, + 45.41894 + ], + [ + 7.19515, + 45.40409 + ], + [ + 7.170749, + 45.35069 + ], + [ + 7.142319, + 45.32298 + ], + [ + 7.136488, + 45.30576 + ], + [ + 7.14458, + 45.25048 + ], + [ + 7.084166, + 45.20279 + ], + [ + 6.992792, + 45.19823 + ], + [ + 6.981064, + 45.19368 + ], + [ + 6.900091, + 45.12689 + ], + [ + 6.85843, + 45.11699 + ], + [ + 6.782826, + 45.14228 + ], + [ + 6.770557, + 45.14242 + ], + [ + 6.677507, + 45.11356 + ], + [ + 6.665295, + 45.10289 + ], + [ + 6.665008, + 45.08667 + ], + [ + 6.68237, + 45.04558 + ], + [ + 6.696016, + 45.03395 + ], + [ + 6.757442, + 45.01884 + ], + [ + 6.783751, + 44.9146 + ], + [ + 6.794195, + 44.90161 + ], + [ + 6.866981, + 44.86519 + ], + [ + 6.879801, + 44.86346 + ], + [ + 6.936325, + 44.87461 + ], + [ + 7.017954, + 44.84402 + ], + [ + 7.034535, + 44.82282 + ], + [ + 7.037114, + 44.75009 + ], + [ + 7.049604, + 44.73226 + ], + [ + 7.072236, + 44.72311 + ], + [ + 7.086508, + 44.6968 + ], + [ + 7.086656, + 44.68085 + ], + [ + 7.07671, + 44.67134 + ], + [ + 6.990071, + 44.67203 + ], + [ + 6.974128, + 44.66431 + ], + [ + 6.970564, + 44.64696 + ], + [ + 6.978189, + 44.61784 + ], + [ + 6.94659, + 44.57124 + ], + [ + 6.882347, + 44.53479 + ], + [ + 6.872327, + 44.5195 + ], + [ + 6.878925, + 44.50245 + ], + [ + 6.958945, + 44.43129 + ], + [ + 6.958723, + 44.42908 + ], + [ + 6.921668, + 44.41436 + ], + [ + 6.912225, + 44.40659 + ], + [ + 6.909075, + 44.39477 + ], + [ + 6.90972, + 44.38195 + ], + [ + 6.91637, + 44.36804 + ], + [ + 6.999091, + 44.29414 + ], + [ + 7.011806, + 44.256 + ], + [ + 7.019835, + 44.24558 + ], + [ + 7.032595, + 44.2424 + ], + [ + 7.073117, + 44.2461 + ], + [ + 7.165097, + 44.22112 + ], + [ + 7.245331, + 44.18544 + ], + [ + 7.260526, + 44.16682 + ], + [ + 7.275371, + 44.15947 + ], + [ + 7.338779, + 44.1574 + ], + [ + 7.362775, + 44.13834 + ], + [ + 7.377763, + 44.13416 + ], + [ + 7.56283, + 44.15792 + ], + [ + 7.5642, + 44.15836 + ], + [ + 7.564785, + 44.15817 + ], + [ + 7.605476, + 44.1634 + ], + [ + 7.616198, + 44.16827 + ], + [ + 7.639891, + 44.18928 + ], + [ + 7.686079, + 44.1861 + ], + [ + 7.69422, + 44.17795 + ], + [ + 7.68937, + 44.13869 + ], + [ + 7.694448, + 44.12276 + ], + [ + 7.727862, + 44.08615 + ], + [ + 7.724032, + 44.05704 + ], + [ + 7.686028, + 44.02371 + ], + [ + 7.680769, + 44.0164 + ], + [ + 7.660161, + 43.9672 + ], + [ + 7.596244, + 43.94466 + ], + [ + 7.584187, + 43.93287 + ], + [ + 7.568576, + 43.89159 + ], + [ + 7.527096, + 43.87434 + ], + [ + 7.516489, + 43.86397 + ], + [ + 7.51594, + 43.84915 + ], + [ + 7.53622, + 43.79234 + ], + [ + 9.8, + 43.1 + ], + [ + 9.63227, + 41.43244 + ], + [ + 9.369681, + 41.35052 + ], + [ + 9.273114, + 41.29196 + ], + [ + 8.941857, + 41.27688 + ], + [ + 5.8, + 41.64 + ], + [ + 3.173576, + 42.41768 + ], + [ + 3.160814, + 42.42757 + ], + [ + 3.094399, + 42.41457 + ], + [ + 3.034016, + 42.45331 + ], + [ + 3.022142, + 42.45645 + ], + [ + 2.878221, + 42.4487 + ], + [ + 2.870188, + 42.44653 + ], + [ + 2.784238, + 42.40256 + ], + [ + 2.741304, + 42.41128 + ], + [ + 2.729276, + 42.40998 + ], + [ + 2.693308, + 42.39417 + ], + [ + 2.683779, + 42.3854 + ], + [ + 2.681621, + 42.37263 + ], + [ + 2.685852, + 42.34679 + ], + [ + 2.66719, + 42.33008 + ], + [ + 2.581057, + 42.34418 + ], + [ + 2.567769, + 42.34173 + ], + [ + 2.533803, + 42.32197 + ], + [ + 2.477948, + 42.32986 + ], + [ + 2.419327, + 42.37658 + ], + [ + 2.41222, + 42.38021 + ], + [ + 2.267193, + 42.42055 + ], + [ + 2.259731, + 42.42117 + ], + [ + 2.206944, + 42.41558 + ], + [ + 2.206525, + 42.41526 + ], + [ + 2.205257, + 42.41541 + ], + [ + 2.160278, + 42.41065 + ], + [ + 2.148808, + 42.40545 + ], + [ + 2.093931, + 42.35474 + ], + [ + 2.008614, + 42.33818 + ], + [ + 1.964998, + 42.36473 + ], + [ + 1.930762, + 42.42442 + ], + [ + 1.920889, + 42.43302 + ], + [ + 1.884665, + 42.44761 + ], + [ + 1.884588, + 42.44762 + ], + [ + 1.884444, + 42.4477 + ], + [ + 1.827736, + 42.47056 + ], + [ + 1.725668, + 42.48452 + ], + [ + 1.715606, + 42.50125 + ], + [ + 1.727195, + 42.56103 + ], + [ + 1.724794, + 42.57499 + ], + [ + 1.710109, + 42.59992 + ], + [ + 1.69377, + 42.60975 + ], + [ + 1.602827, + 42.61382 + ], + [ + 1.560687, + 42.6392 + ], + [ + 1.546365, + 42.64166 + ], + [ + 1.504443, + 42.6331 + ], + [ + 1.492096, + 42.62502 + ], + [ + 1.472384, + 42.59703 + ], + [ + 1.437922, + 42.59264 + ], + [ + 1.419356, + 42.60643 + ], + [ + 1.38032, + 42.67415 + ], + [ + 1.373353, + 42.68127 + ], + [ + 1.333134, + 42.70563 + ], + [ + 1.323642, + 42.7085 + ], + [ + 1.232212, + 42.71248 + ], + [ + 1.165543, + 42.69928 + ], + [ + 1.085465, + 42.76635 + ], + [ + 1.075637, + 42.77079 + ], + [ + 0.9593748, + 42.78852 + ], + [ + 0.9507323, + 42.78794 + ], + [ + 0.9226515, + 42.7797 + ], + [ + 0.8460624, + 42.8157 + ], + [ + 0.7151135, + 42.8464 + ], + [ + 0.7001699, + 42.84402 + ], + [ + 0.6911674, + 42.83186 + ], + [ + 0.6740937, + 42.76479 + ], + [ + 0.6747382, + 42.75286 + ], + [ + 0.6919171, + 42.70684 + ], + [ + 0.6689955, + 42.67901 + ], + [ + 0.4302428, + 42.67863 + ], + [ + 0.3715037, + 42.70308 + ], + [ + 0.3595376, + 42.70415 + ], + [ + 0.3491168, + 42.69817 + ], + [ + 0.3256688, + 42.67274 + ], + [ + 0.2957095, + 42.66388 + ], + [ + 0.2459353, + 42.70175 + ], + [ + 0.2397249, + 42.70494 + ], + [ + 0.189669, + 42.72039 + ], + [ + 0.1791886, + 42.72075 + ], + [ + -0.01993262, + 42.67389 + ], + [ + -0.06725834, + 42.6848 + ], + [ + -0.1694885, + 42.77157 + ], + [ + -0.2998662, + 42.82697 + ], + [ + -0.3168349, + 42.82635 + ], + [ + -0.3920752, + 42.78766 + ], + [ + -0.4435404, + 42.78453 + ], + [ + -0.488418, + 42.80255 + ], + [ + -0.508683, + 42.79935 + ], + [ + -0.5449894, + 42.76906 + ], + [ + -0.5672068, + 42.76937 + ], + [ + -0.6744552, + 42.86392 + ], + [ + -0.6809365, + 42.86775 + ], + [ + -0.7337233, + 42.88666 + ], + [ + -0.747598, + 42.93879 + ], + [ + -0.757105, + 42.95107 + ], + [ + -0.7725328, + 42.95284 + ], + [ + -0.8211401, + 42.93865 + ], + [ + -0.9450847, + 42.94192 + ], + [ + -1.023131, + 42.98206 + ], + [ + -1.108517, + 43.00409 + ], + [ + -1.115597, + 43.00461 + ], + [ + -1.147753, + 43.00124 + ], + [ + -1.158452, + 43.01452 + ], + [ + -1.167362, + 43.02083 + ], + [ + -1.216216, + 43.0381 + ], + [ + -1.226121, + 43.03898 + ], + [ + -1.262362, + 43.03303 + ], + [ + -1.306428, + 43.05531 + ], + [ + -1.319918, + 43.05696 + ], + [ + -1.331346, + 43.0496 + ], + [ + -1.354196, + 43.0197 + ], + [ + -1.438684, + 43.03371 + ], + [ + -1.4775, + 43.06889 + ], + [ + -1.48311, + 43.08561 + ], + [ + -1.476407, + 43.10248 + ], + [ + -1.434786, + 43.13087 + ], + [ + -1.427318, + 43.1404 + ], + [ + -1.394112, + 43.22935 + ], + [ + -1.395313, + 43.24596 + ], + [ + -1.408677, + 43.25591 + ], + [ + -1.526287, + 43.28099 + ], + [ + -1.546257, + 43.2737 + ], + [ + -1.571485, + 43.2412 + ], + [ + -1.610526, + 43.24223 + ], + [ + -1.650003, + 43.29323 + ], + [ + -1.669527, + 43.30065 + ], + [ + -1.733594, + 43.28856 + ], + [ + -1.756061, + 43.31966 + ], + [ + -1.762973, + 43.32565 + ], + [ + -1.791557, + 43.34067 + ], + [ + -1.800991, + 43.37017 + ], + [ + -1.785091, + 43.39037 + ], + [ + -1.783502, + 43.39686 + ], + [ + -2.7, + 43.9 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_Cadastre_Fran%C3%A7ais/Conditions_d%27utilisation", + "terms_text": "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2015", + "description": "French land registry", + "icon": "https://svn.openstreetmap.org/applications/editors/josm/plugins/cadastre-fr/images/cadastre_small.png", + "overlay": true + }, { "id": "lu.geoportail.opendata.cadastre", "name": "Cadastre geoportail.lu", @@ -8428,6 +21893,539 @@ "terms_text": "Administration du Cadastre et de la Topographie", "icon": "https://www.geoportail.lu/static/img/lion.png" }, + { + "id": "cajueiro_al", + "name": "Cajueiro AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Cajueiro&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.10752645677, + -9.43884254591 + ], + [ + -36.10751572793, + -9.43420690643 + ], + [ + -36.10766593164, + -9.42959237236 + ], + [ + -36.10779467767, + -9.42361243708 + ], + [ + -36.10768738931, + -9.41927295015 + ], + [ + -36.10780540651, + -9.41390672873 + ], + [ + -36.10803071206, + -9.41094309933 + ], + [ + -36.10809508508, + -9.40965179571 + ], + [ + -36.10810581392, + -9.40747138685 + ], + [ + -36.1081594581, + -9.40693157477 + ], + [ + -36.1081916446, + -9.4041795785 + ], + [ + -36.10810581392, + -9.40175568673 + ], + [ + -36.10817018693, + -9.40001978874 + ], + [ + -36.10826674646, + -9.39952230418 + ], + [ + -36.10826674646, + -9.39646328763 + ], + [ + -36.10833111947, + -9.39474853296 + ], + [ + -36.10832039064, + -9.39272680513 + ], + [ + -36.10836330598, + -9.39039809877 + ], + [ + -36.10840622133, + -9.38447041196 + ], + [ + -36.10847059434, + -9.38165472521 + ], + [ + -36.10845986551, + -9.37767461773 + ], + [ + -36.10835257714, + -9.37572688892 + ], + [ + -36.10844913667, + -9.37431901292 + ], + [ + -36.10849205201, + -9.37233950842 + ], + [ + -36.10844913667, + -9.36970368011 + ], + [ + -36.10867444223, + -9.36278056588 + ], + [ + -36.10863152688, + -9.36102330087 + ], + [ + -36.10872808641, + -9.35927661299 + ], + [ + -36.10873881524, + -9.35736053922 + ], + [ + -36.10854569619, + -9.35478811418 + ], + [ + -36.1086958999, + -9.35230035993 + ], + [ + -36.10870662873, + -9.34996079609 + ], + [ + -36.10872808641, + -9.34893392374 + ], + [ + -36.11268702691, + -9.34908213231 + ], + [ + -36.11725751107, + -9.3491244776 + ], + [ + -36.12137738412, + -9.34905037333 + ], + [ + -36.12806144899, + -9.34910330495 + ], + [ + -36.1321705932, + -9.34906095966 + ], + [ + -36.13694492524, + -9.34914565024 + ], + [ + -36.14024940675, + -9.34913506392 + ], + [ + -36.14134374803, + -9.34931503136 + ], + [ + -36.14458385652, + -9.34915623657 + ], + [ + -36.14683691209, + -9.34913506392 + ], + [ + -36.14842477983, + -9.34905037333 + ], + [ + -36.1527592296, + -9.34907154598 + ], + [ + -36.15400377458, + -9.34921975449 + ], + [ + -36.15626755899, + -9.34923034081 + ], + [ + -36.160258686, + -9.34920916817 + ], + [ + -36.16085950082, + -9.34929385872 + ], + [ + -36.16599861329, + -9.34932561767 + ], + [ + -36.16937819665, + -9.34942089451 + ], + [ + -36.17175999826, + -9.34935737662 + ], + [ + -36.17627683824, + -9.34945265345 + ], + [ + -36.18027869409, + -9.34936796294 + ], + [ + -36.1822742576, + -9.34946323976 + ], + [ + -36.18826094812, + -9.34937854925 + ], + [ + -36.19038525766, + -9.34945265345 + ], + [ + -36.19353953546, + -9.34946323976 + ], + [ + -36.19552437013, + -9.3494103082 + ], + [ + -36.19918290323, + -9.34950558501 + ], + [ + -36.19925800508, + -9.35146404706 + ], + [ + -36.19912925904, + -9.35234270483 + ], + [ + -36.19911853021, + -9.35352836 + ], + [ + -36.19919363206, + -9.35646072192 + ], + [ + -36.19921508973, + -9.35770987942 + ], + [ + -36.19930092042, + -9.35832387044 + ], + [ + -36.19933310693, + -9.3611185745 + ], + [ + -36.19921508973, + -9.36177490326 + ], + [ + -36.19918290323, + -9.36257943359 + ], + [ + -36.19931164926, + -9.36399794306 + ], + [ + -36.19925800508, + -9.36499301341 + ], + [ + -36.19921508973, + -9.36562816321 + ], + [ + -36.19927946275, + -9.36660205731 + ], + [ + -36.19917217439, + -9.36795703586 + ], + [ + -36.19917217439, + -9.36867686607 + ], + [ + -36.19921508973, + -9.36911088062 + ], + [ + -36.19911853021, + -9.37016945042 + ], + [ + -36.19887176698, + -9.37149265813 + ], + [ + -36.19886103814, + -9.37263590554 + ], + [ + -36.19902197068, + -9.37321811341 + ], + [ + -36.19915071672, + -9.37503882993 + ], + [ + -36.19910780137, + -9.37688070785 + ], + [ + -36.19895759767, + -9.37747349407 + ], + [ + -36.19898978418, + -9.37914599257 + ], + [ + -36.19917217439, + -9.38053267826 + ], + [ + -36.19919363206, + -9.38124189704 + ], + [ + -36.19925800508, + -9.38174999318 + ], + [ + -36.19927946275, + -9.38302023029 + ], + [ + -36.19912925904, + -9.38374002925 + ], + [ + -36.19907561486, + -9.38592058756 + ], + [ + -36.19878593629, + -9.38786825912 + ], + [ + -36.19880739396, + -9.3893501758 + ], + [ + -36.19902197068, + -9.39091676655 + ], + [ + -36.19904342836, + -9.39199643982 + ], + [ + -36.19898978418, + -9.39347833885 + ], + [ + -36.19879666513, + -9.39450507945 + ], + [ + -36.19866791909, + -9.39704545549 + ], + [ + -36.19845334237, + -9.39949054982 + ], + [ + -36.19863573259, + -9.40313169724 + ], + [ + -36.19865719026, + -9.40476173338 + ], + [ + -36.19864646142, + -9.40836048727 + ], + [ + -36.19875374978, + -9.40901672659 + ], + [ + -36.19857135957, + -9.41058322831 + ], + [ + -36.19859281724, + -9.4127318644 + ], + [ + -36.19874302095, + -9.41445711425 + ], + [ + -36.19867864793, + -9.41711377049 + ], + [ + -36.19860354608, + -9.41901892972 + ], + [ + -36.19846407121, + -9.41965398046 + ], + [ + -36.19849625772, + -9.42235293308 + ], + [ + -36.19871083444, + -9.42428981548 + ], + [ + -36.19858208841, + -9.42696756397 + ], + [ + -36.19839969819, + -9.42894675602 + ], + [ + -36.19857135957, + -9.43412223664 + ], + [ + -36.19871083444, + -9.43470434105 + ], + [ + -36.19864646142, + -9.43595321629 + ], + [ + -36.19857135957, + -9.43626014256 + ], + [ + -36.19859281724, + -9.43667290505 + ], + [ + -36.19876447862, + -9.43748784493 + ], + [ + -36.19889322465, + -9.43905421746 + ], + [ + -36.1988181228, + -9.43995382008 + ], + [ + -36.1784977073, + -9.43977389974 + ], + [ + -36.17717806047, + -9.43967864776 + ], + [ + -36.17265049165, + -9.43966806421 + ], + [ + -36.17098752206, + -9.43971039843 + ], + [ + -36.16396013444, + -9.43962572998 + ], + [ + -36.15386429971, + -9.43949872728 + ], + [ + -36.13983098214, + -9.43929763957 + ], + [ + -36.12874809449, + -9.43912830247 + ], + [ + -36.11497226899, + -9.43891663097 + ], + [ + -36.10752645677, + -9.43884254591 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "osm-cambodia_laos_thailand_vietnam-bilingual", "name": "Cambodia, Laos, Thailand, Vietnam, Malaysia, Myanmar bilingual", @@ -8588,6 +22586,3746 @@ "terms_url": "http://www.osm-tools.org/", "terms_text": "© osm-tools.org & OpenStreetMap contributors, CC-BY-SA" }, + { + "id": "campo_alegre_al", + "name": "Campo Alegre AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Campo%20Alegre&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.30642834848, + -9.82332496055 + ], + [ + -36.30602585634, + -9.78597356977 + ], + [ + -36.30602065271, + -9.78263262201 + ], + [ + -36.30608502572, + -9.7816810657 + ], + [ + -36.30604211038, + -9.78081408979 + ], + [ + -36.30590263551, + -9.77530556809 + ], + [ + -36.30585972017, + -9.76496494896 + ], + [ + -36.3054520244, + -9.73335957439 + ], + [ + -36.39633599466, + -9.73248189831 + ], + [ + -36.39627162164, + -9.73744126654 + ], + [ + -36.39635745233, + -9.74336280376 + ], + [ + -36.39644328302, + -9.7553535947 + ], + [ + -36.39660421556, + -9.75855741026 + ], + [ + -36.3966471309, + -9.75979451892 + ], + [ + -36.39655057138, + -9.76243789809 + ], + [ + -36.39661494439, + -9.76489093519 + ], + [ + -36.39658275789, + -9.76647694093 + ], + [ + -36.39661494439, + -9.76683643452 + ], + [ + -36.39659348672, + -9.76959606352 + ], + [ + -36.39670077508, + -9.77896382877 + ], + [ + -36.39675441926, + -9.78464145418 + ], + [ + -36.39684024995, + -9.7906678778 + ], + [ + -36.39692608064, + -9.79681048826 + ], + [ + -36.397033369, + -9.80298470156 + ], + [ + -36.39719430154, + -9.82033320249 + ], + [ + -36.39721575921, + -9.82234180629 + ], + [ + -36.39392200654, + -9.82233123473 + ], + [ + -36.35375324434, + -9.8227858118 + ], + [ + -36.34821716493, + -9.82285981267 + ], + [ + -36.31697479432, + -9.82316638748 + ], + [ + -36.3119107837, + -9.82324038826 + ], + [ + -36.30878869241, + -9.82327210287 + ], + [ + -36.30642834848, + -9.82332496055 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "Canvec", + "name": "Canvec", + "type": "wms", + "template": "http://wms.sst-sw.rncan.gc.ca/wms/toporama_fr?REQUEST=GetMap&SERVICE=wms&VERSION=1.1.1&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS={proj}&FORMAT=image/png&transparent=true&layers=SCW-Toporama&WIDTH={width}&height={height}&BBOX={bbox}", + "projection": "EPSG:900913", + "polygon": [ + [ + [ + -141.0678, + 60.2442 + ], + [ + -139.3842, + 60.10331 + ], + [ + -137.4746, + 58.82791 + ], + [ + -135.4766, + 59.65971 + ], + [ + -134.399, + 58.86279 + ], + [ + -132.5239, + 57.08342 + ], + [ + -130.1435, + 55.27452 + ], + [ + -130.7734, + 54.75597 + ], + [ + -132.4355, + 54.71514 + ], + [ + -134.5711, + 54.38827 + ], + [ + -141.7761, + 53.58405 + ], + [ + -128.9768, + 46.41459 + ], + [ + -124.8087, + 48.42976 + ], + [ + -123.4286, + 48.17889 + ], + [ + -123.0256, + 48.40444 + ], + [ + -123.1923701, + 48.6550408 + ], + [ + -122.9958159, + 48.5106543 + ], + [ + -122.4868966, + 48.4098005 + ], + [ + -122.3291531, + 48.4527983 + ], + [ + -122.229391, + 48.5064943 + ], + [ + -122.1790836, + 48.5296509 + ], + [ + -122.1841996, + 48.566905 + ], + [ + -121.7783298, + 48.5759321 + ], + [ + -121.6657777, + 48.4279093 + ], + [ + -121.3306793, + 48.3571354 + ], + [ + -121.0271296, + 48.3497692 + ], + [ + -121.0305403, + 48.4940645 + ], + [ + -120.6979999, + 48.5149675 + ], + [ + -120.510413, + 48.8718034 + ], + [ + -119.9757904, + 48.8813368 + ], + [ + -119.9544737, + 48.5149675 + ], + [ + -119.907577, + 48.2942056 + ], + [ + -119.7319275, + 48.1550316 + ], + [ + -119.7438648, + 48.0741943 + ], + [ + -119.622786, + 48.1095051 + ], + [ + -119.602322, + 48.1470674 + ], + [ + -119.2527283, + 48.1624259 + ], + [ + -114.1499, + 48.99487 + ], + [ + -95.12094, + 48.98405 + ], + [ + -95.13419, + 49.35564 + ], + [ + -94.94415, + 49.34356 + ], + [ + -94.8839, + 49.29522 + ], + [ + -94.71704, + 48.87631 + ], + [ + -94.71791, + 48.7485 + ], + [ + -93.83204, + 48.49765 + ], + [ + -93.43778, + 48.53066 + ], + [ + -93.38216, + 48.59507 + ], + [ + -92.98471, + 48.60312 + ], + [ + -92.73847, + 48.50725 + ], + [ + -92.7095, + 48.42081 + ], + [ + -92.54293, + 48.40158 + ], + [ + -92.38361, + 48.20406 + ], + [ + -92.11564, + 48.27641 + ], + [ + -91.58697, + 48.02516 + ], + [ + -91.24658, + 48.05422 + ], + [ + -90.86275, + 48.20889 + ], + [ + -90.78308, + 48.0639 + ], + [ + -90.0774, + 48.07435 + ], + [ + -89.93835, + 47.96584 + ], + [ + -89.75469, + 47.99609 + ], + [ + -89.32745, + 47.93943 + ], + [ + -88.41489, + 48.26677 + ], + [ + -84.9566, + 46.86086 + ], + [ + -84.84795, + 46.6762 + ], + [ + -84.55904, + 46.45441 + ], + [ + -84.47642, + 46.44972 + ], + [ + -84.43758, + 46.48872 + ], + [ + -84.3669, + 46.5055 + ], + [ + -84.34899, + 46.5055 + ], + [ + -84.29026, + 46.49077 + ], + [ + -84.25742, + 46.49386 + ], + [ + -84.22507, + 46.53187 + ], + [ + -84.1962, + 46.53804 + ], + [ + -84.18027, + 46.52468 + ], + [ + -84.15987, + 46.52468 + ], + [ + -84.13449, + 46.52879 + ], + [ + -84.11558, + 46.50653 + ], + [ + -84.15944, + 46.42769 + ], + [ + -84.10024, + 46.20338 + ], + [ + -83.95558, + 46.05132 + ], + [ + -83.8864, + 46.06125 + ], + [ + -83.8203, + 46.11181 + ], + [ + -83.76975, + 46.09563 + ], + [ + -83.67498, + 46.11391 + ], + [ + -83.58084, + 46.09921 + ], + [ + -83.44747, + 45.99521 + ], + [ + -83.60888, + 45.81772 + ], + [ + -82.14271, + 43.57905 + ], + [ + -82.39133, + 43.06666 + ], + [ + -82.41252, + 43.01127 + ], + [ + -82.42522, + 42.99864 + ], + [ + -82.42618, + 42.99374 + ], + [ + -82.42363, + 42.98536 + ], + [ + -82.41503, + 42.97697 + ], + [ + -82.41853, + 42.96578 + ], + [ + -82.43064, + 42.95203 + ], + [ + -82.44911, + 42.93711 + ], + [ + -82.45739, + 42.92568 + ], + [ + -82.46472, + 42.90562 + ], + [ + -82.47228, + 42.8877 + ], + [ + -82.47228, + 42.84743 + ], + [ + -82.48536, + 42.80967 + ], + [ + -82.46844, + 42.76365 + ], + [ + -82.48586, + 42.73697 + ], + [ + -82.49155, + 42.71168 + ], + [ + -82.51488, + 42.66652 + ], + [ + -82.51224, + 42.63893 + ], + [ + -82.52421, + 42.61103 + ], + [ + -82.56854, + 42.58184 + ], + [ + -82.59498, + 42.55148 + ], + [ + -82.61286, + 42.56409 + ], + [ + -82.65158, + 42.55707 + ], + [ + -82.83439, + 42.3763 + ], + [ + -83.01489, + 42.33457 + ], + [ + -83.07244, + 42.31502 + ], + [ + -83.09647, + 42.29542 + ], + [ + -83.12823, + 42.24126 + ], + [ + -83.14167, + 42.18582 + ], + [ + -83.12799, + 42.12172 + ], + [ + -83.16266, + 42.04963 + ], + [ + -83.05136, + 41.70911 + ], + [ + -82.41932, + 41.6377 + ], + [ + -81.22563, + 42.19633 + ], + [ + -80.06688, + 42.37121 + ], + [ + -78.86642, + 42.825 + ], + [ + -78.90301, + 42.92307 + ], + [ + -78.92063, + 42.95234 + ], + [ + -78.93331, + 42.95708 + ], + [ + -78.96058, + 42.9595 + ], + [ + -78.98479, + 42.9761 + ], + [ + -79.01825, + 42.9964 + ], + [ + -79.01969, + 43.01561 + ], + [ + -79.00695, + 43.0333 + ], + [ + -78.99599, + 43.06448 + ], + [ + -79.07335, + 43.07876 + ], + [ + -79.07286, + 43.083 + ], + [ + -79.0652, + 43.0917 + ], + [ + -79.05623, + 43.10825 + ], + [ + -79.05982, + 43.11563 + ], + [ + -79.06764, + 43.11992 + ], + [ + -79.05411, + 43.12801 + ], + [ + -79.04112, + 43.13986 + ], + [ + -79.04465, + 43.16192 + ], + [ + -79.05101, + 43.17037 + ], + [ + -79.04758, + 43.19974 + ], + [ + -79.05511, + 43.25682 + ], + [ + -79.18688, + 43.44858 + ], + [ + -78.68836, + 43.62502 + ], + [ + -76.77647, + 43.61369 + ], + [ + -76.41665, + 44.08498 + ], + [ + -75.49023, + 44.70772 + ], + [ + -75.29544, + 44.82587 + ], + [ + -75.16845, + 44.88548 + ], + [ + -75.1275, + 44.8975 + ], + [ + -75.00499, + 44.95265 + ], + [ + -74.98159, + 44.97728 + ], + [ + -74.90496, + 44.98222 + ], + [ + -74.8313, + 45.01108 + ], + [ + -74.77954, + 45.00158 + ], + [ + -74.74562, + 44.98526 + ], + [ + -74.70475, + 44.99877 + ], + [ + -74.49079, + 44.99343 + ], + [ + -74.23203, + 44.98552 + ], + [ + -73.93713, + 44.99512 + ], + [ + -73.01809, + 45.0121 + ], + [ + -72.63177, + 45.0121 + ], + [ + -72.54779, + 45.00506 + ], + [ + -72.32259, + 45.00286 + ], + [ + -71.49404, + 45.01093 + ], + [ + -71.48648, + 45.06221 + ], + [ + -71.42303, + 45.12765 + ], + [ + -71.43112, + 45.14037 + ], + [ + -71.37175, + 45.22117 + ], + [ + -71.28959, + 45.28578 + ], + [ + -71.23613, + 45.24302 + ], + [ + -71.11683, + 45.22933 + ], + [ + -71.0531, + 45.29866 + ], + [ + -70.98936, + 45.31088 + ], + [ + -70.90246, + 45.22525 + ], + [ + -70.82473, + 45.22714 + ], + [ + -70.77626, + 45.40013 + ], + [ + -70.7119, + 45.3754 + ], + [ + -70.63387, + 45.37346 + ], + [ + -70.60302, + 45.41179 + ], + [ + -70.67659, + 45.56319 + ], + [ + -70.3752, + 45.73075 + ], + [ + -70.36334, + 45.82013 + ], + [ + -70.25417, + 45.87468 + ], + [ + -70.22569, + 45.94403 + ], + [ + -70.27316, + 45.99022 + ], + [ + -70.17586, + 46.33538 + ], + [ + -70.06195, + 46.4107 + ], + [ + -69.98891, + 46.69363 + ], + [ + -69.22424, + 47.44463 + ], + [ + -69.06999, + 47.41092 + ], + [ + -69.07473, + 47.24202 + ], + [ + -68.89684, + 47.17469 + ], + [ + -68.78685, + 47.21493 + ], + [ + -68.72415, + 47.23217 + ], + [ + -68.68583, + 47.24028 + ], + [ + -68.66044, + 47.23183 + ], + [ + -68.62162, + 47.24028 + ], + [ + -68.59425, + 47.24974 + ], + [ + -68.59226, + 47.27001 + ], + [ + -68.57385, + 47.28486 + ], + [ + -68.55941, + 47.2798 + ], + [ + -68.542, + 47.2798 + ], + [ + -68.51214, + 47.29195 + ], + [ + -68.47381, + 47.29229 + ], + [ + -68.46038, + 47.28149 + ], + [ + -68.43898, + 47.27777 + ], + [ + -68.37229, + 47.2825 + ], + [ + -68.3703, + 47.34796 + ], + [ + -68.33173, + 47.35822 + ], + [ + -68.29664, + 47.352 + ], + [ + -68.2399, + 47.34897 + ], + [ + -68.0906, + 47.26798 + ], + [ + -68.00002, + 47.21223 + ], + [ + -67.96344, + 47.19753 + ], + [ + -67.93582, + 47.15947 + ], + [ + -67.88619, + 47.10424 + ], + [ + -67.80218, + 47.06386 + ], + [ + -67.79415, + 45.93923 + ], + [ + -67.82753, + 45.8489 + ], + [ + -67.82753, + 45.6704 + ], + [ + -67.54943, + 45.57445 + ], + [ + -67.45302, + 45.58742 + ], + [ + -67.44189, + 45.52251 + ], + [ + -67.54201, + 45.49393 + ], + [ + -67.4456, + 45.38726 + ], + [ + -67.51605, + 45.29343 + ], + [ + -67.38257, + 45.11839 + ], + [ + -67.3047, + 45.11316 + ], + [ + -67.26762, + 45.18116 + ], + [ + -67.12671, + 45.09484 + ], + [ + -66.94835, + 44.78406 + ], + [ + -66.52283, + 43.61294 + ], + [ + -65.02339, + 42.10691 + ], + [ + -42.53366, + 47.50263 + ], + [ + -75.90901, + 77.3176 + ], + [ + -71.86482, + 78.7359 + ], + [ + -67.20011, + 80.66812 + ], + [ + -66.20727, + 80.78637 + ], + [ + -54.82473, + 83.07464 + ], + [ + -57.62518, + 85.04043 + ], + [ + -106.7949, + 85.04625 + ], + [ + -141.3957, + 79.2514 + ], + [ + -141.0678, + 60.2442 + ] + ] + ] + }, + { + "id": "capela_al", + "name": "Capela AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Capela&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.03320780938, + -9.4574082918 + ], + [ + -36.03321853822, + -9.45581025359 + ], + [ + -36.03335801309, + -9.45482602768 + ], + [ + -36.03340092843, + -9.45291048318 + ], + [ + -36.0332721824, + -9.45140767284 + ], + [ + -36.03335801309, + -9.44286692894 + ], + [ + -36.03349748796, + -9.43821017639 + ], + [ + -36.03352967447, + -9.42881181147 + ], + [ + -36.03362623399, + -9.42027050777 + ], + [ + -36.03389445489, + -9.41091399212 + ], + [ + -36.03389445489, + -9.40031880838 + ], + [ + -36.03401247209, + -9.38880239663 + ], + [ + -36.03413048928, + -9.38527753599 + ], + [ + -36.03428069299, + -9.38265239127 + ], + [ + -36.03417340463, + -9.37849234301 + ], + [ + -36.03444162553, + -9.3668799342 + ], + [ + -36.05245534127, + -9.36710223556 + ], + [ + -36.05790558999, + -9.36711282133 + ], + [ + -36.0715955848, + -9.36727160792 + ], + [ + -36.08621898835, + -9.367313951 + ], + [ + -36.10299888795, + -9.36750449479 + ], + [ + -36.11651722139, + -9.36754683784 + ], + [ + -36.12515393441, + -9.36768445271 + ], + [ + -36.12521830743, + -9.37473449571 + ], + [ + -36.12520757859, + -9.37721150385 + ], + [ + -36.12511101907, + -9.38037654408 + ], + [ + -36.12514320558, + -9.38528812121 + ], + [ + -36.12504664605, + -9.39026313917 + ], + [ + -36.12503591722, + -9.39477234906 + ], + [ + -36.12505737489, + -9.40171599404 + ], + [ + -36.12499300187, + -9.40382234661 + ], + [ + -36.12479988282, + -9.40678603705 + ], + [ + -36.12462822145, + -9.41123152509 + ], + [ + -36.12473550981, + -9.41360242867 + ], + [ + -36.12456384843, + -9.41630142857 + ], + [ + -36.1245853061, + -9.42460998216 + ], + [ + -36.12466040796, + -9.42690670628 + ], + [ + -36.12464967912, + -9.42924575062 + ], + [ + -36.12457457727, + -9.42970085695 + ], + [ + -36.12463895028, + -9.4353843436 + ], + [ + -36.12438145822, + -9.44108890357 + ], + [ + -36.12445656007, + -9.44387235589 + ], + [ + -36.12452093309, + -9.44578795069 + ], + [ + -36.12438145822, + -9.4473648688 + ], + [ + -36.12447801774, + -9.44856078174 + ], + [ + -36.12447801774, + -9.45095259517 + ], + [ + -36.12436000055, + -9.45391588079 + ], + [ + -36.12433854287, + -9.45790569291 + ], + [ + -36.11757937616, + -9.45783161194 + ], + [ + -36.10889974778, + -9.45777869695 + ], + [ + -36.10418978875, + -9.45779986294 + ], + [ + -36.10116425699, + -9.45772578195 + ], + [ + -36.09529558366, + -9.45772578195 + ], + [ + -36.08460966295, + -9.45767286695 + ], + [ + -36.07361260598, + -9.45756703691 + ], + [ + -36.05726185983, + -9.4574082918 + ], + [ + -36.04816380685, + -9.45747178985 + ], + [ + -36.04176942056, + -9.45738712578 + ], + [ + -36.03767100518, + -9.45738712578 + ], + [ + -36.03320780938, + -9.4574082918 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "Catastro-Spain", + "name": "Catastro Spain", + "type": "wms", + "template": "http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=Catastro&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -17.8846298, + 28.4460601 + ], + [ + -17.8939535, + 28.5225529 + ], + [ + -18.0212548, + 28.7481927 + ], + [ + -18.0224091, + 28.8038375 + ], + [ + -17.9424017, + 28.8726124 + ], + [ + -17.8911792, + 28.8737099 + ], + [ + -17.8903302, + 28.8515102 + ], + [ + -17.7675902, + 28.8537764 + ], + [ + -17.7669837, + 28.8312183 + ], + [ + -17.7412714, + 28.8319975 + ], + [ + -17.7394926, + 28.7642235 + ], + [ + -17.7139824, + 28.7649677 + ], + [ + -17.7129312, + 28.7303731 + ], + [ + -17.7574427, + 28.6931782 + ], + [ + -17.7570788, + 28.6741254 + ], + [ + -17.7457913, + 28.6743524 + ], + [ + -17.7457266, + 28.6165627 + ], + [ + -17.7519687, + 28.5833675 + ], + [ + -17.7622536, + 28.5591958 + ], + [ + -17.7833086, + 28.541667 + ], + [ + -17.7831575, + 28.4936643 + ], + [ + -17.808611, + 28.4925024 + ], + [ + -17.8060072, + 28.4468974 + ], + [ + -17.8846298, + 28.4460601 + ] + ], + [ + [ + -18.1661033, + 27.7851643 + ], + [ + -18.163494, + 27.6949247 + ], + [ + -18.0889827, + 27.6963366 + ], + [ + -18.0873398, + 27.6738724 + ], + [ + -18.0364092, + 27.6753701 + ], + [ + -18.0350079, + 27.6302571 + ], + [ + -17.9589987, + 27.6323976 + ], + [ + -17.8603269, + 27.7926025 + ], + [ + -17.8630328, + 27.8368793 + ], + [ + -17.8884015, + 27.8364947 + ], + [ + -17.8891263, + 27.8590536 + ], + [ + -17.9906491, + 27.8567467 + ], + [ + -18.0386803, + 27.7655831 + ], + [ + -18.1146412, + 27.7637873 + ], + [ + -18.1154627, + 27.7863613 + ], + [ + -18.1661033, + 27.7851643 + ] + ], + [ + [ + -17.36038, + 28.0639801 + ], + [ + -17.3629657, + 28.1757247 + ], + [ + -17.3375583, + 28.1763688 + ], + [ + -17.3384577, + 28.2213012 + ], + [ + -17.1857883, + 28.2238767 + ], + [ + -17.0820788, + 28.1351849 + ], + [ + -17.0808422, + 28.0679977 + ], + [ + -17.1315446, + 28.0668073 + ], + [ + -17.1563337, + 28.0214628 + ], + [ + -17.2321063, + 28.0203711 + ], + [ + -17.2319938, + 27.9980388 + ], + [ + -17.2576823, + 27.9978403 + ], + [ + -17.257851, + 28.0199741 + ], + [ + -17.3086658, + 28.0192298 + ], + [ + -17.36038, + 28.0639801 + ] + ], + [ + [ + -16.9278171, + 28.3275779 + ], + [ + -16.9286591, + 28.3721879 + ], + [ + -16.8776666, + 28.3729288 + ], + [ + -16.8780707, + 28.3954191 + ], + [ + -16.5214259, + 28.4226146 + ], + [ + -16.4457117, + 28.491135 + ], + [ + -16.4462506, + 28.535972 + ], + [ + -16.4205859, + 28.5362679 + ], + [ + -16.4209227, + 28.5588419 + ], + [ + -16.3443329, + 28.5597589 + ], + [ + -16.3446023, + 28.5822095 + ], + [ + -16.1912541, + 28.5837179 + ], + [ + -16.1916246, + 28.6068435 + ], + [ + -16.1279344, + 28.6078193 + ], + [ + -16.1277997, + 28.5921762 + ], + [ + -16.0995079, + 28.5925015 + ], + [ + -16.0993395, + 28.5163822 + ], + [ + -16.1648148, + 28.5161158 + ], + [ + -16.1647474, + 28.4938583 + ], + [ + -16.2385755, + 28.4484704 + ], + [ + -16.2653516, + 28.4476116 + ], + [ + -16.2658569, + 28.4030038 + ], + [ + -16.3167484, + 28.4017594 + ], + [ + -16.3163105, + 28.380189 + ], + [ + -16.3420763, + 28.3795075 + ], + [ + -16.3408301, + 28.2892963 + ], + [ + -16.415837, + 28.1976134 + ], + [ + -16.415096, + 28.1311312 + ], + [ + -16.5153297, + 28.0164796 + ], + [ + -16.6168433, + 28.01532 + ], + [ + -16.6168096, + 27.9930469 + ], + [ + -16.7184243, + 27.9919168 + ], + [ + -16.7190979, + 28.0371426 + ], + [ + -16.7446952, + 28.0367859 + ], + [ + -16.7453351, + 28.0818146 + ], + [ + -16.7706967, + 28.0816065 + ], + [ + -16.8223966, + 28.1259036 + ], + [ + -16.8231712, + 28.1708652 + ], + [ + -16.8487012, + 28.1707464 + ], + [ + -16.8502842, + 28.260791 + ], + [ + -16.8756457, + 28.2605537 + ], + [ + -16.8760836, + 28.2832162 + ], + [ + -16.9015125, + 28.2827713 + ], + [ + -16.9023882, + 28.3279337 + ], + [ + -16.9278171, + 28.3275779 + ] + ], + [ + [ + -15.8537427, + 27.9008901 + ], + [ + -15.8542032, + 27.9901812 + ], + [ + -15.828953, + 27.9906555 + ], + [ + -15.8291065, + 28.035578 + ], + [ + -15.7782992, + 28.0363232 + ], + [ + -15.7532793, + 28.0814298 + ], + [ + -15.7278756, + 28.0815652 + ], + [ + -15.7282593, + 28.1718567 + ], + [ + -15.4989741, + 28.1728039 + ], + [ + -15.4987438, + 28.1504075 + ], + [ + -15.4497785, + 28.1507459 + ], + [ + -15.4501622, + 28.1961425 + ], + [ + -15.3972827, + 28.1961425 + ], + [ + -15.3964385, + 28.0383554 + ], + [ + -15.3710348, + 28.0380167 + ], + [ + -15.3706511, + 28.0153212 + ], + [ + -15.3457847, + 28.0153212 + ], + [ + -15.3454777, + 27.9254406 + ], + [ + -15.3708046, + 27.9252372 + ], + [ + -15.3705743, + 27.8352137 + ], + [ + -15.395978, + 27.8347387 + ], + [ + -15.4209979, + 27.7879673 + ], + [ + -15.4718052, + 27.7893932 + ], + [ + -15.471882, + 27.7666454 + ], + [ + -15.522766, + 27.7667813 + ], + [ + -15.5477092, + 27.7216112 + ], + [ + -15.6236132, + 27.7213395 + ], + [ + -15.6241504, + 27.741991 + ], + [ + -15.7007451, + 27.7433495 + ], + [ + -15.801669, + 27.8110501 + ], + [ + -15.8537427, + 27.9008901 + ] + ], + [ + [ + -14.5215621, + 28.0467778 + ], + [ + -14.5224358, + 28.1184131 + ], + [ + -14.4157526, + 28.1156076 + ], + [ + -14.2168794, + 28.2278805 + ], + [ + -14.2153651, + 28.33903 + ], + [ + -14.1641672, + 28.4528287 + ], + [ + -14.1115132, + 28.4747955 + ], + [ + -14.0335806, + 28.7226671 + ], + [ + -13.9565217, + 28.7449351 + ], + [ + -13.9561722, + 28.7665857 + ], + [ + -13.8290221, + 28.7664325 + ], + [ + -13.8289639, + 28.7879765 + ], + [ + -13.8000741, + 28.7879255 + ], + [ + -13.8012972, + 28.7189894 + ], + [ + -13.827566, + 28.719347 + ], + [ + -13.8278572, + 28.6517968 + ], + [ + -13.8025786, + 28.651899 + ], + [ + -13.8033941, + 28.5384172 + ], + [ + -13.8288474, + 28.5384684 + ], + [ + -13.8315061, + 28.3970177 + ], + [ + -13.9158189, + 28.2241438 + ], + [ + -13.9856445, + 28.2235696 + ], + [ + -14.0369588, + 28.1795787 + ], + [ + -14.1387139, + 28.1799894 + ], + [ + -14.1386556, + 28.1579103 + ], + [ + -14.2153651, + 28.1578076 + ], + [ + -14.2147244, + 28.1118888 + ], + [ + -14.2913173, + 28.0452356 + ], + [ + -14.3319673, + 28.0368713 + ], + [ + -14.4457846, + 28.0469834 + ], + [ + -14.4466583, + 28.0657961 + ], + [ + -14.4962835, + 28.0682631 + ], + [ + -14.495934, + 28.0458525 + ], + [ + -14.5215621, + 28.0467778 + ] + ], + [ + [ + -13.800662, + 28.8456579 + ], + [ + -13.8009273, + 28.8231121 + ], + [ + -13.775688, + 28.8230539 + ], + [ + -13.69729, + 28.8898184 + ], + [ + -13.69729, + 28.9127744 + ], + [ + -13.6072498, + 28.9117991 + ], + [ + -13.4388551, + 29.0002417 + ], + [ + -13.4374559, + 29.1351289 + ], + [ + -13.4117005, + 29.1349931 + ], + [ + -13.4105556, + 29.2229789 + ], + [ + -13.4592801, + 29.255586 + ], + [ + -13.4597392, + 29.2942023 + ], + [ + -13.5091254, + 29.2945638 + ], + [ + -13.5100581, + 29.3163453 + ], + [ + -13.5635382, + 29.3172941 + ], + [ + -13.5640564, + 29.2713764 + ], + [ + -13.5389228, + 29.2711956 + ], + [ + -13.5389747, + 29.2500375 + ], + [ + -13.5661293, + 29.2501279 + ], + [ + -13.5665956, + 29.2030039 + ], + [ + -13.5156549, + 29.2022349 + ], + [ + -13.5156549, + 29.1820579 + ], + [ + -13.5398038, + 29.1827819 + ], + [ + -13.5408921, + 29.137528 + ], + [ + -13.65782, + 29.1368528 + ], + [ + -13.713222, + 29.0935079 + ], + [ + -13.7663353, + 29.0934533 + ], + [ + -13.8502463, + 29.0165937 + ], + [ + -13.8518224, + 28.983425 + ], + [ + -13.8524443, + 28.914861 + ], + [ + -13.9013122, + 28.89245 + ], + [ + -13.9024005, + 28.8469779 + ], + [ + -13.800662, + 28.8456579 + ] + ], + [ + [ + 1.6479916, + 38.9990693 + ], + [ + 1.7321668, + 38.9993635 + ], + [ + 1.7314703, + 39.0441733 + ], + [ + 1.6489512, + 39.0431944 + ], + [ + 1.6481552, + 39.1276358 + ], + [ + 1.3948608, + 39.1265691 + ], + [ + 1.3954412, + 39.0864199 + ], + [ + 1.2281145, + 39.0852615 + ], + [ + 1.2291095, + 39.0028958 + ], + [ + 1.1448657, + 39.0018003 + ], + [ + 1.1452803, + 38.8319988 + ], + [ + 1.3113632, + 38.8331615 + ], + [ + 1.3121924, + 38.7906483 + ], + [ + 1.3946949, + 38.7916178 + ], + [ + 1.3951924, + 38.7529597 + ], + [ + 1.3112803, + 38.7519251 + ], + [ + 1.3125919, + 38.6238804 + ], + [ + 1.6489036, + 38.6251112 + ], + [ + 1.6480745, + 38.7111504 + ], + [ + 1.58456, + 38.7101152 + ], + [ + 1.5811604, + 38.7005387 + ], + [ + 1.5491544, + 38.7002798 + ], + [ + 1.5197188, + 38.7092094 + ], + [ + 1.50355, + 38.7253185 + ], + [ + 1.4813282, + 38.9155064 + ], + [ + 1.5518906, + 38.9254411 + ], + [ + 1.5667328, + 38.9566554 + ], + [ + 1.6487378, + 38.9583318 + ], + [ + 1.6479916, + 38.9990693 + ] + ], + [ + [ + 2.5450749, + 39.4166673 + ], + [ + 2.43933, + 39.4161122 + ], + [ + 2.438714, + 39.4846853 + ], + [ + 2.439022, + 39.4993424 + ], + [ + 2.3122308, + 39.4993424 + ], + [ + 2.3119228, + 39.5417911 + ], + [ + 2.2290722, + 39.5409994 + ], + [ + 2.2283536, + 39.6260571 + ], + [ + 2.3460076, + 39.6270851 + ], + [ + 2.9270445, + 39.9601558 + ], + [ + 3.1456647, + 39.9600498 + ], + [ + 3.1460753, + 40.0019797 + ], + [ + 3.2313899, + 40.0019797 + ], + [ + 3.2312872, + 39.8329231 + ], + [ + 3.1482313, + 39.8331596 + ], + [ + 3.1484366, + 39.7935717 + ], + [ + 3.4814817, + 39.7931773 + ], + [ + 3.4803472, + 39.5959027 + ], + [ + 3.3150618, + 39.4784606 + ], + [ + 3.3146179, + 39.3785504 + ], + [ + 3.0830178, + 39.2499355 + ], + [ + 2.9798608, + 39.2501482 + ], + [ + 2.9790395, + 39.3334971 + ], + [ + 2.7287424, + 39.3334177 + ], + [ + 2.7288451, + 39.4581361 + ], + [ + 2.6456865, + 39.4577397 + ], + [ + 2.6453785, + 39.4996593 + ], + [ + 2.5452802, + 39.4994216 + ], + [ + 2.5450749, + 39.4166673 + ] + ], + [ + [ + 3.8120402, + 40.0434431 + ], + [ + 3.729082, + 40.0437979 + ], + [ + 3.7286185, + 39.9584155 + ], + [ + 3.8126633, + 39.9576011 + ], + [ + 3.8122771, + 39.9164393 + ], + [ + 3.9608975, + 39.9159813 + ], + [ + 4.1938142, + 39.791308 + ], + [ + 4.3150279, + 39.7905799 + ], + [ + 4.3159934, + 39.8329294 + ], + [ + 4.3987393, + 39.8320396 + ], + [ + 4.3973664, + 39.9185834 + ], + [ + 4.3158003, + 39.9193274 + ], + [ + 4.3161865, + 40.0433985 + ], + [ + 4.2318959, + 40.0443594 + ], + [ + 4.2324752, + 40.0847793 + ], + [ + 4.1491501, + 40.086109 + ], + [ + 4.1490623, + 40.1255157 + ], + [ + 4.0627981, + 40.1272166 + ], + [ + 4.0624217, + 40.0849941 + ], + [ + 3.8128687, + 40.085294 + ], + [ + 3.8120402, + 40.0434431 + ] + ], + [ + [ + -8.8910646, + 41.8228891 + ], + [ + -9.1092038, + 42.5751065 + ], + [ + -9.0365469, + 42.730656 + ], + [ + -9.0883419, + 42.7269569 + ], + [ + -9.1466113, + 42.7750272 + ], + [ + -9.2185488, + 42.9016271 + ], + [ + -9.2760988, + 42.8605106 + ], + [ + -9.3099094, + 42.9311297 + ], + [ + -9.2789763, + 42.9821991 + ], + [ + -9.3099094, + 43.0600377 + ], + [ + -9.2523594, + 43.1041725 + ], + [ + -9.2314975, + 43.1703151 + ], + [ + -9.1473307, + 43.210176 + ], + [ + -9.06748, + 43.1991644 + ], + [ + -9.0336694, + 43.2426748 + ], + [ + -8.99842, + 43.2447709 + ], + [ + -8.9998588, + 43.2955793 + ], + [ + -8.9372732, + 43.3055265 + ], + [ + -8.92936, + 43.326986 + ], + [ + -8.8638969, + 43.3290792 + ], + [ + -8.8761263, + 43.3740655 + ], + [ + -8.8221732, + 43.3735426 + ], + [ + -8.785485, + 43.3191358 + ], + [ + -8.7063538, + 43.305003 + ], + [ + -8.6099575, + 43.3296025 + ], + [ + -8.5509688, + 43.3233227 + ], + [ + -8.5243519, + 43.3364048 + ], + [ + -8.5250713, + 43.3646525 + ], + [ + -8.45745, + 43.3918416 + ], + [ + -8.3610538, + 43.4111803 + ], + [ + -8.3603344, + 43.4634161 + ], + [ + -8.3344369, + 43.5797394 + ], + [ + -8.2776063, + 43.5708796 + ], + [ + -8.0646713, + 43.7239184 + ], + [ + -7.9992081, + 43.7233986 + ], + [ + -7.9171994, + 43.7826357 + ], + [ + -7.8560525, + 43.7914643 + ], + [ + -7.83591, + 43.7374337 + ], + [ + -7.6628443, + 43.809819 + ], + [ + -7.3188932, + 43.6782695 + ], + [ + -7.1997467, + 43.5830817 + ], + [ + -6.2488228, + 43.6075032 + ], + [ + -6.1229322, + 43.5790105 + ], + [ + -5.8520425, + 43.6798953 + ], + [ + -5.6036334, + 43.5708672 + ], + [ + -5.2855347, + 43.5619084 + ], + [ + -5.1787525, + 43.4991591 + ], + [ + -4.9089869, + 43.4836655 + ], + [ + -4.6156167, + 43.4192021 + ], + [ + -4.1839917, + 43.4249168 + ], + [ + -3.8029478, + 43.5195394 + ], + [ + -3.7400025, + 43.4869277 + ], + [ + -3.5612827, + 43.5423572 + ], + [ + -3.1083013, + 43.3816347 + ], + [ + -2.9385737, + 43.4624573 + ], + [ + -2.7452417, + 43.4755094 + ], + [ + -2.3046245, + 43.3170625 + ], + [ + -1.9854018, + 43.3563045 + ], + [ + -1.8552841, + 43.3972545 + ], + [ + -1.769802, + 43.3964383 + ], + [ + -1.7700492, + 43.3760501 + ], + [ + -1.7100474, + 43.3756908 + ], + [ + -1.7113451, + 43.3312527 + ], + [ + -1.7225915, + 43.3131806 + ], + [ + -1.6890375, + 43.3129108 + ], + [ + -1.6881106, + 43.3341294 + ], + [ + -1.6446695, + 43.3337248 + ], + [ + -1.6449785, + 43.3133155 + ], + [ + -1.6029903, + 43.3129528 + ], + [ + -1.6034352, + 43.2926624 + ], + [ + -1.5635905, + 43.2921227 + ], + [ + -1.5630468, + 43.3133844 + ], + [ + -1.4779905, + 43.3128355 + ], + [ + -1.3667723, + 43.2761368 + ], + [ + -1.3568809, + 43.2381533 + ], + [ + -1.3703692, + 43.1712972 + ], + [ + -1.4423067, + 43.0833554 + ], + [ + -1.4198262, + 43.0603647 + ], + [ + -1.3730668, + 43.051166 + ], + [ + -1.3640746, + 43.1115893 + ], + [ + -1.3020285, + 43.135217 + ], + [ + -1.2354864, + 43.1332484 + ], + [ + -1.2795481, + 43.0774443 + ], + [ + -1.1923239, + 43.0649635 + ], + [ + -1.0061856, + 43.0077821 + ], + [ + -0.942341, + 42.9748951 + ], + [ + -0.7562028, + 42.9821318 + ], + [ + -0.7148387, + 42.9610774 + ], + [ + -0.6968543, + 42.9031405 + ], + [ + -0.5511809, + 42.8220693 + ], + [ + -0.5044215, + 42.8484456 + ], + [ + -0.4288871, + 42.8200906 + ], + [ + -0.3164848, + 42.8655842 + ], + [ + -0.1456332, + 42.810856 + ], + [ + -0.0314324, + 42.7124874 + ], + [ + 0.1861785, + 42.7540985 + ], + [ + 0.3021777, + 42.7177729 + ], + [ + 0.3642238, + 42.7428729 + ], + [ + 0.4487504, + 42.7144695 + ], + [ + 0.6276949, + 42.7223973 + ], + [ + 0.6411832, + 42.8576747 + ], + [ + 0.7149192, + 42.882718 + ], + [ + 0.9675996, + 42.8181119 + ], + [ + 1.108777, + 42.7989808 + ], + [ + 1.1753192, + 42.7342872 + ], + [ + 1.3632559, + 42.7415521 + ], + [ + 1.4113736, + 42.7093914 + ], + [ + 1.4806054, + 42.7103407 + ], + [ + 1.4813006, + 42.5010664 + ], + [ + 1.6443591, + 42.5020345 + ], + [ + 1.6432777, + 42.5424539 + ], + [ + 1.730407, + 42.5434214 + ], + [ + 1.7316429, + 42.5011803 + ], + [ + 2.0638621, + 42.5016359 + ], + [ + 2.0645572, + 42.4590247 + ], + [ + 2.3969309, + 42.4599364 + ], + [ + 2.3976786, + 42.4178363 + ], + [ + 2.4804823, + 42.4179732 + ], + [ + 2.4809767, + 42.3759441 + ], + [ + 2.6447922, + 42.3762636 + ], + [ + 2.6444832, + 42.4592447 + ], + [ + 2.8113266, + 42.4596094 + ], + [ + 2.8112648, + 42.5010358 + ], + [ + 3.063878, + 42.5008535 + ], + [ + 3.063878, + 42.4591535 + ], + [ + 3.2307832, + 42.4593359 + ], + [ + 3.2304935, + 42.3764363 + ], + [ + 3.3141469, + 42.3760369 + ], + [ + 3.3141243, + 42.3339864 + ], + [ + 3.397855, + 42.3340435 + ], + [ + 3.3973912, + 42.290094 + ], + [ + 3.3138923, + 42.2908368 + ], + [ + 3.3139695, + 42.2070151 + ], + [ + 3.1475896, + 42.2073012 + ], + [ + 3.1475896, + 42.1260612 + ], + [ + 3.2305478, + 42.1260039 + ], + [ + 3.2466753, + 41.9529359 + ], + [ + 3.1945206, + 41.8558943 + ], + [ + 3.060537, + 41.7647419 + ], + [ + 2.7835777, + 41.6371796 + ], + [ + 2.26293, + 41.4271601 + ], + [ + 2.1649151, + 41.2989297 + ], + [ + 1.86008, + 41.2232228 + ], + [ + 1.3763003, + 41.116273 + ], + [ + 1.1793714, + 41.0464585 + ], + [ + 1.0858526, + 41.048493 + ], + [ + 0.758537, + 40.8195599 + ], + [ + 0.9114042, + 40.733761 + ], + [ + 0.8781331, + 40.6751363 + ], + [ + 0.6650182, + 40.5358666 + ], + [ + 0.5580112, + 40.5502166 + ], + [ + 0.433919, + 40.3757589 + ], + [ + 0.2675635, + 40.1919192 + ], + [ + 0.1641534, + 40.0647234 + ], + [ + 0.0751307, + 40.0144671 + ], + [ + 0.010387, + 39.8952188 + ], + [ + -0.0939224, + 39.8116904 + ], + [ + -0.1847435, + 39.6311716 + ], + [ + -0.2908513, + 39.5036254 + ], + [ + -0.2863552, + 39.333431 + ], + [ + -0.1856427, + 39.1774612 + ], + [ + -0.2135185, + 39.1558487 + ], + [ + -0.1110076, + 38.9722246 + ], + [ + 0.0094878, + 38.8826835 + ], + [ + 0.1218901, + 38.872183 + ], + [ + 0.2342925, + 38.798636 + ], + [ + 0.2558737, + 38.7264162 + ], + [ + 0.0958128, + 38.6133825 + ], + [ + -0.0022021, + 38.6070586 + ], + [ + -0.0570544, + 38.5269073 + ], + [ + -0.2719677, + 38.4762395 + ], + [ + -0.379874, + 38.3931234 + ], + [ + -0.3834708, + 38.3381297 + ], + [ + -0.4509122, + 38.3310763 + ], + [ + -0.5048654, + 38.2830943 + ], + [ + -0.4823849, + 38.1948095 + ], + [ + -0.429331, + 38.1658287 + ], + [ + -0.4545091, + 38.148859 + ], + [ + -0.5839966, + 38.1721913 + ], + [ + -0.6136708, + 38.1198599 + ], + [ + -0.6370505, + 37.9612228 + ], + [ + -0.6811123, + 37.9456238 + ], + [ + -0.7323677, + 37.8810656 + ], + [ + -0.7215771, + 37.7830562 + ], + [ + -0.688306, + 37.7340026 + ], + [ + -0.6641461, + 37.6231485 + ], + [ + -0.7193941, + 37.5878413 + ], + [ + -0.9196258, + 37.5375806 + ], + [ + -1.1107098, + 37.5164093 + ], + [ + -1.3383246, + 37.5286671 + ], + [ + -1.4408917, + 37.3903714 + ], + [ + -1.6766966, + 37.2765189 + ], + [ + -1.8540816, + 36.9122889 + ], + [ + -2.0683486, + 36.6929117 + ], + [ + -2.2158766, + 36.6619233 + ], + [ + -2.3721861, + 36.7801753 + ], + [ + -2.6812926, + 36.6591056 + ], + [ + -2.9201476, + 36.6675585 + ], + [ + -3.09402, + 36.712625 + ], + [ + -3.4610839, + 36.6548788 + ], + [ + -3.7280395, + 36.6929117 + ], + [ + -4.3743529, + 36.6633322 + ], + [ + -4.6571151, + 36.4404171 + ], + [ + -4.9188018, + 36.4531321 + ], + [ + -5.1699508, + 36.3513541 + ], + [ + -5.2841094, + 36.1970201 + ], + [ + -5.2680911, + 36.1241812 + ], + [ + -5.3524784, + 36.1224654 + ], + [ + -5.3516094, + 36.0401413 + ], + [ + -5.4365759, + 36.0388921 + ], + [ + -5.4353207, + 36.0034384 + ], + [ + -5.6888562, + 36.0036518 + ], + [ + -5.6899635, + 36.0405317 + ], + [ + -5.85506, + 36.0385595 + ], + [ + -5.8566821, + 36.1242077 + ], + [ + -5.9384817, + 36.1221487 + ], + [ + -5.9400265, + 36.1655625 + ], + [ + -5.9983445, + 36.1645024 + ], + [ + -6.0357297, + 36.1780957 + ], + [ + -6.0775178, + 36.2224132 + ], + [ + -6.1506113, + 36.2864561 + ], + [ + -6.231541, + 36.3770075 + ], + [ + -6.3358504, + 36.5310643 + ], + [ + -6.3214629, + 36.5816265 + ], + [ + -6.404191, + 36.6234958 + ], + [ + -6.4743301, + 36.7489673 + ], + [ + -6.4158808, + 36.7993866 + ], + [ + -6.490516, + 36.9173818 + ], + [ + -6.6298949, + 37.0194012 + ], + [ + -6.8744824, + 37.1083766 + ], + [ + -7.0426363, + 37.1850699 + ], + [ + -7.2647434, + 37.1843535 + ], + [ + -7.3753473, + 37.1535419 + ], + [ + -7.408316, + 37.1682196 + ], + [ + -7.4202886, + 37.2118318 + ], + [ + -7.4249231, + 37.2350505 + ], + [ + -7.4380543, + 37.2451969 + ], + [ + -7.4459717, + 37.3326142 + ], + [ + -7.4480958, + 37.3909382 + ], + [ + -7.4696271, + 37.4075829 + ], + [ + -7.4647029, + 37.4530494 + ], + [ + -7.5019723, + 37.516411 + ], + [ + -7.5191587, + 37.5229203 + ], + [ + -7.5219588, + 37.5723727 + ], + [ + -7.4501271, + 37.6695835 + ], + [ + -7.4249019, + 37.7599222 + ], + [ + -7.316662, + 37.839974 + ], + [ + -7.268329, + 37.988952 + ], + [ + -7.1536786, + 38.0155235 + ], + [ + -7.1177098, + 38.0553626 + ], + [ + -7.0142997, + 38.0243785 + ], + [ + -6.9963153, + 38.1075633 + ], + [ + -6.9614706, + 38.201254 + ], + [ + -7.080617, + 38.1570753 + ], + [ + -7.3402665, + 38.4402363 + ], + [ + -7.2638329, + 38.7380741 + ], + [ + -7.0435243, + 38.8729667 + ], + [ + -7.0615086, + 38.907962 + ], + [ + -6.9693387, + 39.0198308 + ], + [ + -7.0008114, + 39.0887867 + ], + [ + -7.1536786, + 39.0957658 + ], + [ + -7.1525545, + 39.1602899 + ], + [ + -7.2447245, + 39.1968854 + ], + [ + -7.2559647, + 39.2813308 + ], + [ + -7.3368944, + 39.3535074 + ], + [ + -7.3279022, + 39.4559917 + ], + [ + -7.5144901, + 39.5886496 + ], + [ + -7.5527069, + 39.6795427 + ], + [ + -7.0502684, + 39.6752171 + ], + [ + -6.9951913, + 39.8195433 + ], + [ + -6.9221297, + 39.8790868 + ], + [ + -6.886161, + 40.0229854 + ], + [ + -7.0412762, + 40.1347927 + ], + [ + -7.0176717, + 40.266146 + ], + [ + -6.8086034, + 40.3450071 + ], + [ + -6.8681766, + 40.4451649 + ], + [ + -6.8535643, + 40.6066433 + ], + [ + -6.837828, + 40.8757589 + ], + [ + -6.9536024, + 41.0370445 + ], + [ + -6.8018592, + 41.0395879 + ], + [ + -6.7681385, + 41.138706 + ], + [ + -6.6411239, + 41.2655616 + ], + [ + -6.5624422, + 41.2630269 + ], + [ + -6.217367, + 41.5791017 + ], + [ + -6.3162811, + 41.644652 + ], + [ + -6.5152332, + 41.6412921 + ], + [ + -6.5871707, + 41.6883151 + ], + [ + -6.5478299, + 41.8559743 + ], + [ + -6.6298836, + 41.9112057 + ], + [ + -7.1334461, + 41.9404756 + ], + [ + -7.1682909, + 41.8718791 + ], + [ + -7.4256922, + 41.7847727 + ], + [ + -7.9539833, + 41.8459271 + ], + [ + -8.130455, + 41.7805819 + ], + [ + -8.2518495, + 41.9078597 + ], + [ + -8.1293309, + 42.0348842 + ], + [ + -8.2484774, + 42.1008034 + ], + [ + -8.3676239, + 42.0557521 + ], + [ + -8.6070409, + 42.0340493 + ], + [ + -8.8910646, + 41.8228891 + ] + ] + ] + }, { "id": "South_Africa-CapeTown-Aerial-2013", "name": "City of Cape Town 2013 Aerial", @@ -10208,6 +27946,8 @@ "name": "CRAIG - Auvergne 2013 - 25 cm", "type": "tms", "template": "http://tiles.craig.fr/osm/tms/1.0.0/ortho_2013/webmercator/{zoom-1}/{x}/{-y}.jpeg", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -12151,6 +29891,653 @@ "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", "terms_text": "Orthophotographie CRAIG/Sintegra/IGN 2013" }, + { + "id": "Czech_CUZK-KM", + "name": "Czech CUZK:KM", + "type": "wms", + "template": "http://wms.cuzk.cz/wms.asp?service=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS={proj}&LAYERS=parcelni_cisla_i,obrazy_parcel_i,RST_KMD_I,hranice_parcel_i,DEF_BUDOVY,RST_KN_I,dalsi_p_mapy_i,prehledka_kat_prac,prehledka_kat_uz,prehledka_kraju-linie&FORMAT=image/png&transparent=TRUE&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 15.0063684, + 49.0177392 + ], + [ + 15.1559854, + 49.0013828 + ], + [ + 15.190896, + 48.9424551 + ], + [ + 15.3105895, + 48.9882938 + ], + [ + 15.4053469, + 48.9752013 + ], + [ + 15.5400022, + 48.9162426 + ], + [ + 15.7145553, + 48.8670572 + ], + [ + 15.8342488, + 48.880178 + ], + [ + 15.968904, + 48.8178233 + ], + [ + 16.0885976, + 48.7455261 + ], + [ + 16.3978059, + 48.7455261 + ], + [ + 16.4875761, + 48.8145394 + ], + [ + 16.6721036, + 48.7784014 + ], + [ + 16.6820781, + 48.7356594 + ], + [ + 16.9015163, + 48.7126294 + ], + [ + 16.9464014, + 48.6237005 + ], + [ + 17.1159672, + 48.8375227 + ], + [ + 17.2107246, + 48.880178 + ], + [ + 17.4052266, + 48.8178233 + ], + [ + 17.4800351, + 48.8539329 + ], + [ + 17.5299074, + 48.8178233 + ], + [ + 17.7044605, + 48.8670572 + ], + [ + 17.8141796, + 48.9359033 + ], + [ + 17.8840008, + 48.9359033 + ], + [ + 17.9438476, + 49.0210099 + ], + [ + 18.0635412, + 49.0340903 + ], + [ + 18.1184007, + 49.0994409 + ], + [ + 18.1981964, + 49.3047337 + ], + [ + 18.3877112, + 49.3339917 + ], + [ + 18.577226, + 49.5091747 + ], + [ + 18.7567663, + 49.4994587 + ], + [ + 18.8465365, + 49.5253637 + ], + [ + 18.8764598, + 49.5706645 + ], + [ + 18.7966641, + 49.693412 + ], + [ + 18.64206, + 49.7095399 + ], + [ + 18.5872004, + 49.8351543 + ], + [ + 18.6121366, + 49.8833809 + ], + [ + 18.5622643, + 49.9347695 + ], + [ + 18.512392, + 49.9058702 + ], + [ + 18.362775, + 49.9540261 + ], + [ + 18.3278644, + 49.9219275 + ], + [ + 18.2630304, + 49.9732751 + ], + [ + 18.1184007, + 50.0053395 + ], + [ + 18.0635412, + 50.075806 + ], + [ + 17.9139242, + 49.9796897 + ], + [ + 17.779269, + 50.0309757 + ], + [ + 17.714435, + 50.1237921 + ], + [ + 17.6047159, + 50.1653411 + ], + [ + 17.7593201, + 50.21962 + ], + [ + 17.7343839, + 50.3439092 + ], + [ + 17.6396265, + 50.2802117 + ], + [ + 17.3802905, + 50.2802117 + ], + [ + 17.3503671, + 50.3439092 + ], + [ + 17.2805459, + 50.3375433 + ], + [ + 17.1857885, + 50.4075214 + ], + [ + 16.9015163, + 50.4615247 + ], + [ + 16.8666057, + 50.4138779 + ], + [ + 16.9663503, + 50.3184404 + ], + [ + 17.0361715, + 50.2323826 + ], + [ + 16.8366823, + 50.21962 + ], + [ + 16.7120015, + 50.1046034 + ], + [ + 16.5823335, + 50.1589513 + ], + [ + 16.5623846, + 50.2387626 + ], + [ + 16.4327166, + 50.3375433 + ], + [ + 16.3529209, + 50.3916263 + ], + [ + 16.2781124, + 50.3916263 + ], + [ + 16.2082911, + 50.4456477 + ], + [ + 16.3978059, + 50.5344899 + ], + [ + 16.4476782, + 50.5978464 + ], + [ + 16.3529209, + 50.670601 + ], + [ + 16.2382145, + 50.6769221 + ], + [ + 16.2182656, + 50.6326561 + ], + [ + 16.1284954, + 50.6832425 + ], + [ + 16.0486997, + 50.6073425 + ], + [ + 15.988853, + 50.7021983 + ], + [ + 15.8741467, + 50.6832425 + ], + [ + 15.8292616, + 50.7653291 + ], + [ + 15.729517, + 50.743243 + ], + [ + 15.450232, + 50.8157725 + ], + [ + 15.3903852, + 50.7747914 + ], + [ + 15.3804108, + 50.8598659 + ], + [ + 15.2956278, + 50.8850434 + ], + [ + 15.2956278, + 50.9887568 + ], + [ + 15.1709471, + 51.0201394 + ], + [ + 14.9914067, + 51.0013124 + ], + [ + 15.0063684, + 50.8881896 + ], + [ + 14.8417898, + 50.8756034 + ], + [ + 14.7969047, + 50.8252246 + ], + [ + 14.6323261, + 50.8567177 + ], + [ + 14.6622495, + 50.9353576 + ], + [ + 14.5724793, + 50.9227841 + ], + [ + 14.6123772, + 50.9856174 + ], + [ + 14.4976708, + 51.0483657 + ], + [ + 14.4178751, + 51.0232765 + ], + [ + 14.3081561, + 51.0671736 + ], + [ + 14.2532965, + 51.0044508 + ], + [ + 14.4029134, + 50.9322145 + ], + [ + 14.3729901, + 50.897627 + ], + [ + 14.2433221, + 50.9070625 + ], + [ + 14.2084114, + 50.844123 + ], + [ + 14.0338583, + 50.8126214 + ], + [ + 13.9789988, + 50.8252246 + ], + [ + 13.9041903, + 50.7968626 + ], + [ + 13.8742669, + 50.740087 + ], + [ + 13.5351352, + 50.7243038 + ], + [ + 13.530148, + 50.6579561 + ], + [ + 13.4703012, + 50.6136722 + ], + [ + 13.3905055, + 50.664279 + ], + [ + 13.3256715, + 50.5883483 + ], + [ + 13.250863, + 50.6105074 + ], + [ + 13.1960035, + 50.5059517 + ], + [ + 13.0513738, + 50.5218084 + ], + [ + 12.9665909, + 50.4106997 + ], + [ + 12.8269484, + 50.4710483 + ], + [ + 12.7022676, + 50.4138779 + ], + [ + 12.5077656, + 50.401164 + ], + [ + 12.343187, + 50.2547088 + ], + [ + 12.323238, + 50.1845054 + ], + [ + 12.2484296, + 50.2738373 + ], + [ + 12.1736211, + 50.3311765 + ], + [ + 12.0988126, + 50.33436 + ], + [ + 12.1187616, + 50.25152 + ], + [ + 12.2234934, + 50.1653411 + ], + [ + 12.2035445, + 50.1237921 + ], + [ + 12.5027784, + 49.9732751 + ], + [ + 12.4778422, + 49.9379795 + ], + [ + 12.5476634, + 49.9155052 + ], + [ + 12.4678677, + 49.8029766 + ], + [ + 12.408021, + 49.7611134 + ], + [ + 12.4828294, + 49.6869593 + ], + [ + 12.5327017, + 49.6869593 + ], + [ + 12.5177401, + 49.6288466 + ], + [ + 12.6075102, + 49.5415474 + ], + [ + 12.6723442, + 49.4378793 + ], + [ + 12.8119867, + 49.3469896 + ], + [ + 12.9466419, + 49.3437405 + ], + [ + 13.2309141, + 49.1288206 + ], + [ + 13.3256715, + 49.1059712 + ], + [ + 13.4353906, + 49.0438984 + ], + [ + 13.4154417, + 48.9948387 + ], + [ + 13.5002246, + 48.949006 + ], + [ + 13.5650586, + 48.9882938 + ], + [ + 13.6847522, + 48.8834577 + ], + [ + 13.7445989, + 48.9031312 + ], + [ + 13.8243946, + 48.7751149 + ], + [ + 13.8992031, + 48.7751149 + ], + [ + 14.0587945, + 48.676418 + ], + [ + 14.0438328, + 48.6302932 + ], + [ + 14.1435774, + 48.5907241 + ], + [ + 14.3729901, + 48.5610269 + ], + [ + 14.4827091, + 48.6500662 + ], + [ + 14.5774665, + 48.607215 + ], + [ + 14.6273389, + 48.6335892 + ], + [ + 14.7071346, + 48.5808269 + ], + [ + 14.7470324, + 48.7027561 + ], + [ + 14.8118664, + 48.7389485 + ], + [ + 14.8168536, + 48.794831 + ], + [ + 14.9864195, + 48.7652539 + ], + [ + 15.0063684, + 49.0177392 + ] + ] + ] + }, { "id": "Czech_CUZK-KM-tms", "name": "Czech CUZK:KM tiles proxy", @@ -14225,6 +32612,788 @@ "terms_text": "Digital Aerial Solutions, LLC", "description": "This data set consists of 0.3-meter pixel resolution (approximately 1-foot), 4-band true color and near infrared (R, G, B, IR) orthoimages covering New Castle, Kent and Sussex Counties in Delaware." }, + { + "id": "delmiro_gouveia", + "name": "Delmiro Gouveia AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Delmiro%20Gouveia&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.94962469285, + -9.42956855866 + ], + [ + -37.94833723253, + -9.33972104942 + ], + [ + -38.03902808374, + -9.33834478757 + ], + [ + -38.04033700174, + -9.42845725102 + ], + [ + -37.94962469285, + -9.42956855866 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "der-es", + "name": "DER-ES", + "type": "wms", + "template": "http://portal.der.es.gov.br/geoserver/wms?SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=deres-ext:TRECHOINFO&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -40.94577071764, + -21.31403802661 + ], + [ + -40.62309586758, + -20.86277859527 + ], + [ + -40.38881524148, + -20.65176928183 + ], + [ + -40.22208792475, + -20.29831315792 + ], + [ + -39.80383232847, + -19.66412347768 + ], + [ + -39.69603449437, + -19.42573412636 + ], + [ + -39.6730376231, + -19.30437313323 + ], + [ + -39.70537697333, + -18.61383779319 + ], + [ + -39.65291536073, + -18.33096390659 + ], + [ + -40.22280657698, + -17.97586605847 + ], + [ + -40.34282149894, + -17.91980423648 + ], + [ + -40.45277528971, + -17.91501764849 + ], + [ + -40.46499237758, + -17.92048802421 + ], + [ + -40.48367733549, + -17.90407639054 + ], + [ + -40.50164364117, + -17.90681176832 + ], + [ + -40.51601668572, + -17.8890310587 + ], + [ + -40.53326433917, + -17.8890310587 + ], + [ + -40.54548142703, + -17.90134097056 + ], + [ + -40.5893192129, + -17.91501764849 + ], + [ + -40.5893192129, + -17.93211201178 + ], + [ + -40.61519069308, + -17.9341632245 + ], + [ + -40.62956373763, + -17.98680287756 + ], + [ + -40.64609273886, + -17.98680287756 + ], + [ + -40.65902847895, + -18.00730758632 + ], + [ + -40.68777456804, + -18.00594067991 + ], + [ + -40.70574087372, + -18.01755904646 + ], + [ + -40.71364604822, + -18.00183989709 + ], + [ + -40.72155122272, + -17.9977390189 + ], + [ + -40.75101596404, + -18.00252336752 + ], + [ + -40.76754496527, + -17.99842250522 + ], + [ + -40.76754496527, + -17.98133455271 + ], + [ + -40.80922679445, + -17.94852104795 + ], + [ + -40.82431849123, + -17.96014319437 + ], + [ + -40.8315050135, + -17.94988839894 + ], + [ + -40.86528166818, + -17.9827016498 + ], + [ + -40.88396662609, + -17.9676629996 + ], + [ + -40.90911945405, + -17.98475227559 + ], + [ + -40.77760609645, + -18.1077461392 + ], + [ + -40.77832474868, + -18.15145652556 + ], + [ + -40.79054183654, + -18.15350518192 + ], + [ + -40.83509827463, + -18.14531041238 + ], + [ + -40.89546506173, + -18.10364773093 + ], + [ + -40.93283497755, + -18.12755376077 + ], + [ + -40.95583184882, + -18.12550480038 + ], + [ + -40.95295723991, + -18.14462749757 + ], + [ + -40.96014376218, + -18.1500907413 + ], + [ + -40.96373702332, + -18.14326165996 + ], + [ + -40.97954737232, + -18.13643231189 + ], + [ + -40.99248311241, + -18.1500907413 + ], + [ + -40.99104580796, + -18.16306526069 + ], + [ + -41.00901211364, + -18.16306526069 + ], + [ + -41.0578804651, + -18.16579661567 + ], + [ + -41.0578804651, + -18.17535602159 + ], + [ + -41.09596903314, + -18.19242508686 + ], + [ + -41.09596903314, + -18.20539645898 + ], + [ + -41.10890477323, + -18.21290575936 + ], + [ + -41.09812498982, + -18.22997114669 + ], + [ + -41.1053115121, + -18.23270145336 + ], + [ + -41.09884364205, + -18.25590732904 + ], + [ + -41.1290270356, + -18.27501572272 + ], + [ + -41.16136638583, + -18.30572123183 + ], + [ + -41.15058660242, + -18.37393619787 + ], + [ + -41.16424099474, + -18.3793922314 + ], + [ + -41.16424099474, + -18.40189654461 + ], + [ + -41.15058660242, + -18.407351693 + ], + [ + -41.15849177692, + -18.41144294087 + ], + [ + -41.17358347369, + -18.41144294087 + ], + [ + -41.18867517046, + -18.44485115689 + ], + [ + -41.0212292015, + -18.46666526175 + ], + [ + -41.04638202946, + -18.60362157901 + ], + [ + -41.03775820273, + -18.61451885232 + ], + [ + -41.0578804651, + -18.6267774504 + ], + [ + -41.04710068169, + -18.64856833073 + ], + [ + -41.03488359382, + -18.65401561396 + ], + [ + -40.99895098246, + -18.67716461675 + ], + [ + -40.94505206541, + -18.69418392578 + ], + [ + -40.94433341318, + -18.76972898283 + ], + [ + -40.92133654191, + -18.81055006856 + ], + [ + -40.93714689091, + -18.82347468178 + ], + [ + -40.94720802209, + -18.82143401943 + ], + [ + -40.97092354559, + -18.83571813552 + ], + [ + -41.08375194528, + -18.83231726565 + ], + [ + -41.10674881655, + -18.83571813552 + ], + [ + -41.11752859996, + -18.80782897078 + ], + [ + -41.13118299228, + -18.79286214638 + ], + [ + -41.23610621747, + -18.79490315535 + ], + [ + -41.25119791424, + -18.81667237761 + ], + [ + -41.2476046531, + -18.85544182257 + ], + [ + -41.22029586847, + -18.8799231739 + ], + [ + -41.2080787806, + -18.8799231739 + ], + [ + -41.20664147615, + -18.86632286449 + ], + [ + -41.16424099474, + -18.86700290617 + ], + [ + -41.15633582024, + -18.88876278307 + ], + [ + -41.1290270356, + -18.90440094845 + ], + [ + -41.1211218611, + -18.92411655188 + ], + [ + -41.03919550719, + -18.98664720231 + ], + [ + -41.07584677078, + -19.00567361403 + ], + [ + -41.06506698737, + -19.06341902698 + ], + [ + -40.96876758891, + -19.12725524781 + ], + [ + -40.96158106664, + -19.15101775756 + ], + [ + -40.92996036864, + -19.20599786475 + ], + [ + -40.94648936987, + -19.2229633254 + ], + [ + -40.94792667432, + -19.24264106543 + ], + [ + -40.92564845527, + -19.262994866 + ], + [ + -40.94936397877, + -19.27859773554 + ], + [ + -40.92277384636, + -19.31047723804 + ], + [ + -40.94361476096, + -19.352521543 + ], + [ + -40.934272282, + -19.38099701507 + ], + [ + -40.95726915327, + -19.39184350499 + ], + [ + -40.9737981545, + -19.42641186672 + ], + [ + -40.95439454437, + -19.46165046782 + ], + [ + -40.97882872009, + -19.50297829748 + ], + [ + -41.013324027, + -19.50297829748 + ], + [ + -41.04638202946, + -19.48333195583 + ], + [ + -41.05428720396, + -19.48400945558 + ], + [ + -41.04135146387, + -19.56664313353 + ], + [ + -41.09237577201, + -19.58966465422 + ], + [ + -41.14627468905, + -19.6560023745 + ], + [ + -41.16495964696, + -19.65870945459 + ], + [ + -41.17933269151, + -19.69389733589 + ], + [ + -41.19658034496, + -19.74598826039 + ], + [ + -41.16999021255, + -19.80617607525 + ], + [ + -41.18939382269, + -19.82375473895 + ], + [ + -41.18867517046, + -19.88526474348 + ], + [ + -41.21239069396, + -19.89742873112 + ], + [ + -41.22963834742, + -19.90215891837 + ], + [ + -41.24688600088, + -19.93323948769 + ], + [ + -41.25479117538, + -19.92918584689 + ], + [ + -41.26988287215, + -19.93796860383 + ], + [ + -41.30653413574, + -19.93391508438 + ], + [ + -41.31515796247, + -19.9697175726 + ], + [ + -41.32450044142, + -19.97647184801 + ], + [ + -41.31300200579, + -20.01226467389 + ], + [ + -41.33671752929, + -20.05547534637 + ], + [ + -41.34821596492, + -20.08652567207 + ], + [ + -41.3554024872, + -20.12094384129 + ], + [ + -41.37768070624, + -20.1580529872 + ], + [ + -41.3870231852, + -20.1863849412 + ], + [ + -41.4107387087, + -20.19447883957 + ], + [ + -41.42079983988, + -20.2025723174 + ], + [ + -41.7635969523, + -20.20459562113 + ], + [ + -41.78515651912, + -20.28483210523 + ], + [ + -41.8505538718, + -20.32459783588 + ], + [ + -41.86348961189, + -20.37513273815 + ], + [ + -41.85127252403, + -20.38186947551 + ], + [ + -41.84336734953, + -20.40948702116 + ], + [ + -41.80887204262, + -20.4249776227 + ], + [ + -41.80671608594, + -20.47211333219 + ], + [ + -41.83115026167, + -20.4788458242 + ], + [ + -41.8110279993, + -20.54211679742 + ], + [ + -41.83115026167, + -20.55086497994 + ], + [ + -41.86205230744, + -20.61814193832 + ], + [ + -41.82108913048, + -20.64437190401 + ], + [ + -41.85342848071, + -20.68068284947 + ], + [ + -41.87139478639, + -20.72101815833 + ], + [ + -41.86780152526, + -20.73849345818 + ], + [ + -41.88001861312, + -20.73983762845 + ], + [ + -41.88289322203, + -20.76739048664 + ], + [ + -41.85414713294, + -20.77478186241 + ], + [ + -41.83330621835, + -20.79829746931 + ], + [ + -41.80887204262, + -20.80904624047 + ], + [ + -41.78443786689, + -20.80568733178 + ], + [ + -41.75137986444, + -20.82382454951 + ], + [ + -41.74706795107, + -20.87486573082 + ], + [ + -41.72335242757, + -20.87553720984 + ], + [ + -41.74131873325, + -20.92723207622 + ], + [ + -41.72335242757, + -20.97756707786 + ], + [ + -41.74347468994, + -21.09763138917 + ], + [ + -41.72910164539, + -21.12578887114 + ], + [ + -41.59399502666, + -21.16332386392 + ], + [ + -41.57243545984, + -21.18677840236 + ], + [ + -41.49050910593, + -21.18878861828 + ], + [ + -41.48332258366, + -21.20084933958 + ], + [ + -41.43948479779, + -21.22094835332 + ], + [ + -41.41289466538, + -21.20955924815 + ], + [ + -41.34965326938, + -21.21290907619 + ], + [ + -41.27994400333, + -21.24640317418 + ], + [ + -41.24473004419, + -21.2323365795 + ], + [ + -41.17717673483, + -21.25511039335 + ], + [ + -41.09237577201, + -21.22429792287 + ], + [ + -41.04853798614, + -21.25912893631 + ], + [ + -41.01547998369, + -21.25578015812 + ], + [ + -41.00254424359, + -21.28725566578 + ], + [ + -40.94577071764, + -21.31403802661 + ] + ] + ], + "terms_url": "https://der.es.gov.br/", + "terms_text": "Departamento de Estradas de Rodagem do Estado do Espírito Santo" + }, { "id": "DigitalGlobe-Premium", "name": "DigitalGlobe Premium Imagery", @@ -14350,6 +33519,39 @@ ], "terms_text": "Maa-Ameti ortofoto" }, + { + "id": "estrela_de_alagoas", + "name": "Estrela de Alagoas", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Estrela%20de%20Alagoas&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.71382371133, + -9.43475990551 + ], + [ + -36.7147678489, + -9.34442676518 + ], + [ + -36.80585566705, + -9.34497726095 + ], + [ + -36.80525485223, + -9.43541609465 + ], + [ + -36.71382371133, + -9.43475990551 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "FOMI_2000", "name": "FÖMI orthophoto 2000", @@ -18970,661 +38172,6 @@ "terms_url": "http://www.fomi.hu/", "terms_text": "Földmérési és Távérzékelési Intézet" }, - { - "id": "FR-BAN", - "name": "FR-BAN", - "type": "tms", - "template": "http://{switch:a,b,c}.layers.openstreetmap.fr/bano/{zoom}/{x}/{y}.png", - "scaleExtent": [ - 12, - 20 - ], - "polygon": [ - [ - [ - 8.3247852, - 49.0891892 - ], - [ - 6.1566882, - 49.6167369 - ], - [ - 4.8666714, - 50.2126152 - ], - [ - 2.4937064, - 51.1761675 - ], - [ - 1.3121526, - 50.9324682 - ], - [ - 1.2659981, - 50.1877492 - ], - [ - 0.1121369, - 49.8258592 - ], - [ - -0.3494075, - 49.4312336 - ], - [ - -1.0232625, - 49.4852345 - ], - [ - -1.3278818, - 49.7901162 - ], - [ - -2.1032765, - 49.7901162 - ], - [ - -1.6232703, - 48.7420657 - ], - [ - -3.1002126, - 48.9728514 - ], - [ - -5.1125465, - 48.6811558 - ], - [ - -5.3525496, - 48.4367783 - ], - [ - -4.5984193, - 47.7194959 - ], - [ - -2.555398, - 47.0232784 - ], - [ - -2.4738077, - 46.6638823 - ], - [ - -1.6676954, - 46.1055717 - ], - [ - -1.334807, - 45.5141125 - ], - [ - -1.4914604, - 44.1627003 - ], - [ - -1.9940567, - 43.3708146 - ], - [ - -0.956228, - 42.7364747 - ], - [ - 2.2029487, - 42.2841894 - ], - [ - 3.2342502, - 42.5444129 - ], - [ - 3.2407774, - 43.1140543 - ], - [ - 4.0436261, - 43.3280964 - ], - [ - 6.4325902, - 42.808345 - ], - [ - 7.6270723, - 43.5934102 - ], - [ - 7.8163619, - 44.1720643 - ], - [ - 7.0396221, - 44.41967 - ], - [ - 7.268075, - 45.4958141 - ], - [ - 7.1244761, - 46.2140775 - ], - [ - 6.5631347, - 46.771283 - ], - [ - 7.6571492, - 47.59128 - ], - [ - 7.6527839, - 47.5941813 - ], - [ - 7.6224698, - 47.5776739 - ], - [ - 7.6047297, - 47.578221 - ], - [ - 7.5877054, - 47.5901532 - ], - [ - 7.521558, - 47.65161 - ], - [ - 7.503992, - 47.70235 - ], - [ - 7.520958, - 47.77685 - ], - [ - 7.557124, - 47.84839 - ], - [ - 7.549463, - 47.879205 - ], - [ - 7.574615, - 47.93028 - ], - [ - 7.613179, - 47.96804 - ], - [ - 7.611904, - 47.9871 - ], - [ - 7.5612401, - 48.0383618 - ], - [ - 7.574915, - 48.1258 - ], - [ - 7.595338, - 48.15977 - ], - [ - 7.633047, - 48.19717 - ], - [ - 7.662748, - 48.22473 - ], - [ - 7.684659, - 48.30305 - ], - [ - 7.763463, - 48.49158 - ], - [ - 7.8004602, - 48.5125977 - ], - [ - 7.799582, - 48.5878 - ], - [ - 7.834088, - 48.64439 - ], - [ - 7.9121073, - 48.6889897 - ], - [ - 7.9672295, - 48.7571585 - ], - [ - 8.020692, - 48.78879 - ], - [ - 8.043024, - 48.7956 - ], - [ - 8.0864658, - 48.8130551 - ], - [ - 8.1364418, - 48.8978239 - ], - [ - 8.1970586, - 48.96021 - ], - [ - 8.2816129, - 48.9948995 - ], - [ - 8.2996723, - 49.025966 - ], - [ - 8.3124269, - 49.0599642 - ], - [ - 8.3247852, - 49.0891892 - ] - ], - [ - [ - 9.3609615, - 43.1345098 - ], - [ - 8.4393174, - 42.48439 - ], - [ - 8.4836272, - 41.8175373 - ], - [ - 8.8469677, - 41.3768281 - ], - [ - 9.2058772, - 41.3136241 - ], - [ - 9.48946, - 41.5461776 - ], - [ - 9.6356823, - 42.1994563 - ], - [ - 9.6046655, - 42.901254 - ], - [ - 9.3609615, - 43.1345098 - ] - ] - ], - "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/WikiProject_Base_Adresses_Nationale_Ouverte_(BANO)", - "terms_text": "Tiles © cquest@Openstreetmap France, data © OpenStreetMap contributors, ODBL", - "description": "French address registry or Base Adresses Nationale" - }, - { - "id": "FR-Cadastre", - "name": "FR-Cadastre", - "type": "tms", - "template": "http://tms.cadastre.openstreetmap.fr/*/tout/{zoom}/{x}/{y}.png", - "scaleExtent": [ - 12, - 22 - ], - "polygon": [ - [ - [ - 8.3247852, - 49.0891892 - ], - [ - 6.1566882, - 49.6167369 - ], - [ - 4.8666714, - 50.2126152 - ], - [ - 2.4937064, - 51.1761675 - ], - [ - 1.3121526, - 50.9324682 - ], - [ - 1.2659981, - 50.1877492 - ], - [ - 0.1121369, - 49.8258592 - ], - [ - -0.3494075, - 49.4312336 - ], - [ - -1.0232625, - 49.4852345 - ], - [ - -1.3278818, - 49.7901162 - ], - [ - -2.1032765, - 49.7901162 - ], - [ - -1.6232703, - 48.7420657 - ], - [ - -3.1002126, - 48.9728514 - ], - [ - -5.1125465, - 48.6811558 - ], - [ - -5.3525496, - 48.4367783 - ], - [ - -4.5984193, - 47.7194959 - ], - [ - -2.555398, - 47.0232784 - ], - [ - -2.4738077, - 46.6638823 - ], - [ - -1.6676954, - 46.1055717 - ], - [ - -1.334807, - 45.5141125 - ], - [ - -1.4914604, - 44.1627003 - ], - [ - -1.9940567, - 43.3708146 - ], - [ - -0.956228, - 42.7364747 - ], - [ - 2.2029487, - 42.2841894 - ], - [ - 3.2342502, - 42.5444129 - ], - [ - 3.2407774, - 43.1140543 - ], - [ - 4.0436261, - 43.3280964 - ], - [ - 6.4325902, - 42.808345 - ], - [ - 7.6270723, - 43.5934102 - ], - [ - 7.8163619, - 44.1720643 - ], - [ - 7.0396221, - 44.41967 - ], - [ - 7.268075, - 45.4958141 - ], - [ - 7.1244761, - 46.2140775 - ], - [ - 6.5631347, - 46.771283 - ], - [ - 7.6571492, - 47.59128 - ], - [ - 7.6527839, - 47.5941813 - ], - [ - 7.6224698, - 47.5776739 - ], - [ - 7.6047297, - 47.578221 - ], - [ - 7.5877054, - 47.5901532 - ], - [ - 7.521558, - 47.65161 - ], - [ - 7.503992, - 47.70235 - ], - [ - 7.520958, - 47.77685 - ], - [ - 7.557124, - 47.84839 - ], - [ - 7.549463, - 47.879205 - ], - [ - 7.574615, - 47.93028 - ], - [ - 7.613179, - 47.96804 - ], - [ - 7.611904, - 47.9871 - ], - [ - 7.5612401, - 48.0383618 - ], - [ - 7.574915, - 48.1258 - ], - [ - 7.595338, - 48.15977 - ], - [ - 7.633047, - 48.19717 - ], - [ - 7.662748, - 48.22473 - ], - [ - 7.684659, - 48.30305 - ], - [ - 7.763463, - 48.49158 - ], - [ - 7.8004602, - 48.5125977 - ], - [ - 7.799582, - 48.5878 - ], - [ - 7.834088, - 48.64439 - ], - [ - 7.9121073, - 48.6889897 - ], - [ - 7.9672295, - 48.7571585 - ], - [ - 8.020692, - 48.78879 - ], - [ - 8.043024, - 48.7956 - ], - [ - 8.0864658, - 48.8130551 - ], - [ - 8.1364418, - 48.8978239 - ], - [ - 8.1970586, - 48.96021 - ], - [ - 8.2816129, - 48.9948995 - ], - [ - 8.2996723, - 49.025966 - ], - [ - 8.3124269, - 49.0599642 - ], - [ - 8.3247852, - 49.0891892 - ] - ], - [ - [ - 9.3609615, - 43.1345098 - ], - [ - 8.4393174, - 42.48439 - ], - [ - 8.4836272, - 41.8175373 - ], - [ - 8.8469677, - 41.3768281 - ], - [ - 9.2058772, - 41.3136241 - ], - [ - 9.48946, - 41.5461776 - ], - [ - 9.6356823, - 42.1994563 - ], - [ - 9.6046655, - 42.901254 - ], - [ - 9.3609615, - 43.1345098 - ] - ] - ], - "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_Cadastre_Fran%C3%A7ais/Conditions_d%27utilisation", - "terms_text": "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2015", - "description": "French land registry", - "icon": "https://svn.openstreetmap.org/applications/editors/josm/plugins/cadastre-fr/images/cadastre_small.png" - }, { "id": "Freemap.sk-Car", "name": "Freemap.sk Car", @@ -20425,6 +38972,2828 @@ "terms_text": "Copyright ©2007-2012 Freemap Slovakia (www.freemap.sk). Some rights reserved.", "icon": "http://www.freemap.sk/index.php?c=core.download&filename=/JOSM/freemap.png" }, + { + "id": "Geobase_Hydrography", + "name": "Geobase Hydrography", + "type": "wms", + "template": "http://ows.geobase.ca/wms/geobase_en?service=wms&request=GetMap&version=1.1.1&SRS={proj}&style=&format=image/png&transparent=true&layers=nhn:hydrography,nhn:network&WIDTH={width}&height={height}&BBOX={bbox}", + "projection": "EPSG:900913", + "polygon": [ + [ + [ + -141.0678, + 60.2442 + ], + [ + -139.3842, + 60.10331 + ], + [ + -137.4746, + 58.82791 + ], + [ + -135.4766, + 59.65971 + ], + [ + -134.399, + 58.86279 + ], + [ + -132.5239, + 57.08342 + ], + [ + -130.1435, + 55.27452 + ], + [ + -130.7734, + 54.75597 + ], + [ + -132.4355, + 54.71514 + ], + [ + -134.5711, + 54.38827 + ], + [ + -141.7761, + 53.58405 + ], + [ + -128.9768, + 46.41459 + ], + [ + -124.8087, + 48.42976 + ], + [ + -123.4286, + 48.17889 + ], + [ + -123.0256, + 48.40444 + ], + [ + -123.1923701, + 48.6550408 + ], + [ + -122.9958159, + 48.5106543 + ], + [ + -122.4868966, + 48.4098005 + ], + [ + -122.3291531, + 48.4527983 + ], + [ + -122.229391, + 48.5064943 + ], + [ + -122.1790836, + 48.5296509 + ], + [ + -122.1841996, + 48.566905 + ], + [ + -121.7783298, + 48.5759321 + ], + [ + -121.6657777, + 48.4279093 + ], + [ + -121.3306793, + 48.3571354 + ], + [ + -121.0271296, + 48.3497692 + ], + [ + -121.0305403, + 48.4940645 + ], + [ + -120.6979999, + 48.5149675 + ], + [ + -120.510413, + 48.8718034 + ], + [ + -119.9757904, + 48.8813368 + ], + [ + -119.9544737, + 48.5149675 + ], + [ + -119.907577, + 48.2942056 + ], + [ + -119.7319275, + 48.1550316 + ], + [ + -119.7438648, + 48.0741943 + ], + [ + -119.622786, + 48.1095051 + ], + [ + -119.602322, + 48.1470674 + ], + [ + -119.2527283, + 48.1624259 + ], + [ + -114.1499, + 48.99487 + ], + [ + -95.12094, + 48.98405 + ], + [ + -95.13419, + 49.35564 + ], + [ + -94.94415, + 49.34356 + ], + [ + -94.8839, + 49.29522 + ], + [ + -94.71704, + 48.87631 + ], + [ + -94.71791, + 48.7485 + ], + [ + -93.83204, + 48.49765 + ], + [ + -93.43778, + 48.53066 + ], + [ + -93.38216, + 48.59507 + ], + [ + -92.98471, + 48.60312 + ], + [ + -92.73847, + 48.50725 + ], + [ + -92.7095, + 48.42081 + ], + [ + -92.54293, + 48.40158 + ], + [ + -92.38361, + 48.20406 + ], + [ + -92.11564, + 48.27641 + ], + [ + -91.58697, + 48.02516 + ], + [ + -91.24658, + 48.05422 + ], + [ + -90.86275, + 48.20889 + ], + [ + -90.78308, + 48.0639 + ], + [ + -90.0774, + 48.07435 + ], + [ + -89.93835, + 47.96584 + ], + [ + -89.75469, + 47.99609 + ], + [ + -89.32745, + 47.93943 + ], + [ + -88.41489, + 48.26677 + ], + [ + -84.9566, + 46.86086 + ], + [ + -84.84795, + 46.6762 + ], + [ + -84.55904, + 46.45441 + ], + [ + -84.47642, + 46.44972 + ], + [ + -84.43758, + 46.48872 + ], + [ + -84.3669, + 46.5055 + ], + [ + -84.34899, + 46.5055 + ], + [ + -84.29026, + 46.49077 + ], + [ + -84.25742, + 46.49386 + ], + [ + -84.22507, + 46.53187 + ], + [ + -84.1962, + 46.53804 + ], + [ + -84.18027, + 46.52468 + ], + [ + -84.15987, + 46.52468 + ], + [ + -84.13449, + 46.52879 + ], + [ + -84.11558, + 46.50653 + ], + [ + -84.15944, + 46.42769 + ], + [ + -84.10024, + 46.20338 + ], + [ + -83.95558, + 46.05132 + ], + [ + -83.8864, + 46.06125 + ], + [ + -83.8203, + 46.11181 + ], + [ + -83.76975, + 46.09563 + ], + [ + -83.67498, + 46.11391 + ], + [ + -83.58084, + 46.09921 + ], + [ + -83.44747, + 45.99521 + ], + [ + -83.60888, + 45.81772 + ], + [ + -82.14271, + 43.57905 + ], + [ + -82.39133, + 43.06666 + ], + [ + -82.41252, + 43.01127 + ], + [ + -82.42522, + 42.99864 + ], + [ + -82.42618, + 42.99374 + ], + [ + -82.42363, + 42.98536 + ], + [ + -82.41503, + 42.97697 + ], + [ + -82.41853, + 42.96578 + ], + [ + -82.43064, + 42.95203 + ], + [ + -82.44911, + 42.93711 + ], + [ + -82.45739, + 42.92568 + ], + [ + -82.46472, + 42.90562 + ], + [ + -82.47228, + 42.8877 + ], + [ + -82.47228, + 42.84743 + ], + [ + -82.48536, + 42.80967 + ], + [ + -82.46844, + 42.76365 + ], + [ + -82.48586, + 42.73697 + ], + [ + -82.49155, + 42.71168 + ], + [ + -82.51488, + 42.66652 + ], + [ + -82.51224, + 42.63893 + ], + [ + -82.52421, + 42.61103 + ], + [ + -82.56854, + 42.58184 + ], + [ + -82.59498, + 42.55148 + ], + [ + -82.61286, + 42.56409 + ], + [ + -82.65158, + 42.55707 + ], + [ + -82.83439, + 42.3763 + ], + [ + -83.01489, + 42.33457 + ], + [ + -83.07244, + 42.31502 + ], + [ + -83.09647, + 42.29542 + ], + [ + -83.12823, + 42.24126 + ], + [ + -83.14167, + 42.18582 + ], + [ + -83.12799, + 42.12172 + ], + [ + -83.16266, + 42.04963 + ], + [ + -83.05136, + 41.70911 + ], + [ + -82.41932, + 41.6377 + ], + [ + -81.22563, + 42.19633 + ], + [ + -80.06688, + 42.37121 + ], + [ + -78.86642, + 42.825 + ], + [ + -78.90301, + 42.92307 + ], + [ + -78.92063, + 42.95234 + ], + [ + -78.93331, + 42.95708 + ], + [ + -78.96058, + 42.9595 + ], + [ + -78.98479, + 42.9761 + ], + [ + -79.01825, + 42.9964 + ], + [ + -79.01969, + 43.01561 + ], + [ + -79.00695, + 43.0333 + ], + [ + -78.99599, + 43.06448 + ], + [ + -79.07335, + 43.07876 + ], + [ + -79.07286, + 43.083 + ], + [ + -79.0652, + 43.0917 + ], + [ + -79.05623, + 43.10825 + ], + [ + -79.05982, + 43.11563 + ], + [ + -79.06764, + 43.11992 + ], + [ + -79.05411, + 43.12801 + ], + [ + -79.04112, + 43.13986 + ], + [ + -79.04465, + 43.16192 + ], + [ + -79.05101, + 43.17037 + ], + [ + -79.04758, + 43.19974 + ], + [ + -79.05511, + 43.25682 + ], + [ + -79.18688, + 43.44858 + ], + [ + -78.68836, + 43.62502 + ], + [ + -76.77647, + 43.61369 + ], + [ + -76.41665, + 44.08498 + ], + [ + -75.49023, + 44.70772 + ], + [ + -75.29544, + 44.82587 + ], + [ + -75.16845, + 44.88548 + ], + [ + -75.1275, + 44.8975 + ], + [ + -75.00499, + 44.95265 + ], + [ + -74.98159, + 44.97728 + ], + [ + -74.90496, + 44.98222 + ], + [ + -74.8313, + 45.01108 + ], + [ + -74.77954, + 45.00158 + ], + [ + -74.74562, + 44.98526 + ], + [ + -74.70475, + 44.99877 + ], + [ + -74.49079, + 44.99343 + ], + [ + -74.23203, + 44.98552 + ], + [ + -73.93713, + 44.99512 + ], + [ + -73.01809, + 45.0121 + ], + [ + -72.63177, + 45.0121 + ], + [ + -72.54779, + 45.00506 + ], + [ + -72.32259, + 45.00286 + ], + [ + -71.49404, + 45.01093 + ], + [ + -71.48648, + 45.06221 + ], + [ + -71.42303, + 45.12765 + ], + [ + -71.43112, + 45.14037 + ], + [ + -71.37175, + 45.22117 + ], + [ + -71.28959, + 45.28578 + ], + [ + -71.23613, + 45.24302 + ], + [ + -71.11683, + 45.22933 + ], + [ + -71.0531, + 45.29866 + ], + [ + -70.98936, + 45.31088 + ], + [ + -70.90246, + 45.22525 + ], + [ + -70.82473, + 45.22714 + ], + [ + -70.77626, + 45.40013 + ], + [ + -70.7119, + 45.3754 + ], + [ + -70.63387, + 45.37346 + ], + [ + -70.60302, + 45.41179 + ], + [ + -70.67659, + 45.56319 + ], + [ + -70.3752, + 45.73075 + ], + [ + -70.36334, + 45.82013 + ], + [ + -70.25417, + 45.87468 + ], + [ + -70.22569, + 45.94403 + ], + [ + -70.27316, + 45.99022 + ], + [ + -70.17586, + 46.33538 + ], + [ + -70.06195, + 46.4107 + ], + [ + -69.98891, + 46.69363 + ], + [ + -69.22424, + 47.44463 + ], + [ + -69.06999, + 47.41092 + ], + [ + -69.07473, + 47.24202 + ], + [ + -68.89684, + 47.17469 + ], + [ + -68.78685, + 47.21493 + ], + [ + -68.72415, + 47.23217 + ], + [ + -68.68583, + 47.24028 + ], + [ + -68.66044, + 47.23183 + ], + [ + -68.62162, + 47.24028 + ], + [ + -68.59425, + 47.24974 + ], + [ + -68.59226, + 47.27001 + ], + [ + -68.57385, + 47.28486 + ], + [ + -68.55941, + 47.2798 + ], + [ + -68.542, + 47.2798 + ], + [ + -68.51214, + 47.29195 + ], + [ + -68.47381, + 47.29229 + ], + [ + -68.46038, + 47.28149 + ], + [ + -68.43898, + 47.27777 + ], + [ + -68.37229, + 47.2825 + ], + [ + -68.3703, + 47.34796 + ], + [ + -68.33173, + 47.35822 + ], + [ + -68.29664, + 47.352 + ], + [ + -68.2399, + 47.34897 + ], + [ + -68.0906, + 47.26798 + ], + [ + -68.00002, + 47.21223 + ], + [ + -67.96344, + 47.19753 + ], + [ + -67.93582, + 47.15947 + ], + [ + -67.88619, + 47.10424 + ], + [ + -67.80218, + 47.06386 + ], + [ + -67.79415, + 45.93923 + ], + [ + -67.82753, + 45.8489 + ], + [ + -67.82753, + 45.6704 + ], + [ + -67.54943, + 45.57445 + ], + [ + -67.45302, + 45.58742 + ], + [ + -67.44189, + 45.52251 + ], + [ + -67.54201, + 45.49393 + ], + [ + -67.4456, + 45.38726 + ], + [ + -67.51605, + 45.29343 + ], + [ + -67.38257, + 45.11839 + ], + [ + -67.3047, + 45.11316 + ], + [ + -67.26762, + 45.18116 + ], + [ + -67.12671, + 45.09484 + ], + [ + -66.94835, + 44.78406 + ], + [ + -66.52283, + 43.61294 + ], + [ + -65.02339, + 42.10691 + ], + [ + -42.53366, + 47.50263 + ], + [ + -75.90901, + 77.3176 + ], + [ + -71.86482, + 78.7359 + ], + [ + -67.20011, + 80.66812 + ], + [ + -66.20727, + 80.78637 + ], + [ + -54.82473, + 83.07464 + ], + [ + -57.62518, + 85.04043 + ], + [ + -106.7949, + 85.04625 + ], + [ + -141.3957, + 79.2514 + ], + [ + -141.0678, + 60.2442 + ] + ] + ] + }, + { + "id": "Geobase_Roads", + "name": "Geobase Roads", + "type": "wms", + "template": "http://ows.geobase.ca/wms/geobase_en?service=wms&request=GetMap&version=1.1.1&SRS={proj}&style=&format=image/png&transparent=true&layers=nrn:addressrange,nrn:streetnames,nrn:streetnames:streetnames_primary,nrn:streetnames:streetnames_secondary,nrn:streetnames:streetnames_other,nhn:hydrography,nrn:roadnetwork&WIDTH={width}&height={height}&BBOX={bbox}", + "projection": "EPSG:900913", + "polygon": [ + [ + [ + -141.0678, + 60.2442 + ], + [ + -139.3842, + 60.10331 + ], + [ + -137.4746, + 58.82791 + ], + [ + -135.4766, + 59.65971 + ], + [ + -134.399, + 58.86279 + ], + [ + -132.5239, + 57.08342 + ], + [ + -130.1435, + 55.27452 + ], + [ + -130.7734, + 54.75597 + ], + [ + -132.4355, + 54.71514 + ], + [ + -134.5711, + 54.38827 + ], + [ + -141.7761, + 53.58405 + ], + [ + -128.9768, + 46.41459 + ], + [ + -124.8087, + 48.42976 + ], + [ + -123.4286, + 48.17889 + ], + [ + -123.0256, + 48.40444 + ], + [ + -123.1923701, + 48.6550408 + ], + [ + -122.9958159, + 48.5106543 + ], + [ + -122.4868966, + 48.4098005 + ], + [ + -122.3291531, + 48.4527983 + ], + [ + -122.229391, + 48.5064943 + ], + [ + -122.1790836, + 48.5296509 + ], + [ + -122.1841996, + 48.566905 + ], + [ + -121.7783298, + 48.5759321 + ], + [ + -121.6657777, + 48.4279093 + ], + [ + -121.3306793, + 48.3571354 + ], + [ + -121.0271296, + 48.3497692 + ], + [ + -121.0305403, + 48.4940645 + ], + [ + -120.6979999, + 48.5149675 + ], + [ + -120.510413, + 48.8718034 + ], + [ + -119.9757904, + 48.8813368 + ], + [ + -119.9544737, + 48.5149675 + ], + [ + -119.907577, + 48.2942056 + ], + [ + -119.7319275, + 48.1550316 + ], + [ + -119.7438648, + 48.0741943 + ], + [ + -119.622786, + 48.1095051 + ], + [ + -119.602322, + 48.1470674 + ], + [ + -119.2527283, + 48.1624259 + ], + [ + -114.1499, + 48.99487 + ], + [ + -95.12094, + 48.98405 + ], + [ + -95.13419, + 49.35564 + ], + [ + -94.94415, + 49.34356 + ], + [ + -94.8839, + 49.29522 + ], + [ + -94.71704, + 48.87631 + ], + [ + -94.71791, + 48.7485 + ], + [ + -93.83204, + 48.49765 + ], + [ + -93.43778, + 48.53066 + ], + [ + -93.38216, + 48.59507 + ], + [ + -92.98471, + 48.60312 + ], + [ + -92.73847, + 48.50725 + ], + [ + -92.7095, + 48.42081 + ], + [ + -92.54293, + 48.40158 + ], + [ + -92.38361, + 48.20406 + ], + [ + -92.11564, + 48.27641 + ], + [ + -91.58697, + 48.02516 + ], + [ + -91.24658, + 48.05422 + ], + [ + -90.86275, + 48.20889 + ], + [ + -90.78308, + 48.0639 + ], + [ + -90.0774, + 48.07435 + ], + [ + -89.93835, + 47.96584 + ], + [ + -89.75469, + 47.99609 + ], + [ + -89.32745, + 47.93943 + ], + [ + -88.41489, + 48.26677 + ], + [ + -84.9566, + 46.86086 + ], + [ + -84.84795, + 46.6762 + ], + [ + -84.55904, + 46.45441 + ], + [ + -84.47642, + 46.44972 + ], + [ + -84.43758, + 46.48872 + ], + [ + -84.3669, + 46.5055 + ], + [ + -84.34899, + 46.5055 + ], + [ + -84.29026, + 46.49077 + ], + [ + -84.25742, + 46.49386 + ], + [ + -84.22507, + 46.53187 + ], + [ + -84.1962, + 46.53804 + ], + [ + -84.18027, + 46.52468 + ], + [ + -84.15987, + 46.52468 + ], + [ + -84.13449, + 46.52879 + ], + [ + -84.11558, + 46.50653 + ], + [ + -84.15944, + 46.42769 + ], + [ + -84.10024, + 46.20338 + ], + [ + -83.95558, + 46.05132 + ], + [ + -83.8864, + 46.06125 + ], + [ + -83.8203, + 46.11181 + ], + [ + -83.76975, + 46.09563 + ], + [ + -83.67498, + 46.11391 + ], + [ + -83.58084, + 46.09921 + ], + [ + -83.44747, + 45.99521 + ], + [ + -83.60888, + 45.81772 + ], + [ + -82.14271, + 43.57905 + ], + [ + -82.39133, + 43.06666 + ], + [ + -82.41252, + 43.01127 + ], + [ + -82.42522, + 42.99864 + ], + [ + -82.42618, + 42.99374 + ], + [ + -82.42363, + 42.98536 + ], + [ + -82.41503, + 42.97697 + ], + [ + -82.41853, + 42.96578 + ], + [ + -82.43064, + 42.95203 + ], + [ + -82.44911, + 42.93711 + ], + [ + -82.45739, + 42.92568 + ], + [ + -82.46472, + 42.90562 + ], + [ + -82.47228, + 42.8877 + ], + [ + -82.47228, + 42.84743 + ], + [ + -82.48536, + 42.80967 + ], + [ + -82.46844, + 42.76365 + ], + [ + -82.48586, + 42.73697 + ], + [ + -82.49155, + 42.71168 + ], + [ + -82.51488, + 42.66652 + ], + [ + -82.51224, + 42.63893 + ], + [ + -82.52421, + 42.61103 + ], + [ + -82.56854, + 42.58184 + ], + [ + -82.59498, + 42.55148 + ], + [ + -82.61286, + 42.56409 + ], + [ + -82.65158, + 42.55707 + ], + [ + -82.83439, + 42.3763 + ], + [ + -83.01489, + 42.33457 + ], + [ + -83.07244, + 42.31502 + ], + [ + -83.09647, + 42.29542 + ], + [ + -83.12823, + 42.24126 + ], + [ + -83.14167, + 42.18582 + ], + [ + -83.12799, + 42.12172 + ], + [ + -83.16266, + 42.04963 + ], + [ + -83.05136, + 41.70911 + ], + [ + -82.41932, + 41.6377 + ], + [ + -81.22563, + 42.19633 + ], + [ + -80.06688, + 42.37121 + ], + [ + -78.86642, + 42.825 + ], + [ + -78.90301, + 42.92307 + ], + [ + -78.92063, + 42.95234 + ], + [ + -78.93331, + 42.95708 + ], + [ + -78.96058, + 42.9595 + ], + [ + -78.98479, + 42.9761 + ], + [ + -79.01825, + 42.9964 + ], + [ + -79.01969, + 43.01561 + ], + [ + -79.00695, + 43.0333 + ], + [ + -78.99599, + 43.06448 + ], + [ + -79.07335, + 43.07876 + ], + [ + -79.07286, + 43.083 + ], + [ + -79.0652, + 43.0917 + ], + [ + -79.05623, + 43.10825 + ], + [ + -79.05982, + 43.11563 + ], + [ + -79.06764, + 43.11992 + ], + [ + -79.05411, + 43.12801 + ], + [ + -79.04112, + 43.13986 + ], + [ + -79.04465, + 43.16192 + ], + [ + -79.05101, + 43.17037 + ], + [ + -79.04758, + 43.19974 + ], + [ + -79.05511, + 43.25682 + ], + [ + -79.18688, + 43.44858 + ], + [ + -78.68836, + 43.62502 + ], + [ + -76.77647, + 43.61369 + ], + [ + -76.41665, + 44.08498 + ], + [ + -75.49023, + 44.70772 + ], + [ + -75.29544, + 44.82587 + ], + [ + -75.16845, + 44.88548 + ], + [ + -75.1275, + 44.8975 + ], + [ + -75.00499, + 44.95265 + ], + [ + -74.98159, + 44.97728 + ], + [ + -74.90496, + 44.98222 + ], + [ + -74.8313, + 45.01108 + ], + [ + -74.77954, + 45.00158 + ], + [ + -74.74562, + 44.98526 + ], + [ + -74.70475, + 44.99877 + ], + [ + -74.49079, + 44.99343 + ], + [ + -74.23203, + 44.98552 + ], + [ + -73.93713, + 44.99512 + ], + [ + -73.01809, + 45.0121 + ], + [ + -72.63177, + 45.0121 + ], + [ + -72.54779, + 45.00506 + ], + [ + -72.32259, + 45.00286 + ], + [ + -71.49404, + 45.01093 + ], + [ + -71.48648, + 45.06221 + ], + [ + -71.42303, + 45.12765 + ], + [ + -71.43112, + 45.14037 + ], + [ + -71.37175, + 45.22117 + ], + [ + -71.28959, + 45.28578 + ], + [ + -71.23613, + 45.24302 + ], + [ + -71.11683, + 45.22933 + ], + [ + -71.0531, + 45.29866 + ], + [ + -70.98936, + 45.31088 + ], + [ + -70.90246, + 45.22525 + ], + [ + -70.82473, + 45.22714 + ], + [ + -70.77626, + 45.40013 + ], + [ + -70.7119, + 45.3754 + ], + [ + -70.63387, + 45.37346 + ], + [ + -70.60302, + 45.41179 + ], + [ + -70.67659, + 45.56319 + ], + [ + -70.3752, + 45.73075 + ], + [ + -70.36334, + 45.82013 + ], + [ + -70.25417, + 45.87468 + ], + [ + -70.22569, + 45.94403 + ], + [ + -70.27316, + 45.99022 + ], + [ + -70.17586, + 46.33538 + ], + [ + -70.06195, + 46.4107 + ], + [ + -69.98891, + 46.69363 + ], + [ + -69.22424, + 47.44463 + ], + [ + -69.06999, + 47.41092 + ], + [ + -69.07473, + 47.24202 + ], + [ + -68.89684, + 47.17469 + ], + [ + -68.78685, + 47.21493 + ], + [ + -68.72415, + 47.23217 + ], + [ + -68.68583, + 47.24028 + ], + [ + -68.66044, + 47.23183 + ], + [ + -68.62162, + 47.24028 + ], + [ + -68.59425, + 47.24974 + ], + [ + -68.59226, + 47.27001 + ], + [ + -68.57385, + 47.28486 + ], + [ + -68.55941, + 47.2798 + ], + [ + -68.542, + 47.2798 + ], + [ + -68.51214, + 47.29195 + ], + [ + -68.47381, + 47.29229 + ], + [ + -68.46038, + 47.28149 + ], + [ + -68.43898, + 47.27777 + ], + [ + -68.37229, + 47.2825 + ], + [ + -68.3703, + 47.34796 + ], + [ + -68.33173, + 47.35822 + ], + [ + -68.29664, + 47.352 + ], + [ + -68.2399, + 47.34897 + ], + [ + -68.0906, + 47.26798 + ], + [ + -68.00002, + 47.21223 + ], + [ + -67.96344, + 47.19753 + ], + [ + -67.93582, + 47.15947 + ], + [ + -67.88619, + 47.10424 + ], + [ + -67.80218, + 47.06386 + ], + [ + -67.79415, + 45.93923 + ], + [ + -67.82753, + 45.8489 + ], + [ + -67.82753, + 45.6704 + ], + [ + -67.54943, + 45.57445 + ], + [ + -67.45302, + 45.58742 + ], + [ + -67.44189, + 45.52251 + ], + [ + -67.54201, + 45.49393 + ], + [ + -67.4456, + 45.38726 + ], + [ + -67.51605, + 45.29343 + ], + [ + -67.38257, + 45.11839 + ], + [ + -67.3047, + 45.11316 + ], + [ + -67.26762, + 45.18116 + ], + [ + -67.12671, + 45.09484 + ], + [ + -66.94835, + 44.78406 + ], + [ + -66.52283, + 43.61294 + ], + [ + -65.02339, + 42.10691 + ], + [ + -42.53366, + 47.50263 + ], + [ + -75.90901, + 77.3176 + ], + [ + -71.86482, + 78.7359 + ], + [ + -67.20011, + 80.66812 + ], + [ + -66.20727, + 80.78637 + ], + [ + -54.82473, + 83.07464 + ], + [ + -57.62518, + 85.04043 + ], + [ + -106.7949, + 85.04625 + ], + [ + -141.3957, + 79.2514 + ], + [ + -141.0678, + 60.2442 + ] + ] + ] + }, + { + "id": "geoimage.at", + "name": "Geoimage.at MaxRes", + "type": "wms", + "template": "http://gis.lebensministerium.at/wmsgw/?key=4d80de696cd562a63ce463a58a61488d&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=Luftbild_MR,Luftbild_1m,Luftbild_8m,Satellitenbild_30m&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 16.5073284, + 46.9929304 + ], + [ + 16.283417, + 46.9929304 + ], + [ + 16.135839, + 46.8713046 + ], + [ + 15.9831722, + 46.8190947 + ], + [ + 16.0493278, + 46.655175 + ], + [ + 15.8610387, + 46.7180116 + ], + [ + 15.7592608, + 46.6900933 + ], + [ + 15.5607938, + 46.6796202 + ], + [ + 15.5760605, + 46.6342132 + ], + [ + 15.4793715, + 46.6027553 + ], + [ + 15.4335715, + 46.6516819 + ], + [ + 15.2249267, + 46.6342132 + ], + [ + 15.0468154, + 46.6481886 + ], + [ + 14.9908376, + 46.5887681 + ], + [ + 14.9603042, + 46.6237293 + ], + [ + 14.8534374, + 46.6027553 + ], + [ + 14.8330818, + 46.5012666 + ], + [ + 14.7516595, + 46.4977636 + ], + [ + 14.6804149, + 46.4381781 + ], + [ + 14.6142593, + 46.4381781 + ], + [ + 14.578637, + 46.3785275 + ], + [ + 14.4412369, + 46.4311638 + ], + [ + 14.1613476, + 46.4276563 + ], + [ + 14.1257253, + 46.4767409 + ], + [ + 14.0188585, + 46.4767409 + ], + [ + 13.9119917, + 46.5257813 + ], + [ + 13.8254805, + 46.5047694 + ], + [ + 13.4438134, + 46.560783 + ], + [ + 13.3064132, + 46.5502848 + ], + [ + 13.1283019, + 46.5887681 + ], + [ + 12.8433237, + 46.6132433 + ], + [ + 12.7262791, + 46.6412014 + ], + [ + 12.5125455, + 46.6656529 + ], + [ + 12.3598787, + 46.7040543 + ], + [ + 12.3649676, + 46.7703197 + ], + [ + 12.2886341, + 46.7772902 + ], + [ + 12.2733674, + 46.8852187 + ], + [ + 12.2072118, + 46.8747835 + ], + [ + 12.1308784, + 46.9026062 + ], + [ + 12.1156117, + 46.9998721 + ], + [ + 12.2530119, + 47.0657733 + ], + [ + 12.2123007, + 47.0934969 + ], + [ + 11.9833004, + 47.0449712 + ], + [ + 11.7339445, + 46.9616816 + ], + [ + 11.6321666, + 47.010283 + ], + [ + 11.5405665, + 46.9755722 + ], + [ + 11.4998553, + 47.0068129 + ], + [ + 11.418433, + 46.9651546 + ], + [ + 11.2555884, + 46.9755722 + ], + [ + 11.1130993, + 46.913036 + ], + [ + 11.0418548, + 46.7633482 + ], + [ + 10.8891879, + 46.7598621 + ], + [ + 10.7416099, + 46.7842599 + ], + [ + 10.7059877, + 46.8643462 + ], + [ + 10.5787653, + 46.8399847 + ], + [ + 10.4566318, + 46.8504267 + ], + [ + 10.4769874, + 46.9269392 + ], + [ + 10.3853873, + 46.9894592 + ], + [ + 10.2327204, + 46.8643462 + ], + [ + 10.1207647, + 46.8330223 + ], + [ + 9.8663199, + 46.9408389 + ], + [ + 9.9019422, + 47.0033426 + ], + [ + 9.6831197, + 47.0588402 + ], + [ + 9.6118752, + 47.0380354 + ], + [ + 9.6322307, + 47.128131 + ], + [ + 9.5813418, + 47.1662025 + ], + [ + 9.5406306, + 47.2664422 + ], + [ + 9.6067863, + 47.3492559 + ], + [ + 9.6729419, + 47.369939 + ], + [ + 9.6424085, + 47.4457079 + ], + [ + 9.5660751, + 47.4801122 + ], + [ + 9.7136531, + 47.5282405 + ], + [ + 9.7848976, + 47.5969187 + ], + [ + 9.8357866, + 47.5454185 + ], + [ + 9.9477423, + 47.538548 + ], + [ + 10.0902313, + 47.4491493 + ], + [ + 10.1105869, + 47.3664924 + ], + [ + 10.2428982, + 47.3871688 + ], + [ + 10.1869203, + 47.2698953 + ], + [ + 10.3243205, + 47.2975125 + ], + [ + 10.4820763, + 47.4491493 + ], + [ + 10.4311873, + 47.4869904 + ], + [ + 10.4413651, + 47.5900549 + ], + [ + 10.4871652, + 47.5522881 + ], + [ + 10.5482319, + 47.5351124 + ], + [ + 10.5991209, + 47.5660246 + ], + [ + 10.7568766, + 47.5316766 + ], + [ + 10.8891879, + 47.5454185 + ], + [ + 10.9400769, + 47.4869904 + ], + [ + 10.9960547, + 47.3906141 + ], + [ + 11.2352328, + 47.4422662 + ], + [ + 11.2810328, + 47.3975039 + ], + [ + 11.4235219, + 47.5144941 + ], + [ + 11.5761888, + 47.5076195 + ], + [ + 11.6067221, + 47.5900549 + ], + [ + 11.8357224, + 47.5866227 + ], + [ + 12.003656, + 47.6243647 + ], + [ + 12.2072118, + 47.6037815 + ], + [ + 12.1614117, + 47.6963421 + ], + [ + 12.2581008, + 47.7442718 + ], + [ + 12.2530119, + 47.6792136 + ], + [ + 12.4311232, + 47.7100408 + ], + [ + 12.4921899, + 47.631224 + ], + [ + 12.5685234, + 47.6277944 + ], + [ + 12.6295901, + 47.6894913 + ], + [ + 12.7720792, + 47.6689338 + ], + [ + 12.8331459, + 47.5419833 + ], + [ + 12.975635, + 47.4732332 + ], + [ + 13.0417906, + 47.4938677 + ], + [ + 13.0367017, + 47.5557226 + ], + [ + 13.0977685, + 47.6415112 + ], + [ + 13.0316128, + 47.7100408 + ], + [ + 12.9043905, + 47.7203125 + ], + [ + 13.0061684, + 47.84683 + ], + [ + 12.9451016, + 47.9355501 + ], + [ + 12.8636793, + 47.9594103 + ], + [ + 12.8636793, + 48.0036929 + ], + [ + 12.7517236, + 48.0989418 + ], + [ + 12.8738571, + 48.2109733 + ], + [ + 12.9603683, + 48.2109733 + ], + [ + 13.0417906, + 48.2652035 + ], + [ + 13.1842797, + 48.2990682 + ], + [ + 13.2606131, + 48.2922971 + ], + [ + 13.3980133, + 48.3565867 + ], + [ + 13.4438134, + 48.417418 + ], + [ + 13.4387245, + 48.5523383 + ], + [ + 13.509969, + 48.5860123 + ], + [ + 13.6117469, + 48.5725454 + ], + [ + 13.7287915, + 48.5118999 + ], + [ + 13.7847694, + 48.5725454 + ], + [ + 13.8203916, + 48.6263915 + ], + [ + 13.7949471, + 48.7171267 + ], + [ + 13.850925, + 48.7741724 + ], + [ + 14.0595697, + 48.6633774 + ], + [ + 14.0137696, + 48.6331182 + ], + [ + 14.0748364, + 48.5927444 + ], + [ + 14.2173255, + 48.5961101 + ], + [ + 14.3649034, + 48.5489696 + ], + [ + 14.4666813, + 48.6499311 + ], + [ + 14.5582815, + 48.5961101 + ], + [ + 14.5989926, + 48.6263915 + ], + [ + 14.7211261, + 48.5759124 + ], + [ + 14.7211261, + 48.6868997 + ], + [ + 14.822904, + 48.7271983 + ], + [ + 14.8178151, + 48.777526 + ], + [ + 14.9647227, + 48.7851754 + ], + [ + 14.9893637, + 49.0126611 + ], + [ + 15.1485933, + 48.9950306 + ], + [ + 15.1943934, + 48.9315502 + ], + [ + 15.3063491, + 48.9850128 + ], + [ + 15.3928603, + 48.9850128 + ], + [ + 15.4844604, + 48.9282069 + ], + [ + 15.749083, + 48.8545973 + ], + [ + 15.8406831, + 48.8880697 + ], + [ + 16.0086166, + 48.7808794 + ], + [ + 16.2070835, + 48.7339115 + ], + [ + 16.3953727, + 48.7372678 + ], + [ + 16.4920617, + 48.8110498 + ], + [ + 16.6905286, + 48.7741724 + ], + [ + 16.7057953, + 48.7339115 + ], + [ + 16.8991733, + 48.713769 + ], + [ + 16.9755067, + 48.515271 + ], + [ + 16.8482844, + 48.4511817 + ], + [ + 16.8533733, + 48.3464411 + ], + [ + 16.9551512, + 48.2516513 + ], + [ + 16.9907734, + 48.1498955 + ], + [ + 17.0925513, + 48.1397088 + ], + [ + 17.0823736, + 48.0241182 + ], + [ + 17.1739737, + 48.0207146 + ], + [ + 17.0823736, + 47.8741447 + ], + [ + 16.9856845, + 47.8673174 + ], + [ + 17.0823736, + 47.8092489 + ], + [ + 17.0925513, + 47.7031919 + ], + [ + 16.7414176, + 47.6792136 + ], + [ + 16.7057953, + 47.7511153 + ], + [ + 16.5378617, + 47.7545368 + ], + [ + 16.5480395, + 47.7066164 + ], + [ + 16.4208172, + 47.6689338 + ], + [ + 16.573484, + 47.6175045 + ], + [ + 16.670173, + 47.631224 + ], + [ + 16.7108842, + 47.538548 + ], + [ + 16.6599952, + 47.4491493 + ], + [ + 16.5429506, + 47.3940591 + ], + [ + 16.4615283, + 47.3940591 + ], + [ + 16.4920617, + 47.276801 + ], + [ + 16.425906, + 47.1973317 + ], + [ + 16.4717061, + 47.1489007 + ], + [ + 16.5480395, + 47.1489007 + ], + [ + 16.476795, + 47.0796369 + ], + [ + 16.527684, + 47.0588402 + ], + [ + 16.5073284, + 46.9929304 + ] + ] + ], + "terms_text": "geoimage.at", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QwTFA8gQvGHigAAAwtJREFUOMvtk19oW1Ucx7/nnntukpvGtF2btHG1o52bYxULOp99sYggiM7pVKbbQNCH+SYOFMHCHhR88g9jjPmgm32YMpGNTbpp1W5D7NyfJnYLTdNm3ZI0SZPc5N5zzz3n+CIiCtM9+KQf+D39+H74Pfy+wH8Ocqvlh4enyblMO7JpKHl/X080sbhcnH3r3eNXkR1XtyU8cHiS2Hakf+iuxJ7enq7n4x12ijFDtz3fW11tzBZL1YMnpjKfvrN3m/O3ws+OTRnxmP1gsrf7g2RizUbGLCtkGdSkBnigtPCFaLXc1ZvF8vfZXOG1HdvGcn/M0z8Ln9nx8vBAas0ngwN9dzPGmGlSCkIMrTQxQABCSDjE2B2xyJ2E0A0d/Q+cPP/tMb7v0Kwx+tBz5PcL9350mXZFVuzR4b73Nm3o326HQpYdNonWMEAIgdZQWmvP8yECpZptKetNtzqTLkz8UpBfKmJ1tJo1SgBgfP8V2mhVn2JYet0Osc09Xabp+DFdbpgkV7SQ6jbRdCXaHAgU4AsFj0sQAFGbgguNhsPRqiyeM/d/PkezS4WxRilzpLM5ga5EEu5qGJvXDZFDuXvA4sO4b30MXCi4XCLRGYZhaFQaEtTQ6I5bKNV8HJ3ML1cLM+Pm1fnCaNFZmLhRORkkUltIpl2mI/duxMW8Rk0N4okRG3OLDtb2RlB3AthhgXI9QLbgIp13QQ0CrQSEU57JnX3/OBnbfWBfpVIZjEb7DClb8WRv50jMDqesSNzwpU+UFAiZFIGmaHsKFjNAKNOub8LhkC6XbiD4wvXLR19dOH/wzF9+8McL6Uev31jJNlrc8Xjg+4GSvlBKSKXaLpfFUk3kl5bddOZa7dTk1PTT2194DED3LfqxlZz+7qc35uZvXitXHdf1ROALKX+boO353nKpXr2UyU9/deLMzn9aPfLNDz+/NLC2/0WDhgZNxnqYSUzOA0f4vMg9J33xytzHz2595Ivb6vKet48kHx/b8mQ40vFwNMKS9UbzQmWleHrXK29+XZs/1cD//Cv8CriEgFStQ2K4AAAAAElFTkSuQmCC" + }, + { + "id": "lu.geoportail.opendata.ortho_10cm_proto_lidar", + "name": "geoportail.lu LIDAR prototype Nordstad 2017", + "type": "tms", + "template": "http://{switch:wmts1,wmts2}.geoportail.lu/opendata/wmts/ortho_10cm_proto_lidar/GLOBAL_WEBMERCATOR_4_V3/{zoom}/{x}/{y}.jpeg", + "endDate": "2017-04-09T00:00:00.000Z", + "startDate": "2017-04-09T00:00:00.000Z", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 6.050007108761704, + 49.82175399016297 + ], + [ + 6.049789364226169, + 49.91165980309075 + ], + [ + 6.18901175543688, + 49.91171720394339 + ], + [ + 6.188971338193781, + 49.821811209128995 + ], + [ + 6.050007108761704, + 49.82175399016297 + ] + ] + ], + "terms_url": "https://act.public.lu/fr/cartographie/lidar/", + "terms_text": "Administration du Cadastre et de la Topographie", + "icon": "https://www.geoportail.lu/static/img/lion.png" + }, { "id": "Geoportal-PL-aerial_image", "name": "Geoportal.gov.pl (Orthophotomap)", @@ -20830,12 +42199,633 @@ "best": true, "icon": "http://i.imgur.com/aFlvMpM.png" }, + { + "id": "girau_do_pnciano", + "name": "Girau do Ponciano", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Girau%20do%20Ponciano&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.78012791818, + -9.92939325541 + ], + [ + -36.78086820787, + -9.83891760784 + ], + [ + -36.87233153527, + -9.83917131263 + ], + [ + -36.87173072046, + -9.90542386241 + ], + [ + -36.87036815828, + -9.92988995709 + ], + [ + -36.86155978387, + -9.92994279765 + ], + [ + -36.85565892404, + -9.92980541218 + ], + [ + -36.85146394914, + -9.92973143536 + ], + [ + -36.84574547952, + -9.92977370783 + ], + [ + -36.83213058656, + -9.92966802665 + ], + [ + -36.81455675309, + -9.92960461792 + ], + [ + -36.78012791818, + -9.92939325541 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "GrandNancy_Orthophotographie_2012", + "name": "GrandNancy - Orthophoto - 2012", + "type": "tms", + "template": "http://wms.openstreetmap.fr/tms/1.0.0/nancy_2012/{zoom}/{x}/{y}", + "endDate": "2012-01-01T00:00:00.000Z", + "startDate": "2012-01-01T00:00:00.000Z", + "scaleExtent": [ + 0, + 22 + ], + "polygon": [ + [ + [ + 6.06066031366, + 48.60554459242 + ], + [ + 6.29717112787, + 48.59922593248 + ], + [ + 6.30611158204, + 48.74076820528 + ], + [ + 6.06896018357, + 48.74710338225 + ], + [ + 6.06066031366, + 48.60554459242 + ] + ] + ], + "terms_url": "http://wiki.openstreetmap.org/wiki/Nancy/Orthophotographie", + "terms_text": "GrandNancy Orthophotographie 2012" + }, + { + "id": "graz.at-basemap", + "name": "Graz: Basiskarte (base map)", + "type": "wms", + "template": "http://geodaten1.graz.at/ArcGIS_Graz/services/Extern/BASISKARTE_WMS/MapServer/WMSServer?FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 15.3444649457389, + 47.0072927285598 + ], + [ + 15.3444649457389, + 47.143749958186 + ], + [ + 15.5442161820906, + 47.143749958186 + ], + [ + 15.5442161820906, + 47.0072927285598 + ], + [ + 15.3444649457389, + 47.0072927285598 + ] + ] + ], + "terms_text": "Stadt Graz – data.graz.gv.at", + "icon": "https://www.graz.at/cms/bilder/60222/80/0/0/2f67ae5c/graz-logo.gif" + }, + { + "id": "hamburg-40cm", + "name": "Hamburg (40 cm)", + "type": "wms", + "template": "http://geodienste.hamburg.de/HH_WMS_DOP40?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 8.4825961, + 53.9356013 + ], + [ + 8.4827386, + 53.9092447 + ], + [ + 8.5274957, + 53.9094126 + ], + [ + 8.5279233, + 53.9357691 + ], + [ + 8.4825961, + 53.9356013 + ] + ], + [ + [ + 9.7723167, + 53.543523 + ], + [ + 9.7743354, + 53.5543296 + ], + [ + 9.7631359, + 53.5552115 + ], + [ + 9.7304736, + 53.5578689 + ], + [ + 9.7346453, + 53.5653605 + ], + [ + 9.7579266, + 53.6182757 + ], + [ + 9.7712877, + 53.6313071 + ], + [ + 9.770699, + 53.6160708 + ], + [ + 9.7963361, + 53.6102995 + ], + [ + 9.7899342, + 53.6038562 + ], + [ + 9.8181678, + 53.5859147 + ], + [ + 9.8377278, + 53.5919808 + ], + [ + 9.8449827, + 53.5949795 + ], + [ + 9.8541578, + 53.5980542 + ], + [ + 9.8681371, + 53.6092959 + ], + [ + 9.8693051, + 53.6132263 + ], + [ + 9.885052, + 53.6219916 + ], + [ + 9.8869663, + 53.6252015 + ], + [ + 9.8935594, + 53.6302636 + ], + [ + 9.8963672, + 53.6312186 + ], + [ + 9.8968811, + 53.6349162 + ], + [ + 9.9067823, + 53.6523063 + ], + [ + 9.9311454, + 53.6526154 + ], + [ + 9.9455232, + 53.6527604 + ], + [ + 9.9502445, + 53.6508457 + ], + [ + 9.9515493, + 53.6506547 + ], + [ + 9.9779541, + 53.6488699 + ], + [ + 9.9849181, + 53.6482971 + ], + [ + 9.9873906, + 53.6507159 + ], + [ + 9.9995963, + 53.6815314 + ], + [ + 10.0228185, + 53.6815708 + ], + [ + 10.0433756, + 53.6819823 + ], + [ + 10.0514778, + 53.6775926 + ], + [ + 10.0692494, + 53.679547 + ], + [ + 10.0604009, + 53.6883344 + ], + [ + 10.0709998, + 53.6958498 + ], + [ + 10.0707046, + 53.7099642 + ], + [ + 10.0819849, + 53.7204444 + ], + [ + 10.1190792, + 53.7132448 + ], + [ + 10.1693902, + 53.7389576 + ], + [ + 10.1936896, + 53.7310028 + ], + [ + 10.1779029, + 53.7099228 + ], + [ + 10.1569421, + 53.7045133 + ], + [ + 10.1582858, + 53.6894414 + ], + [ + 10.1434248, + 53.6805732 + ], + [ + 10.1417595, + 53.6774354 + ], + [ + 10.144728, + 53.6761294 + ], + [ + 10.1464311, + 53.6758841 + ], + [ + 10.1495537, + 53.6754497 + ], + [ + 10.1715323, + 53.6686937 + ], + [ + 10.1988496, + 53.6467523 + ], + [ + 10.1897268, + 53.6383796 + ], + [ + 10.2220152, + 53.6334888 + ], + [ + 10.1888726, + 53.6131597 + ], + [ + 10.1923583, + 53.5947431 + ], + [ + 10.2011737, + 53.5839226 + ], + [ + 10.1516942, + 53.5761904 + ], + [ + 10.1506692, + 53.5697309 + ], + [ + 10.1479994, + 53.5639032 + ], + [ + 10.1530759, + 53.5624246 + ], + [ + 10.1594205, + 53.5609125 + ], + [ + 10.1518903, + 53.5416987 + ], + [ + 10.154649, + 53.5365725 + ], + [ + 10.1687379, + 53.5374002 + ], + [ + 10.1632659, + 53.5218549 + ], + [ + 10.1661094, + 53.5201314 + ], + [ + 10.169185, + 53.5196505 + ], + [ + 10.1895059, + 53.5114835 + ], + [ + 10.2104308, + 53.5199588 + ], + [ + 10.218276, + 53.4992345 + ], + [ + 10.2366988, + 53.4962928 + ], + [ + 10.2500849, + 53.4789784 + ], + [ + 10.2659161, + 53.4707878 + ], + [ + 10.2904343, + 53.4551223 + ], + [ + 10.3096151, + 53.4430928 + ], + [ + 10.3122326, + 53.4522908 + ], + [ + 10.3251401, + 53.4497898 + ], + [ + 10.3079865, + 53.4333199 + ], + [ + 10.2559794, + 53.4162256 + ], + [ + 10.2508909, + 53.4102422 + ], + [ + 10.2457816, + 53.402611 + ], + [ + 10.2415493, + 53.3979725 + ], + [ + 10.1655462, + 53.399327 + ], + [ + 10.1450604, + 53.416136 + ], + [ + 10.1094899, + 53.4264876 + ], + [ + 10.1067973, + 53.4265817 + ], + [ + 10.075805, + 53.4543638 + ], + [ + 10.0515477, + 53.4639369 + ], + [ + 10.0351698, + 53.446896 + ], + [ + 10.0144851, + 53.4420285 + ], + [ + 10.0229369, + 53.4322826 + ], + [ + 9.9975402, + 53.4254609 + ], + [ + 9.9824345, + 53.4147804 + ], + [ + 9.9787266, + 53.4142015 + ], + [ + 9.958105, + 53.4270802 + ], + [ + 9.9295317, + 53.4200676 + ], + [ + 9.92552, + 53.4192417 + ], + [ + 9.9066683, + 53.4159559 + ], + [ + 9.9230535, + 53.4363147 + ], + [ + 9.9170421, + 53.4466391 + ], + [ + 9.9043636, + 53.4570665 + ], + [ + 9.8949316, + 53.4558313 + ], + [ + 9.8688468, + 53.4446225 + ], + [ + 9.8621101, + 53.4294212 + ], + [ + 9.8487204, + 53.4411135 + ], + [ + 9.806634, + 53.4664838 + ], + [ + 9.8002119, + 53.4737243 + ], + [ + 9.8028025, + 53.4938287 + ], + [ + 9.7820338, + 53.4923568 + ], + [ + 9.7688507, + 53.5053032 + ], + [ + 9.7710683, + 53.5218512 + ], + [ + 9.7810509, + 53.5183751 + ], + [ + 9.773523, + 53.527956 + ], + [ + 9.7723167, + 53.543523 + ] + ] + ] + }, { "id": "Hampshire-Aerial-FCIR", "name": "Hampshire Aerial FCIR", "type": "tms", "template": "https://{switch:a,b,c}.hampshire.aerial.openstreetmap.org.uk/layer/gb_hampshire_aerial_fcir/{zoom}/{x}/{y}.png", - "endDate": "2013-01-01T00:00:00.000Z", + "endDate": "2014-01-01T00:00:00.000Z", "startDate": "2013-01-01T00:00:00.000Z", "scaleExtent": [ 8, @@ -23590,6 +45580,6376 @@ ] ] }, + { + "id": "IBGE_BC250_Aglomerado_Rural", + "name": "IBGE-BC250-Aglomerado Rural Isolado", + "type": "wms", + "template": "http://www.geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Aglomerado_Rural_Isolado_P&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Pista_Pouso", + "name": "IBGE-BC250-Pista de Pouso", + "type": "wms", + "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Pista_Ponto_Pouso_L&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Rios_Drenagem", + "name": "IBGE-BC250-Rios Drenagem", + "type": "wms", + "template": "http://www.geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Trecho_Drenagem_L&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Terra_Indegina", + "name": "IBGE-BC250-Terra Indigena", + "type": "wms", + "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Terra_Indigena_A&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Terra_Publico_Militar", + "name": "IBGE-BC250-Terra Publico (Militar)", + "type": "wms", + "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Terra_Publica_A&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Rodoviario", + "name": "IBGE-BC250-Trecho Rodoviario", + "type": "wms", + "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Trecho_Rodoviario_L&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image/png&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Uso_Sustentavel", + "name": "IBGE-BC250-Unidade de Uso Sistentável - APA", + "type": "wms", + "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Unidade_Uso_Sustentavel_A&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BC250_Villa", + "name": "IBGE-BC250-Villa", + "type": "wms", + "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Vila_P&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BCIM_Gerador_Eletrica", + "name": "IBGE-BCIM-Estações Geradora de Energia Elétrica", + "type": "wms", + "template": "http://www.geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BCIM_Est_Gerad_Energia_Eletrica_P&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, + { + "id": "IBGE_BCIM_Municipio", + "name": "IBGE-BCIM-Município", + "type": "wms", + "template": "http://www.geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BCIM_Municipio_A&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -29.3325, + 2.335959 + ], + [ + -28.72472, + 2.031551 + ], + [ + -27.76041, + -8.937033 + ], + [ + -27.67249, + -22.20839 + ], + [ + -51.11495, + -35.46552 + ], + [ + -53.39394, + -33.85064 + ], + [ + -53.62553, + -33.72493 + ], + [ + -53.62503, + -33.15428 + ], + [ + -53.24498, + -32.73392 + ], + [ + -53.65747, + -32.51873 + ], + [ + -53.8329, + -32.16592 + ], + [ + -54.64174, + -31.55507 + ], + [ + -55.29638, + -31.3429 + ], + [ + -55.57371, + -30.99691 + ], + [ + -56.06384, + -31.16749 + ], + [ + -56.10468, + -30.86436 + ], + [ + -56.86862, + -30.20752 + ], + [ + -57.39671, + -30.40464 + ], + [ + -57.74384, + -30.22142 + ], + [ + -55.83724, + -28.16598 + ], + [ + -54.86969, + -27.44994 + ], + [ + -53.9016, + -27.02998 + ], + [ + -53.74972, + -26.25781 + ], + [ + -53.97158, + -25.74513 + ], + [ + -54.44723, + -25.79609 + ], + [ + -54.67802, + -25.64668 + ], + [ + -54.36097, + -24.35145 + ], + [ + -54.41679, + -24.06527 + ], + [ + -54.64355, + -23.94107 + ], + [ + -55.22163, + -24.11355 + ], + [ + -55.49138, + -24.02797 + ], + [ + -55.71734, + -22.68488 + ], + [ + -55.90555, + -22.39886 + ], + [ + -56.45255, + -22.21731 + ], + [ + -56.8256, + -22.4002 + ], + [ + -57.34109, + -22.34351 + ], + [ + -58.08472, + -22.13075 + ], + [ + -57.95766, + -20.99818 + ], + [ + -58.26551, + -20.24147 + ], + [ + -58.03577, + -19.95871 + ], + [ + -58.23083, + -19.75211 + ], + [ + -57.64739, + -18.19828 + ], + [ + -57.89356, + -17.57377 + ], + [ + -58.16997, + -17.53519 + ], + [ + -58.48825, + -17.21961 + ], + [ + -58.57691, + -16.81466 + ], + [ + -58.45563, + -16.42158 + ], + [ + -60.2541, + -16.32571 + ], + [ + -60.33481, + -15.51483 + ], + [ + -60.67423, + -15.1122 + ], + [ + -60.34999, + -14.99707 + ], + [ + -60.63603, + -13.84119 + ], + [ + -61.07283, + -13.62569 + ], + [ + -61.9025, + -13.62647 + ], + [ + -62.21395, + -13.25048 + ], + [ + -62.80185, + -13.10905 + ], + [ + -63.17194, + -12.76568 + ], + [ + -63.74229, + -12.54071 + ], + [ + -64.32845, + -12.59578 + ], + [ + -65.10261, + -12.0682 + ], + [ + -65.45781, + -11.27865 + ], + [ + -65.41641, + -9.838943 + ], + [ + -66.52331, + -9.985873 + ], + [ + -67.66452, + -10.80093 + ], + [ + -67.99778, + -10.75991 + ], + [ + -68.52286, + -11.20807 + ], + [ + -69.88988, + -11.02776 + ], + [ + -70.30957, + -11.1699 + ], + [ + -70.71896, + -11.02003 + ], + [ + -70.68128, + -9.669083 + ], + [ + -71.27536, + -10.08971 + ], + [ + -72.18053, + -10.09967 + ], + [ + -72.41623, + -9.587397 + ], + [ + -73.29207, + -9.454149 + ], + [ + -73.0625, + -9.017267 + ], + [ + -73.61432, + -8.40982 + ], + [ + -74.09056, + -7.527548 + ], + [ + -74.03652, + -7.27885 + ], + [ + -73.84718, + -7.238285 + ], + [ + -73.78618, + -6.774872 + ], + [ + -73.22362, + -6.430106 + ], + [ + -73.33719, + -6.029736 + ], + [ + -72.93016, + -5.038711 + ], + [ + -71.93973, + -4.425027 + ], + [ + -70.96802, + -4.248294 + ], + [ + -70.79598, + -4.064931 + ], + [ + -70.02393, + -4.167345 + ], + [ + -69.51025, + -1.134089 + ], + [ + -69.70776, + -0.567619 + ], + [ + -70.13645, + -0.226161 + ], + [ + -70.14083, + 0.5844 + ], + [ + -69.26594, + 0.806502 + ], + [ + -69.34226, + 0.968924 + ], + [ + -69.92481, + 1.015705 + ], + [ + -69.92343, + 1.773851 + ], + [ + -68.38511, + 1.82943 + ], + [ + -68.24848, + 2.119808 + ], + [ + -67.94571, + 1.948424 + ], + [ + -67.37696, + 2.327468 + ], + [ + -67.05751, + 1.858336 + ], + [ + -67.00579, + 1.291603 + ], + [ + -66.79967, + 1.314684 + ], + [ + -66.28683, + 0.857709 + ], + [ + -65.67671, + 1.111146 + ], + [ + -65.42494, + 0.966549 + ], + [ + -65.15671, + 1.24203 + ], + [ + -64.27483, + 1.601591 + ], + [ + -64.0486, + 2.065137 + ], + [ + -63.47236, + 2.279358 + ], + [ + -64.13446, + 2.433909 + ], + [ + -64.10005, + 2.723778 + ], + [ + -64.32628, + 3.118275 + ], + [ + -64.28142, + 3.541983 + ], + [ + -64.88451, + 4.117671 + ], + [ + -64.88064, + 4.342461 + ], + [ + -64.13653, + 4.223152 + ], + [ + -63.95465, + 4.021316 + ], + [ + -63.17706, + 4.048301 + ], + [ + -62.96093, + 3.763658 + ], + [ + -62.82024, + 4.106019 + ], + [ + -62.49922, + 4.270815 + ], + [ + -61.91181, + 4.26284 + ], + [ + -61.35393, + 4.630097 + ], + [ + -61.04904, + 4.623115 + ], + [ + -60.70452, + 4.969851 + ], + [ + -60.78709, + 5.296764 + ], + [ + -60.22457, + 5.371207 + ], + [ + -59.89857, + 5.107541 + ], + [ + -59.97549, + 4.603025 + ], + [ + -59.59676, + 4.439875 + ], + [ + -59.41942, + 3.96994 + ], + [ + -59.71017, + 3.542008 + ], + [ + -59.88955, + 2.72301 + ], + [ + -59.63006, + 2.316332 + ], + [ + -59.63382, + 1.966581 + ], + [ + -59.18812, + 1.478079 + ], + [ + -58.80545, + 1.320732 + ], + [ + -58.35933, + 1.689932 + ], + [ + -57.6, + 1.803907 + ], + [ + -57.39854, + 2.065119 + ], + [ + -57.12392, + 2.128758 + ], + [ + -56.02925, + 1.949445 + ], + [ + -56.23884, + 2.263348 + ], + [ + -55.98195, + 2.628657 + ], + [ + -55.64816, + 2.519953 + ], + [ + -54.93958, + 2.682515 + ], + [ + -54.24988, + 2.25056 + ], + [ + -53.73937, + 2.473731 + ], + [ + -52.98578, + 2.280494 + ], + [ + -52.65712, + 2.564069 + ], + [ + -52.41739, + 3.22121 + ], + [ + -51.73983, + 4.119158 + ], + [ + -51.7246, + 4.556867 + ], + [ + -51.0112, + 5.522895 + ], + [ + -43.48209, + 5.335832 + ], + [ + -29.3325, + 2.335959 + ] + ] + ], + "terms_text": "IBGE", + "overlay": true + }, { "id": "Haiti-Drone", "name": "Imagerie Drone (Haiti)", @@ -28213,7 +56573,7 @@ }, { "id": "osmim-imagicode-S2A_R042_S78_20170214T202521", - "name": "imagico.de: McMurdo Sound and Dry Valleys ", + "name": "imagico.de: McMurdo Sound and Dry Valleys", "type": "tms", "template": "http://imagico.de/map/osmim_tiles.php?layer=S2A_R042_S78_20170214T202521&z={zoom}&x={x}&y={-y}", "endDate": "2017-02-14T00:00:00.000Z", @@ -30586,7 +58946,7 @@ ], "terms_url": "http://geo.nls.uk/maps/", "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" + "icon": "data:image/png;base64,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" }, { "id": "GSGS3906", @@ -30860,7 +59220,7 @@ ], "terms_url": "http://geo.nls.uk/maps/", "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" + "icon": "data:image/png;base64,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" }, { "id": "gsi.go.jp", @@ -34659,6 +63019,290 @@ "best": true, "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEX///+LKCbMAABycnL+/v7v7+9sbGz39/fz8/Pw8PD8/Pz60siYAAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIGAsXN84mS+sAAAA4SURBVAjXY2AUBAMBBkYlMCCXwcwABgZYGCwGIJo5AMQGAjYgLgYxLICY05iBwRisjsvY2IGBAQAGpQmjMKkg/wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wOC0yNFQxMToyMzo1NS0wNDowMLEFqzIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMDgtMjRUMTE6MjM6NTUtMDQ6MDDAWBOOAAAAAElFTkSuQmCC" }, + { + "id": "KTTHURGAU2017", + "name": "Kanton Thurgau OF 2017", + "type": "tms", + "template": "http://mapproxy.osm.ch:8080/tiles/KTTHURGAU2017/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "scaleExtent": [ + 8, + 21 + ], + "polygon": [ + [ + [ + 8.63768410076, + 47.7004145356 + ], + [ + 8.78327839646, + 47.69879895418 + ], + [ + 8.78303977274, + 47.68533252804 + ], + [ + 8.87027412213, + 47.68426691888 + ], + [ + 8.8699714813, + 47.67089514045 + ], + [ + 8.89900814897, + 47.67047199109 + ], + [ + 8.89866777324, + 47.65698230742 + ], + [ + 8.92770444091, + 47.65661195321 + ], + [ + 8.92828046137, + 47.67015462681 + ], + [ + 8.95726476355, + 47.66973147144 + ], + [ + 8.95773605301, + 47.68327074156 + ], + [ + 9.19060541482, + 47.6799391377 + ], + [ + 9.1902650391, + 47.66645190099 + ], + [ + 9.21922315852, + 47.6660287156 + ], + [ + 9.21898751379, + 47.65255552096 + ], + [ + 9.24784090222, + 47.65209694793 + ], + [ + 9.24747434375, + 47.63863780005 + ], + [ + 9.30570477557, + 47.63764983607 + ], + [ + 9.30525966885, + 47.62420461255 + ], + [ + 9.33416542278, + 47.62371049645 + ], + [ + 9.33348467133, + 47.59673879302 + ], + [ + 9.39150564117, + 47.59576769355 + ], + [ + 9.3911390827, + 47.58234701941 + ], + [ + 9.42007101938, + 47.58176420165 + ], + [ + 9.41860478548, + 47.54139270755 + ], + [ + 9.44753672216, + 47.5408447841 + ], + [ + 9.44717016368, + 47.52730395336 + ], + [ + 9.47604973486, + 47.52680892203 + ], + [ + 9.47518570418, + 47.49985802607 + ], + [ + 9.5041438236, + 47.49934504674 + ], + [ + 9.50309651368, + 47.47241544181 + ], + [ + 9.41596032792, + 47.47391975877 + ], + [ + 9.41554140395, + 47.46045016443 + ], + [ + 9.35759898235, + 47.4614060707 + ], + [ + 9.35817500281, + 47.47498160364 + ], + [ + 9.32895505591, + 47.47533554716 + ], + [ + 9.32864086293, + 47.46188401733 + ], + [ + 9.18361462107, + 47.46420288184 + ], + [ + 9.18411209329, + 47.47768921094 + ], + [ + 9.15491832913, + 47.47809622481 + ], + [ + 9.15465650165, + 47.4646277009 + ], + [ + 9.0673632194, + 47.46583133624 + ], + [ + 9.06717994017, + 47.45234196418 + ], + [ + 9.0960856941, + 47.45193475084 + ], + [ + 9.09582386661, + 47.43853036098 + ], + [ + 9.06663010246, + 47.43883142176 + ], + [ + 9.06642064047, + 47.42537055101 + ], + [ + 9.00829493964, + 47.42620309948 + ], + [ + 9.00714289872, + 47.385729558 + ], + [ + 8.97810623105, + 47.38615501083 + ], + [ + 8.97739929685, + 47.3591319418 + ], + [ + 8.91940450976, + 47.35989459356 + ], + [ + 8.92032090594, + 47.38697045248 + ], + [ + 8.89136278652, + 47.38725408141 + ], + [ + 8.89285520316, + 47.44116901155 + ], + [ + 8.86397563198, + 47.44148776574 + ], + [ + 8.86604406908, + 47.52251256102 + ], + [ + 8.80783982, + 47.52316676216 + ], + [ + 8.80893949543, + 47.56372896753 + ], + [ + 8.77985046226, + 47.56402931121 + ], + [ + 8.78024320348, + 47.57750766919 + ], + [ + 8.7220913199, + 47.57814352175 + ], + [ + 8.72337427456, + 47.63212747913 + ], + [ + 8.66519620823, + 47.63272738003 + ], + [ + 8.66579841143, + 47.65980396746 + ], + [ + 8.63673556102, + 47.65999795099 + ], + [ + 8.63768410076, + 47.7004145356 + ] + ] + ], + "terms_text": "Kanton Thurgau OF 2017", + "best": true + }, { "id": "KTZUERICH2015", "name": "Kanton Zürich 2015 10cm", @@ -36029,6 +64673,14 @@ ], "overlay": true }, + { + "id": "landsat", + "name": "Landsat", + "type": "wms", + "template": "http://irs.gis-lab.info/?layers=landsat&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUTPmdaXSdnXUmdcyo9AbYLAAAAFklEQVQI12NYtYqBgYEI4v//0FAiCAA8TB/hMzHkwAAAAABJRU5ErkJggg==" + }, { "id": "landsat_233055", "name": "Landsat 233055", @@ -38141,6 +66793,364 @@ "description": "Shows major features to help orient you.", "overlay": true }, + { + "id": "Loire_Atlantique-Orthophotos-2012", + "name": "Loire-Atlantique - Orthophotos 2012 - 20 cm", + "type": "tms", + "template": "http://{switch:a,b,c,d,e,f,g,h}.tiles.cg44.makina-corpus.net/ortho-2012/{zoom}/{x}/{-y}.jpg", + "endDate": "2012-01-01T00:00:00.000Z", + "startDate": "2012-01-01T00:00:00.000Z", + "scaleExtent": [ + 0, + 19 + ], + "polygon": [ + [ + [ + -1.4863838, + 46.8769078 + ], + [ + -1.5443674, + 46.8487272 + ], + [ + -1.7346797, + 46.8724645 + ], + [ + -1.8927568, + 46.9423436 + ], + [ + -1.9547478, + 46.980844 + ], + [ + -2.070671, + 47.0852054 + ], + [ + -2.2678023, + 47.1265555 + ], + [ + -2.2262684, + 47.1712448 + ], + [ + -2.1921733, + 47.1691377 + ], + [ + -2.1934131, + 47.2554621 + ], + [ + -2.2969381, + 47.2276852 + ], + [ + -2.4165807, + 47.2533583 + ], + [ + -2.5486216, + 47.2857476 + ], + [ + -2.6391284, + 47.4167844 + ], + [ + -2.5057256, + 47.5081195 + ], + [ + -2.3106273, + 47.5302088 + ], + [ + -2.2483636, + 47.5238409 + ], + [ + -2.2322311, + 47.5149928 + ], + [ + -2.1210893, + 47.5467415 + ], + [ + -2.117832, + 47.6012606 + ], + [ + -2.1001019, + 47.6112276 + ], + [ + -2.099813, + 47.6200473 + ], + [ + -2.1114061, + 47.6287298 + ], + [ + -2.1005485, + 47.6514139 + ], + [ + -2.0812094, + 47.6657768 + ], + [ + -1.9801641, + 47.7075082 + ], + [ + -1.8307658, + 47.7241914 + ], + [ + -1.6745485, + 47.7254424 + ], + [ + -1.6373539, + 47.7746256 + ], + [ + -1.4960144, + 47.8175187 + ], + [ + -1.499114, + 47.8416565 + ], + [ + -1.3813311, + 47.8441529 + ], + [ + -1.3459962, + 47.810858 + ], + [ + -1.230073, + 47.7858729 + ], + [ + -1.216435, + 47.7583753 + ], + [ + -1.2263536, + 47.7362834 + ], + [ + -1.2108558, + 47.7316971 + ], + [ + -1.1866793, + 47.7346157 + ], + [ + -1.1519644, + 47.6933233 + ], + [ + -1.1315073, + 47.6365449 + ], + [ + -1.0912132, + 47.6332031 + ], + [ + -0.9926475, + 47.6026991 + ], + [ + -0.9845887, + 47.585977 + ], + [ + -1.0317018, + 47.5500064 + ], + [ + -1.1358467, + 47.5562822 + ], + [ + -1.1327472, + 47.5161046 + ], + [ + -1.0317018, + 47.5177793 + ], + [ + -0.9486339, + 47.5010301 + ], + [ + -0.9368556, + 47.4771532 + ], + [ + -0.9337561, + 47.4385923 + ], + [ + -0.9009008, + 47.3987442 + ], + [ + -0.926937, + 47.3748209 + ], + [ + -0.9715706, + 47.358446 + ], + [ + -1.2833853, + 47.3273618 + ], + [ + -1.2337925, + 47.2609316 + ], + [ + -1.2003173, + 47.2693451 + ], + [ + -1.1649825, + 47.2495712 + ], + [ + -1.1414259, + 47.1763017 + ], + [ + -1.1563037, + 47.1581792 + ], + [ + -1.2065164, + 47.1240248 + ], + [ + -1.2083762, + 47.1096818 + ], + [ + -1.1556838, + 47.1050406 + ], + [ + -1.140806, + 47.0805621 + ], + [ + -1.0943127, + 47.0716964 + ], + [ + -1.0998919, + 47.0319939 + ], + [ + -1.1445254, + 47.0163582 + ], + [ + -1.2158151, + 47.0290362 + ], + [ + -1.2672676, + 47.0632516 + ], + [ + -1.285245, + 47.0218524 + ], + [ + -1.3497157, + 47.0239654 + ], + [ + -1.3391772, + 46.9690007 + ], + [ + -1.3490957, + 46.9444597 + ], + [ + -1.4501411, + 46.9118621 + ], + [ + -1.4750393, + 46.9176026 + ], + [ + -1.4877512, + 46.9306253 + ], + [ + -1.4923538, + 46.9843293 + ], + [ + -1.4864362, + 46.9994285 + ], + [ + -1.4921346, + 47.0272238 + ], + [ + -1.5276404, + 47.0054072 + ], + [ + -1.5296129, + 46.9725161 + ], + [ + -1.5050657, + 46.944393 + ], + [ + -1.5022165, + 46.9297273 + ], + [ + -1.5114217, + 46.9137101 + ], + [ + -1.486217, + 46.8972388 + ], + [ + -1.4863838, + 46.8769078 + ] + ] + ], + "terms_url": "http://data.loire-atlantique.fr/licence/", + "terms_text": "Département de Loire-Atlantique" + }, { "id": "londrina2011", "name": "Londrina Ortofoto 2011", @@ -39303,6 +68313,1038 @@ "terms_url": "http://siglon.londrina.pr.gov.br/", "terms_text": "Prefeitura do Londrinas, PR" }, + { + "id": "LPI_NSW_Administrative_Boundaries_County", + "name": "LPI NSW Administrative Boundaries County", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=County&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 159.0033934, + -31.4876656 + ], + [ + 159.0378887, + -31.7055793 + ], + [ + 159.3109766, + -31.8595241 + ], + [ + 159.3727807, + -31.7789183 + ], + [ + 159.1744327, + -31.4373999 + ], + [ + 159.0033934, + -31.4876656 + ] + ], + [ + [ + 140.998648, + -28.9989332 + ], + [ + 148.9451961, + -28.9948656 + ], + [ + 149.4856226, + -28.5615019 + ], + [ + 150.2991369, + -28.5337256 + ], + [ + 151.0954036, + -28.7179218 + ], + [ + 151.3943629, + -28.9797786 + ], + [ + 151.9894069, + -28.7355674 + ], + [ + 151.9290401, + -28.4983634 + ], + [ + 152.4924635, + -28.2353023 + ], + [ + 153.5790657, + -28.1415563 + ], + [ + 153.6969246, + -28.6498321 + ], + [ + 153.2584694, + -30.9735401 + ], + [ + 152.7543708, + -32.508492 + ], + [ + 151.9087862, + -33.0553457 + ], + [ + 151.2583364, + -34.3808144 + ], + [ + 151.0144178, + -35.1156752 + ], + [ + 150.4615355, + -36.1202975 + ], + [ + 150.4127518, + -36.6178579 + ], + [ + 149.9784687, + -37.5069984 + ], + [ + 148.2013511, + -36.805656 + ], + [ + 148.0791803, + -36.8171632 + ], + [ + 147.8854228, + -36.0901856 + ], + [ + 147.6902879, + -36.0441802 + ], + [ + 146.828442, + -36.188678 + ], + [ + 145.2348401, + -35.9849909 + ], + [ + 144.8445703, + -36.2149218 + ], + [ + 144.5193454, + -36.1295974 + ], + [ + 143.2021846, + -35.1317425 + ], + [ + 142.4785593, + -34.811943 + ], + [ + 140.9937045, + -34.070169 + ], + [ + 141.0025961, + -34.0197399 + ], + [ + 140.998648, + -28.9989332 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, + { + "id": "LPI_NSW_Administrative_Boundaries_LGA", + "name": "LPI NSW Administrative Boundaries LGA", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=LocalGovernmentArea&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 159.0033934, + -31.4876656 + ], + [ + 159.0378887, + -31.7055793 + ], + [ + 159.3109766, + -31.8595241 + ], + [ + 159.3727807, + -31.7789183 + ], + [ + 159.1744327, + -31.4373999 + ], + [ + 159.0033934, + -31.4876656 + ] + ], + [ + [ + 140.998648, + -28.9989332 + ], + [ + 148.9451961, + -28.9948656 + ], + [ + 149.4856226, + -28.5615019 + ], + [ + 150.2991369, + -28.5337256 + ], + [ + 151.0954036, + -28.7179218 + ], + [ + 151.3943629, + -28.9797786 + ], + [ + 151.9894069, + -28.7355674 + ], + [ + 151.9290401, + -28.4983634 + ], + [ + 152.4924635, + -28.2353023 + ], + [ + 153.5790657, + -28.1415563 + ], + [ + 153.6969246, + -28.6498321 + ], + [ + 153.2584694, + -30.9735401 + ], + [ + 152.7543708, + -32.508492 + ], + [ + 151.9087862, + -33.0553457 + ], + [ + 151.2583364, + -34.3808144 + ], + [ + 151.0144178, + -35.1156752 + ], + [ + 150.4615355, + -36.1202975 + ], + [ + 150.4127518, + -36.6178579 + ], + [ + 149.9784687, + -37.5069984 + ], + [ + 148.2013511, + -36.805656 + ], + [ + 148.0791803, + -36.8171632 + ], + [ + 147.8854228, + -36.0901856 + ], + [ + 147.6902879, + -36.0441802 + ], + [ + 146.828442, + -36.188678 + ], + [ + 145.2348401, + -35.9849909 + ], + [ + 144.8445703, + -36.2149218 + ], + [ + 144.5193454, + -36.1295974 + ], + [ + 143.2021846, + -35.1317425 + ], + [ + 142.4785593, + -34.811943 + ], + [ + 140.9937045, + -34.070169 + ], + [ + 141.0025961, + -34.0197399 + ], + [ + 140.998648, + -28.9989332 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, + { + "id": "LPI_NSW_Administrative_Boundaries_NPWS_Reserve", + "name": "LPI NSW Administrative Boundaries NPWS Reserve", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=NPWSReserve&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 159.0033934, + -31.4876656 + ], + [ + 159.0378887, + -31.7055793 + ], + [ + 159.3109766, + -31.8595241 + ], + [ + 159.3727807, + -31.7789183 + ], + [ + 159.1744327, + -31.4373999 + ], + [ + 159.0033934, + -31.4876656 + ] + ], + [ + [ + 140.998648, + -28.9989332 + ], + [ + 148.9451961, + -28.9948656 + ], + [ + 149.4856226, + -28.5615019 + ], + [ + 150.2991369, + -28.5337256 + ], + [ + 151.0954036, + -28.7179218 + ], + [ + 151.3943629, + -28.9797786 + ], + [ + 151.9894069, + -28.7355674 + ], + [ + 151.9290401, + -28.4983634 + ], + [ + 152.4924635, + -28.2353023 + ], + [ + 153.5790657, + -28.1415563 + ], + [ + 153.6969246, + -28.6498321 + ], + [ + 153.2584694, + -30.9735401 + ], + [ + 152.7543708, + -32.508492 + ], + [ + 151.9087862, + -33.0553457 + ], + [ + 151.2583364, + -34.3808144 + ], + [ + 151.0144178, + -35.1156752 + ], + [ + 150.4615355, + -36.1202975 + ], + [ + 150.4127518, + -36.6178579 + ], + [ + 149.9784687, + -37.5069984 + ], + [ + 148.2013511, + -36.805656 + ], + [ + 148.0791803, + -36.8171632 + ], + [ + 147.8854228, + -36.0901856 + ], + [ + 147.6902879, + -36.0441802 + ], + [ + 146.828442, + -36.188678 + ], + [ + 145.2348401, + -35.9849909 + ], + [ + 144.8445703, + -36.2149218 + ], + [ + 144.5193454, + -36.1295974 + ], + [ + 143.2021846, + -35.1317425 + ], + [ + 142.4785593, + -34.811943 + ], + [ + 140.9937045, + -34.070169 + ], + [ + 141.0025961, + -34.0197399 + ], + [ + 140.998648, + -28.9989332 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, + { + "id": "LPI_NSW_Administrative_Boundaries_Parish", + "name": "LPI NSW Administrative Boundaries Parish", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=Parish&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 159.0033934, + -31.4876656 + ], + [ + 159.0378887, + -31.7055793 + ], + [ + 159.3109766, + -31.8595241 + ], + [ + 159.3727807, + -31.7789183 + ], + [ + 159.1744327, + -31.4373999 + ], + [ + 159.0033934, + -31.4876656 + ] + ], + [ + [ + 140.998648, + -28.9989332 + ], + [ + 148.9451961, + -28.9948656 + ], + [ + 149.4856226, + -28.5615019 + ], + [ + 150.2991369, + -28.5337256 + ], + [ + 151.0954036, + -28.7179218 + ], + [ + 151.3943629, + -28.9797786 + ], + [ + 151.9894069, + -28.7355674 + ], + [ + 151.9290401, + -28.4983634 + ], + [ + 152.4924635, + -28.2353023 + ], + [ + 153.5790657, + -28.1415563 + ], + [ + 153.6969246, + -28.6498321 + ], + [ + 153.2584694, + -30.9735401 + ], + [ + 152.7543708, + -32.508492 + ], + [ + 151.9087862, + -33.0553457 + ], + [ + 151.2583364, + -34.3808144 + ], + [ + 151.0144178, + -35.1156752 + ], + [ + 150.4615355, + -36.1202975 + ], + [ + 150.4127518, + -36.6178579 + ], + [ + 149.9784687, + -37.5069984 + ], + [ + 148.2013511, + -36.805656 + ], + [ + 148.0791803, + -36.8171632 + ], + [ + 147.8854228, + -36.0901856 + ], + [ + 147.6902879, + -36.0441802 + ], + [ + 146.828442, + -36.188678 + ], + [ + 145.2348401, + -35.9849909 + ], + [ + 144.8445703, + -36.2149218 + ], + [ + 144.5193454, + -36.1295974 + ], + [ + 143.2021846, + -35.1317425 + ], + [ + 142.4785593, + -34.811943 + ], + [ + 140.9937045, + -34.070169 + ], + [ + 141.0025961, + -34.0197399 + ], + [ + 140.998648, + -28.9989332 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, + { + "id": "LPI_NSW_Administrative_Boundaries_StateForest", + "name": "LPI NSW Administrative Boundaries State Forest", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=StateForest&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 159.0033934, + -31.4876656 + ], + [ + 159.0378887, + -31.7055793 + ], + [ + 159.3109766, + -31.8595241 + ], + [ + 159.3727807, + -31.7789183 + ], + [ + 159.1744327, + -31.4373999 + ], + [ + 159.0033934, + -31.4876656 + ] + ], + [ + [ + 140.998648, + -28.9989332 + ], + [ + 148.9451961, + -28.9948656 + ], + [ + 149.4856226, + -28.5615019 + ], + [ + 150.2991369, + -28.5337256 + ], + [ + 151.0954036, + -28.7179218 + ], + [ + 151.3943629, + -28.9797786 + ], + [ + 151.9894069, + -28.7355674 + ], + [ + 151.9290401, + -28.4983634 + ], + [ + 152.4924635, + -28.2353023 + ], + [ + 153.5790657, + -28.1415563 + ], + [ + 153.6969246, + -28.6498321 + ], + [ + 153.2584694, + -30.9735401 + ], + [ + 152.7543708, + -32.508492 + ], + [ + 151.9087862, + -33.0553457 + ], + [ + 151.2583364, + -34.3808144 + ], + [ + 151.0144178, + -35.1156752 + ], + [ + 150.4615355, + -36.1202975 + ], + [ + 150.4127518, + -36.6178579 + ], + [ + 149.9784687, + -37.5069984 + ], + [ + 148.2013511, + -36.805656 + ], + [ + 148.0791803, + -36.8171632 + ], + [ + 147.8854228, + -36.0901856 + ], + [ + 147.6902879, + -36.0441802 + ], + [ + 146.828442, + -36.188678 + ], + [ + 145.2348401, + -35.9849909 + ], + [ + 144.8445703, + -36.2149218 + ], + [ + 144.5193454, + -36.1295974 + ], + [ + 143.2021846, + -35.1317425 + ], + [ + 142.4785593, + -34.811943 + ], + [ + 140.9937045, + -34.070169 + ], + [ + 141.0025961, + -34.0197399 + ], + [ + 140.998648, + -28.9989332 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, + { + "id": "LPI_NSW_Administrative_Boundaries_Suburb", + "name": "LPI NSW Administrative Boundaries Suburb", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=Suburb&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 159.0033934, + -31.4876656 + ], + [ + 159.0378887, + -31.7055793 + ], + [ + 159.3109766, + -31.8595241 + ], + [ + 159.3727807, + -31.7789183 + ], + [ + 159.1744327, + -31.4373999 + ], + [ + 159.0033934, + -31.4876656 + ] + ], + [ + [ + 140.998648, + -28.9989332 + ], + [ + 148.9451961, + -28.9948656 + ], + [ + 149.4856226, + -28.5615019 + ], + [ + 150.2991369, + -28.5337256 + ], + [ + 151.0954036, + -28.7179218 + ], + [ + 151.3943629, + -28.9797786 + ], + [ + 151.9894069, + -28.7355674 + ], + [ + 151.9290401, + -28.4983634 + ], + [ + 152.4924635, + -28.2353023 + ], + [ + 153.5790657, + -28.1415563 + ], + [ + 153.6969246, + -28.6498321 + ], + [ + 153.2584694, + -30.9735401 + ], + [ + 152.7543708, + -32.508492 + ], + [ + 151.9087862, + -33.0553457 + ], + [ + 151.2583364, + -34.3808144 + ], + [ + 151.0144178, + -35.1156752 + ], + [ + 150.4615355, + -36.1202975 + ], + [ + 150.4127518, + -36.6178579 + ], + [ + 149.9784687, + -37.5069984 + ], + [ + 148.2013511, + -36.805656 + ], + [ + 148.0791803, + -36.8171632 + ], + [ + 147.8854228, + -36.0901856 + ], + [ + 147.6902879, + -36.0441802 + ], + [ + 146.828442, + -36.188678 + ], + [ + 145.2348401, + -35.9849909 + ], + [ + 144.8445703, + -36.2149218 + ], + [ + 144.5193454, + -36.1295974 + ], + [ + 143.2021846, + -35.1317425 + ], + [ + 142.4785593, + -34.811943 + ], + [ + 140.9937045, + -34.070169 + ], + [ + 141.0025961, + -34.0197399 + ], + [ + 140.998648, + -28.9989332 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, { "id": "NSW_LPI_BaseMap", "name": "LPI NSW Base Map", @@ -40372,6 +70414,39 @@ "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", "terms_text": "© Land and Property Information 2017" }, + { + "id": "major_isidoro", + "name": "Major Isidoro AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Major%20Isidoro&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.94048110193, + -9.57587518044 + ], + [ + -36.94106045907, + -9.48535688436 + ], + [ + -37.03214827722, + -9.48605530547 + ], + [ + -37.03164402192, + -9.57639356782 + ], + [ + -36.94048110193, + -9.57587518044 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "Mapbox", "name": "Mapbox Satellite", @@ -40387,6 +70462,199 @@ "description": "Satellite and aerial imagery.", "icon": "data:image/png;base64,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" }, + { + "id": "mar_vermelho_al", + "name": "Mar Vermelho AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Mar%20Vermelho&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.34201321548, + -9.49288996873 + ], + [ + -36.34219560569, + -9.47533412032 + ], + [ + -36.34275350517, + -9.4029001574 + ], + [ + -36.344727611, + -9.4029001574 + ], + [ + -36.34537134116, + -9.40279431056 + ], + [ + -36.34702358192, + -9.40293191144 + ], + [ + -36.35080013221, + -9.40291074208 + ], + [ + -36.35899696296, + -9.40306951227 + ], + [ + -36.36108908599, + -9.40299541952 + ], + [ + -36.36289153045, + -9.40306951227 + ], + [ + -36.36589560455, + -9.40304834292 + ], + [ + -36.36712942069, + -9.4030060042 + ], + [ + -36.37571248954, + -9.40306951227 + ], + [ + -36.38048682159, + -9.40308009695 + ], + [ + -36.38663444465, + -9.40319652837 + ], + [ + -36.3885227198, + -9.40312243565 + ], + [ + -36.39285716956, + -9.40324945173 + ], + [ + -36.396558618, + -9.40321769772 + ], + [ + -36.40309247916, + -9.40327062108 + ], + [ + -36.41973290389, + -9.40337646777 + ], + [ + -36.43368039077, + -9.4033976371 + ], + [ + -36.43355164474, + -9.41685048724 + ], + [ + -36.43344435638, + -9.4238571931 + ], + [ + -36.43337998336, + -9.43753150237 + ], + [ + -36.43329415267, + -9.45011519778 + ], + [ + -36.4330044741, + -9.49358837449 + ], + [ + -36.40839252418, + -9.49350371932 + ], + [ + -36.40442285484, + -9.49353546501 + ], + [ + -36.40007767623, + -9.49351430122 + ], + [ + -36.397867536, + -9.49341906413 + ], + [ + -36.3916769976, + -9.49328149941 + ], + [ + -36.38756785339, + -9.49331324512 + ], + [ + -36.38535771316, + -9.49340848223 + ], + [ + -36.37673172897, + -9.49331324512 + ], + [ + -36.37427482551, + -9.49318626226 + ], + [ + -36.36706504768, + -9.49298520596 + ], + [ + -36.36501583999, + -9.49299578788 + ], + [ + -36.36043462699, + -9.49298520596 + ], + [ + -36.35955486243, + -9.49295346022 + ], + [ + -36.35895404762, + -9.49303811553 + ], + [ + -36.35703358596, + -9.49294287831 + ], + [ + -36.35664734786, + -9.49299578788 + ], + [ + -36.35260257667, + -9.49299578788 + ], + [ + -36.34766731208, + -9.49297462405 + ], + [ + -36.34201321548, + -9.49288996873 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "geodata.md.gov-MD_SixInchImagery", "name": "MD Latest 6 Inch Aerial Imagery", @@ -40590,6 +70858,188 @@ "terms_text": "DoIT, MD iMap, MDP", "description": "Six Inch resolution aerial imagery for the State of Maryland" }, + { + "id": "geodata.md.gov-MD_ThreeInchImagery", + "name": "MD Three Inch Aerial Imagery", + "type": "wms", + "template": "http://geodata.md.gov/imap/services/Imagery/MD_ThreeInchImagery/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=MD_ThreeInchImagery&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 20 + ], + "polygon": [ + [ + [ + -76.46298868788, + 38.98080463627 + ], + [ + -76.46325795583, + 38.94779459044 + ], + [ + -76.49498669632, + 38.93690418359 + ], + [ + -76.51616910865, + 38.93697399921 + ], + [ + -76.54762858119, + 38.95910208849 + ], + [ + -76.54744906922, + 38.98666527704 + ], + [ + -76.51558569475, + 39.0030585399 + ], + [ + -76.48390183225, + 39.00291903879 + ], + [ + -76.46298868788, + 38.98080463627 + ] + ], + [ + [ + -76.09548280964, + 38.8413320581 + ], + [ + -76.04279604678, + 38.84089512141 + ], + [ + -76.04288580276, + 38.82980476995 + ], + [ + -76.0322945966, + 38.8296998884 + ], + [ + -76.03276581552, + 38.79667199901 + ], + [ + -76.02545070279, + 38.79663702224 + ], + [ + -76.0254058248, + 38.7746157424 + ], + [ + -76.03307996147, + 38.77472070505 + ], + [ + -76.03366337536, + 38.7307278267 + ], + [ + -76.05462139773, + 38.73093788097 + ], + [ + -76.0548009097, + 38.72004925436 + ], + [ + -76.10753255055, + 38.72043441094 + ], + [ + -76.10713709241, + 38.75338442343 + ], + [ + -76.11753984459, + 38.75346037077 + ], + [ + -76.11701334711, + 38.79730508527 + ], + [ + -76.09601366219, + 38.79715186708 + ], + [ + -76.09548280964, + 38.8413320581 + ] + ], + [ + [ + -77.23397015511, + 39.16838491616 + ], + [ + -77.25516378693, + 39.14647458509 + ], + [ + -77.25496183597, + 39.11342872174 + ], + [ + -77.18093418537, + 39.05337051467 + ], + [ + -77.14907221334, + 39.04769565692 + ], + [ + -77.12797815456, + 39.04779422613 + ], + [ + -77.10683080317, + 39.05325234984 + ], + [ + -77.1068770836, + 39.09169503464 + ], + [ + -77.11774597234, + 39.10827342699 + ], + [ + -77.16011079699, + 39.12484737677 + ], + [ + -77.15975177305, + 39.15213714767 + ], + [ + -77.17047901562, + 39.16302432313 + ], + [ + -77.21284384027, + 39.17271658577 + ], + [ + -77.23397015511, + 39.16838491616 + ] + ] + ], + "terms_url": "http://imap.maryland.gov/Pages/imagery-products.aspx", + "terms_text": "DoIT, MD iMap, MDP", + "description": "Three Inch Resolution Imagery for the cities of Rockville, Gaithersburg and Annapolis" + }, { "id": "geodata.md.gov-MD_ColorBasemap", "name": "MD Transportation Basemap", @@ -40787,6 +71237,367 @@ "terms_text": "DoIT, MD iMap, MDP", "description": "Maryland State Highway Administration road features and additional Maryland focused landmarks" }, + { + "id": "minador_do_negrao", + "name": "Minador do Negrão", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Minador%20do%20Negrao&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.81960228856, + -9.35174057847 + ], + [ + -36.82016893109, + -9.26141767312 + ], + [ + -36.82465236584, + -9.26132936954 + ], + [ + -36.83063690623, + -9.26146673066 + ], + [ + -36.83673079868, + -9.26149616517 + ], + [ + -36.84227793081, + -9.26147654216 + ], + [ + -36.8456181394, + -9.26160409172 + ], + [ + -36.85563876517, + -9.26160409172 + ], + [ + -36.8621402426, + -9.26159428022 + ], + [ + -36.86589797726, + -9.26146673066 + ], + [ + -36.86724002536, + -9.26149616517 + ], + [ + -36.86951653657, + -9.26148635367 + ], + [ + -36.87126616964, + -9.26157465721 + ], + [ + -36.87475549468, + -9.26152559969 + ], + [ + -36.87815534986, + -9.26163352623 + ], + [ + -36.88320542713, + -9.26170220674 + ], + [ + -36.88565093699, + -9.26167277223 + ], + [ + -36.88857361951, + -9.26147654216 + ], + [ + -36.89217229662, + -9.26150597668 + ], + [ + -36.89383245981, + -9.26163352623 + ], + [ + -36.89740131364, + -9.26175126423 + ], + [ + -36.91121943846, + -9.26182975621 + ], + [ + -36.91110014529, + -9.26650980886 + ], + [ + -36.91112002749, + -9.28541580138 + ], + [ + -36.91120949736, + -9.29066455986 + ], + [ + -36.91117967407, + -9.29367642875 + ], + [ + -36.91099079323, + -9.2992880502 + ], + [ + -36.91091126445, + -9.30729328446 + ], + [ + -36.91090132335, + -9.3122964628 + ], + [ + -36.91083173567, + -9.31596541472 + ], + [ + -36.91084167677, + -9.32013463149 + ], + [ + -36.91098085213, + -9.32395064743 + ], + [ + -36.91099079323, + -9.3258733543 + ], + [ + -36.91079197129, + -9.32964025951 + ], + [ + -36.91079197129, + -9.33523168439 + ], + [ + -36.9107422658, + -9.33943990818 + ], + [ + -36.91092120555, + -9.34310857462 + ], + [ + -36.91084167677, + -9.3447074733 + ], + [ + -36.91066273702, + -9.35228988056 + ], + [ + -36.89276876244, + -9.35225064472 + ], + [ + -36.877350121, + -9.35212312823 + ], + [ + -36.86462551685, + -9.35203484755 + ], + [ + -36.85760710237, + -9.35193675789 + ], + [ + -36.84344103915, + -9.35190733098 + ], + [ + -36.83115384327, + -9.3517994323 + ], + [ + -36.81960228856, + -9.35174057847 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "NC-US", + "name": "NC Latest Orthoimagery", + "type": "wms", + "template": "https://services.nconemap.gov/secure/services/Imagery/Orthoimagery_All/ImageServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -81.6792, + 36.5974 + ], + [ + -80.2535886, + 36.5479298 + ], + [ + -75.8409, + 36.5671 + ], + [ + -75.4323, + 35.6441 + ], + [ + -75.5047482, + 35.1880648 + ], + [ + -75.7052487, + 35.1768406 + ], + [ + -76.1474484, + 34.9407747 + ], + [ + -76.5347165, + 34.5548667 + ], + [ + -76.6967648, + 34.6678918 + ], + [ + -77.2790402, + 34.5322432 + ], + [ + -77.688281, + 34.2648225 + ], + [ + -77.9435, + 33.8269 + ], + [ + -78.2128781, + 33.8940169 + ], + [ + -78.5301, + 33.8304 + ], + [ + -79.6693, + 34.7916 + ], + [ + -80.8122, + 34.8085 + ], + [ + -80.8468503, + 34.9632866 + ], + [ + -80.9512204, + 35.0555205 + ], + [ + -81.0638303, + 35.0172898 + ], + [ + -81.0748166, + 35.1341745 + ], + [ + -82.3632, + 35.1805 + ], + [ + -82.9989, + 34.9919 + ], + [ + -84.3333, + 34.9767 + ], + [ + -84.2718381, + 35.2822869 + ], + [ + -84.0905637, + 35.2733181 + ], + [ + -83.9147824, + 35.53301 + ], + [ + -83.5549802, + 35.591102 + ], + [ + -83.2556027, + 35.7339181 + ], + [ + -82.9864377, + 35.8141398 + ], + [ + -82.9232663, + 35.9676717 + ], + [ + -82.6788205, + 36.0853997 + ], + [ + -82.6019162, + 36.0898388 + ], + [ + -82.5359982, + 35.9698946 + ], + [ + -82.3547238, + 36.1475245 + ], + [ + -82.0443601, + 36.1430887 + ], + [ + -81.9042844, + 36.3380291 + ], + [ + -81.742236, + 36.3734205 + ], + [ + -81.6792, + 36.5974 + ] + ] + ], + "description": "Most recent true color imagery for the state of North Carolina. The imagery has a pixel resolution of 6 inches and is comprised of imagery flown in 2010, 2012, 2013, and 2014" + }, { "id": "geodata.state.nj.us-Infrared2015", "name": "NJ 2015 Aerial Imagery (Infrared)", @@ -41705,7445 +72516,6 @@ "terms_text": "NJ Office of Information Technology (NJOIT), Office of Geographic Information Systems (OGIS)", "description": "Digital orthophotography of New Jersey, Natural Color, 1 foot resolution" }, - { - "id": "NLS-Bartholomew-hfinch-hist", - "name": "NLS - Bartholomew Half Inch, 1897-1907", - "type": "tms", - "template": "http://geo.nls.uk/mapdata2/bartholomew/great_britain/{zoom}/{x}/{-y}.png", - "scaleExtent": [ - 0, - 15 - ], - "polygon": [ - [ - [ - -6.4585407, - 49.9044128 - ], - [ - -6.3872009, - 49.9841116 - ], - [ - -6.2296827, - 49.9896159 - ], - [ - -6.2171269, - 49.8680087 - ], - [ - -6.4551164, - 49.8591793 - ], - [ - -6.4585407, - 49.9044128 - ] - ], - [ - [ - -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 - ], - [ - -1.4495137, - 60.8634056 - ] - ], - [ - [ - -4.9089213, - 54.4242078 - ], - [ - -4.282598, - 54.4429861 - ], - [ - -4.2535417, - 54.029769 - ], - [ - -4.8766366, - 54.0221831 - ], - [ - -4.9089213, - 54.4242078 - ] - ], - [ - [ - -5.8667408, - 59.1444603 - ], - [ - -5.7759966, - 59.1470945 - ], - [ - -5.7720016, - 59.1014052 - ], - [ - -5.8621751, - 59.0990605 - ], - [ - -5.8667408, - 59.1444603 - ] - ], - [ - [ - -1.7065887, - 59.5703599 - ], - [ - -1.5579165, - 59.5693481 - ], - [ - -1.5564897, - 59.4965695 - ], - [ - -1.7054472, - 59.4975834 - ], - [ - -1.7065887, - 59.5703599 - ] - ], - [ - [ - -7.6865827, - 58.2940975 - ], - [ - -7.5330594, - 58.3006957 - ], - [ - -7.5256401, - 58.2646905 - ], - [ - -7.6797341, - 58.2577853 - ], - [ - -7.6865827, - 58.2940975 - ] - ], - [ - [ - -4.5338281, - 59.0359871 - ], - [ - -4.481322, - 59.0371616 - ], - [ - -4.4796099, - 59.0186583 - ], - [ - -4.5332574, - 59.0180707 - ], - [ - -4.5338281, - 59.0359871 - ] - ], - [ - [ - -8.6710698, - 57.8769896 - ], - [ - -8.4673234, - 57.8897332 - ], - [ - -8.4467775, - 57.7907 - ], - [ - -8.6510947, - 57.7779213 - ], - [ - -8.6710698, - 57.8769896 - ] - ], - [ - [ - -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 - ], - [ - -5.2395519, - 50.3530581 - ] - ], - [ - [ - -2.1502671, - 60.171318 - ], - [ - -2.0030218, - 60.1696146 - ], - [ - -2.0013096, - 60.0997023 - ], - [ - -2.148555, - 60.1011247 - ], - [ - -2.1502671, - 60.171318 - ] - ], - [ - [ - -6.2086011, - 59.1163488 - ], - [ - -6.1229934, - 59.1166418 - ], - [ - -6.121852, - 59.0714985 - ], - [ - -6.2097426, - 59.0714985 - ], - [ - -6.2086011, - 59.1163488 - ] - ], - [ - [ - -4.4159559, - 59.0889036 - ], - [ - -4.4212022, - 59.0770848 - ], - [ - -4.3971904, - 59.0779143 - ], - [ - -4.3913388, - 59.0897328 - ], - [ - -4.4159559, - 59.0889036 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" - }, - { - "id": "NLS-OS-7th_Series", - "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 - ], - [ - -6.4585407, - 49.9044128 - ] - ], - [ - [ - -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 - ], - [ - -1.4495137, - 60.8634056 - ] - ], - [ - [ - -4.9089213, - 54.4242078 - ], - [ - -4.282598, - 54.4429861 - ], - [ - -4.2535417, - 54.029769 - ], - [ - -4.8766366, - 54.0221831 - ], - [ - -4.9089213, - 54.4242078 - ] - ], - [ - [ - -5.8667408, - 59.1444603 - ], - [ - -5.7759966, - 59.1470945 - ], - [ - -5.7720016, - 59.1014052 - ], - [ - -5.8621751, - 59.0990605 - ], - [ - -5.8667408, - 59.1444603 - ] - ], - [ - [ - -1.7065887, - 59.5703599 - ], - [ - -1.5579165, - 59.5693481 - ], - [ - -1.5564897, - 59.4965695 - ], - [ - -1.7054472, - 59.4975834 - ], - [ - -1.7065887, - 59.5703599 - ] - ], - [ - [ - -7.6865827, - 58.2940975 - ], - [ - -7.5330594, - 58.3006957 - ], - [ - -7.5256401, - 58.2646905 - ], - [ - -7.6797341, - 58.2577853 - ], - [ - -7.6865827, - 58.2940975 - ] - ], - [ - [ - -4.5338281, - 59.0359871 - ], - [ - -4.481322, - 59.0371616 - ], - [ - -4.4796099, - 59.0186583 - ], - [ - -4.5332574, - 59.0180707 - ], - [ - -4.5338281, - 59.0359871 - ] - ], - [ - [ - -8.6710698, - 57.8769896 - ], - [ - -8.4673234, - 57.8897332 - ], - [ - -8.4467775, - 57.7907 - ], - [ - -8.6510947, - 57.7779213 - ], - [ - -8.6710698, - 57.8769896 - ] - ], - [ - [ - -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 - ], - [ - -5.2395519, - 50.3530581 - ] - ], - [ - [ - -2.1502671, - 60.171318 - ], - [ - -2.0030218, - 60.1696146 - ], - [ - -2.0013096, - 60.0997023 - ], - [ - -2.148555, - 60.1011247 - ], - [ - -2.1502671, - 60.171318 - ] - ], - [ - [ - -6.2086011, - 59.1163488 - ], - [ - -6.1229934, - 59.1166418 - ], - [ - -6.121852, - 59.0714985 - ], - [ - -6.2097426, - 59.0714985 - ], - [ - -6.2086011, - 59.1163488 - ] - ], - [ - [ - -4.4159559, - 59.0889036 - ], - [ - -4.4212022, - 59.0770848 - ], - [ - -4.3971904, - 59.0779143 - ], - [ - -4.3913388, - 59.0897328 - ], - [ - -4.4159559, - 59.0889036 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" - }, - { - "id": "NLS-OS-1st_Series", - "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 - ], - [ - -4.7157244, - 54.6796556 - ] - ], - [ - [ - -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 - ], - [ - -3.7085748, - 58.3371151 - ] - ], - [ - [ - -6.46676, - 49.9943621 - ], - [ - -6.1889102, - 50.004868 - ], - [ - -6.1789222, - 49.8967815 - ], - [ - -6.3169391, - 49.8915171 - ], - [ - -6.312399, - 49.8200979 - ], - [ - -6.4504159, - 49.8159968 - ], - [ - -6.46676, - 49.9943621 - ] - ], - [ - [ - -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.6453263, - 50.2029809 - ] - ], - [ - [ - -5.1336607, - 55.2630226 - ], - [ - -5.1021999, - 55.2639372 - ], - [ - -5.0999527, - 55.2458239 - ], - [ - -5.1322161, - 55.2446343 - ], - [ - -5.1336607, - 55.2630226 - ] - ], - [ - [ - -5.6431878, - 55.5095745 - ], - [ - -5.4861028, - 55.5126594 - ], - [ - -5.4715747, - 55.3348829 - ], - [ - -5.6277517, - 55.3302345 - ], - [ - -5.6431878, - 55.5095745 - ] - ], - [ - [ - -4.7213517, - 51.2180246 - ], - [ - -4.5804201, - 51.2212417 - ], - [ - -4.5746416, - 51.1306736 - ], - [ - -4.7174993, - 51.1280545 - ], - [ - -4.7213517, - 51.2180246 - ] - ], - [ - [ - -5.1608796, - 55.4153626 - ], - [ - -5.0045387, - 55.4190069 - ], - [ - -5.0184798, - 55.6153521 - ], - [ - -5.1755648, - 55.6138137 - ], - [ - -5.1608796, - 55.4153626 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" - }, - { - "id": "NLS-OS-25inch-hist", - "name": "NLS - OS 25-inch (Scotland), 1892-1905", - "type": "tms", - "template": "http://geo.nls.uk/mapdata2/os/25_inch/scotland_1/{zoom}/{x}/{y}.png", - "scaleExtent": [ - 0, - 18 - ], - "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 - ], - [ - -5.2112173, - 54.8018593 - ] - ], - [ - [ - -2.1646559, - 60.1622059 - ], - [ - -1.9930299, - 60.1609801 - ], - [ - -1.9946862, - 60.1035151 - ], - [ - -2.1663122, - 60.104743 - ], - [ - -2.1646559, - 60.1622059 - ] - ], - [ - [ - -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 - ], - [ - -1.5360658, - 59.8570831 - ] - ], - [ - [ - -0.9847667, - 60.8943762 - ], - [ - -0.9860347, - 60.8361105 - ], - [ - -0.8078362, - 60.8351904 - ], - [ - -0.8065683, - 60.8934578 - ], - [ - -0.9847667, - 60.8943762 - ] - ], - [ - [ - -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 - ], - [ - -7.7696901, - 56.8788231 - ] - ], - [ - [ - -1.7106618, - 59.5626284 - ], - [ - -1.5417509, - 59.562215 - ], - [ - -1.5423082, - 59.5037224 - ], - [ - -1.7112191, - 59.5041365 - ], - [ - -1.7106618, - 59.5626284 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" - }, - { - "id": "NLS-OS-6inch-Scotland-hist", - "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 - ], - [ - -5.2112173, - 54.8018593 - ] - ], - [ - [ - -2.1646559, - 60.1622059 - ], - [ - -1.9930299, - 60.1609801 - ], - [ - -1.9946862, - 60.1035151 - ], - [ - -2.1663122, - 60.104743 - ], - [ - -2.1646559, - 60.1622059 - ] - ], - [ - [ - -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 - ], - [ - -1.5360658, - 59.8570831 - ] - ], - [ - [ - -0.9847667, - 60.8943762 - ], - [ - -0.9860347, - 60.8361105 - ], - [ - -0.8078362, - 60.8351904 - ], - [ - -0.8065683, - 60.8934578 - ], - [ - -0.9847667, - 60.8943762 - ] - ], - [ - [ - -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 - ], - [ - -7.7696901, - 56.8788231 - ] - ], - [ - [ - -1.7106618, - 59.5626284 - ], - [ - -1.5417509, - 59.562215 - ], - [ - -1.5423082, - 59.5037224 - ], - [ - -1.7112191, - 59.5041365 - ], - [ - -1.7106618, - 59.5626284 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "http://nls.tileserver.com/nls70-nq8.png" - }, { "id": "NLSC-EMAP5", "name": "NLSC General Map with Contour line", @@ -49725,6 +73097,1368 @@ "description": "Streets geometry and names of Salvador, Bahia. Source: Faces de Logradouro - IBGE.", "overlay": true }, + { + "id": "orthos.dhses.ny.gov_latest", + "name": "NYS Orthos Online", + "type": "wms", + "template": "http://www.orthos.dhses.ny.gov/arcgis/services/Latest/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=0,1,2,3,4&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2018-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", + "scaleExtent": [ + 0, + 19 + ], + "polygon": [ + [ + [ + -74.91231104790405, + 45.036060871422514 + ], + [ + -73.47787904626531, + 45.02996489601911 + ], + [ + -73.33846123282218, + 45.03098119095642 + ], + [ + -73.31977627491248, + 45.005581106608915 + ], + [ + -73.32265088382167, + 44.98525292658083 + ], + [ + -73.34852236400432, + 44.92829565917409 + ], + [ + -73.36720732191401, + 44.83969633391092 + ], + [ + -73.34277314618596, + 44.81727029165119 + ], + [ + -73.34564775509514, + 44.7764733152644 + ], + [ + -73.37295653973237, + 44.73462648007473 + ], + [ + -73.37008193082319, + 44.6794648966887 + ], + [ + -73.39739071546042, + 44.64470656126996 + ], + [ + -73.39307880209665, + 44.60276438225357 + ], + [ + -73.39739071546042, + 44.54542854468756 + ], + [ + -73.34995966845892, + 44.512639828752185 + ], + [ + -73.34564775509514, + 44.49521331585934 + ], + [ + -73.37870575755073, + 44.47060231167881 + ], + [ + -73.30827783927576, + 44.43571894999882 + ], + [ + -73.30396592591198, + 44.4182694555537 + ], + [ + -73.3327120150038, + 44.3391682816244 + ], + [ + -73.30827783927576, + 44.27128222420617 + ], + [ + -73.30827783927576, + 44.25172471526754 + ], + [ + -73.38014306200533, + 44.14868323115224 + ], + [ + -73.40457723773338, + 44.0413289327325 + ], + [ + -73.33989853727677, + 43.79595697288363 + ], + [ + -73.28096905463853, + 43.642215731803084 + ], + [ + -73.20910383190896, + 43.549573305004984 + ], + [ + -73.21341574527274, + 43.51205945175996 + ], + [ + -73.24647374772834, + 42.6755714070924 + ], + [ + -73.45919480700785, + 42.142839357113225 + ], + [ + -73.47069324264457, + 42.03937970922349 + ], + [ + -73.48794089609967, + 41.737642097452465 + ], + [ + -73.4994393317364, + 41.643191171126794 + ], + [ + -73.47787976491753, + 41.62707774888845 + ], + [ + -73.4318860223706, + 41.57978847312145 + ], + [ + -73.42613680455224, + 41.56365920821005 + ], + [ + -73.42685473812732, + 41.45925887814987 + ], + [ + -73.43979047821864, + 41.403222667065656 + ], + [ + -73.44985160940078, + 41.383275042836544 + ], + [ + -73.43835317376404, + 41.37033277045519 + ], + [ + -73.42757339035461, + 41.35900616964153 + ], + [ + -73.41751225917248, + 41.34390096839462 + ], + [ + -73.41894956362707, + 41.27642429018757 + ], + [ + -73.43044799926379, + 41.24455103927662 + ], + [ + -73.46566195840128, + 41.19752312226992 + ], + [ + -73.52962200663059, + 41.145049831455864 + ], + [ + -73.55477483458594, + 41.133684100459654 + ], + [ + -73.61586027390607, + 41.13530789690045 + ], + [ + -73.6266400573155, + 41.1087808553827 + ], + [ + -73.62735870954279, + 41.054068843422385 + ], + [ + -73.63957579740682, + 40.99117509837295 + ], + [ + -73.61873488281525, + 40.98195286582785 + ], + [ + -73.59933127267827, + 40.96567519162947 + ], + [ + -73.59933127267827, + 40.93473654650821 + ], + [ + -73.63454523181575, + 40.91681807360894 + ], + [ + -73.68053897436268, + 40.89183270232195 + ], + [ + -73.69850528004507, + 40.8798798402391 + ], + [ + -73.68628819218104, + 40.87064205907731 + ], + [ + -73.66257266868028, + 40.87933647703018 + ], + [ + -73.63813849295222, + 40.90541287946855 + ], + [ + -73.59789396822369, + 40.91193037416514 + ], + [ + -73.57561574917752, + 40.91790417996723 + ], + [ + -73.52674739772141, + 40.92387744595259 + ], + [ + -73.50159456976607, + 40.9428797007417 + ], + [ + -73.49009613412935, + 40.953735678064604 + ], + [ + -73.41751225917248, + 40.960791106211715 + ], + [ + -73.38373560448959, + 40.9613338002184 + ], + [ + -73.33702320971537, + 40.95590665935183 + ], + [ + -73.30827712062354, + 40.93636525766628 + ], + [ + -73.27090720480417, + 40.92659238839886 + ], + [ + -73.20910311325675, + 40.91953330604491 + ], + [ + -73.18682489421059, + 40.92713536350369 + ], + [ + -73.16813993630089, + 40.93147900372728 + ], + [ + -73.165983979619, + 40.95970570481162 + ], + [ + -73.1688585885282, + 40.970016297449746 + ], + [ + -73.12933271602694, + 40.98195286582785 + ], + [ + -73.10777314920807, + 40.98195286582785 + ], + [ + -73.06680997225222, + 40.97489970011966 + ], + [ + -72.85840082633648, + 40.97435711767307 + ], + [ + -72.71826364201384, + 40.98195286582785 + ], + [ + -72.65574089823912, + 41.00527719453338 + ], + [ + -72.64424246260239, + 41.004734862008505 + ], + [ + -72.62627615692, + 40.99225998211336 + ], + [ + -72.54147519409912, + 41.03889309392365 + ], + [ + -72.47679649364251, + 41.063280983759014 + ], + [ + -72.45811153573283, + 41.08928476815911 + ], + [ + -72.41858566323157, + 41.093076127227 + ], + [ + -72.36612405063899, + 41.138555369199075 + ], + [ + -72.36037483282063, + 41.14180268071838 + ], + [ + -72.32228626477396, + 41.15479031895286 + ], + [ + -72.29066556677296, + 41.16398833949227 + ], + [ + -72.21448843067962, + 41.182380507948444 + ], + [ + -72.20083403836101, + 41.19157465575383 + ], + [ + -72.04847976617432, + 41.25913903369694 + ], + [ + -72.02548289490088, + 41.29370497046782 + ], + [ + -71.9392446276254, + 41.30774215335454 + ], + [ + -71.9234342786249, + 41.30666247732331 + ], + [ + -71.90259336403332, + 41.299104244517785 + ], + [ + -71.90187471180603, + 41.2893852294372 + ], + [ + -71.99458084912716, + 41.24509139345555 + ], + [ + -72.10453463990339, + 41.19806386514946 + ], + [ + -72.1828677326786, + 41.16723439148816 + ], + [ + -72.18933560272427, + 41.16236525319468 + ], + [ + -72.25185834649899, + 41.12231639996208 + ], + [ + -72.30431995909157, + 41.10444889166786 + ], + [ + -72.3158183947283, + 41.09524251989042 + ], + [ + -72.27916713113622, + 41.08440984216064 + ], + [ + -72.27269926109055, + 41.080617983013646 + ], + [ + -72.26838734772679, + 41.04973327212589 + ], + [ + -72.2173630395888, + 41.04810735923019 + ], + [ + -72.19652212499723, + 41.04214533487485 + ], + [ + -72.18646099381509, + 41.05298497738375 + ], + [ + -72.17136929704188, + 41.05840412900452 + ], + [ + -72.14980973022301, + 41.058946019612705 + ], + [ + -72.15627760026867, + 41.09632568943114 + ], + [ + -72.1526843391322, + 41.10769789124652 + ], + [ + -72.1490910779957, + 41.146673346530676 + ], + [ + -72.13399938122251, + 41.145049831455864 + ], + [ + -72.07075798522048, + 41.10553190938901 + ], + [ + -72.07435124635697, + 41.05677843039375 + ], + [ + -72.086568334221, + 41.0318460205672 + ], + [ + -72.10956520549446, + 41.006904165328564 + ], + [ + -72.08728698644829, + 41.01286938123731 + ], + [ + -72.06213415849294, + 41.02534036020521 + ], + [ + -72.04560515726514, + 41.03238812991624 + ], + [ + -72.01901502485521, + 41.03293023480147 + ], + [ + -72.00895389367307, + 41.04214533487485 + ], + [ + -72.00176737140012, + 41.05135914484385 + ], + [ + -71.96367880335345, + 41.07736764390088 + ], + [ + -71.9219969741703, + 41.088743127574865 + ], + [ + -71.889657623942, + 41.08765983301127 + ], + [ + -71.8558809692591, + 41.080617983013646 + ], + [ + -71.84581983807696, + 41.07465890519177 + ], + [ + -71.8558809692591, + 41.05298497738375 + ], + [ + -71.89037627616929, + 41.03726691318444 + ], + [ + -71.91624775635194, + 41.03021966573728 + ], + [ + -71.99098758799067, + 41.00365018356915 + ], + [ + -72.07938181194804, + 40.97272934355811 + ], + [ + -72.31941165586478, + 40.88205324847025 + ], + [ + -72.44230118673232, + 40.84020260474275 + ], + [ + -72.6277134613746, + 40.78689990926171 + ], + [ + -72.76569468901535, + 40.75043362643005 + ], + [ + -72.88499095874643, + 40.71285788340029 + ], + [ + -72.95973079038517, + 40.68670572169275 + ], + [ + -73.0373452309331, + 40.65999813364621 + ], + [ + -73.08118301679814, + 40.64854874971067 + ], + [ + -73.22994402784832, + 40.616370919338586 + ], + [ + -73.32193151294216, + 40.61309772897009 + ], + [ + -73.35211490648857, + 40.61855295716485 + ], + [ + -73.55477483458594, + 40.56943986927557 + ], + [ + -73.75959071936519, + 40.57708205228237 + ], + [ + -73.88248025023275, + 40.548146328651804 + ], + [ + -73.93350455837073, + 40.53449306094386 + ], + [ + -73.94500299400745, + 40.533946872353866 + ], + [ + -73.94572164623476, + 40.56288873200082 + ], + [ + -74.08226556942093, + 40.562342774949634 + ], + [ + -74.08010961273904, + 40.5492384698493 + ], + [ + -74.12251009414948, + 40.52083701052971 + ], + [ + -74.15772405328697, + 40.51373476465814 + ], + [ + -74.18718879460609, + 40.50116740969577 + ], + [ + -74.22887062378922, + 40.48695799891573 + ], + [ + -74.26120997401753, + 40.48531825788795 + ], + [ + -74.27630167079074, + 40.49570260781157 + ], + [ + -74.27917627969993, + 40.54377758575639 + ], + [ + -74.26983380074509, + 40.56671030667376 + ], + [ + -74.25833536510835, + 40.57216932054787 + ], + [ + -74.22527736265275, + 40.57216932054787 + ], + [ + -74.22599601488004, + 40.58308601230896 + ], + [ + -74.25114884283539, + 40.59563800556682 + ], + [ + -74.25258614728999, + 40.622371351867315 + ], + [ + -74.24324366833514, + 40.64091473558487 + ], + [ + -74.23390118938029, + 40.64909400302126 + ], + [ + -74.2022804913793, + 40.65400108233582 + ], + [ + -74.12538470305866, + 40.65672708157882 + ], + [ + -74.11532357187652, + 40.691065128306576 + ], + [ + -74.09951322287603, + 40.68997530338939 + ], + [ + -74.07795365605716, + 40.71067892875261 + ], + [ + -74.06286195928395, + 40.71830495805569 + ], + [ + -74.0520821758745, + 40.743900238938934 + ], + [ + -74.02549204346457, + 40.79288499840126 + ], + [ + -73.98093560537225, + 40.869011728592994 + ], + [ + -73.96225064746255, + 40.92550642480473 + ], + [ + -73.94931490737123, + 40.964589870550604 + ], + [ + -73.94644029846205, + 40.99876890966543 + ], + [ + -73.98165425759954, + 41.01612290773734 + ], + [ + -74.04561430582885, + 41.04322937947981 + ], + [ + -74.18072092456043, + 41.09524251989042 + ], + [ + -74.30792236879175, + 41.14937911566324 + ], + [ + -74.44087303084143, + 41.215365278476916 + ], + [ + -74.5278299503442, + 41.25913903369694 + ], + [ + -74.61334956539238, + 41.30234359441648 + ], + [ + -74.65790600348473, + 41.310981074177676 + ], + [ + -74.70246244157704, + 41.33580745460507 + ], + [ + -74.76714114203365, + 41.38974521327815 + ], + [ + -74.79660588335277, + 41.41022983858581 + ], + [ + -74.85337940930913, + 41.42262529077297 + ], + [ + -74.90727832635629, + 41.431785626305874 + ], + [ + -74.99782850699555, + 41.471106493417004 + ], + [ + -75.04166629286057, + 41.527084094166106 + ], + [ + -75.08478542649831, + 41.593225913275326 + ], + [ + -75.08406677427102, + 41.61848173934118 + ], + [ + -75.07328699086159, + 41.664668930702504 + ], + [ + -75.0876600354075, + 41.70277526731324 + ], + [ + -75.0876600354075, + 41.71350537258048 + ], + [ + -75.12143669009038, + 41.76176868230114 + ], + [ + -75.1192807334085, + 41.792316684103675 + ], + [ + -75.13077916904523, + 41.816958847412266 + ], + [ + -75.18755269500159, + 41.838379111347166 + ], + [ + -75.25295004768549, + 41.84962188079648 + ], + [ + -75.28744535459568, + 41.85497488617851 + ], + [ + -75.29822513800511, + 41.88226824503906 + ], + [ + -75.30613031250536, + 41.93040456765947 + ], + [ + -75.34062561941555, + 41.940027476740525 + ], + [ + -75.36649709959819, + 41.95659686103546 + ], + [ + -75.37224631741655, + 41.97743609810382 + ], + [ + -75.58065546333229, + 41.97957307031645 + ], + [ + -75.58137411555958, + 41.923988488332995 + ], + [ + -75.78906460924802, + 41.92666193313772 + ], + [ + -75.78690865256613, + 41.98277839417683 + ], + [ + -79.7768658185114, + 41.98117575241552 + ], + [ + -79.7818971027547, + 42.20994439336295 + ], + [ + -79.77183597157256, + 42.28016852623668 + ], + [ + -79.72153031566185, + 42.29824389979878 + ], + [ + -79.57348795683896, + 42.367307788746416 + ], + [ + -79.42975751137983, + 42.46599037989962 + ], + [ + -79.37370263765078, + 42.499909767684656 + ], + [ + -79.2572809768289, + 42.54545998533663 + ], + [ + -79.1897276674631, + 42.56240042582576 + ], + [ + -79.16529349173506, + 42.56981042255861 + ], + [ + -79.12073705364273, + 42.62482855594211 + ], + [ + -79.09630287791468, + 42.64597644140587 + ], + [ + -79.06899409327744, + 42.696702043447694 + ], + [ + -79.03162417745807, + 42.7104331026147 + ], + [ + -78.98850504382034, + 42.723105230911976 + ], + [ + -78.88358181863518, + 42.776932904700104 + ], + [ + -78.88645642754436, + 42.814900763418876 + ], + [ + -78.93963669236422, + 42.88655426672713 + ], + [ + -78.93963669236422, + 42.93603089533893 + ], + [ + -79.04887183091316, + 42.96969438273069 + ], + [ + -79.04743452645856, + 43.05167198470151 + ], + [ + -79.09342826900549, + 43.05272226918912 + ], + [ + -79.0919909645509, + 43.09261975149211 + ], + [ + -79.08624174673254, + 43.265557535860246 + ], + [ + -79.06468217991367, + 43.27602287004617 + ], + [ + -78.84908651172498, + 43.33041359857192 + ], + [ + -78.72979024199391, + 43.35236529048099 + ], + [ + -78.63924006135466, + 43.370129894376525 + ], + [ + -78.54868988071541, + 43.379532578835416 + ], + [ + -78.47826196244044, + 43.38788929664161 + ], + [ + -77.95508314096922, + 43.38475566245842 + ], + [ + -77.73158157962807, + 43.34713889446963 + ], + [ + -77.7114593172638, + 43.340344586318594 + ], + [ + -77.66259096580768, + 43.311591022674435 + ], + [ + -77.61515991880619, + 43.28387016659478 + ], + [ + -77.55335582725876, + 43.25299623609951 + ], + [ + -77.52820299930342, + 43.25508987878669 + ], + [ + -77.45633777657385, + 43.27863839921907 + ], + [ + -77.42256112189095, + 43.28491646608342 + ], + [ + -77.16384632006454, + 43.29433235167476 + ], + [ + -77.05029926815182, + 43.29380928516081 + ], + [ + -76.94178278183018, + 43.29328621414787 + ], + [ + -76.91447399719296, + 43.3079305018789 + ], + [ + -76.85051394896364, + 43.31629708261557 + ], + [ + -76.80236424973484, + 43.328322024532355 + ], + [ + -76.7599637683244, + 43.35184220081927 + ], + [ + -76.64785402086628, + 43.42808936716575 + ], + [ + -76.545086752363, + 43.4802581022461 + ], + [ + -76.51993392440767, + 43.49485728312425 + ], + [ + -76.44303813608703, + 43.52717148354531 + ], + [ + -76.42219722149545, + 43.538112693359565 + ], + [ + -76.28206003717281, + 43.538633653838865 + ], + [ + -76.23822225130777, + 43.55686443488524 + ], + [ + -76.24037820798966, + 43.74146501378322 + ], + [ + -76.30649421290086, + 43.82914593255031 + ], + [ + -76.31152477849193, + 43.86749827350751 + ], + [ + -76.34602008540212, + 43.861798810265746 + ], + [ + -76.40063765467659, + 43.8612806502232 + ], + [ + -76.47178422517885, + 43.8840754318208 + ], + [ + -76.46675365958778, + 43.90893252243542 + ], + [ + -76.41860396035898, + 43.93119152129071 + ], + [ + -76.37189156558476, + 43.93222662089228 + ], + [ + -76.36973560890287, + 43.90271922256843 + ], + [ + -76.33308434531081, + 43.92963883810956 + ], + [ + -76.27846677603632, + 43.92963883810956 + ], + [ + -76.27846677603632, + 43.90427260833489 + ], + [ + -76.2669683403996, + 43.8959874158668 + ], + [ + -76.2360662946259, + 43.91203892916922 + ], + [ + -76.19294716098815, + 43.93326170247849 + ], + [ + -76.19007255207897, + 43.95085533306909 + ], + [ + -76.21522538003431, + 43.96016750024623 + ], + [ + -76.2504393391718, + 43.94982055774786 + ], + [ + -76.31224343071922, + 43.94775095305809 + ], + [ + -76.30577556067355, + 43.97620170069497 + ], + [ + -76.33092838862892, + 44.004638823445866 + ], + [ + -76.39560708908552, + 44.024795072402476 + ], + [ + -76.3984816979947, + 44.06250502187776 + ], + [ + -76.37548482672123, + 44.064570626786484 + ], + [ + -76.37620347894854, + 44.090900771655065 + ], + [ + -76.47106557295156, + 44.0929653855436 + ], + [ + -76.46603500736049, + 44.109479701923 + ], + [ + -76.44231948385973, + 44.129600288113295 + ], + [ + -76.3984816979947, + 44.13217935491029 + ], + [ + -76.3977630457674, + 44.2043474993423 + ], + [ + -76.37620347894854, + 44.21671031511876 + ], + [ + -76.23965955576237, + 44.2192855751065 + ], + [ + -76.23965955576237, + 44.2280406165722 + ], + [ + -76.2173813367162, + 44.228555578463435 + ], + [ + -76.21522538003431, + 44.34790496257489 + ], + [ + -76.1189259815767, + 44.37102654591561 + ], + [ + -76.04634210661985, + 44.39157140443917 + ], + [ + -75.93423235916174, + 44.43417898509957 + ], + [ + -75.83721430847683, + 44.50341416416661 + ], + [ + -75.76822369465644, + 44.558231111426025 + ], + [ + -75.69923308083607, + 44.60378721108942 + ], + [ + -75.63167977147027, + 44.64828507610631 + ], + [ + -75.56772044189319, + 44.70500920154141 + ], + [ + -75.50447904589117, + 44.7458566542504 + ], + [ + -75.4527360855259, + 44.78157451471142 + ], + [ + -75.31762946679432, + 44.872300455880584 + ], + [ + -75.15377675897092, + 44.937453318614374 + ], + [ + -75.0905353629689, + 44.973052557209364 + ], + [ + -74.97411370214701, + 45.027933775754924 + ], + [ + -74.91985438100785, + 45.03682085482298 + ], + [ + -74.91231104790405, + 45.036060871422514 + ] + ] + ], + "terms_url": "https://gis.ny.gov/gateway/orthoprogram/index.cfm", + "terms_text": "New York State Statewide Digital Orthoimagery Program", + "description": "New York State High Resolution Digital Orthoimagery, 1 foot resolution", + "icon": "data:image/png:base64,iVBORw0KGgoAAAANSUhEUgAAAG0AAABCCAYAAABdAli1AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTA1Nzc1NjVGNjM2MTFFMzk5NkFGRERGMEYyODU3RTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTA1Nzc1NjZGNjM2MTFFMzk5NkFGRERGMEYyODU3RTciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBMDU3NzU2M0Y2MzYxMUUzOTk2QUZEREYwRjI4NTdFNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBMDU3NzU2NEY2MzYxMUUzOTk2QUZEREYwRjI4NTdFNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhMlZyIAAA02SURBVHja7F1djNxW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" + }, + { + "id": "olho_dagua_do_casado", + "name": "Olho d'Agua do Casado AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Olho%20Dagua%20do%20Casado&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.78219871045, + -9.54444051839 + ], + [ + -37.78259635433, + -9.45388353571 + ], + [ + -37.8114653, + -9.45411888151 + ], + [ + -37.81735042942, + -9.45451112414 + ], + [ + -37.82057134484, + -9.45415810579 + ], + [ + -37.8739351535, + -9.45427577861 + ], + [ + -37.87357727401, + -9.54475422977 + ], + [ + -37.78219871045, + -9.54444051839 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "MAPNIK", "name": "OpenStreetMap (Standard)", @@ -55760,7 +80494,7 @@ "id": "OS-historic-25k-OSM_Limited", "name": "OS 1:25k historic (OSM)", "type": "tms", - "template": "http://ooc.openstreetmap.org/os1/{zoom}/{x}/{y}.jpg", + "template": "https://ooc.openstreetmap.org/os1/{zoom}/{x}/{y}.jpg", "scaleExtent": [ 6, 17 @@ -56848,7 +81582,7 @@ "id": "OS-New_Popular_Edition-historic", "name": "OS New Popular Edition historic", "type": "tms", - "template": "http://ooc.openstreetmap.org/npe/{zoom}/{x}/{y}.png", + "template": "https://ooc.openstreetmap.org/npe/{zoom}/{x}/{y}.png", "polygon": [ [ [ @@ -58011,7 +82745,7 @@ "id": "OS-Scottish_Popular-historic", "name": "OS Scottish Popular historic", "type": "tms", - "template": "http://ooc.openstreetmap.org/npescotland/tiles/{zoom}/{x}/{y}.jpg", + "template": "https://ooc.openstreetmap.org/npescotland/{zoom}/{x}/{y}.jpg", "scaleExtent": [ 6, 15 @@ -58041,6 +82775,476 @@ ] ] }, + { + "id": "al_palestina", + "name": "Palestina AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Palestina&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.28906746617, + -9.71915617946 + ], + [ + -37.28903527966, + -9.71114035022 + ], + [ + -37.28911038151, + -9.70220427214 + ], + [ + -37.28915329685, + -9.69174505681 + ], + [ + -37.28918548336, + -9.68885787521 + ], + [ + -37.28927131405, + -9.68069325658 + ], + [ + -37.28926058521, + -9.67731947667 + ], + [ + -37.28935714474, + -9.66999011394 + ], + [ + -37.28935714474, + -9.66599221238 + ], + [ + -37.28931422939, + -9.66132793384 + ], + [ + -37.28941078892, + -9.6552568713 + ], + [ + -37.2894644331, + -9.64555775166 + ], + [ + -37.28949661961, + -9.6348852245 + ], + [ + -37.28953953495, + -9.62925794841 + ], + [ + -37.29639526119, + -9.62884541884 + ], + [ + -37.31187697163, + -9.62897235107 + ], + [ + -37.32761617413, + -9.62914159397 + ], + [ + -37.33181114903, + -9.62919448235 + ], + [ + -37.3433768343, + -9.629173327 + ], + [ + -37.35876198521, + -9.62922621538 + ], + [ + -37.37175460568, + -9.6293002591 + ], + [ + -37.37838502636, + -9.62913101629 + ], + [ + -37.3805093359, + -9.62921563771 + ], + [ + -37.38060589543, + -9.63142636478 + ], + [ + -37.38054152241, + -9.63784691108 + ], + [ + -37.38043423405, + -9.63894695947 + ], + [ + -37.38053079357, + -9.64147494171 + ], + [ + -37.3805093359, + -9.64876261706 + ], + [ + -37.38049860706, + -9.65430495262 + ], + [ + -37.38043423405, + -9.65599725065 + ], + [ + -37.380241115, + -9.66028084202 + ], + [ + -37.38021965733, + -9.66550569201 + ], + [ + -37.38018747082, + -9.6705400861 + ], + [ + -37.38015528431, + -9.67895877835 + ], + [ + -37.38013382664, + -9.68781086916 + ], + [ + -37.38009091129, + -9.70115730775 + ], + [ + -37.38002653828, + -9.7105269939 + ], + [ + -37.38010164013, + -9.71743247513 + ], + [ + -37.38004799595, + -9.71958974786 + ], + [ + -37.3793184351, + -9.7195368737 + ], + [ + -37.37392183056, + -9.71955802336 + ], + [ + -37.36582155934, + -9.71945227502 + ], + [ + -37.35849376431, + -9.71946284985 + ], + [ + -37.353343923, + -9.71937825115 + ], + [ + -37.34413858166, + -9.71936767631 + ], + [ + -37.33422513714, + -9.71923020337 + ], + [ + -37.3293327879, + -9.71927250275 + ], + [ + -37.32180114498, + -9.71924077822 + ], + [ + -37.31982703915, + -9.71927250275 + ], + [ + -37.31094356289, + -9.71919847884 + ], + [ + -37.2958910059, + -9.71920905369 + ], + [ + -37.28906746617, + -9.71915617946 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "palmeira_dos_indios", + "name": "Palmeira dos Indios AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Palmeira%20dos%20Indios&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.58663984051, + -9.46124293173 + ], + [ + -36.58665056935, + -9.45851253477 + ], + [ + -36.58618922939, + -9.41968140694 + ], + [ + -36.58603902569, + -9.41451629413 + ], + [ + -36.58596392384, + -9.4059322986 + ], + [ + -36.58584590664, + -9.3950935092 + ], + [ + -36.58579226246, + -9.39163222273 + ], + [ + -36.58565278759, + -9.38983276351 + ], + [ + -36.58549185505, + -9.3824866389 + ], + [ + -36.58528800717, + -9.37964976527 + ], + [ + -36.58510561695, + -9.37743741114 + ], + [ + -36.5850305151, + -9.3705885508 + ], + [ + -36.58890362492, + -9.37057796513 + ], + [ + -36.59064169636, + -9.37065206481 + ], + [ + -36.59389253369, + -9.37059913647 + ], + [ + -36.60037275067, + -9.37072616447 + ], + [ + -36.61045785656, + -9.37049327977 + ], + [ + -36.62288184872, + -9.37020746651 + ], + [ + -36.63377161732, + -9.3700169242 + ], + [ + -36.63835283032, + -9.36985813887 + ], + [ + -36.64742942562, + -9.36997458145 + ], + [ + -36.6514098238, + -9.36994282439 + ], + [ + -36.6553365778, + -9.36972052485 + ], + [ + -36.65647383442, + -9.36974169624 + ], + [ + -36.6611086916, + -9.37023922355 + ], + [ + -36.66276093235, + -9.37026039491 + ], + [ + -36.66704173794, + -9.36973111055 + ], + [ + -36.67051788082, + -9.36965701067 + ], + [ + -36.67325373402, + -9.36965701067 + ], + [ + -36.67602177372, + -9.36986872456 + ], + [ + -36.6759252142, + -9.3725998221 + ], + [ + -36.67596812954, + -9.37679169746 + ], + [ + -36.67638655415, + -9.38137517998 + ], + [ + -36.67653675785, + -9.38463544939 + ], + [ + -36.67663331738, + -9.39264838381 + ], + [ + -36.67675133457, + -9.39829014058 + ], + [ + -36.67689080944, + -9.40874778795 + ], + [ + -36.67707319966, + -9.41886642501 + ], + [ + -36.67716975918, + -9.43178948329 + ], + [ + -36.67724486103, + -9.43394857114 + ], + [ + -36.67718048802, + -9.43752585362 + ], + [ + -36.67727704754, + -9.44311396022 + ], + [ + -36.67729850521, + -9.449326389 + ], + [ + -36.67740579357, + -9.45528471196 + ], + [ + -36.67739506474, + -9.4593803377 + ], + [ + -36.67735214939, + -9.46017405798 + ], + [ + -36.67567845097, + -9.46020580675 + ], + [ + -36.66624780407, + -9.46030105305 + ], + [ + -36.66223521938, + -9.46030105305 + ], + [ + -36.65736432781, + -9.46041746516 + ], + [ + -36.65040131321, + -9.46047037975 + ], + [ + -36.63543458691, + -9.46065028927 + ], + [ + -36.61979194393, + -9.46083019869 + ], + [ + -36.61433096638, + -9.46083019869 + ], + [ + -36.61028619518, + -9.46096777643 + ], + [ + -36.60646672955, + -9.46096777643 + ], + [ + -36.60186405888, + -9.46098894223 + ], + [ + -36.59425731411, + -9.461115937 + ], + [ + -36.58663984051, + -9.46124293173 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "Pangasinan_Bulacan_HiRes", "name": "Pangasinán/Bulacan (Philippines HiRes)", @@ -58117,6 +83321,926 @@ ] ] }, + { + "id": "pao_de_acucar", + "name": "Pão de Açucar AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Pao%20de%20Acucar&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.39002812509, + -9.78589413544 + ], + [ + -37.39018686777, + -9.77619515195 + ], + [ + -37.38992540924, + -9.76575048432 + ], + [ + -37.38990673363, + -9.75256304825 + ], + [ + -37.39014951655, + -9.7410224633 + ], + [ + -37.39002812509, + -9.73201243097 + ], + [ + -37.39012150314, + -9.72254197161 + ], + [ + -37.39014951655, + -9.71288716505 + ], + [ + -37.39018686777, + -9.7034069601 + ], + [ + -37.39019620557, + -9.69548203924 + ], + [ + -37.40377337333, + -9.6955004481 + ], + [ + -37.41727583865, + -9.69560169682 + ], + [ + -37.43223500148, + -9.69569374108 + ], + [ + -37.44318824617, + -9.69573055877 + ], + [ + -37.44723151552, + -9.69582260299 + ], + [ + -37.45682144076, + -9.69585021626 + ], + [ + -37.47062271582, + -9.69591464719 + ], + [ + -37.47373220472, + -9.69590544277 + ], + [ + -37.47586122415, + -9.69604350903 + ], + [ + -37.48127715077, + -9.69605271344 + ], + [ + -37.48131450199, + -9.69889686551 + ], + [ + -37.48122112394, + -9.70086658775 + ], + [ + -37.48121178614, + -9.70238529092 + ], + [ + -37.48135185321, + -9.70545028909 + ], + [ + -37.48137986662, + -9.71045731285 + ], + [ + -37.4813425154, + -9.71617295985 + ], + [ + -37.48120244833, + -9.71875003124 + ], + [ + -37.48124913736, + -9.72035148703 + ], + [ + -37.48136119101, + -9.7213362865 + ], + [ + -37.4813425154, + -9.72409739103 + ], + [ + -37.48129582638, + -9.72506377223 + ], + [ + -37.48103436785, + -9.72731865083 + ], + [ + -37.48101569224, + -9.73088040767 + ], + [ + -37.48126781296, + -9.73461699032 + ], + [ + -37.48130516418, + -9.73638402962 + ], + [ + -37.48131450199, + -9.73893333547 + ], + [ + -37.48131450199, + -9.74387543612 + ], + [ + -37.48129582638, + -9.7498850055 + ], + [ + -37.48122112394, + -9.75315203071 + ], + [ + -37.48101569224, + -9.75855405565 + ], + [ + -37.48083827396, + -9.76419525907 + ], + [ + -37.48084761176, + -9.76526275174 + ], + [ + -37.48094098981, + -9.76675355473 + ], + [ + -37.480931652, + -9.76881490096 + ], + [ + -37.48083827396, + -9.77210014513 + ], + [ + -37.48086628737, + -9.77486082942 + ], + [ + -37.48076357152, + -9.77993122654 + ], + [ + -37.48081026054, + -9.78629902044 + ], + [ + -37.46381545633, + -9.78622540502 + ], + [ + -37.45353453357, + -9.78619779924 + ], + [ + -37.43978928533, + -9.78610577993 + ], + [ + -37.42997525279, + -9.78606897221 + ], + [ + -37.42079619096, + -9.78600455867 + ], + [ + -37.40852631583, + -9.785958549 + ], + [ + -37.39545338951, + -9.78593094319 + ], + [ + -37.39002812509, + -9.78589413544 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "PCN-Italy-2006", + "name": "PCN 2006 - Italy", + "type": "wms", + "template": "http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/ortofoto_colore_06.map&FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=OI.ORTOIMMAGINI.2006.33,OI.ORTOIMMAGINI.2006.32&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 7.5479525, + 43.731183 + ], + [ + 8.106966, + 43.86700730000001 + ], + [ + 8.7359333, + 44.389436700000005 + ], + [ + 10.183382, + 43.85116399999999 + ], + [ + 9.5501637, + 43.13604889999999 + ], + [ + 10.2772473, + 42.27514580000001 + ], + [ + 11.6974829, + 42.08117770000001 + ], + [ + 12.900592000000001, + 40.84896839999998 + ], + [ + 14.9746632, + 40.208691200000004 + ], + [ + 16.0477306, + 38.895298899999986 + ], + [ + 13.1085959, + 38.74113290000001 + ], + [ + 11.7771711, + 37.9360538 + ], + [ + 14.406238300000002, + 36.74298800000001 + ], + [ + 15.134669000000002, + 36.59363599999999 + ], + [ + 15.428667100000002, + 37.0270026 + ], + [ + 15.2199268, + 37.43375560000001 + ], + [ + 15.483598700000002, + 37.929356000000006 + ], + [ + 16.0164356, + 37.8035964 + ], + [ + 17.216692, + 38.87424630000002 + ], + [ + 17.216692, + 39.40468200000001 + ], + [ + 16.5547657, + 39.7877476 + ], + [ + 17.0546436, + 40.451437900000016 + ], + [ + 18.3290577, + 39.70538770000001 + ], + [ + 18.687732, + 40.05870289999999 + ], + [ + 18.0496375, + 40.67064450000001 + ], + [ + 16.005449300000002, + 41.5212225 + ], + [ + 16.3844776, + 41.85963759999999 + ], + [ + 15.5183696, + 42.15369720000001 + ], + [ + 14.5799732, + 42.246104100000004 + ], + [ + 13.5609913, + 43.65127720000002 + ], + [ + 12.5788936, + 44.08670100000001 + ], + [ + 12.2879505, + 44.6220446 + ], + [ + 12.563982, + 44.9709164 + ], + [ + 12.3415089, + 45.1745803 + ], + [ + 12.4169596, + 45.4055695 + ], + [ + 13.092517900000002, + 45.6282626 + ], + [ + 13.6954906, + 45.70805899999999 + ], + [ + 13.78445, + 45.5825 + ], + [ + 13.919100000000002, + 45.63220000000001 + ], + [ + 13.8235, + 45.717600000000004 + ], + [ + 13.59784, + 45.807199999999995 + ], + [ + 13.64307, + 45.98326 + ], + [ + 13.52963, + 45.965879999999984 + ], + [ + 13.47474, + 46.00546 + ], + [ + 13.66472, + 46.17392000000001 + ], + [ + 13.47587, + 46.22724999999999 + ], + [ + 13.42218, + 46.20758 + ], + [ + 13.37671, + 46.296679999999995 + ], + [ + 13.59777, + 46.441370000000006 + ], + [ + 13.68684, + 46.43880999999999 + ], + [ + 13.7148, + 46.522200000000005 + ], + [ + 12.9151, + 46.60953 + ], + [ + 12.38708, + 46.715289999999996 + ], + [ + 12.27591, + 46.88651 + ], + [ + 12.17486, + 46.908950000000004 + ], + [ + 12.11675, + 47.01240999999999 + ], + [ + 12.21781, + 47.039959999999994 + ], + [ + 12.19254, + 47.09331000000001 + ], + [ + 11.74789, + 46.984840000000005 + ], + [ + 11.33355, + 46.99862000000002 + ], + [ + 11.10618, + 46.92966000000001 + ], + [ + 11.00764, + 46.76896 + ], + [ + 10.72974, + 46.78972 + ], + [ + 10.75753, + 46.82258000000001 + ], + [ + 10.66405, + 46.87613999999999 + ], + [ + 10.47197, + 46.85698000000001 + ], + [ + 10.38659, + 46.678470000000004 + ], + [ + 10.49375, + 46.620490000000004 + ], + [ + 10.46136, + 46.53164 + ], + [ + 10.25309, + 46.574319999999986 + ], + [ + 10.23674, + 46.634840000000004 + ], + [ + 10.10307, + 46.610030000000016 + ], + [ + 10.03715, + 46.44479 + ], + [ + 10.165, + 46.410509999999995 + ], + [ + 10.10506, + 46.33719999999999 + ], + [ + 10.17862, + 46.25625999999999 + ], + [ + 10.07055, + 46.216680000000004 + ], + [ + 9.95249, + 46.38045000000001 + ], + [ + 9.73086, + 46.35071 + ], + [ + 9.71273, + 46.292660000000005 + ], + [ + 9.57015, + 46.29580000000001 + ], + [ + 9.46117, + 46.374810000000004 + ], + [ + 9.459360000000002, + 46.50873 + ], + [ + 9.40487, + 46.46620999999998 + ], + [ + 9.36128, + 46.5081 + ], + [ + 9.28136, + 46.496849999999995 + ], + [ + 9.24503, + 46.236160000000005 + ], + [ + 8.9560061, + 45.96502739999999 + ], + [ + 9.09065, + 45.89905999999999 + ], + [ + 9.0298, + 45.821270000000005 + ], + [ + 8.90992, + 45.833299999999994 + ], + [ + 8.9408, + 45.86681999999999 + ], + [ + 8.88904, + 45.95465000000001 + ], + [ + 8.78551, + 45.99063000000001 + ], + [ + 8.85617, + 46.07480000000001 + ], + [ + 8.62242, + 46.121120000000005 + ], + [ + 8.45032, + 46.26869000000001 + ], + [ + 8.42464, + 46.46366999999999 + ], + [ + 8.08814, + 46.266920000000006 + ], + [ + 8.15493, + 46.183399999999985 + ], + [ + 8.11383, + 46.11577 + ], + [ + 8.02906, + 46.10330999999999 + ], + [ + 7.98881, + 45.99867 + ], + [ + 7.9049000000000005, + 45.99945 + ], + [ + 7.859490000000001, + 45.91485000000001 + ], + [ + 7.563430000000001, + 45.97421 + ], + [ + 7.10685, + 45.85652999999999 + ], + [ + 7.04151, + 45.92434999999999 + ], + [ + 6.95315, + 45.85163000000001 + ], + [ + 6.80785, + 45.832649999999994 + ], + [ + 6.80785, + 45.71864 + ], + [ + 6.98948, + 45.63869 + ], + [ + 7.00037, + 45.50900000000001 + ], + [ + 7.18019, + 45.40070999999998 + ], + [ + 7.10572, + 45.32924 + ], + [ + 7.13115, + 45.25386 + ], + [ + 6.851440000000001, + 45.132259999999995 + ], + [ + 6.7697, + 45.16044 + ], + [ + 6.62803, + 45.111749999999994 + ], + [ + 6.66981, + 45.02324000000001 + ], + [ + 6.74791, + 45.01939 + ], + [ + 6.75518, + 44.899150000000006 + ], + [ + 7.022170000000001, + 44.82519 + ], + [ + 7.07484, + 44.680730000000004 + ], + [ + 6.9513300000000005, + 44.66264 + ], + [ + 6.85507, + 44.53072 + ], + [ + 6.94504, + 44.431119999999986 + ], + [ + 6.88784, + 44.42043 + ], + [ + 6.891710000000001, + 44.36637000000001 + ], + [ + 7.007640000000001, + 44.23735999999999 + ], + [ + 7.363640000000001, + 44.11881999999999 + ], + [ + 7.68694, + 44.17487 + ], + [ + 7.725079999999999, + 44.07578000000001 + ], + [ + 7.493549999999999, + 43.86551 + ], + [ + 7.5479525, + 43.731183 + ] + ], + [ + [ + 8.171339, + 39.148484300000014 + ], + [ + 8.6245251, + 38.75118870000001 + ], + [ + 9.0983105, + 39.037636700000014 + ], + [ + 9.0310192, + 39.13144220000001 + ], + [ + 9.265852000000002, + 39.1857496 + ], + [ + 9.6407604, + 39.0227016 + ], + [ + 9.8989391, + 40.6799061 + ], + [ + 9.5006847, + 41.392570299999996 + ], + [ + 8.303175, + 40.91070760000001 + ], + [ + 8.4130383, + 41.16138739999999 + ], + [ + 8.2125378, + 41.1386378 + ], + [ + 8.0752087, + 40.598623299999986 + ], + [ + 8.3615398, + 40.34999509999999 + ], + [ + 8.2791424, + 39.985851200000006 + ], + [ + 8.3828259, + 39.65359839999999 + ], + [ + 8.171339, + 39.148484300000014 + ] + ], + [ + [ + 12.514886900000002, + 35.53423470000001 + ], + [ + 12.640543, + 35.5306027 + ], + [ + 12.6386149, + 35.486413600000006 + ], + [ + 12.512958700000002, + 35.4900477 + ], + [ + 12.514886900000002, + 35.53423470000001 + ] + ], + [ + [ + 11.9121838, + 36.8568754 + ], + [ + 12.081785200000002, + 36.8552271 + ], + [ + 12.0795789, + 36.7097361 + ], + [ + 11.9099774, + 36.71138750000001 + ], + [ + 11.9121838, + 36.8568754 + ] + ], + [ + [ + 12.8401852, + 35.881314200000006 + ], + [ + 12.8918552, + 35.8814533 + ], + [ + 12.891984, + 35.850033999999994 + ], + [ + 12.840314, + 35.8498949 + ], + [ + 12.8401852, + 35.881314200000006 + ] + ] + ] + }, { "id": "Actueel_ortho25_WMTS", "name": "PDOK Luchtfoto Beeldmateriaal 25cm", @@ -58350,12 +84474,377 @@ ] ] ], - "terms_url": "http://www.nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/search?facet.q=license%2FCC-BY&isChild=%27false%27&resultType=details&any_OR_title_OR_keyword=luchtfoto&fast=index&_content_type=json&from=1&to=20&sortBy=relevance", + "terms_url": "https://www.nationaalgeoregister.nl/geonetwork/srv/dut/catalog.search#/search?facet.q=license%2FCC-BY&isChild=%27false%27&resultType=details&any_OR_title_OR_keyword=luchtfoto&fast=index&_content_type=json&from=1&to=20&sortBy=relevance", "terms_text": "Kadaster / Beeldmateriaal.nl, CC BY 4.0", "best": true, "description": "Landsdekkende dataset 25cm resolutie kleuren luchtfotos van de meest recente jaargang.", "icon": "data:image/png;base64,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" }, + { + "id": "Philadelphia2015Imagery", + "name": "Philadelphia 2015 Imagery", + "type": "wms", + "template": "http://maps.pasda.psu.edu/arcgis/services/pasda/PhiladelphiaImagery2015/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -75.2884151414, + 39.82486515846 + ], + [ + -75.24549979717, + 39.82381045509 + ], + [ + -75.20464438945, + 39.83699308346 + ], + [ + -75.16619224101, + 39.8738909832 + ], + [ + -75.11572379619, + 39.87415446828 + ], + [ + -75.11057395488, + 39.95289110072 + ], + [ + -75.09649772197, + 39.95289110072 + ], + [ + -75.04293937236, + 39.98525480677 + ], + [ + -75.04156608135, + 40.00340334729 + ], + [ + -75.01616019756, + 40.00340334729 + ], + [ + -74.95161551982, + 40.04284005685 + ], + [ + -74.95127219707, + 40.1195447926 + ], + [ + -74.98586196452, + 40.14021663243 + ], + [ + -75.02834815532, + 40.14152891793 + ], + [ + -75.11898536235, + 40.06458621765 + ], + [ + -75.20309943706, + 40.10713867106 + ], + [ + -75.23434180766, + 40.09794749237 + ], + [ + -75.27416724712, + 40.05354975847 + ], + [ + -75.22095222026, + 40.00964901184 + ], + [ + -75.29510993511, + 39.97545522066 + ], + [ + -75.25734443218, + 39.95203575437 + ], + [ + -75.26009101421, + 39.91675985472 + ], + [ + -75.32085914165, + 39.8885787312 + ], + [ + -75.32257575542, + 39.8514251597 + ], + [ + -75.2884151414, + 39.82486515846 + ] + ] + ], + "terms_url": "http://www.pasda.psu.edu/" + }, + { + "id": "al_piranhas", + "name": "Piranhas AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Piranhas&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.71917577496, + -9.65235879937 + ], + [ + -37.71917577496, + -9.63873541198 + ], + [ + -37.71914358845, + -9.63210333094 + ], + [ + -37.71924014797, + -9.62114477442 + ], + [ + -37.71929379215, + -9.61022817566 + ], + [ + -37.7193367075, + -9.59988246925 + ], + [ + -37.71940108051, + -9.58891229023 + ], + [ + -37.71945472469, + -9.57801581129 + ], + [ + -37.71944399586, + -9.57173166346 + ], + [ + -37.71951909771, + -9.56684391256 + ], + [ + -37.71956201306, + -9.56225232497 + ], + [ + -37.71998043766, + -9.5621782666 + ], + [ + -37.72257681599, + -9.56194551161 + ], + [ + -37.72817726841, + -9.56203014981 + ], + [ + -37.73254390469, + -9.56199841049 + ], + [ + -37.74107332935, + -9.56206188913 + ], + [ + -37.74845476856, + -9.56201957003 + ], + [ + -37.75925870648, + -9.56215710706 + ], + [ + -37.76971932163, + -9.56227348451 + ], + [ + -37.78036232701, + -9.56244276071 + ], + [ + -37.78537269344, + -9.56235812262 + ], + [ + -37.78907414189, + -9.56232638333 + ], + [ + -37.79561873188, + -9.56245334047 + ], + [ + -37.79771085491, + -9.56236870238 + ], + [ + -37.81005974522, + -9.56243218095 + ], + [ + -37.81060691586, + -9.56241102143 + ], + [ + -37.810531814, + -9.5653098637 + ], + [ + -37.81048889866, + -9.57629138499 + ], + [ + -37.81045671215, + -9.58742065699 + ], + [ + -37.8103816103, + -9.59756574935 + ], + [ + -37.81030650845, + -9.61798195891 + ], + [ + -37.81017776241, + -9.65196745198 + ], + [ + -37.81017776241, + -9.65229533767 + ], + [ + -37.81024213543, + -9.6525914922 + ], + [ + -37.80663724651, + -9.65245399191 + ], + [ + -37.80205603352, + -9.65252803054 + ], + [ + -37.79597278347, + -9.65236937632 + ], + [ + -37.79178853741, + -9.65251745359 + ], + [ + -37.78815146198, + -9.65246456886 + ], + [ + -37.78722878208, + -9.65242226107 + ], + [ + -37.78035159817, + -9.65241168412 + ], + [ + -37.77864571324, + -9.65223187594 + ], + [ + -37.77625318279, + -9.65229533767 + ], + [ + -37.77475114575, + -9.65218956812 + ], + [ + -37.77233715763, + -9.65223187594 + ], + [ + -37.76960130444, + -9.65245399191 + ], + [ + -37.76623244991, + -9.65250687665 + ], + [ + -37.76345368138, + -9.65246456886 + ], + [ + -37.7603959631, + -9.6524962997 + ], + [ + -37.75101896038, + -9.65236937632 + ], + [ + -37.75011773815, + -9.65248572275 + ], + [ + -37.74154539814, + -9.65247514581 + ], + [ + -37.74030085316, + -9.65239053022 + ], + [ + -37.73785467854, + -9.65246456886 + ], + [ + -37.73443217983, + -9.65237995327 + ], + [ + -37.73106332531, + -9.65243283802 + ], + [ + -37.72651429882, + -9.65236937632 + ], + [ + -37.7219545435, + -9.65225302985 + ], + [ + -37.71991606465, + -9.65228476071 + ], + [ + -37.71917577496, + -9.65235879937 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "PNOA-Spain-TMS", "name": "PNOA Spain", @@ -60696,6 +87185,3276 @@ "terms_text": "PNOA", "best": true }, + { + "id": "poco_das_trincheiras", + "name": "Poço das Trincheiras AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Poco%20das%20Trincheiras&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.23941602841, + -9.35156513689 + ], + [ + -37.23946967259, + -9.34386884913 + ], + [ + -37.23941602841, + -9.3379191951 + ], + [ + -37.23954477444, + -9.33022260582 + ], + [ + -37.23972716465, + -9.32791465461 + ], + [ + -37.23973789349, + -9.32280111197 + ], + [ + -37.23964133396, + -9.32085307601 + ], + [ + -37.23970570698, + -9.31864034808 + ], + [ + -37.2398022665, + -9.31706284448 + ], + [ + -37.23982372418, + -9.31561238186 + ], + [ + -37.24053182736, + -9.30933403261 + ], + [ + -37.24051036968, + -9.30003805717 + ], + [ + -37.24008121624, + -9.29687228705 + ], + [ + -37.23998465672, + -9.29546409248 + ], + [ + -37.2399202837, + -9.29318767574 + ], + [ + -37.23988809719, + -9.28977831694 + ], + [ + -37.23995247021, + -9.28817950681 + ], + [ + -37.24008121624, + -9.28641127785 + ], + [ + -37.24036016598, + -9.28212302085 + ], + [ + -37.24038162365, + -9.27896767726 + ], + [ + -37.24051036968, + -9.27556876869 + ], + [ + -37.2400383009, + -9.26978737192 + ], + [ + -37.24017777577, + -9.26721430207 + ], + [ + -37.24017777577, + -9.26612365361 + ], + [ + -37.23995247021, + -9.26454591343 + ], + [ + -37.23983445301, + -9.26150689057 + ], + [ + -37.24333205357, + -9.26135864488 + ], + [ + -37.24936165943, + -9.26146453466 + ], + [ + -37.26444640293, + -9.26161278031 + ], + [ + -37.28016414776, + -9.26171867001 + ], + [ + -37.2829429163, + -9.26170808105 + ], + [ + -37.29580679074, + -9.26178220382 + ], + [ + -37.30684676304, + -9.26178220382 + ], + [ + -37.31418528691, + -9.26188809348 + ], + [ + -37.32436695233, + -9.26191986037 + ], + [ + -37.33078279629, + -9.26175043692 + ], + [ + -37.33056821957, + -9.27275220267 + ], + [ + -37.33048238888, + -9.28006887422 + ], + [ + -37.33053603306, + -9.28117006773 + ], + [ + -37.33068623677, + -9.28427245005 + ], + [ + -37.3306969656, + -9.28535245384 + ], + [ + -37.33064332142, + -9.28616774861 + ], + [ + -37.33070769444, + -9.28717362916 + ], + [ + -37.33064332142, + -9.28769245062 + ], + [ + -37.33062186375, + -9.29026537022 + ], + [ + -37.3304287447, + -9.29308179553 + ], + [ + -37.33037510052, + -9.29655464967 + ], + [ + -37.33034291401, + -9.3059142435 + ], + [ + -37.33039655819, + -9.31203384249 + ], + [ + -37.33037510052, + -9.321943554 + ], + [ + -37.33040728703, + -9.33420325643 + ], + [ + -37.33035364285, + -9.34184682509 + ], + [ + -37.33029999867, + -9.3478281711 + ], + [ + -37.33035364285, + -9.35202034528 + ], + [ + -37.31508650913, + -9.35193565539 + ], + [ + -37.300109054, + -9.35190389668 + ], + [ + -37.29531326428, + -9.351829793 + ], + [ + -37.28899397984, + -9.35171334434 + ], + [ + -37.28497066632, + -9.35181920676 + ], + [ + -37.27851190701, + -9.35173451683 + ], + [ + -37.27430620327, + -9.35180862052 + ], + [ + -37.27115192547, + -9.35170275809 + ], + [ + -37.2635129942, + -9.3516815856 + ], + [ + -37.26045527592, + -9.35163924062 + ], + [ + -37.25401797428, + -9.35176627555 + ], + [ + -37.24705495968, + -9.35162865438 + ], + [ + -37.23941602841, + -9.35156513689 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "route500", + "name": "Route 500", + "type": "tms", + "template": "http://{switch:a,b,c}.tile.openstreetmap.fr/route500/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 12, + 20 + ], + "polygon": [ + [ + [ + -2.7, + 43.9 + ], + [ + -6.3, + 48.98 + ], + [ + -2.25, + 50.09 + ], + [ + 1.31, + 50.88 + ], + [ + 2.358164, + 51.32937 + ], + [ + 2.548804, + 51.09759 + ], + [ + 2.570482, + 51.07409 + ], + [ + 2.587412, + 51.01763 + ], + [ + 2.598448, + 51.0051 + ], + [ + 2.615575, + 50.99749 + ], + [ + 2.639859, + 50.95766 + ], + [ + 2.642247, + 50.94578 + ], + [ + 2.624519, + 50.9256 + ], + [ + 2.61962, + 50.91067 + ], + [ + 2.623964, + 50.86071 + ], + [ + 2.627811, + 50.85054 + ], + [ + 2.637859, + 50.83696 + ], + [ + 2.651102, + 50.82906 + ], + [ + 2.732666, + 50.81738 + ], + [ + 2.79995, + 50.73795 + ], + [ + 2.816552, + 50.73092 + ], + [ + 2.852648, + 50.73335 + ], + [ + 2.890719, + 50.7162 + ], + [ + 2.904925, + 50.71536 + ], + [ + 2.916096, + 50.72418 + ], + [ + 2.935084, + 50.75592 + ], + [ + 3.007184, + 50.78377 + ], + [ + 3.082183, + 50.78749 + ], + [ + 3.092439, + 50.79092 + ], + [ + 3.114119, + 50.80566 + ], + [ + 3.148768, + 50.80195 + ], + [ + 3.215401, + 50.73111 + ], + [ + 3.221487, + 50.7267 + ], + [ + 3.270507, + 50.70375 + ], + [ + 3.275448, + 50.67757 + ], + [ + 3.265761, + 50.6604 + ], + [ + 3.265877, + 50.64054 + ], + [ + 3.289219, + 50.60028 + ], + [ + 3.292195, + 50.55037 + ], + [ + 3.305598, + 50.53267 + ], + [ + 3.375514, + 50.50839 + ], + [ + 3.389804, + 50.50884 + ], + [ + 3.474798, + 50.54445 + ], + [ + 3.52173, + 50.53459 + ], + [ + 3.532662, + 50.51873 + ], + [ + 3.547788, + 50.51012 + ], + [ + 3.615234, + 50.50558 + ], + [ + 3.673778, + 50.45642 + ], + [ + 3.684152, + 50.35277 + ], + [ + 3.690097, + 50.34044 + ], + [ + 3.702583, + 50.33482 + ], + [ + 3.715758, + 50.33854 + ], + [ + 3.749349, + 50.36279 + ], + [ + 3.841089, + 50.36558 + ], + [ + 3.901887, + 50.3436 + ], + [ + 3.913173, + 50.34291 + ], + [ + 4.026717, + 50.36904 + ], + [ + 4.13761, + 50.29984 + ], + [ + 4.143881, + 50.29727 + ], + [ + 4.214438, + 50.28167 + ], + [ + 4.229037, + 50.26664 + ], + [ + 4.230782, + 50.25233 + ], + [ + 4.170843, + 50.18579 + ], + [ + 4.166015, + 50.16888 + ], + [ + 4.176401, + 50.1547 + ], + [ + 4.211948, + 50.13602 + ], + [ + 4.240742, + 50.07102 + ], + [ + 4.231934, + 50.05551 + ], + [ + 4.181645, + 50.03436 + ], + [ + 4.17177, + 50.02537 + ], + [ + 4.169755, + 50.01217 + ], + [ + 4.176498, + 50.00065 + ], + [ + 4.206331, + 49.97546 + ], + [ + 4.221639, + 49.97089 + ], + [ + 4.308774, + 49.98145 + ], + [ + 4.445423, + 49.9523 + ], + [ + 4.454691, + 49.95251 + ], + [ + 4.658098, + 50.00609 + ], + [ + 4.669358, + 50.01392 + ], + [ + 4.672929, + 50.02716 + ], + [ + 4.66924, + 50.06972 + ], + [ + 4.695168, + 50.10472 + ], + [ + 4.831227, + 50.17941 + ], + [ + 4.881497, + 50.16436 + ], + [ + 4.904786, + 50.14451 + ], + [ + 4.904264, + 50.12639 + ], + [ + 4.880762, + 50.0815 + ], + [ + 4.862772, + 50.0745 + ], + [ + 4.851037, + 50.06216 + ], + [ + 4.843307, + 50.03884 + ], + [ + 4.843307, + 50.03883 + ], + [ + 4.843295, + 50.03881 + ], + [ + 4.826781, + 49.989 + ], + [ + 4.826618, + 49.97692 + ], + [ + 4.833433, + 49.96696 + ], + [ + 4.896542, + 49.91753 + ], + [ + 4.897546, + 49.89424 + ], + [ + 4.879134, + 49.86942 + ], + [ + 4.876249, + 49.85111 + ], + [ + 4.889238, + 49.81266 + ], + [ + 4.897691, + 49.80204 + ], + [ + 4.910979, + 49.79926 + ], + [ + 4.995343, + 49.81116 + ], + [ + 5.01867, + 49.79272 + ], + [ + 5.026862, + 49.78886 + ], + [ + 5.099438, + 49.77323 + ], + [ + 5.134584, + 49.73462 + ], + [ + 5.141201, + 49.72984 + ], + [ + 5.187609, + 49.70906 + ], + [ + 5.196025, + 49.70732 + ], + [ + 5.281572, + 49.70836 + ], + [ + 5.333628, + 49.67308 + ], + [ + 5.343996, + 49.65049 + ], + [ + 5.354398, + 49.64041 + ], + [ + 5.431412, + 49.60791 + ], + [ + 5.482051, + 49.52815 + ], + [ + 5.492943, + 49.51979 + ], + [ + 5.50666, + 49.52042 + ], + [ + 5.55401, + 49.54025 + ], + [ + 5.59311, + 49.53424 + ], + [ + 5.607602, + 49.53761 + ], + [ + 5.640997, + 49.56095 + ], + [ + 5.706759, + 49.55267 + ], + [ + 5.715782, + 49.55361 + ], + [ + 5.775261, + 49.57414 + ], + [ + 5.839902, + 49.55321 + ], + [ + 5.861263, + 49.52038 + ], + [ + 5.875997, + 49.5114 + ], + [ + 5.975162, + 49.50129 + ], + [ + 5.998015, + 49.47317 + ], + [ + 6.016266, + 49.46597 + ], + [ + 6.08635, + 49.47562 + ], + [ + 6.093186, + 49.47787 + ], + [ + 6.173966, + 49.52187 + ], + [ + 6.246435, + 49.52511 + ], + [ + 6.333999, + 49.48235 + ], + [ + 6.344229, + 49.48037 + ], + [ + 6.435145, + 49.487 + ], + [ + 6.5451, + 49.44384 + ], + [ + 6.606389, + 49.37868 + ], + [ + 6.604972, + 49.33739 + ], + [ + 6.616267, + 49.31869 + ], + [ + 6.670133, + 49.29269 + ], + [ + 6.729955, + 49.22917 + ], + [ + 6.743276, + 49.19086 + ], + [ + 6.760259, + 49.17752 + ], + [ + 6.809042, + 49.17284 + ], + [ + 6.824733, + 49.17826 + ], + [ + 6.830928, + 49.19366 + ], + [ + 6.829819, + 49.21802 + ], + [ + 6.851186, + 49.23136 + ], + [ + 6.884528, + 49.2239 + ], + [ + 6.893221, + 49.22389 + ], + [ + 6.937527, + 49.23369 + ], + [ + 7.040549, + 49.19794 + ], + [ + 7.046296, + 49.17503 + ], + [ + 7.054777, + 49.16313 + ], + [ + 7.069081, + 49.16018 + ], + [ + 7.104945, + 49.16634 + ], + [ + 7.143153, + 49.14159 + ], + [ + 7.153499, + 49.13839 + ], + [ + 7.286827, + 49.13488 + ], + [ + 7.29893, + 49.13856 + ], + [ + 7.360948, + 49.18259 + ], + [ + 7.450116, + 49.19517 + ], + [ + 7.50113, + 49.17672 + ], + [ + 7.543788, + 49.10572 + ], + [ + 7.557903, + 49.09626 + ], + [ + 7.629604, + 49.08527 + ], + [ + 7.647217, + 49.06722 + ], + [ + 7.661197, + 49.06119 + ], + [ + 7.754008, + 49.05963 + ], + [ + 7.760731, + 49.06067 + ], + [ + 7.802913, + 49.07489 + ], + [ + 7.855253, + 49.05329 + ], + [ + 7.867297, + 49.05227 + ], + [ + 7.93826, + 49.06832 + ], + [ + 8.080685, + 49.00688 + ], + [ + 8.222498, + 48.98787 + ], + [ + 8.23704, + 48.97683 + ], + [ + 8.235894, + 48.95817 + ], + [ + 8.208878, + 48.94863 + ], + [ + 8.200888, + 48.94339 + ], + [ + 8.158243, + 48.89753 + ], + [ + 8.100873, + 48.7993 + ], + [ + 7.990709, + 48.74478 + ], + [ + 7.985341, + 48.7409 + ], + [ + 7.904217, + 48.65865 + ], + [ + 7.856051, + 48.63606 + ], + [ + 7.848405, + 48.62977 + ], + [ + 7.818424, + 48.58883 + ], + [ + 7.81456, + 48.57704 + ], + [ + 7.814491, + 48.50968 + ], + [ + 7.785465, + 48.48337 + ], + [ + 7.780554, + 48.47652 + ], + [ + 7.745059, + 48.39484 + ], + [ + 7.743573, + 48.38427 + ], + [ + 7.751593, + 48.32322 + ], + [ + 7.71085, + 48.29841 + ], + [ + 7.702411, + 48.28803 + ], + [ + 7.676613, + 48.21555 + ], + [ + 7.596051, + 48.11698 + ], + [ + 7.591652, + 48.10648 + ], + [ + 7.585216, + 48.04694 + ], + [ + 7.591268, + 48.03035 + ], + [ + 7.624373, + 47.99865 + ], + [ + 7.632049, + 47.97081 + ], + [ + 7.575545, + 47.87436 + ], + [ + 7.572802, + 47.86435 + ], + [ + 7.572673, + 47.83631 + ], + [ + 7.545808, + 47.78793 + ], + [ + 7.544185, + 47.77232 + ], + [ + 7.557581, + 47.72899 + ], + [ + 7.535257, + 47.6989 + ], + [ + 7.531364, + 47.68564 + ], + [ + 7.536998, + 47.67302 + ], + [ + 7.600164, + 47.60822 + ], + [ + 7.589675, + 47.56755 + ], + [ + 7.554237, + 47.55128 + ], + [ + 7.54511, + 47.54283 + ], + [ + 7.512557, + 47.48439 + ], + [ + 7.387471, + 47.42111 + ], + [ + 7.326527, + 47.4273 + ], + [ + 7.244354, + 47.40939 + ], + [ + 7.167083, + 47.4335 + ], + [ + 7.152115, + 47.47612 + ], + [ + 7.14279, + 47.48707 + ], + [ + 7.128529, + 47.48893 + ], + [ + 7.080105, + 47.47718 + ], + [ + 7.035575, + 47.48695 + ], + [ + 7.021019, + 47.48458 + ], + [ + 7.012048, + 47.47287 + ], + [ + 7.002995, + 47.44095 + ], + [ + 6.955099, + 47.40808 + ], + [ + 6.947157, + 47.39698 + ], + [ + 6.94818, + 47.38337 + ], + [ + 6.957691, + 47.37359 + ], + [ + 6.971263, + 47.37218 + ], + [ + 7.018004, + 47.38386 + ], + [ + 7.05623, + 47.37035 + ], + [ + 7.070073, + 47.35005 + ], + [ + 7.05958, + 47.32257 + ], + [ + 6.974243, + 47.27856 + ], + [ + 6.963469, + 47.26233 + ], + [ + 6.961339, + 47.23479 + ], + [ + 6.89443, + 47.19393 + ], + [ + 6.889128, + 47.18922 + ], + [ + 6.855453, + 47.14636 + ], + [ + 6.769073, + 47.10751 + ], + [ + 6.760108, + 47.09953 + ], + [ + 6.725613, + 47.0418 + ], + [ + 6.623551, + 46.9811 + ], + [ + 6.481204, + 46.9445 + ], + [ + 6.46892, + 46.93522 + ], + [ + 6.466862, + 46.91997 + ], + [ + 6.475476, + 46.88771 + ], + [ + 6.453496, + 46.8239 + ], + [ + 6.45644, + 46.80534 + ], + [ + 6.467224, + 46.79104 + ], + [ + 6.460984, + 46.76887 + ], + [ + 6.15817, + 46.59343 + ], + [ + 6.148724, + 46.58069 + ], + [ + 6.15152, + 46.56508 + ], + [ + 6.165489, + 46.54399 + ], + [ + 6.158111, + 46.52456 + ], + [ + 6.101739, + 46.46979 + ], + [ + 6.095717, + 46.45418 + ], + [ + 6.097044, + 46.43317 + ], + [ + 6.108289, + 46.41643 + ], + [ + 6.166216, + 46.38839 + ], + [ + 6.178173, + 46.36922 + ], + [ + 6.137482, + 46.31297 + ], + [ + 6.133713, + 46.30227 + ], + [ + 6.130383, + 46.23737 + ], + [ + 6.110298, + 46.22344 + ], + [ + 6.088648, + 46.23081 + ], + [ + 6.077173, + 46.23123 + ], + [ + 6.018573, + 46.21601 + ], + [ + 6.006813, + 46.20752 + ], + [ + 6.003882, + 46.19332 + ], + [ + 6.007866, + 46.16977 + ], + [ + 6.017834, + 46.15564 + ], + [ + 6.03509, + 46.15456 + ], + [ + 6.055639, + 46.16288 + ], + [ + 6.124683, + 46.15415 + ], + [ + 6.137776, + 46.15702 + ], + [ + 6.240258, + 46.22094 + ], + [ + 6.249058, + 46.23299 + ], + [ + 6.247073, + 46.24777 + ], + [ + 6.21148, + 46.31057 + ], + [ + 6.212186, + 46.32485 + ], + [ + 6.239462, + 46.36705 + ], + [ + 6.316478, + 46.41557 + ], + [ + 6.410826, + 46.42495 + ], + [ + 6.417483, + 46.42682 + ], + [ + 6.504978, + 46.46871 + ], + [ + 6.630473, + 46.47435 + ], + [ + 6.746646, + 46.45695 + ], + [ + 6.822442, + 46.42925 + ], + [ + 6.818324, + 46.38181 + ], + [ + 6.804843, + 46.36179 + ], + [ + 6.801885, + 46.34639 + ], + [ + 6.810949, + 46.33359 + ], + [ + 6.864911, + 46.30038 + ], + [ + 6.875036, + 46.28007 + ], + [ + 6.860917, + 46.2439 + ], + [ + 6.826978, + 46.21188 + ], + [ + 6.820746, + 46.19862 + ], + [ + 6.818627, + 46.16592 + ], + [ + 6.822593, + 46.15261 + ], + [ + 6.834266, + 46.14509 + ], + [ + 6.903819, + 46.12971 + ], + [ + 6.904911, + 46.09595 + ], + [ + 6.909323, + 46.08406 + ], + [ + 6.920006, + 46.07721 + ], + [ + 6.948976, + 46.0699 + ], + [ + 7.015561, + 46.00883 + ], + [ + 7.051911, + 45.93066 + ], + [ + 7.045335, + 45.92217 + ], + [ + 7.044967, + 45.92064 + ], + [ + 7.043936, + 45.92036 + ], + [ + 6.995822, + 45.85822 + ], + [ + 6.940965, + 45.83551 + ], + [ + 6.843757, + 45.82387 + ], + [ + 6.831016, + 45.81711 + ], + [ + 6.826141, + 45.80353 + ], + [ + 6.82787, + 45.73217 + ], + [ + 6.83174, + 45.72082 + ], + [ + 6.841405, + 45.71373 + ], + [ + 6.907294, + 45.69124 + ], + [ + 6.92419, + 45.66935 + ], + [ + 6.942468, + 45.66172 + ], + [ + 6.971313, + 45.66528 + ], + [ + 7.00597, + 45.64945 + ], + [ + 7.011511, + 45.63652 + ], + [ + 6.997797, + 45.60877 + ], + [ + 6.996431, + 45.59465 + ], + [ + 7.015803, + 45.52354 + ], + [ + 7.027743, + 45.5102 + ], + [ + 7.107198, + 45.47877 + ], + [ + 7.122797, + 45.44924 + ], + [ + 7.13304, + 45.44001 + ], + [ + 7.185604, + 45.41894 + ], + [ + 7.19515, + 45.40409 + ], + [ + 7.170749, + 45.35069 + ], + [ + 7.142319, + 45.32298 + ], + [ + 7.136488, + 45.30576 + ], + [ + 7.14458, + 45.25048 + ], + [ + 7.084166, + 45.20279 + ], + [ + 6.992792, + 45.19823 + ], + [ + 6.981064, + 45.19368 + ], + [ + 6.900091, + 45.12689 + ], + [ + 6.85843, + 45.11699 + ], + [ + 6.782826, + 45.14228 + ], + [ + 6.770557, + 45.14242 + ], + [ + 6.677507, + 45.11356 + ], + [ + 6.665295, + 45.10289 + ], + [ + 6.665008, + 45.08667 + ], + [ + 6.68237, + 45.04558 + ], + [ + 6.696016, + 45.03395 + ], + [ + 6.757442, + 45.01884 + ], + [ + 6.783751, + 44.9146 + ], + [ + 6.794195, + 44.90161 + ], + [ + 6.866981, + 44.86519 + ], + [ + 6.879801, + 44.86346 + ], + [ + 6.936325, + 44.87461 + ], + [ + 7.017954, + 44.84402 + ], + [ + 7.034535, + 44.82282 + ], + [ + 7.037114, + 44.75009 + ], + [ + 7.049604, + 44.73226 + ], + [ + 7.072236, + 44.72311 + ], + [ + 7.086508, + 44.6968 + ], + [ + 7.086656, + 44.68085 + ], + [ + 7.07671, + 44.67134 + ], + [ + 6.990071, + 44.67203 + ], + [ + 6.974128, + 44.66431 + ], + [ + 6.970564, + 44.64696 + ], + [ + 6.978189, + 44.61784 + ], + [ + 6.94659, + 44.57124 + ], + [ + 6.882347, + 44.53479 + ], + [ + 6.872327, + 44.5195 + ], + [ + 6.878925, + 44.50245 + ], + [ + 6.958945, + 44.43129 + ], + [ + 6.958723, + 44.42908 + ], + [ + 6.921668, + 44.41436 + ], + [ + 6.912225, + 44.40659 + ], + [ + 6.909075, + 44.39477 + ], + [ + 6.90972, + 44.38195 + ], + [ + 6.91637, + 44.36804 + ], + [ + 6.999091, + 44.29414 + ], + [ + 7.011806, + 44.256 + ], + [ + 7.019835, + 44.24558 + ], + [ + 7.032595, + 44.2424 + ], + [ + 7.073117, + 44.2461 + ], + [ + 7.165097, + 44.22112 + ], + [ + 7.245331, + 44.18544 + ], + [ + 7.260526, + 44.16682 + ], + [ + 7.275371, + 44.15947 + ], + [ + 7.338779, + 44.1574 + ], + [ + 7.362775, + 44.13834 + ], + [ + 7.377763, + 44.13416 + ], + [ + 7.56283, + 44.15792 + ], + [ + 7.5642, + 44.15836 + ], + [ + 7.564785, + 44.15817 + ], + [ + 7.605476, + 44.1634 + ], + [ + 7.616198, + 44.16827 + ], + [ + 7.639891, + 44.18928 + ], + [ + 7.686079, + 44.1861 + ], + [ + 7.69422, + 44.17795 + ], + [ + 7.68937, + 44.13869 + ], + [ + 7.694448, + 44.12276 + ], + [ + 7.727862, + 44.08615 + ], + [ + 7.724032, + 44.05704 + ], + [ + 7.686028, + 44.02371 + ], + [ + 7.680769, + 44.0164 + ], + [ + 7.660161, + 43.9672 + ], + [ + 7.596244, + 43.94466 + ], + [ + 7.584187, + 43.93287 + ], + [ + 7.568576, + 43.89159 + ], + [ + 7.527096, + 43.87434 + ], + [ + 7.516489, + 43.86397 + ], + [ + 7.51594, + 43.84915 + ], + [ + 7.53622, + 43.79234 + ], + [ + 9.8, + 43.1 + ], + [ + 9.63227, + 41.43244 + ], + [ + 9.369681, + 41.35052 + ], + [ + 9.273114, + 41.29196 + ], + [ + 8.941857, + 41.27688 + ], + [ + 5.8, + 41.64 + ], + [ + 3.173576, + 42.41768 + ], + [ + 3.160814, + 42.42757 + ], + [ + 3.094399, + 42.41457 + ], + [ + 3.034016, + 42.45331 + ], + [ + 3.022142, + 42.45645 + ], + [ + 2.878221, + 42.4487 + ], + [ + 2.870188, + 42.44653 + ], + [ + 2.784238, + 42.40256 + ], + [ + 2.741304, + 42.41128 + ], + [ + 2.729276, + 42.40998 + ], + [ + 2.693308, + 42.39417 + ], + [ + 2.683779, + 42.3854 + ], + [ + 2.681621, + 42.37263 + ], + [ + 2.685852, + 42.34679 + ], + [ + 2.66719, + 42.33008 + ], + [ + 2.581057, + 42.34418 + ], + [ + 2.567769, + 42.34173 + ], + [ + 2.533803, + 42.32197 + ], + [ + 2.477948, + 42.32986 + ], + [ + 2.419327, + 42.37658 + ], + [ + 2.41222, + 42.38021 + ], + [ + 2.267193, + 42.42055 + ], + [ + 2.259731, + 42.42117 + ], + [ + 2.206944, + 42.41558 + ], + [ + 2.206525, + 42.41526 + ], + [ + 2.205257, + 42.41541 + ], + [ + 2.160278, + 42.41065 + ], + [ + 2.148808, + 42.40545 + ], + [ + 2.093931, + 42.35474 + ], + [ + 2.008614, + 42.33818 + ], + [ + 1.964998, + 42.36473 + ], + [ + 1.930762, + 42.42442 + ], + [ + 1.920889, + 42.43302 + ], + [ + 1.884665, + 42.44761 + ], + [ + 1.884588, + 42.44762 + ], + [ + 1.884444, + 42.4477 + ], + [ + 1.827736, + 42.47056 + ], + [ + 1.725668, + 42.48452 + ], + [ + 1.715606, + 42.50125 + ], + [ + 1.727195, + 42.56103 + ], + [ + 1.724794, + 42.57499 + ], + [ + 1.710109, + 42.59992 + ], + [ + 1.69377, + 42.60975 + ], + [ + 1.602827, + 42.61382 + ], + [ + 1.560687, + 42.6392 + ], + [ + 1.546365, + 42.64166 + ], + [ + 1.504443, + 42.6331 + ], + [ + 1.492096, + 42.62502 + ], + [ + 1.472384, + 42.59703 + ], + [ + 1.437922, + 42.59264 + ], + [ + 1.419356, + 42.60643 + ], + [ + 1.38032, + 42.67415 + ], + [ + 1.373353, + 42.68127 + ], + [ + 1.333134, + 42.70563 + ], + [ + 1.323642, + 42.7085 + ], + [ + 1.232212, + 42.71248 + ], + [ + 1.165543, + 42.69928 + ], + [ + 1.085465, + 42.76635 + ], + [ + 1.075637, + 42.77079 + ], + [ + 0.9593748, + 42.78852 + ], + [ + 0.9507323, + 42.78794 + ], + [ + 0.9226515, + 42.7797 + ], + [ + 0.8460624, + 42.8157 + ], + [ + 0.7151135, + 42.8464 + ], + [ + 0.7001699, + 42.84402 + ], + [ + 0.6911674, + 42.83186 + ], + [ + 0.6740937, + 42.76479 + ], + [ + 0.6747382, + 42.75286 + ], + [ + 0.6919171, + 42.70684 + ], + [ + 0.6689955, + 42.67901 + ], + [ + 0.4302428, + 42.67863 + ], + [ + 0.3715037, + 42.70308 + ], + [ + 0.3595376, + 42.70415 + ], + [ + 0.3491168, + 42.69817 + ], + [ + 0.3256688, + 42.67274 + ], + [ + 0.2957095, + 42.66388 + ], + [ + 0.2459353, + 42.70175 + ], + [ + 0.2397249, + 42.70494 + ], + [ + 0.189669, + 42.72039 + ], + [ + 0.1791886, + 42.72075 + ], + [ + -0.01993262, + 42.67389 + ], + [ + -0.06725834, + 42.6848 + ], + [ + -0.1694885, + 42.77157 + ], + [ + -0.2998662, + 42.82697 + ], + [ + -0.3168349, + 42.82635 + ], + [ + -0.3920752, + 42.78766 + ], + [ + -0.4435404, + 42.78453 + ], + [ + -0.488418, + 42.80255 + ], + [ + -0.508683, + 42.79935 + ], + [ + -0.5449894, + 42.76906 + ], + [ + -0.5672068, + 42.76937 + ], + [ + -0.6744552, + 42.86392 + ], + [ + -0.6809365, + 42.86775 + ], + [ + -0.7337233, + 42.88666 + ], + [ + -0.747598, + 42.93879 + ], + [ + -0.757105, + 42.95107 + ], + [ + -0.7725328, + 42.95284 + ], + [ + -0.8211401, + 42.93865 + ], + [ + -0.9450847, + 42.94192 + ], + [ + -1.023131, + 42.98206 + ], + [ + -1.108517, + 43.00409 + ], + [ + -1.115597, + 43.00461 + ], + [ + -1.147753, + 43.00124 + ], + [ + -1.158452, + 43.01452 + ], + [ + -1.167362, + 43.02083 + ], + [ + -1.216216, + 43.0381 + ], + [ + -1.226121, + 43.03898 + ], + [ + -1.262362, + 43.03303 + ], + [ + -1.306428, + 43.05531 + ], + [ + -1.319918, + 43.05696 + ], + [ + -1.331346, + 43.0496 + ], + [ + -1.354196, + 43.0197 + ], + [ + -1.438684, + 43.03371 + ], + [ + -1.4775, + 43.06889 + ], + [ + -1.48311, + 43.08561 + ], + [ + -1.476407, + 43.10248 + ], + [ + -1.434786, + 43.13087 + ], + [ + -1.427318, + 43.1404 + ], + [ + -1.394112, + 43.22935 + ], + [ + -1.395313, + 43.24596 + ], + [ + -1.408677, + 43.25591 + ], + [ + -1.526287, + 43.28099 + ], + [ + -1.546257, + 43.2737 + ], + [ + -1.571485, + 43.2412 + ], + [ + -1.610526, + 43.24223 + ], + [ + -1.650003, + 43.29323 + ], + [ + -1.669527, + 43.30065 + ], + [ + -1.733594, + 43.28856 + ], + [ + -1.756061, + 43.31966 + ], + [ + -1.762973, + 43.32565 + ], + [ + -1.791557, + 43.34067 + ], + [ + -1.800991, + 43.37017 + ], + [ + -1.785091, + 43.39037 + ], + [ + -1.783502, + 43.39686 + ], + [ + -2.7, + 43.9 + ] + ] + ], + "terms_url": "http://wiki.openstreetmap.org/wiki/FR:Servers/tile.openstreetmap.fr#Route500.E2.84.A2.C2.A9.C2.AE", + "terms_text": "Tiles © cquest@Openstreetmap France, data © IGN, LO/OL" + }, + { + "id": "santana_do_ipanema", + "name": "Santana do Ipanema AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Santana%20do%20Ipanema&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -37.20224124741, + -9.41355941666 + ], + [ + -37.20188336806, + -9.37768274195 + ], + [ + -37.20208218992, + -9.37455390013 + ], + [ + -37.20192313243, + -9.36732508877 + ], + [ + -37.20169448729, + -9.36044924119 + ], + [ + -37.20172431057, + -9.35500535669 + ], + [ + -37.20195295571, + -9.35101312056 + ], + [ + -37.20191319134, + -9.34772709331 + ], + [ + -37.20175413385, + -9.3383494838 + ], + [ + -37.20170442839, + -9.33505352761 + ], + [ + -37.20171436948, + -9.33301315816 + ], + [ + -37.20141613669, + -9.32833399659 + ], + [ + -37.20120737373, + -9.3246946053 + ], + [ + -37.20116760936, + -9.32350762581 + ], + [ + -37.21425008782, + -9.32345857698 + ], + [ + -37.21537343133, + -9.32339971838 + ], + [ + -37.22078138595, + -9.32328200115 + ], + [ + -37.23727365933, + -9.32313485456 + ], + [ + -37.25180753737, + -9.32292884922 + ], + [ + -37.26559583344, + -9.32276208291 + ], + [ + -37.28029871006, + -9.32258550672 + ], + [ + -37.29190990675, + -9.32244816963 + ], + [ + -37.29204908205, + -9.33522028804 + ], + [ + -37.29304319135, + -9.41219621023 + ], + [ + -37.28356932967, + -9.41235312635 + ], + [ + -37.27789296554, + -9.41250023515 + ], + [ + -37.27160025364, + -9.4124904279 + ], + [ + -37.26505901441, + -9.41261792215 + ], + [ + -37.26164921949, + -9.4127356091 + ], + [ + -37.25498868715, + -9.41275522359 + ], + [ + -37.2499087886, + -9.41296117565 + ], + [ + -37.24616099652, + -9.41297098289 + ], + [ + -37.24108109797, + -9.41302982631 + ], + [ + -37.23460944639, + -9.41320635652 + ], + [ + -37.22839626323, + -9.41324558544 + ], + [ + -37.22164626105, + -9.41335346495 + ], + [ + -37.21686459529, + -9.41346134443 + ], + [ + -37.21291798135, + -9.41343192276 + ], + [ + -37.20224124741, + -9.41355941666 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "Sao_miguel_dos_campos", + "name": "São Miguel dos Campos AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Sao_miguel_dos_campos&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.14150176596, + -9.83171289603 + ], + [ + -36.05047117688, + -9.8324573223 + ], + [ + -36.04958641959, + -9.74245778891 + ], + [ + -36.1405871854, + -9.74166417216 + ], + [ + -36.14150176596, + -9.83171289603 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "GEOSN-DOP-RGB", + "name": "Saxony latest aerial imagery", + "type": "wms", + "template": "https://geodienste.sachsen.de/wms_geosn_dop-rgb/guest?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=sn_dop_020&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 13.549014, + 50.697922 + ], + [ + 13.842514, + 50.711263 + ], + [ + 13.93239, + 50.745042 + ], + [ + 14.046138, + 50.79389 + ], + [ + 14.252571, + 50.859532 + ], + [ + 14.400023, + 50.889661 + ], + [ + 14.426705, + 50.935703 + ], + [ + 14.35649, + 50.971973 + ], + [ + 14.325595, + 50.993191 + ], + [ + 14.27504, + 50.990539 + ], + [ + 14.315765, + 51.042662 + ], + [ + 14.415471, + 51.012633 + ], + [ + 14.519389, + 51.003797 + ], + [ + 14.5882, + 50.981699 + ], + [ + 14.544667, + 50.91977 + ], + [ + 14.579775, + 50.906489 + ], + [ + 14.647181, + 50.922426 + ], + [ + 14.644373, + 50.909146 + ], + [ + 14.605052, + 50.856873 + ], + [ + 14.720205, + 50.817851 + ], + [ + 14.810081, + 50.813415 + ], + [ + 14.856423, + 50.890547 + ], + [ + 14.912595, + 50.947206 + ], + [ + 14.996853, + 51.086789 + ], + [ + 15.053026, + 51.247932 + ], + [ + 15.055834, + 51.292741 + ], + [ + 14.99264, + 51.344524 + ], + [ + 14.988427, + 51.398 + ], + [ + 14.977193, + 51.45754 + ], + [ + 14.909786, + 51.496025 + ], + [ + 14.739865, + 51.537097 + ], + [ + 14.739865, + 51.591221 + ], + [ + 14.700545, + 51.60605 + ], + [ + 14.67948, + 51.5982 + ], + [ + 14.683693, + 51.578133 + ], + [ + 14.673863, + 51.558056 + ], + [ + 14.617691, + 51.557183 + ], + [ + 14.583987, + 51.590349 + ], + [ + 14.519389, + 51.569405 + ], + [ + 14.435131, + 51.559802 + ], + [ + 14.326999, + 51.52574 + ], + [ + 14.13461, + 51.555437 + ], + [ + 14.067203, + 51.499522 + ], + [ + 14.027882, + 51.478536 + ], + [ + 14.04333, + 51.45229 + ], + [ + 13.995583, + 51.392743 + ], + [ + 13.957667, + 51.405885 + ], + [ + 13.888856, + 51.388362 + ], + [ + 13.724552, + 51.374338 + ], + [ + 13.554631, + 51.392743 + ], + [ + 13.404371, + 51.45929 + ], + [ + 13.352411, + 51.439161 + ], + [ + 13.315899, + 51.443538 + ], + [ + 13.286409, + 51.418147 + ], + [ + 13.226024, + 51.400629 + ], + [ + 13.213385, + 51.46104 + ], + [ + 13.219002, + 51.526614 + ], + [ + 13.174064, + 51.5982 + ], + [ + 13.002739, + 51.677512 + ], + [ + 12.905842, + 51.653123 + ], + [ + 12.903033, + 51.66619 + ], + [ + 12.853883, + 51.693183 + ], + [ + 12.764007, + 51.659221 + ], + [ + 12.688175, + 51.670545 + ], + [ + 12.643237, + 51.629593 + ], + [ + 12.577235, + 51.630464 + ], + [ + 12.425569, + 51.610411 + ], + [ + 12.230371, + 51.570278 + ], + [ + 12.177007, + 51.530109 + ], + [ + 12.139091, + 51.460165 + ], + [ + 12.167177, + 51.417272 + ], + [ + 12.174199, + 51.334874 + ], + [ + 12.13207, + 51.318201 + ], + [ + 12.186838, + 51.213637 + ], + [ + 12.158751, + 51.188119 + ], + [ + 12.220541, + 51.092963 + ], + [ + 12.490168, + 51.054139 + ], + [ + 12.521062, + 50.993191 + ], + [ + 12.605321, + 50.972857 + ], + [ + 12.626385, + 50.918885 + ], + [ + 12.502806, + 50.910917 + ], + [ + 12.237393, + 50.818738 + ], + [ + 12.213519, + 50.729933 + ], + [ + 12.286543, + 50.664999 + ], + [ + 12.217732, + 50.646303 + ], + [ + 12.133474, + 50.627599 + ], + [ + 12.053428, + 50.563416 + ], + [ + 12.019725, + 50.647193 + ], + [ + 11.859634, + 50.548248 + ], + [ + 11.876486, + 50.508076 + ], + [ + 11.927041, + 50.505397 + ], + [ + 11.936871, + 50.486637 + ], + [ + 11.870869, + 50.441941 + ], + [ + 11.934062, + 50.399888 + ], + [ + 11.96917, + 50.339875 + ], + [ + 12.120835, + 50.297732 + ], + [ + 12.172794, + 50.306702 + ], + [ + 12.185433, + 50.260938 + ], + [ + 12.212115, + 50.253755 + ], + [ + 12.257053, + 50.216029 + ], + [ + 12.28233, + 50.156684 + ], + [ + 12.355354, + 50.158483 + ], + [ + 12.355354, + 50.22142 + ], + [ + 12.414335, + 50.281582 + ], + [ + 12.511232, + 50.347045 + ], + [ + 12.537914, + 50.387354 + ], + [ + 12.678345, + 50.402573 + ], + [ + 12.712048, + 50.386459 + ], + [ + 12.7289, + 50.396307 + ], + [ + 12.756986, + 50.42584 + ], + [ + 12.786476, + 50.433891 + ], + [ + 12.817371, + 50.417787 + ], + [ + 12.846861, + 50.436574 + ], + [ + 12.947971, + 50.387354 + ], + [ + 13.009761, + 50.414208 + ], + [ + 13.046273, + 50.449989 + ], + [ + 13.056103, + 50.48753 + ], + [ + 13.214789, + 50.492891 + ], + [ + 13.275174, + 50.566092 + ], + [ + 13.341177, + 50.568768 + ], + [ + 13.391732, + 50.613344 + ], + [ + 13.477394, + 50.585711 + ], + [ + 13.54761, + 50.634725 + ], + [ + 13.568674, + 50.67212 + ], + [ + 13.549014, + 50.697922 + ] + ] + ], + "terms_url": "https://geoportal.sachsen.de/md/cd01c334-7e32-482f-bd43-af286707178a", + "terms_text": "Staatsbetrieb Geobasisinformation und Vermessung Sachsen", + "best": true, + "icon": "data:image/png;base64,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" + }, { "id": "Geodatastyrelsen_Denmark", "name": "SDFE aerial imagery", @@ -61342,6 +91101,1207 @@ "best": true, "icon": "data:image/png;base64,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" }, + { + "id": "sc2012", + "name": "SIG Santa Catarina OrtoRGB 2012", + "type": "wms", + "template": "http://sigsc.sc.gov.br:80/sigserver/SIGSC/wms?SERVICE=WMS&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=OrtoRGB-Landsat-2012&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -48.62488448156965, + -26.916236931410996 + ], + [ + -48.624164193144196, + -26.83408805760915 + ], + [ + -48.5616254665196, + -26.83412188528322 + ], + [ + -48.5616507397977, + -26.749193916956184 + ], + [ + -48.626754704148055, + -26.74918263262303 + ], + [ + -48.627146439958395, + -26.73276274152515 + ], + [ + -48.6412615657696, + -26.732999746505616 + ], + [ + -48.641741758053236, + -26.709116191945647 + ], + [ + -48.624138919866105, + -26.709127480253297 + ], + [ + -48.624176829783245, + -26.500792500209887 + ], + [ + -48.570989216050585, + -26.500769882438657 + ], + [ + -48.57154522816848, + -26.474145680246586 + ], + [ + -48.55418248612319, + -26.47380633457661 + ], + [ + -48.55449840209926, + -26.45735818142214 + ], + [ + -48.56154964668535, + -26.457471312923715 + ], + [ + -48.56161282988055, + -26.41746108634898 + ], + [ + -48.49909937653404, + -26.417472403421797 + ], + [ + -48.49908673989502, + -26.250810301340856 + ], + [ + -48.43663646974372, + -26.250787634582515 + ], + [ + -48.43661119646563, + -26.207520071408148 + ], + [ + -48.460102708446854, + -26.20750873380981 + ], + [ + -48.46194765774716, + -26.124204304592393 + ], + [ + -48.56161282988057, + -26.12419295889107 + ], + [ + -48.56162546651964, + -25.95753087401021 + ], + [ + -48.624113646588064, + -25.95753087401021 + ], + [ + -48.624113646588064, + -25.945066276881477 + ], + [ + -48.688383592761575, + -25.94606622032166 + ], + [ + -48.68839622940061, + -25.9575195121708 + ], + [ + -49.25089094312879, + -25.9575195121708 + ], + [ + -49.25090357976782, + -25.999198717680073 + ], + [ + -49.31339175983624, + -25.999198717680073 + ], + [ + -49.31337912319721, + -26.0825014166478 + ], + [ + -49.37590521318276, + -26.082501416647776 + ], + [ + -49.37590521318275, + -26.124192958891047 + ], + [ + -49.50093211987576, + -26.124181613188597 + ], + [ + -49.50091948323672, + -26.16585828693744 + ], + [ + -49.68661489397596, + -26.165846945284223 + ], + [ + -49.68661489397595, + -26.12417026748506 + ], + [ + -49.74906516412725, + -26.082456017648312 + ], + [ + -49.74907780076631, + -26.04084043378188 + ], + [ + -49.81160389075186, + -26.040851787565785 + ], + [ + -49.811591254112805, + -25.999176002051062 + ], + [ + -49.93656761424967, + -25.99915328641767 + ], + [ + -49.9366055241668, + -25.98244474858429 + ], + [ + -50.000913380257444, + -25.982876406234503 + ], + [ + -50.00093865353552, + -25.99915328641767 + ], + [ + -50.313379553877645, + -25.999164644234927 + ], + [ + -50.313417463794764, + -26.040829079996882 + ], + [ + -50.37411124111907, + -26.04084043378188 + ], + [ + -50.374098604480025, + -25.999198717680073 + ], + [ + -50.49913814781211, + -25.999176002051062 + ], + [ + -50.49911287453402, + -25.984137291872997 + ], + [ + -50.62593418397117, + -25.984523506389962 + ], + [ + -50.62594682061022, + -26.04084043378188 + ], + [ + -50.6883970907615, + -26.041612488584164 + ], + [ + -50.68844763731769, + -26.124158921780424 + ], + [ + -50.75093581738611, + -26.124136230367803 + ], + [ + -50.750948454025156, + -26.207520071408148 + ], + [ + -51.12595335426997, + -26.207474721008193 + ], + [ + -51.12595335426997, + -26.249132949280156 + ], + [ + -51.18847944425552, + -26.249178283438034 + ], + [ + -51.31344316775333, + -26.33244989854678 + ], + [ + -51.31346844103143, + -26.624140013763412 + ], + [ + -51.436599851867975, + -26.62415131048226 + ], + [ + -51.43658721522893, + -26.56476034464233 + ], + [ + -51.62408966535135, + -26.564104792996805 + ], + [ + -51.62411493862942, + -26.540796365619084 + ], + [ + -51.99906929231806, + -26.540796365619084 + ], + [ + -52.06158274566456, + -26.49910746406482 + ], + [ + -52.06158274566456, + -26.457471312923687 + ], + [ + -52.12408356237202, + -26.457493939210668 + ], + [ + -52.12405828909395, + -26.41578614733 + ], + [ + -52.374074192562865, + -26.41579746456714 + ], + [ + -52.37408682920191, + -26.391327004376254 + ], + [ + -52.56156400604623, + -26.389402650121472 + ], + [ + -52.561576642685274, + -26.374153838977676 + ], + [ + -52.624077459392744, + -26.37416516029677 + ], + [ + -52.62409009603178, + -26.332472549349774 + ], + [ + -53.124083993052494, + -26.332472549349752 + ], + [ + -53.12409662969154, + -26.317068980284002 + ], + [ + -53.16180436059632, + -26.31650263355217 + ], + [ + -53.161362078229814, + -26.290821564697215 + ], + [ + -53.18655953648188, + -26.29083289416888 + ], + [ + -53.24907298982837, + -26.24911028219455 + ], + [ + -53.24906035318934, + -26.23919300812073 + ], + [ + -53.31158644317491, + -26.23824090528976 + ], + [ + -53.374099896521415, + -26.22882146785218 + ], + [ + -53.43844566252919, + -26.227767259506184 + ], + [ + -53.43843302589015, + -26.249144282821256 + ], + [ + -53.5616023466438, + -26.249155616361257 + ], + [ + -53.56158971000477, + -26.239827739008902 + ], + [ + -53.655012382450856, + -26.238138893809616 + ], + [ + -53.656225499799, + -26.292634266082075 + ], + [ + -53.67011316610744, + -26.316842441923516 + ], + [ + -53.68846156599812, + -26.33241592233391 + ], + [ + -53.70322116040052, + -26.374097232365553 + ], + [ + -53.70928674714123, + -26.384489741468975 + ], + [ + -53.70980484934199, + -26.395684982214643 + ], + [ + -53.70619077057565, + -26.407218680242053 + ], + [ + -53.70721433833813, + -26.459270088862837 + ], + [ + -53.714379312675604, + -26.461679725793857 + ], + [ + -53.714758411846894, + -26.48118122161117 + ], + [ + -53.73046575417756, + -26.49913008216322 + ], + [ + -53.73146404866198, + -26.54080767056338 + ], + [ + -53.750962382705566, + -26.540796365619055 + ], + [ + -53.75094974606652, + -26.624173903916578 + ], + [ + -53.76019976584611, + -26.624140013763338 + ], + [ + -53.761248606886696, + -26.667499888848678 + ], + [ + -53.75097501934461, + -26.66751118127877 + ], + [ + -53.75096238270559, + -26.742976079662007 + ], + [ + -53.727369777612, + -26.743404906944193 + ], + [ + -53.72132946414936, + -26.749047220537665 + ], + [ + -53.72140528398363, + -26.750931690893374 + ], + [ + -53.745705540863625, + -26.759428345833868 + ], + [ + -53.746122549952055, + -26.777040237532006 + ], + [ + -53.71948451484907, + -26.77754790691426 + ], + [ + -53.720836635226696, + -26.834155712947112 + ], + [ + -53.700466373089114, + -26.834144437060257 + ], + [ + -53.70276624139493, + -26.931075520284146 + ], + [ + -53.71167507192037, + -26.930906526843206 + ], + [ + -53.712243720677314, + -26.955565624612287 + ], + [ + -53.751000292622685, + -26.954788421555175 + ], + [ + -53.75092447278844, + -26.999147992456276 + ], + [ + -53.764673136067394, + -26.999147992456276 + ], + [ + -53.80369507743266, + -27.037513523530937 + ], + [ + -53.80454173224855, + -27.0725803974359 + ], + [ + -53.80809262781969, + -27.07249038098803 + ], + [ + -53.8086233666595, + -27.09612846681215 + ], + [ + -53.82689594671591, + -27.095768476254833 + ], + [ + -53.82761623514137, + -27.124136682787803 + ], + [ + -53.846444827315686, + -27.124125435915396 + ], + [ + -53.84764530802479, + -27.170138168249487 + ], + [ + -53.8350592155378, + -27.18931578625989 + ], + [ + -53.83536249487484, + -27.200544291231996 + ], + [ + -53.688474202637146, + -27.202837060128804 + ], + [ + -53.688486839276194, + -27.227885858850012 + ], + [ + -53.43653753003366, + -27.23245898831079 + ], + [ + -53.43655016667271, + -27.167507452480596 + ], + [ + -53.37598275573884, + -27.167507452480574 + ], + [ + -53.376008029016916, + -27.233515163499888 + ], + [ + -53.24904771655028, + -27.235638719456546 + ], + [ + -53.24904771655028, + -27.209220599589166 + ], + [ + -53.06344076228435, + -27.209175646364237 + ], + [ + -53.06345339892339, + -27.233402804913485 + ], + [ + -52.8134754053716, + -27.23685216181505 + ], + [ + -52.81346276873256, + -27.276528928524463 + ], + [ + -52.750961952025094, + -27.277315131338465 + ], + [ + -52.750961952025094, + -27.292487755808434 + ], + [ + -52.438495778404864, + -27.292521445488386 + ], + [ + -52.438483141765836, + -27.326890821722227 + ], + [ + -52.37603287161454, + -27.327530725463642 + ], + [ + -52.3759949616974, + -27.33419897625023 + ], + [ + -52.25098069164342, + -27.33417652490038 + ], + [ + -52.25099332828246, + -27.346692446966557 + ], + [ + -52.18654646916235, + -27.34727611465991 + ], + [ + -52.18657174244043, + -27.334187750575865 + ], + [ + -52.12597905822849, + -27.33419897625023 + ], + [ + -52.12599169486754, + -27.364133804119422 + ], + [ + -52.02978896183197, + -27.364885718492065 + ], + [ + -52.03035761058891, + -27.424416622283772 + ], + [ + -51.97533768419499, + -27.42478676693274 + ], + [ + -51.97603269934236, + -27.50087558818674 + ], + [ + -51.93845133482801, + -27.500853170691318 + ], + [ + -51.93845133482801, + -27.54251940627202 + ], + [ + -51.688460704637194, + -27.542474588252876 + ], + [ + -51.68847334127622, + -27.55742038383185 + ], + [ + -51.599031210128736, + -27.557902111020763 + ], + [ + -51.599233396353426, + -27.59480956901105 + ], + [ + -51.563509617778415, + -27.594977556358298 + ], + [ + -51.563484344500324, + -27.625860453692134 + ], + [ + -51.500882434680506, + -27.62586045369211 + ], + [ + -51.50094561787572, + -27.667535190923896 + ], + [ + -51.43936727581839, + -27.667501615740118 + ], + [ + -51.439544188765, + -27.709317103607006 + ], + [ + -51.37596925773886, + -27.70949610256912 + ], + [ + -51.376007167655985, + -27.750892905814947 + ], + [ + -51.31349371430947, + -27.750904088992016 + ], + [ + -51.313455804392355, + -27.792531093204254 + ], + [ + -51.18846680761643, + -27.792508735404642 + ], + [ + -51.1884794442555, + -27.875860156488773 + ], + [ + -51.12597862754804, + -27.875860156488773 + ], + [ + -51.12596599090898, + -27.91751742532308 + ], + [ + -51.06347781084055, + -27.91749509328296 + ], + [ + -51.06346517420149, + -27.959192137382583 + ], + [ + -51.000951720854985, + -28.00086192326361 + ], + [ + -50.93850145070369, + -28.00086192326361 + ], + [ + -50.93848881406464, + -28.16754693055966 + ], + [ + -50.813461907371625, + -28.167524650369067 + ], + [ + -50.813449270732576, + -28.292532475134653 + ], + [ + -50.750961090664134, + -28.29251022102188 + ], + [ + -50.68844763731762, + -28.334184014870516 + ], + [ + -50.68848554723476, + -28.417538143267095 + ], + [ + -50.625997367166335, + -28.4175159153423 + ], + [ + -50.56352182373695, + -28.44094155830843 + ], + [ + -50.43848228040489, + -28.44050820876798 + ], + [ + -50.438469643765856, + -28.459173964550686 + ], + [ + -50.37596882705837, + -28.459207293310225 + ], + [ + -50.37598146369743, + -28.475537121198975 + ], + [ + -50.188441103657894, + -28.474537408344325 + ], + [ + -50.188491650214054, + -28.51143164845026 + ], + [ + -50.12398160789872, + -28.51104300453612 + ], + [ + -50.124019517815846, + -28.5008600237691 + ], + [ + -49.87597493003768, + -28.500848918564397 + ], + [ + -49.876012839954804, + -28.514196530962266 + ], + [ + -49.813474113330216, + -28.513685754912284 + ], + [ + -49.813474113330194, + -28.58255155550104 + ], + [ + -49.830028110476746, + -28.582507169109398 + ], + [ + -49.829510008275975, + -28.625974659050915 + ], + [ + -49.87589911020343, + -28.66572089511971 + ], + [ + -50.0010018367307, + -28.749145575544063 + ], + [ + -50.00100183673066, + -29.04083327722487 + ], + [ + -50.03318735637359, + -29.04081118145324 + ], + [ + -50.0321890618892, + -29.147114336184 + ], + [ + -50.12601610678465, + -29.14774341401082 + ], + [ + -50.12597819686752, + -29.165786374753505 + ], + [ + -50.13612541801917, + -29.16580844371222 + ], + [ + -50.18850428685308, + -29.19622599157441 + ], + [ + -50.18850428685309, + -29.31905095330294 + ], + [ + -50.14220364139895, + -29.31873143173735 + ], + [ + -50.14207727500852, + -29.334221566678927 + ], + [ + -50.126003470145626, + -29.334177501353437 + ], + [ + -50.125990833506584, + -29.362375414604447 + ], + [ + -49.99905579431803, + -29.361527388076844 + ], + [ + -49.99904315767897, + -29.24030824385708 + ], + [ + -49.9384757467451, + -29.239856157941617 + ], + [ + -49.93851365666223, + -29.25087104871457 + ], + [ + -49.87601283995477, + -29.25087104871457 + ], + [ + -49.876000203315726, + -29.300979886173586 + ], + [ + -49.82262303999743, + -29.30051704853271 + ], + [ + -49.82226921410422, + -29.3341885176866 + ], + [ + -49.81347411333018, + -29.334221566678927 + ], + [ + -49.81353729652554, + -29.34109552421944 + ], + [ + -49.6865390741418, + -29.339905833968423 + ], + [ + -49.6865138008637, + -29.29254930022262 + ], + [ + -49.62398771087813, + -29.292516237731153 + ], + [ + -49.6239750742391, + -29.2508489980658 + ], + [ + -49.56148689417066, + -29.2508269474122 + ], + [ + -49.561448984253516, + -29.167485670694504 + ], + [ + -49.49901135074126, + -29.167463602096316 + ], + [ + -49.49902398738031, + -29.0841871105079 + ], + [ + -49.43649789739473, + -29.084176067267432 + ], + [ + -49.43651053403379, + -29.04251254202398 + ], + [ + -49.374047627243456, + -29.04247939890416 + ], + [ + -49.37402235396536, + -28.959201357408347 + ], + [ + -49.31153417389693, + -28.959168187563616 + ], + [ + -49.311521537257896, + -28.9174874156231 + ], + [ + -49.248982810633294, + -28.917498476687246 + ], + [ + -49.24897017399424, + -28.875823083095714 + ], + [ + -49.18654517712104, + -28.875845214103762 + ], + [ + -49.18653254048198, + -28.83414203544581 + ], + [ + -49.12401908713548, + -28.834175245265325 + ], + [ + -49.12400645049644, + -28.79249965988945 + ], + [ + -49.06149299714994, + -28.79246643678005 + ], + [ + -49.06145508723281, + -28.750840644227264 + ], + [ + -48.99903009035959, + -28.75085172301705 + ], + [ + -48.999030090359604, + -28.709187170256886 + ], + [ + -48.936579820208316, + -28.709176087050047 + ], + [ + -48.936579820208316, + -28.667517104639387 + ], + [ + -48.87405373022276, + -28.667506017020735 + ], + [ + -48.874041093583735, + -28.625852646864526 + ], + [ + -48.74911528000304, + -28.625852646864555 + ], + [ + -48.749115280003025, + -28.54254072237745 + ], + [ + -48.68656391673939, + -28.54252962156217 + ], + [ + -48.68657655337841, + -28.33417289217185 + ], + [ + -48.62407573667094, + -28.334161769471883 + ], + [ + -48.62406310003189, + -28.08417545272023 + ], + [ + -48.561600193241524, + -28.08417545272023 + ], + [ + -48.56158755660246, + -27.959192137382715 + ], + [ + -48.49904882997788, + -27.959158652239882 + ], + [ + -48.49903619333884, + -27.915809010935423 + ], + [ + -48.56157491996342, + -27.915797844739515 + ], + [ + -48.561600193241524, + -27.875837815851458 + ], + [ + -48.4990235566998, + -27.875860156488873 + ], + [ + -48.49902355669978, + -27.834220385416636 + ], + [ + -48.4365732865485, + -27.83417568697334 + ], + [ + -48.43661119646565, + -27.62582686571355 + ], + [ + -48.374059833202004, + -27.625849257700484 + ], + [ + -48.374047196562984, + -27.50086437943969 + ], + [ + -48.3115716531336, + -27.50086437943969 + ], + [ + -48.311533743216444, + -27.24913190347051 + ], + [ + -48.43657328654852, + -27.24913190347051 + ], + [ + -48.4365353766314, + -27.209164408055255 + ], + [ + -48.374021923284864, + -27.20919812297907 + ], + [ + -48.37404719656297, + -27.16579857825554 + ], + [ + -48.43656064990947, + -27.16579857825554 + ], + [ + -48.43656064990947, + -27.12414792965919 + ], + [ + -48.49906146661692, + -27.124125435915495 + ], + [ + -48.49907031973662, + -27.086668577138795 + ], + [ + -48.500216139509774, + -27.08666004891293 + ], + [ + -48.5003124938822, + -27.082470514310543 + ], + [ + -48.561600193241524, + -27.082481765368538 + ], + [ + -48.56158755660248, + -27.04252214011793 + ], + [ + -48.49906146661693, + -27.04252214011793 + ], + [ + -48.49906146661693, + -26.999125473627824 + ], + [ + -48.56156228332439, + -26.999125473627824 + ], + [ + -48.56157491996343, + -26.915786222397905 + ], + [ + -48.62488448156965, + -26.916236931410996 + ] + ] + ], + "terms_url": "http://sigsc.sds.sc.gov.br/download/termo_sigsc.pdf", + "terms_text": "Sistema de Informações Geográficas - Governo de Santa Catarina" + }, { "id": "Slovakia-Historic-Maps", "name": "Slovakia Historic Maps", @@ -64927,6 +95887,1896 @@ "terms_url": "http://geoservices.buergernetz.bz.it/geokatalog/", "terms_text": "© Autonomen Provinz Bozen/Provincia Autonoma di Bolzano CC-BY 3.0" }, + { + "id": "South-Tyrol-Orthofoto2011-20cm", + "name": "South Tyrol Orthofoto 2011 (highres)", + "type": "wms", + "template": "http://geoservices.buergernetz.bz.it/geoserver/ows?SERVICE=WMS&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=P_BZ_OF_2011_EPSG3857,P_BZ_OF_2011_20cm_EPSG3857&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.38615, + 46.68821 + ], + [ + 10.39201, + 46.69016 + ], + [ + 10.40215, + 46.70624 + ], + [ + 10.41274, + 46.70821 + ], + [ + 10.41622, + 46.71479 + ], + [ + 10.4168, + 46.71847 + ], + [ + 10.39934, + 46.73435 + ], + [ + 10.43464, + 46.75356 + ], + [ + 10.44107, + 46.75413 + ], + [ + 10.44011, + 46.77149 + ], + [ + 10.42123, + 46.78861 + ], + [ + 10.42845, + 46.79755 + ], + [ + 10.43851, + 46.79869 + ], + [ + 10.44925, + 46.80462 + ], + [ + 10.45602, + 46.81635 + ], + [ + 10.45438, + 46.82221 + ], + [ + 10.4583, + 46.82478 + ], + [ + 10.45513, + 46.83059 + ], + [ + 10.45906, + 46.83548 + ], + [ + 10.46483, + 46.83624 + ], + [ + 10.46229, + 46.8413 + ], + [ + 10.46987, + 46.84933 + ], + [ + 10.46819, + 46.8553 + ], + [ + 10.47838, + 46.86013 + ], + [ + 10.48372, + 46.85543 + ], + [ + 10.49628, + 46.85305 + ], + [ + 10.49931, + 46.84857 + ], + [ + 10.52124, + 46.84653 + ], + [ + 10.5527, + 46.8511 + ], + [ + 10.55795, + 46.84695 + ], + [ + 10.55264, + 46.8408 + ], + [ + 10.55536, + 46.84087 + ], + [ + 10.58883, + 46.85125 + ], + [ + 10.59502, + 46.85829 + ], + [ + 10.60936, + 46.8597 + ], + [ + 10.62441, + 46.86558 + ], + [ + 10.64858, + 46.86655 + ], + [ + 10.66787, + 46.87651 + ], + [ + 10.67297, + 46.87138 + ], + [ + 10.69112, + 46.86861 + ], + [ + 10.69786, + 46.86339 + ], + [ + 10.69508, + 46.85308 + ], + [ + 10.70594, + 46.84786 + ], + [ + 10.71763, + 46.84795 + ], + [ + 10.72333, + 46.83892 + ], + [ + 10.75621, + 46.83383 + ], + [ + 10.76481, + 46.82409 + ], + [ + 10.76387, + 46.81971 + ], + [ + 10.75239, + 46.81387 + ], + [ + 10.74506, + 46.80223 + ], + [ + 10.7276, + 46.79709 + ], + [ + 10.73122, + 46.78925 + ], + [ + 10.75722, + 46.78624 + ], + [ + 10.77744, + 46.79149 + ], + [ + 10.78678, + 46.79735 + ], + [ + 10.81439, + 46.77662 + ], + [ + 10.82479, + 46.77472 + ], + [ + 10.83129, + 46.78138 + ], + [ + 10.84112, + 46.78282 + ], + [ + 10.85354, + 46.77506 + ], + [ + 10.86845, + 46.77313 + ], + [ + 10.86993, + 46.7669 + ], + [ + 10.88294, + 46.76393 + ], + [ + 10.88962, + 46.76529 + ], + [ + 10.8951, + 46.77092 + ], + [ + 10.90527, + 46.76911 + ], + [ + 10.92299, + 46.7764 + ], + [ + 10.92821, + 46.77408 + ], + [ + 10.94388, + 46.77648 + ], + [ + 10.97522, + 46.77361 + ], + [ + 10.97932, + 46.77014 + ], + [ + 10.99475, + 46.76804 + ], + [ + 11.01397, + 46.77317 + ], + [ + 11.02328, + 46.76715 + ], + [ + 11.0346, + 46.79428 + ], + [ + 11.04234, + 46.801 + ], + [ + 11.03792, + 46.80562 + ], + [ + 11.05633, + 46.80928 + ], + [ + 11.07279, + 46.82092 + ], + [ + 11.08171, + 46.82252 + ], + [ + 11.0762, + 46.83384 + ], + [ + 11.06887, + 46.83793 + ], + [ + 11.07303, + 46.84345 + ], + [ + 11.06988, + 46.85348 + ], + [ + 11.08742, + 46.87927 + ], + [ + 11.09961, + 46.88922 + ], + [ + 11.09538, + 46.89178 + ], + [ + 11.09795, + 46.89844 + ], + [ + 11.0946, + 46.91247 + ], + [ + 11.10792, + 46.91706 + ], + [ + 11.10804, + 46.92632 + ], + [ + 11.11418, + 46.93234 + ], + [ + 11.13851, + 46.92865 + ], + [ + 11.16322, + 46.94091 + ], + [ + 11.16642, + 46.94479 + ], + [ + 11.16114, + 46.94979 + ], + [ + 11.1637, + 46.96677 + ], + [ + 11.17598, + 46.96367 + ], + [ + 11.18658, + 46.97062 + ], + [ + 11.19527, + 46.97152 + ], + [ + 11.20418, + 46.96877 + ], + [ + 11.20688, + 46.96403 + ], + [ + 11.22047, + 46.97025 + ], + [ + 11.24139, + 46.9708 + ], + [ + 11.24865, + 46.97517 + ], + [ + 11.25582, + 46.97535 + ], + [ + 11.26272, + 46.98169 + ], + [ + 11.27662, + 46.98168 + ], + [ + 11.28762, + 46.98699 + ], + [ + 11.30709, + 46.98525 + ], + [ + 11.3205, + 46.99345 + ], + [ + 11.33765, + 46.98606 + ], + [ + 11.34516, + 46.99169 + ], + [ + 11.35932, + 46.99154 + ], + [ + 11.37697, + 46.98025 + ], + [ + 11.38324, + 46.97168 + ], + [ + 11.40465, + 46.96609 + ], + [ + 11.43929, + 46.97601 + ], + [ + 11.45134, + 46.99294 + ], + [ + 11.46803, + 46.99582 + ], + [ + 11.46859, + 47.003 + ], + [ + 11.47831, + 47.01201 + ], + [ + 11.50238, + 47.01073 + ], + [ + 11.50313, + 47.00808 + ], + [ + 11.51366, + 47.00595 + ], + [ + 11.51679, + 47.00091 + ], + [ + 11.53381, + 46.99233 + ], + [ + 11.53846, + 46.98519 + ], + [ + 11.55297, + 46.99149 + ], + [ + 11.57663, + 46.99657 + ], + [ + 11.58, + 47.00277 + ], + [ + 11.58879, + 47.00641 + ], + [ + 11.59901, + 47.00657 + ], + [ + 11.60944, + 47.01207 + ], + [ + 11.62697, + 47.01437 + ], + [ + 11.63629, + 47.00383 + ], + [ + 11.66542, + 46.99304 + ], + [ + 11.6885, + 46.99658 + ], + [ + 11.71226, + 46.99416 + ], + [ + 11.72897, + 46.97322 + ], + [ + 11.74698, + 46.97013 + ], + [ + 11.76411, + 46.97412 + ], + [ + 11.78106, + 46.99342 + ], + [ + 11.81526, + 46.991 + ], + [ + 11.83564, + 46.99417 + ], + [ + 11.84396, + 47.0025 + ], + [ + 11.85192, + 47.0014 + ], + [ + 11.86722, + 47.01252 + ], + [ + 11.87393, + 47.01136 + ], + [ + 11.8794, + 47.01714 + ], + [ + 11.89137, + 47.01728 + ], + [ + 11.91627, + 47.03422 + ], + [ + 11.9329, + 47.03864 + ], + [ + 11.94688, + 47.03464 + ], + [ + 11.95457, + 47.04374 + ], + [ + 11.96773, + 47.04158 + ], + [ + 11.97912, + 47.0511 + ], + [ + 11.98587, + 47.04815 + ], + [ + 11.99534, + 47.05064 + ], + [ + 12.02037, + 47.04821 + ], + [ + 12.02968, + 47.05127 + ], + [ + 12.03353, + 47.0583 + ], + [ + 12.04276, + 47.06228 + ], + [ + 12.07543, + 47.0605 + ], + [ + 12.08035, + 47.06951 + ], + [ + 12.09308, + 47.07791 + ], + [ + 12.10329, + 47.07931 + ], + [ + 12.11867, + 47.07445 + ], + [ + 12.13561, + 47.08171 + ], + [ + 12.15125, + 47.08049 + ], + [ + 12.15997, + 47.08267 + ], + [ + 12.18589, + 47.09322 + ], + [ + 12.2278, + 47.08302 + ], + [ + 12.24228, + 47.06892 + ], + [ + 12.23786, + 47.0644 + ], + [ + 12.21821, + 47.05795 + ], + [ + 12.2182, + 47.04483 + ], + [ + 12.20552, + 47.02595 + ], + [ + 12.18048, + 47.02414 + ], + [ + 12.16423, + 47.01782 + ], + [ + 12.14786, + 47.02357 + ], + [ + 12.12723, + 47.01218 + ], + [ + 12.12285, + 47.00662 + ], + [ + 12.1322, + 46.99339 + ], + [ + 12.12974, + 46.98593 + ], + [ + 12.13977, + 46.982 + ], + [ + 12.13808, + 46.96514 + ], + [ + 12.13328, + 46.96292 + ], + [ + 12.13882, + 46.95764 + ], + [ + 12.15927, + 46.95133 + ], + [ + 12.1702, + 46.93758 + ], + [ + 12.15414, + 46.91654 + ], + [ + 12.14675, + 46.91413 + ], + [ + 12.16205, + 46.908 + ], + [ + 12.16959, + 46.91121 + ], + [ + 12.19154, + 46.90682 + ], + [ + 12.20106, + 46.8965 + ], + [ + 12.2022, + 46.88806 + ], + [ + 12.21663, + 46.87517 + ], + [ + 12.22147, + 46.88084 + ], + [ + 12.23125, + 46.88146 + ], + [ + 12.2345, + 46.88919 + ], + [ + 12.24162, + 46.89192 + ], + [ + 12.27486, + 46.88512 + ], + [ + 12.27979, + 46.87921 + ], + [ + 12.27736, + 46.87319 + ], + [ + 12.29326, + 46.86566 + ], + [ + 12.2912, + 46.85704 + ], + [ + 12.29733, + 46.84455 + ], + [ + 12.30833, + 46.84137 + ], + [ + 12.30726, + 46.83271 + ], + [ + 12.285, + 46.81503 + ], + [ + 12.29383, + 46.8027 + ], + [ + 12.28905, + 46.79948 + ], + [ + 12.28889, + 46.79427 + ], + [ + 12.28232, + 46.79153 + ], + [ + 12.28539, + 46.7839 + ], + [ + 12.30943, + 46.78603 + ], + [ + 12.35837, + 46.77583 + ], + [ + 12.37036, + 46.74163 + ], + [ + 12.38475, + 46.71745 + ], + [ + 12.40283, + 46.70811 + ], + [ + 12.41103, + 46.70701 + ], + [ + 12.41522, + 46.70163 + ], + [ + 12.42862, + 46.6997 + ], + [ + 12.42943, + 46.69567 + ], + [ + 12.44268, + 46.68979 + ], + [ + 12.47501, + 46.68756 + ], + [ + 12.4795, + 46.67969 + ], + [ + 12.43473, + 46.66714 + ], + [ + 12.40648, + 46.64167 + ], + [ + 12.38115, + 46.64183 + ], + [ + 12.37944, + 46.63733 + ], + [ + 12.3915, + 46.62765 + ], + [ + 12.38577, + 46.62154 + ], + [ + 12.35939, + 46.61829 + ], + [ + 12.34465, + 46.62376 + ], + [ + 12.34034, + 46.63022 + ], + [ + 12.33578, + 46.62732 + ], + [ + 12.3172, + 46.62876 + ], + [ + 12.31785, + 46.62355 + ], + [ + 12.30802, + 46.61811 + ], + [ + 12.28413, + 46.61623 + ], + [ + 12.26982, + 46.62003 + ], + [ + 12.25931, + 46.62809 + ], + [ + 12.24502, + 46.62326 + ], + [ + 12.24198, + 46.61586 + ], + [ + 12.21241, + 46.60918 + ], + [ + 12.20444, + 46.59836 + ], + [ + 12.19228, + 46.59321 + ], + [ + 12.19261, + 46.62059 + ], + [ + 12.1818, + 46.6192 + ], + [ + 12.17117, + 46.63275 + ], + [ + 12.16062, + 46.63574 + ], + [ + 12.1511, + 46.63215 + ], + [ + 12.1436, + 46.6327 + ], + [ + 12.13739, + 46.64122 + ], + [ + 12.12342, + 46.64475 + ], + [ + 12.10949, + 46.65204 + ], + [ + 12.10609, + 46.65783 + ], + [ + 12.09345, + 46.66123 + ], + [ + 12.08826, + 46.66638 + ], + [ + 12.07985, + 46.66686 + ], + [ + 12.07038, + 46.67386 + ], + [ + 12.07173, + 46.66064 + ], + [ + 12.06686, + 46.65364 + ], + [ + 12.07479, + 46.64329 + ], + [ + 12.06837, + 46.63997 + ], + [ + 12.06495, + 46.62121 + ], + [ + 12.05448, + 46.61778 + ], + [ + 12.05318, + 46.60989 + ], + [ + 12.04613, + 46.60716 + ], + [ + 12.05043, + 46.60016 + ], + [ + 12.04763, + 46.58357 + ], + [ + 12.03665, + 46.57668 + ], + [ + 12.0266, + 46.55871 + ], + [ + 12.02189, + 46.55791 + ], + [ + 11.99941, + 46.53208 + ], + [ + 11.99411, + 46.53345 + ], + [ + 11.98704, + 46.54417 + ], + [ + 11.96633, + 46.54363 + ], + [ + 11.95094, + 46.53869 + ], + [ + 11.94719, + 46.52879 + ], + [ + 11.94147, + 46.52689 + ], + [ + 11.93294, + 46.52631 + ], + [ + 11.9121, + 46.532 + ], + [ + 11.8904, + 46.52175 + ], + [ + 11.85192, + 46.51682 + ], + [ + 11.82849, + 46.50783 + ], + [ + 11.82334, + 46.51315 + ], + [ + 11.82391, + 46.52141 + ], + [ + 11.81086, + 46.53146 + ], + [ + 11.79385, + 46.52023 + ], + [ + 11.79189, + 46.51322 + ], + [ + 11.76157, + 46.50503 + ], + [ + 11.74317, + 46.50391 + ], + [ + 11.73202, + 46.50877 + ], + [ + 11.71935, + 46.50916 + ], + [ + 11.71524, + 46.51245 + ], + [ + 11.69889, + 46.50218 + ], + [ + 11.6672, + 46.49647 + ], + [ + 11.64515, + 46.49743 + ], + [ + 11.63849, + 46.50051 + ], + [ + 11.63495, + 46.49486 + ], + [ + 11.64297, + 46.49346 + ], + [ + 11.65174, + 46.48271 + ], + [ + 11.64536, + 46.47189 + ], + [ + 11.64179, + 46.47439 + ], + [ + 11.62679, + 46.4708 + ], + [ + 11.62987, + 46.46377 + ], + [ + 11.61882, + 46.44325 + ], + [ + 11.62143, + 46.42539 + ], + [ + 11.60161, + 46.39731 + ], + [ + 11.60307, + 46.38924 + ], + [ + 11.5932, + 46.38265 + ], + [ + 11.56489, + 46.38018 + ], + [ + 11.55878, + 46.35076 + ], + [ + 11.55249, + 46.34418 + ], + [ + 11.54423, + 46.34483 + ], + [ + 11.53837, + 46.35015 + ], + [ + 11.52445, + 46.35502 + ], + [ + 11.47969, + 46.36277 + ], + [ + 11.48052, + 46.3551 + ], + [ + 11.46322, + 46.34922 + ], + [ + 11.45556, + 46.33396 + ], + [ + 11.42105, + 46.32441 + ], + [ + 11.40517, + 46.32387 + ], + [ + 11.39865, + 46.31426 + ], + [ + 11.39994, + 46.30709 + ], + [ + 11.39569, + 46.3083 + ], + [ + 11.38188, + 46.30052 + ], + [ + 11.36088, + 46.29906 + ], + [ + 11.36078, + 46.29682 + ], + [ + 11.38256, + 46.29177 + ], + [ + 11.3871, + 46.28143 + ], + [ + 11.39609, + 46.27423 + ], + [ + 11.39862, + 46.264 + ], + [ + 11.38756, + 46.26029 + ], + [ + 11.37347, + 46.2629 + ], + [ + 11.36836, + 46.26135 + ], + [ + 11.35783, + 46.26481 + ], + [ + 11.35495, + 46.27564 + ], + [ + 11.33912, + 46.28306 + ], + [ + 11.33379, + 46.29049 + ], + [ + 11.33471, + 46.2962 + ], + [ + 11.3129, + 46.28256 + ], + [ + 11.31737, + 46.27303 + ], + [ + 11.30645, + 46.25786 + ], + [ + 11.29124, + 46.2604 + ], + [ + 11.24743, + 46.22933 + ], + [ + 11.20622, + 46.2187 + ], + [ + 11.18267, + 46.22496 + ], + [ + 11.17077, + 46.23806 + ], + [ + 11.17994, + 46.24434 + ], + [ + 11.18351, + 46.25269 + ], + [ + 11.18935, + 46.25354 + ], + [ + 11.19448, + 46.2461 + ], + [ + 11.20029, + 46.25566 + ], + [ + 11.16604, + 46.26129 + ], + [ + 11.14885, + 46.27904 + ], + [ + 11.13725, + 46.28336 + ], + [ + 11.14293, + 46.28934 + ], + [ + 11.15847, + 46.29059 + ], + [ + 11.16439, + 46.2986 + ], + [ + 11.1761, + 46.30346 + ], + [ + 11.1847, + 46.32104 + ], + [ + 11.18894, + 46.32151 + ], + [ + 11.18696, + 46.32673 + ], + [ + 11.1942, + 46.33016 + ], + [ + 11.20204, + 46.34212 + ], + [ + 11.19001, + 46.35984 + ], + [ + 11.19263, + 46.36578 + ], + [ + 11.20393, + 46.36765 + ], + [ + 11.19792, + 46.37232 + ], + [ + 11.21275, + 46.39804 + ], + [ + 11.21345, + 46.40675 + ], + [ + 11.20565, + 46.4166 + ], + [ + 11.21026, + 46.4206 + ], + [ + 11.20347, + 46.42682 + ], + [ + 11.21416, + 46.43556 + ], + [ + 11.21634, + 46.44255 + ], + [ + 11.20903, + 46.45293 + ], + [ + 11.21419, + 46.45807 + ], + [ + 11.21736, + 46.45731 + ], + [ + 11.21886, + 46.46199 + ], + [ + 11.21626, + 46.47277 + ], + [ + 11.20939, + 46.481 + ], + [ + 11.20876, + 46.49346 + ], + [ + 11.19608, + 46.50241 + ], + [ + 11.1924, + 46.501 + ], + [ + 11.18686, + 46.50734 + ], + [ + 11.18002, + 46.49823 + ], + [ + 11.17014, + 46.49635 + ], + [ + 11.16095, + 46.4878 + ], + [ + 11.12934, + 46.48058 + ], + [ + 11.1103, + 46.49643 + ], + [ + 11.10449, + 46.4948 + ], + [ + 11.08812, + 46.50128 + ], + [ + 11.08173, + 46.53021 + ], + [ + 11.05915, + 46.51508 + ], + [ + 11.03795, + 46.51357 + ], + [ + 11.05006, + 46.50784 + ], + [ + 11.05773, + 46.49235 + ], + [ + 11.06278, + 46.4894 + ], + [ + 11.06894, + 46.46619 + ], + [ + 11.07625, + 46.45487 + ], + [ + 11.0778, + 46.44569 + ], + [ + 11.07301, + 46.44042 + ], + [ + 11.05394, + 46.44849 + ], + [ + 11.0414, + 46.44569 + ], + [ + 11.02817, + 46.46116 + ], + [ + 11.00952, + 46.46917 + ], + [ + 11.00462, + 46.47607 + ], + [ + 10.98695, + 46.48289 + ], + [ + 10.96543, + 46.48103 + ], + [ + 10.95791, + 46.46983 + ], + [ + 10.93819, + 46.46578 + ], + [ + 10.9325, + 46.45831 + ], + [ + 10.93332, + 46.4528 + ], + [ + 10.91305, + 46.44284 + ], + [ + 10.89161, + 46.44366 + ], + [ + 10.88324, + 46.44995 + ], + [ + 10.88093, + 46.44579 + ], + [ + 10.87162, + 46.4438 + ], + [ + 10.86174, + 46.43509 + ], + [ + 10.85113, + 46.43817 + ], + [ + 10.80034, + 46.44185 + ], + [ + 10.78906, + 46.45164 + ], + [ + 10.77835, + 46.47112 + ], + [ + 10.76934, + 46.47609 + ], + [ + 10.76463, + 46.4848 + ], + [ + 10.75906, + 46.48547 + ], + [ + 10.74422, + 46.48333 + ], + [ + 10.71753, + 46.46022 + ], + [ + 10.69667, + 46.4573 + ], + [ + 10.68293, + 46.44846 + ], + [ + 10.66821, + 46.45122 + ], + [ + 10.63303, + 46.44309 + ], + [ + 10.61439, + 46.45098 + ], + [ + 10.60128, + 46.46139 + ], + [ + 10.59995, + 46.46766 + ], + [ + 10.57672, + 46.47237 + ], + [ + 10.55875, + 46.48187 + ], + [ + 10.54986, + 46.49123 + ], + [ + 10.53685, + 46.49062 + ], + [ + 10.52657, + 46.49425 + ], + [ + 10.49366, + 46.49719 + ], + [ + 10.48141, + 46.49337 + ], + [ + 10.45714, + 46.5096 + ], + [ + 10.45124, + 46.53083 + ], + [ + 10.45814, + 46.54215 + ], + [ + 10.47056, + 46.54377 + ], + [ + 10.46954, + 46.54856 + ], + [ + 10.47617, + 46.55749 + ], + [ + 10.47321, + 46.56701 + ], + [ + 10.48305, + 46.5777 + ], + [ + 10.48575, + 46.58921 + ], + [ + 10.48221, + 46.59199 + ], + [ + 10.48576, + 46.59805 + ], + [ + 10.48291, + 46.60512 + ], + [ + 10.49055, + 46.61394 + ], + [ + 10.44632, + 46.63989 + ], + [ + 10.40935, + 46.63389 + ], + [ + 10.40011, + 46.63648 + ], + [ + 10.39873, + 46.6455 + ], + [ + 10.38946, + 46.65862 + ], + [ + 10.39057, + 46.67089 + ], + [ + 10.3803, + 46.68399 + ], + [ + 10.38615, + 46.68821 + ] + ] + ], + "terms_url": "http://geoservices.buergernetz.bz.it/geokatalog/", + "terms_text": "© Autonomen Provinz Bozen/Provincia Autonoma di Bolzano CC-BY 3.0", + "description": "Orthophoto of South Tyrol from 2011 with up to 20cm resolution (larger valleys)" + }, { "id": "South-Tyrol-Orthofoto-2014-2015", "name": "South Tyrol Orthofoto 2014/2015", @@ -70048,6 +102898,155 @@ "terms_text": "SZTE TFGT - University of Szeged", "best": true }, + { + "id": "teotonio_vilela", + "name": "Teotonio Vilela AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Teotonio%20Vilela&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.31163860301, + -9.95467712399 + ], + [ + -36.31157895645, + -9.94381824983 + ], + [ + -36.31144972224, + -9.93197001342 + ], + [ + -36.31127078257, + -9.92436145686 + ], + [ + -36.31123101819, + -9.91847621012 + ], + [ + -36.31119125382, + -9.91637081332 + ], + [ + -36.31140995787, + -9.91323717443 + ], + [ + -36.31110178398, + -9.90922215583 + ], + [ + -36.3110819018, + -9.90317994983 + ], + [ + -36.31099243196, + -9.8937883586 + ], + [ + -36.31089302103, + -9.88420062824 + ], + [ + -36.31078366901, + -9.87412292696 + ], + [ + -36.31068425808, + -9.86457379995 + ], + [ + -36.33179913972, + -9.86431915278 + ], + [ + -36.34001048258, + -9.8643681234 + ], + [ + -36.34780429953, + -9.86425059389 + ], + [ + -36.35916696889, + -9.86420162324 + ], + [ + -36.37046999169, + -9.86404491714 + ], + [ + -36.38447699181, + -9.86385882853 + ], + [ + -36.40163531841, + -9.86364335739 + ], + [ + -36.40221190181, + -9.92250090776 + ], + [ + -36.40249025242, + -9.9317741712 + ], + [ + -36.40258966335, + -9.94183051783 + ], + [ + -36.40248031132, + -9.94803846834 + ], + [ + -36.402659251, + -9.95369797972 + ], + [ + -36.38550092439, + -9.95384485155 + ], + [ + -36.38282677036, + -9.95392318316 + ], + [ + -36.37095710525, + -9.95399172331 + ], + [ + -36.36231829539, + -9.95422671799 + ], + [ + -36.34746630237, + -9.95421692655 + ], + [ + -36.33287277777, + -9.9544617125 + ], + [ + -36.32909516241, + -9.95455962683 + ], + [ + -36.32089376064, + -9.95458900112 + ], + [ + -36.31163860301, + -9.95467712399 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "tnris.org", "name": "Texas Orthophoto", @@ -70715,6 +103714,4625 @@ "icon": "data:image/png;base64,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", "overlay": true }, + { + "id": "tirol.gv.at-contourlines", + "name": "Tiris: contour lines", + "type": "wms", + "template": "https://gis.tirol.gv.at/arcgis/services/Service_Public/terrain/MapServer/WmsServer?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Hoehenschichtlinien 20m&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "scaleExtent": [ + 15, + 22 + ], + "polygon": [ + [ + [ + 10.4399766, + 47.5976781 + ], + [ + 10.4788646, + 47.5992486 + ], + [ + 10.5027725, + 47.5865589 + ], + [ + 10.4837986, + 47.5597936 + ], + [ + 10.513122, + 47.5434951 + ], + [ + 10.5717689, + 47.5458237 + ], + [ + 10.570044, + 47.5621216 + ], + [ + 10.6010923, + 47.5807415 + ], + [ + 10.6390403, + 47.5691048 + ], + [ + 10.7080366, + 47.5702686 + ], + [ + 10.7114864, + 47.5493166 + ], + [ + 10.7684083, + 47.5504808 + ], + [ + 10.7856574, + 47.5260267 + ], + [ + 10.8960515, + 47.5504808 + ], + [ + 10.9357244, + 47.5236971 + ], + [ + 10.9339995, + 47.5050569 + ], + [ + 10.8908768, + 47.4957344 + ], + [ + 10.9512486, + 47.4910724 + ], + [ + 10.9546984, + 47.4677567 + ], + [ + 11.0029958, + 47.4327637 + ], + [ + 10.9909215, + 47.4082547 + ], + [ + 11.1030405, + 47.4047525 + ], + [ + 11.1151148, + 47.4199271 + ], + [ + 11.2099847, + 47.4455971 + ], + [ + 11.2686316, + 47.4409308 + ], + [ + 11.2669067, + 47.4105894 + ], + [ + 11.2945052, + 47.4420974 + ], + [ + 11.3307283, + 47.4607599 + ], + [ + 11.3824755, + 47.4584275 + ], + [ + 11.3704012, + 47.4759184 + ], + [ + 11.4393975, + 47.5306855 + ], + [ + 11.466996, + 47.5178728 + ], + [ + 11.5739403, + 47.5236971 + ], + [ + 11.5756652, + 47.5586296 + ], + [ + 11.598089, + 47.5912123 + ], + [ + 11.6343121, + 47.6063331 + ], + [ + 11.6688102, + 47.5947021 + ], + [ + 11.7930036, + 47.602844 + ], + [ + 11.8395761, + 47.5923756 + ], + [ + 11.8499255, + 47.6109847 + ], + [ + 12.0068922, + 47.6365615 + ], + [ + 12.0362156, + 47.6249373 + ], + [ + 12.0776134, + 47.6272623 + ], + [ + 12.1086617, + 47.6191242 + ], + [ + 12.1949071, + 47.6226121 + ], + [ + 12.1535093, + 47.6876775 + ], + [ + 12.158684, + 47.7166984 + ], + [ + 12.1811078, + 47.7120562 + ], + [ + 12.2190558, + 47.7248214 + ], + [ + 12.2414796, + 47.7538216 + ], + [ + 12.272528, + 47.7515022 + ], + [ + 12.2846023, + 47.7317829 + ], + [ + 12.2656283, + 47.695805 + ], + [ + 12.3363495, + 47.7108955 + ], + [ + 12.3760224, + 47.695805 + ], + [ + 12.4432938, + 47.7027704 + ], + [ + 12.4536433, + 47.692322 + ], + [ + 12.4536433, + 47.6749032 + ], + [ + 12.5105652, + 47.6319121 + ], + [ + 12.5312641, + 47.6458591 + ], + [ + 12.589911, + 47.6342369 + ], + [ + 12.5795615, + 47.6109847 + ], + [ + 12.6658069, + 47.5947021 + ], + [ + 12.6796062, + 47.5749235 + ], + [ + 12.645108, + 47.5504808 + ], + [ + 12.6675318, + 47.5318501 + ], + [ + 12.6847809, + 47.5038917 + ], + [ + 12.7123795, + 47.4817474 + ], + [ + 12.6675318, + 47.4560949 + ], + [ + 12.6416582, + 47.4595937 + ], + [ + 12.6502828, + 47.443264 + ], + [ + 12.6209593, + 47.4070873 + ], + [ + 12.5743868, + 47.3860701 + ], + [ + 12.5502381, + 47.3965797 + ], + [ + 12.4915913, + 47.3720539 + ], + [ + 12.5088403, + 47.3510227 + ], + [ + 12.4881414, + 47.3206295 + ], + [ + 12.4346693, + 47.322968 + ], + [ + 12.4139704, + 47.3042567 + ], + [ + 12.3639481, + 47.3089351 + ], + [ + 12.3122008, + 47.3276449 + ], + [ + 12.2708031, + 47.298408 + ], + [ + 12.177658, + 47.2937286 + ], + [ + 12.1483346, + 47.2843686 + ], + [ + 12.1172863, + 47.2995778 + ], + [ + 12.0983123, + 47.2750069 + ], + [ + 12.1259108, + 47.2504245 + ], + [ + 12.0965874, + 47.1977096 + ], + [ + 12.1103866, + 47.1484618 + ], + [ + 12.141435, + 47.109735 + ], + [ + 12.1379852, + 47.0897738 + ], + [ + 12.1500595, + 47.0756791 + ], + [ + 12.0051672, + 47.0439523 + ], + [ + 11.9206468, + 47.0298454 + ], + [ + 11.8309516, + 46.9910324 + ], + [ + 11.7878289, + 46.9863258 + ], + [ + 11.7740296, + 46.9674955 + ], + [ + 11.7309069, + 46.9651413 + ], + [ + 11.7067582, + 46.9898558 + ], + [ + 11.6429366, + 46.994562 + ], + [ + 11.6118883, + 47.0051495 + ], + [ + 11.5325425, + 46.9780884 + ], + [ + 11.4928696, + 47.0086782 + ], + [ + 11.4445722, + 46.9674955 + ], + [ + 11.4048993, + 46.9616097 + ], + [ + 11.3445276, + 46.9863258 + ], + [ + 11.2030851, + 46.9569006 + ], + [ + 11.1754866, + 46.9616097 + ], + [ + 11.1772115, + 46.9439484 + ], + [ + 11.1461632, + 46.922747 + ], + [ + 11.1254643, + 46.922747 + ], + [ + 11.1082152, + 46.9038944 + ], + [ + 11.1151148, + 46.8885717 + ], + [ + 11.0823416, + 46.853195 + ], + [ + 11.0961408, + 46.8236966 + ], + [ + 11.0512932, + 46.8024477 + ], + [ + 11.0236947, + 46.762288 + ], + [ + 10.9184753, + 46.7705586 + ], + [ + 10.8839772, + 46.7575613 + ], + [ + 10.8408545, + 46.7729214 + ], + [ + 10.8236054, + 46.7693772 + ], + [ + 10.7908322, + 46.7894581 + ], + [ + 10.756334, + 46.778828 + ], + [ + 10.7252857, + 46.7906391 + ], + [ + 10.7477095, + 46.8272372 + ], + [ + 10.6942373, + 46.8449371 + ], + [ + 10.6735384, + 46.869707 + ], + [ + 10.6079919, + 46.853195 + ], + [ + 10.5545198, + 46.8272372 + ], + [ + 10.5200216, + 46.8390378 + ], + [ + 10.4682744, + 46.8366779 + ], + [ + 10.4510253, + 46.8814982 + ], + [ + 10.475174, + 46.9321709 + ], + [ + 10.4130773, + 46.9557232 + ], + [ + 10.3941034, + 46.9886791 + ], + [ + 10.3665048, + 46.9804421 + ], + [ + 10.3389063, + 46.9474811 + ], + [ + 10.3285569, + 46.9180345 + ], + [ + 10.2975085, + 46.9133215 + ], + [ + 10.2595605, + 46.9251032 + ], + [ + 10.2388617, + 46.8626311 + ], + [ + 10.1664155, + 46.8390378 + ], + [ + 10.1353672, + 46.8472966 + ], + [ + 10.1319174, + 46.8720655 + ], + [ + 10.1060438, + 46.886214 + ], + [ + 10.0922445, + 46.9274592 + ], + [ + 10.1250177, + 46.952191 + ], + [ + 10.1457166, + 47.0004442 + ], + [ + 10.1129434, + 47.0251423 + ], + [ + 10.1526163, + 47.0498291 + ], + [ + 10.1301925, + 47.0627556 + ], + [ + 10.1336423, + 47.0909482 + ], + [ + 10.1595159, + 47.126168 + ], + [ + 10.2009137, + 47.1425959 + ], + [ + 10.1922891, + 47.2000536 + ], + [ + 10.2095382, + 47.2129438 + ], + [ + 10.1871144, + 47.2398857 + ], + [ + 10.2009137, + 47.2562785 + ], + [ + 10.1681404, + 47.2633024 + ], + [ + 10.1681404, + 47.2808581 + ], + [ + 10.2026386, + 47.2913887 + ], + [ + 10.2440364, + 47.2890488 + ], + [ + 10.3337316, + 47.3206295 + ], + [ + 10.3889286, + 47.3907413 + ], + [ + 10.4148022, + 47.3942444 + ], + [ + 10.4562, + 47.436264 + ], + [ + 10.4475755, + 47.4817474 + ], + [ + 10.419977, + 47.5050569 + ], + [ + 10.4424008, + 47.5551374 + ], + [ + 10.4130773, + 47.5714324 + ], + [ + 10.4399766, + 47.5976781 + ] + ], + [ + [ + 12.401896, + 47.1601916 + ], + [ + 12.3570484, + 47.1390761 + ], + [ + 12.3501488, + 47.1120829 + ], + [ + 12.3104759, + 47.107387 + ], + [ + 12.2552789, + 47.0721548 + ], + [ + 12.2138811, + 47.0592305 + ], + [ + 12.2000818, + 47.0263181 + ], + [ + 12.1448848, + 47.0310212 + ], + [ + 12.1155613, + 47.007502 + ], + [ + 12.1362602, + 46.9592552 + ], + [ + 12.1673086, + 46.9357044 + ], + [ + 12.1431599, + 46.9109649 + ], + [ + 12.1897324, + 46.9003588 + ], + [ + 12.2173309, + 46.8661692 + ], + [ + 12.2552789, + 46.8838562 + ], + [ + 12.2742529, + 46.8826772 + ], + [ + 12.2984016, + 46.8343179 + ], + [ + 12.2759778, + 46.8201557 + ], + [ + 12.2794276, + 46.7776467 + ], + [ + 12.3501488, + 46.77174 + ], + [ + 12.3811972, + 46.7150029 + ], + [ + 12.4432938, + 46.6842454 + ], + [ + 12.5140151, + 46.6700437 + ], + [ + 12.5657623, + 46.6487342 + ], + [ + 12.6295839, + 46.6534704 + ], + [ + 12.70203, + 46.6534704 + ], + [ + 12.7037549, + 46.6984434 + ], + [ + 12.7296285, + 46.7008093 + ], + [ + 12.7227289, + 46.7374685 + ], + [ + 12.8020747, + 46.7492887 + ], + [ + 12.8538219, + 46.744561 + ], + [ + 12.9038442, + 46.77174 + ], + [ + 12.9279929, + 46.7599247 + ], + [ + 12.9573164, + 46.7764654 + ], + [ + 12.9797402, + 46.7977246 + ], + [ + 12.8952197, + 46.8331378 + ], + [ + 12.8952197, + 46.8484763 + ], + [ + 12.8451974, + 46.8638104 + ], + [ + 12.8469223, + 46.9156781 + ], + [ + 12.7968999, + 46.930993 + ], + [ + 12.7882754, + 46.9474811 + ], + [ + 12.7486025, + 46.9686726 + ], + [ + 12.7365282, + 46.9969149 + ], + [ + 12.7813758, + 47.0416014 + ], + [ + 12.7624018, + 47.0510043 + ], + [ + 12.7141044, + 47.0451277 + ], + [ + 12.7106545, + 47.0780285 + ], + [ + 12.6226842, + 47.126168 + ], + [ + 12.5692121, + 47.1414227 + ], + [ + 12.551963, + 47.1332091 + ], + [ + 12.5260894, + 47.154327 + ], + [ + 12.4829667, + 47.1648828 + ], + [ + 12.4605429, + 47.1484618 + ], + [ + 12.4346693, + 47.1578459 + ], + [ + 12.4191451, + 47.1437691 + ], + [ + 12.401896, + 47.1601916 + ] + ] + ], + "terms_text": "tiris.tirol.gv.at", + "icon": "https://static.tirol.gv.at/plainhtml/v1/tirollogo.gif" + }, + { + "id": "tirol.gv.at-DGM", + "name": "Tiris: DGM (Terrain model)", + "type": "wms", + "template": "https://gis.tirol.gv.at/arcgis/services/Service_Public/terrain/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Image Schummerung_Gelaendemodell&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.4399766, + 47.5976781 + ], + [ + 10.4788646, + 47.5992486 + ], + [ + 10.5027725, + 47.5865589 + ], + [ + 10.4837986, + 47.5597936 + ], + [ + 10.513122, + 47.5434951 + ], + [ + 10.5717689, + 47.5458237 + ], + [ + 10.570044, + 47.5621216 + ], + [ + 10.6010923, + 47.5807415 + ], + [ + 10.6390403, + 47.5691048 + ], + [ + 10.7080366, + 47.5702686 + ], + [ + 10.7114864, + 47.5493166 + ], + [ + 10.7684083, + 47.5504808 + ], + [ + 10.7856574, + 47.5260267 + ], + [ + 10.8960515, + 47.5504808 + ], + [ + 10.9357244, + 47.5236971 + ], + [ + 10.9339995, + 47.5050569 + ], + [ + 10.8908768, + 47.4957344 + ], + [ + 10.9512486, + 47.4910724 + ], + [ + 10.9546984, + 47.4677567 + ], + [ + 11.0029958, + 47.4327637 + ], + [ + 10.9909215, + 47.4082547 + ], + [ + 11.1030405, + 47.4047525 + ], + [ + 11.1151148, + 47.4199271 + ], + [ + 11.2099847, + 47.4455971 + ], + [ + 11.2686316, + 47.4409308 + ], + [ + 11.2669067, + 47.4105894 + ], + [ + 11.2945052, + 47.4420974 + ], + [ + 11.3307283, + 47.4607599 + ], + [ + 11.3824755, + 47.4584275 + ], + [ + 11.3704012, + 47.4759184 + ], + [ + 11.4393975, + 47.5306855 + ], + [ + 11.466996, + 47.5178728 + ], + [ + 11.5739403, + 47.5236971 + ], + [ + 11.5756652, + 47.5586296 + ], + [ + 11.598089, + 47.5912123 + ], + [ + 11.6343121, + 47.6063331 + ], + [ + 11.6688102, + 47.5947021 + ], + [ + 11.7930036, + 47.602844 + ], + [ + 11.8395761, + 47.5923756 + ], + [ + 11.8499255, + 47.6109847 + ], + [ + 12.0068922, + 47.6365615 + ], + [ + 12.0362156, + 47.6249373 + ], + [ + 12.0776134, + 47.6272623 + ], + [ + 12.1086617, + 47.6191242 + ], + [ + 12.1949071, + 47.6226121 + ], + [ + 12.1535093, + 47.6876775 + ], + [ + 12.158684, + 47.7166984 + ], + [ + 12.1811078, + 47.7120562 + ], + [ + 12.2190558, + 47.7248214 + ], + [ + 12.2414796, + 47.7538216 + ], + [ + 12.272528, + 47.7515022 + ], + [ + 12.2846023, + 47.7317829 + ], + [ + 12.2656283, + 47.695805 + ], + [ + 12.3363495, + 47.7108955 + ], + [ + 12.3760224, + 47.695805 + ], + [ + 12.4432938, + 47.7027704 + ], + [ + 12.4536433, + 47.692322 + ], + [ + 12.4536433, + 47.6749032 + ], + [ + 12.5105652, + 47.6319121 + ], + [ + 12.5312641, + 47.6458591 + ], + [ + 12.589911, + 47.6342369 + ], + [ + 12.5795615, + 47.6109847 + ], + [ + 12.6658069, + 47.5947021 + ], + [ + 12.6796062, + 47.5749235 + ], + [ + 12.645108, + 47.5504808 + ], + [ + 12.6675318, + 47.5318501 + ], + [ + 12.6847809, + 47.5038917 + ], + [ + 12.7123795, + 47.4817474 + ], + [ + 12.6675318, + 47.4560949 + ], + [ + 12.6416582, + 47.4595937 + ], + [ + 12.6502828, + 47.443264 + ], + [ + 12.6209593, + 47.4070873 + ], + [ + 12.5743868, + 47.3860701 + ], + [ + 12.5502381, + 47.3965797 + ], + [ + 12.4915913, + 47.3720539 + ], + [ + 12.5088403, + 47.3510227 + ], + [ + 12.4881414, + 47.3206295 + ], + [ + 12.4346693, + 47.322968 + ], + [ + 12.4139704, + 47.3042567 + ], + [ + 12.3639481, + 47.3089351 + ], + [ + 12.3122008, + 47.3276449 + ], + [ + 12.2708031, + 47.298408 + ], + [ + 12.177658, + 47.2937286 + ], + [ + 12.1483346, + 47.2843686 + ], + [ + 12.1172863, + 47.2995778 + ], + [ + 12.0983123, + 47.2750069 + ], + [ + 12.1259108, + 47.2504245 + ], + [ + 12.0965874, + 47.1977096 + ], + [ + 12.1103866, + 47.1484618 + ], + [ + 12.141435, + 47.109735 + ], + [ + 12.1379852, + 47.0897738 + ], + [ + 12.1500595, + 47.0756791 + ], + [ + 12.0051672, + 47.0439523 + ], + [ + 11.9206468, + 47.0298454 + ], + [ + 11.8309516, + 46.9910324 + ], + [ + 11.7878289, + 46.9863258 + ], + [ + 11.7740296, + 46.9674955 + ], + [ + 11.7309069, + 46.9651413 + ], + [ + 11.7067582, + 46.9898558 + ], + [ + 11.6429366, + 46.994562 + ], + [ + 11.6118883, + 47.0051495 + ], + [ + 11.5325425, + 46.9780884 + ], + [ + 11.4928696, + 47.0086782 + ], + [ + 11.4445722, + 46.9674955 + ], + [ + 11.4048993, + 46.9616097 + ], + [ + 11.3445276, + 46.9863258 + ], + [ + 11.2030851, + 46.9569006 + ], + [ + 11.1754866, + 46.9616097 + ], + [ + 11.1772115, + 46.9439484 + ], + [ + 11.1461632, + 46.922747 + ], + [ + 11.1254643, + 46.922747 + ], + [ + 11.1082152, + 46.9038944 + ], + [ + 11.1151148, + 46.8885717 + ], + [ + 11.0823416, + 46.853195 + ], + [ + 11.0961408, + 46.8236966 + ], + [ + 11.0512932, + 46.8024477 + ], + [ + 11.0236947, + 46.762288 + ], + [ + 10.9184753, + 46.7705586 + ], + [ + 10.8839772, + 46.7575613 + ], + [ + 10.8408545, + 46.7729214 + ], + [ + 10.8236054, + 46.7693772 + ], + [ + 10.7908322, + 46.7894581 + ], + [ + 10.756334, + 46.778828 + ], + [ + 10.7252857, + 46.7906391 + ], + [ + 10.7477095, + 46.8272372 + ], + [ + 10.6942373, + 46.8449371 + ], + [ + 10.6735384, + 46.869707 + ], + [ + 10.6079919, + 46.853195 + ], + [ + 10.5545198, + 46.8272372 + ], + [ + 10.5200216, + 46.8390378 + ], + [ + 10.4682744, + 46.8366779 + ], + [ + 10.4510253, + 46.8814982 + ], + [ + 10.475174, + 46.9321709 + ], + [ + 10.4130773, + 46.9557232 + ], + [ + 10.3941034, + 46.9886791 + ], + [ + 10.3665048, + 46.9804421 + ], + [ + 10.3389063, + 46.9474811 + ], + [ + 10.3285569, + 46.9180345 + ], + [ + 10.2975085, + 46.9133215 + ], + [ + 10.2595605, + 46.9251032 + ], + [ + 10.2388617, + 46.8626311 + ], + [ + 10.1664155, + 46.8390378 + ], + [ + 10.1353672, + 46.8472966 + ], + [ + 10.1319174, + 46.8720655 + ], + [ + 10.1060438, + 46.886214 + ], + [ + 10.0922445, + 46.9274592 + ], + [ + 10.1250177, + 46.952191 + ], + [ + 10.1457166, + 47.0004442 + ], + [ + 10.1129434, + 47.0251423 + ], + [ + 10.1526163, + 47.0498291 + ], + [ + 10.1301925, + 47.0627556 + ], + [ + 10.1336423, + 47.0909482 + ], + [ + 10.1595159, + 47.126168 + ], + [ + 10.2009137, + 47.1425959 + ], + [ + 10.1922891, + 47.2000536 + ], + [ + 10.2095382, + 47.2129438 + ], + [ + 10.1871144, + 47.2398857 + ], + [ + 10.2009137, + 47.2562785 + ], + [ + 10.1681404, + 47.2633024 + ], + [ + 10.1681404, + 47.2808581 + ], + [ + 10.2026386, + 47.2913887 + ], + [ + 10.2440364, + 47.2890488 + ], + [ + 10.3337316, + 47.3206295 + ], + [ + 10.3889286, + 47.3907413 + ], + [ + 10.4148022, + 47.3942444 + ], + [ + 10.4562, + 47.436264 + ], + [ + 10.4475755, + 47.4817474 + ], + [ + 10.419977, + 47.5050569 + ], + [ + 10.4424008, + 47.5551374 + ], + [ + 10.4130773, + 47.5714324 + ], + [ + 10.4399766, + 47.5976781 + ] + ], + [ + [ + 12.401896, + 47.1601916 + ], + [ + 12.3570484, + 47.1390761 + ], + [ + 12.3501488, + 47.1120829 + ], + [ + 12.3104759, + 47.107387 + ], + [ + 12.2552789, + 47.0721548 + ], + [ + 12.2138811, + 47.0592305 + ], + [ + 12.2000818, + 47.0263181 + ], + [ + 12.1448848, + 47.0310212 + ], + [ + 12.1155613, + 47.007502 + ], + [ + 12.1362602, + 46.9592552 + ], + [ + 12.1673086, + 46.9357044 + ], + [ + 12.1431599, + 46.9109649 + ], + [ + 12.1897324, + 46.9003588 + ], + [ + 12.2173309, + 46.8661692 + ], + [ + 12.2552789, + 46.8838562 + ], + [ + 12.2742529, + 46.8826772 + ], + [ + 12.2984016, + 46.8343179 + ], + [ + 12.2759778, + 46.8201557 + ], + [ + 12.2794276, + 46.7776467 + ], + [ + 12.3501488, + 46.77174 + ], + [ + 12.3811972, + 46.7150029 + ], + [ + 12.4432938, + 46.6842454 + ], + [ + 12.5140151, + 46.6700437 + ], + [ + 12.5657623, + 46.6487342 + ], + [ + 12.6295839, + 46.6534704 + ], + [ + 12.70203, + 46.6534704 + ], + [ + 12.7037549, + 46.6984434 + ], + [ + 12.7296285, + 46.7008093 + ], + [ + 12.7227289, + 46.7374685 + ], + [ + 12.8020747, + 46.7492887 + ], + [ + 12.8538219, + 46.744561 + ], + [ + 12.9038442, + 46.77174 + ], + [ + 12.9279929, + 46.7599247 + ], + [ + 12.9573164, + 46.7764654 + ], + [ + 12.9797402, + 46.7977246 + ], + [ + 12.8952197, + 46.8331378 + ], + [ + 12.8952197, + 46.8484763 + ], + [ + 12.8451974, + 46.8638104 + ], + [ + 12.8469223, + 46.9156781 + ], + [ + 12.7968999, + 46.930993 + ], + [ + 12.7882754, + 46.9474811 + ], + [ + 12.7486025, + 46.9686726 + ], + [ + 12.7365282, + 46.9969149 + ], + [ + 12.7813758, + 47.0416014 + ], + [ + 12.7624018, + 47.0510043 + ], + [ + 12.7141044, + 47.0451277 + ], + [ + 12.7106545, + 47.0780285 + ], + [ + 12.6226842, + 47.126168 + ], + [ + 12.5692121, + 47.1414227 + ], + [ + 12.551963, + 47.1332091 + ], + [ + 12.5260894, + 47.154327 + ], + [ + 12.4829667, + 47.1648828 + ], + [ + 12.4605429, + 47.1484618 + ], + [ + 12.4346693, + 47.1578459 + ], + [ + 12.4191451, + 47.1437691 + ], + [ + 12.401896, + 47.1601916 + ] + ] + ], + "terms_text": "tiris.tirol.gv.at", + "icon": "https://static.tirol.gv.at/plainhtml/v1/tirollogo.gif" + }, + { + "id": "tirol.gv.at-DOM", + "name": "Tiris: DOM (Surface model)", + "type": "wms", + "template": "https://gis.tirol.gv.at/arcgis/services/Service_Public/terrain/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Image Schummerung_Oberflaechenmodell&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.4399766, + 47.5976781 + ], + [ + 10.4788646, + 47.5992486 + ], + [ + 10.5027725, + 47.5865589 + ], + [ + 10.4837986, + 47.5597936 + ], + [ + 10.513122, + 47.5434951 + ], + [ + 10.5717689, + 47.5458237 + ], + [ + 10.570044, + 47.5621216 + ], + [ + 10.6010923, + 47.5807415 + ], + [ + 10.6390403, + 47.5691048 + ], + [ + 10.7080366, + 47.5702686 + ], + [ + 10.7114864, + 47.5493166 + ], + [ + 10.7684083, + 47.5504808 + ], + [ + 10.7856574, + 47.5260267 + ], + [ + 10.8960515, + 47.5504808 + ], + [ + 10.9357244, + 47.5236971 + ], + [ + 10.9339995, + 47.5050569 + ], + [ + 10.8908768, + 47.4957344 + ], + [ + 10.9512486, + 47.4910724 + ], + [ + 10.9546984, + 47.4677567 + ], + [ + 11.0029958, + 47.4327637 + ], + [ + 10.9909215, + 47.4082547 + ], + [ + 11.1030405, + 47.4047525 + ], + [ + 11.1151148, + 47.4199271 + ], + [ + 11.2099847, + 47.4455971 + ], + [ + 11.2686316, + 47.4409308 + ], + [ + 11.2669067, + 47.4105894 + ], + [ + 11.2945052, + 47.4420974 + ], + [ + 11.3307283, + 47.4607599 + ], + [ + 11.3824755, + 47.4584275 + ], + [ + 11.3704012, + 47.4759184 + ], + [ + 11.4393975, + 47.5306855 + ], + [ + 11.466996, + 47.5178728 + ], + [ + 11.5739403, + 47.5236971 + ], + [ + 11.5756652, + 47.5586296 + ], + [ + 11.598089, + 47.5912123 + ], + [ + 11.6343121, + 47.6063331 + ], + [ + 11.6688102, + 47.5947021 + ], + [ + 11.7930036, + 47.602844 + ], + [ + 11.8395761, + 47.5923756 + ], + [ + 11.8499255, + 47.6109847 + ], + [ + 12.0068922, + 47.6365615 + ], + [ + 12.0362156, + 47.6249373 + ], + [ + 12.0776134, + 47.6272623 + ], + [ + 12.1086617, + 47.6191242 + ], + [ + 12.1949071, + 47.6226121 + ], + [ + 12.1535093, + 47.6876775 + ], + [ + 12.158684, + 47.7166984 + ], + [ + 12.1811078, + 47.7120562 + ], + [ + 12.2190558, + 47.7248214 + ], + [ + 12.2414796, + 47.7538216 + ], + [ + 12.272528, + 47.7515022 + ], + [ + 12.2846023, + 47.7317829 + ], + [ + 12.2656283, + 47.695805 + ], + [ + 12.3363495, + 47.7108955 + ], + [ + 12.3760224, + 47.695805 + ], + [ + 12.4432938, + 47.7027704 + ], + [ + 12.4536433, + 47.692322 + ], + [ + 12.4536433, + 47.6749032 + ], + [ + 12.5105652, + 47.6319121 + ], + [ + 12.5312641, + 47.6458591 + ], + [ + 12.589911, + 47.6342369 + ], + [ + 12.5795615, + 47.6109847 + ], + [ + 12.6658069, + 47.5947021 + ], + [ + 12.6796062, + 47.5749235 + ], + [ + 12.645108, + 47.5504808 + ], + [ + 12.6675318, + 47.5318501 + ], + [ + 12.6847809, + 47.5038917 + ], + [ + 12.7123795, + 47.4817474 + ], + [ + 12.6675318, + 47.4560949 + ], + [ + 12.6416582, + 47.4595937 + ], + [ + 12.6502828, + 47.443264 + ], + [ + 12.6209593, + 47.4070873 + ], + [ + 12.5743868, + 47.3860701 + ], + [ + 12.5502381, + 47.3965797 + ], + [ + 12.4915913, + 47.3720539 + ], + [ + 12.5088403, + 47.3510227 + ], + [ + 12.4881414, + 47.3206295 + ], + [ + 12.4346693, + 47.322968 + ], + [ + 12.4139704, + 47.3042567 + ], + [ + 12.3639481, + 47.3089351 + ], + [ + 12.3122008, + 47.3276449 + ], + [ + 12.2708031, + 47.298408 + ], + [ + 12.177658, + 47.2937286 + ], + [ + 12.1483346, + 47.2843686 + ], + [ + 12.1172863, + 47.2995778 + ], + [ + 12.0983123, + 47.2750069 + ], + [ + 12.1259108, + 47.2504245 + ], + [ + 12.0965874, + 47.1977096 + ], + [ + 12.1103866, + 47.1484618 + ], + [ + 12.141435, + 47.109735 + ], + [ + 12.1379852, + 47.0897738 + ], + [ + 12.1500595, + 47.0756791 + ], + [ + 12.0051672, + 47.0439523 + ], + [ + 11.9206468, + 47.0298454 + ], + [ + 11.8309516, + 46.9910324 + ], + [ + 11.7878289, + 46.9863258 + ], + [ + 11.7740296, + 46.9674955 + ], + [ + 11.7309069, + 46.9651413 + ], + [ + 11.7067582, + 46.9898558 + ], + [ + 11.6429366, + 46.994562 + ], + [ + 11.6118883, + 47.0051495 + ], + [ + 11.5325425, + 46.9780884 + ], + [ + 11.4928696, + 47.0086782 + ], + [ + 11.4445722, + 46.9674955 + ], + [ + 11.4048993, + 46.9616097 + ], + [ + 11.3445276, + 46.9863258 + ], + [ + 11.2030851, + 46.9569006 + ], + [ + 11.1754866, + 46.9616097 + ], + [ + 11.1772115, + 46.9439484 + ], + [ + 11.1461632, + 46.922747 + ], + [ + 11.1254643, + 46.922747 + ], + [ + 11.1082152, + 46.9038944 + ], + [ + 11.1151148, + 46.8885717 + ], + [ + 11.0823416, + 46.853195 + ], + [ + 11.0961408, + 46.8236966 + ], + [ + 11.0512932, + 46.8024477 + ], + [ + 11.0236947, + 46.762288 + ], + [ + 10.9184753, + 46.7705586 + ], + [ + 10.8839772, + 46.7575613 + ], + [ + 10.8408545, + 46.7729214 + ], + [ + 10.8236054, + 46.7693772 + ], + [ + 10.7908322, + 46.7894581 + ], + [ + 10.756334, + 46.778828 + ], + [ + 10.7252857, + 46.7906391 + ], + [ + 10.7477095, + 46.8272372 + ], + [ + 10.6942373, + 46.8449371 + ], + [ + 10.6735384, + 46.869707 + ], + [ + 10.6079919, + 46.853195 + ], + [ + 10.5545198, + 46.8272372 + ], + [ + 10.5200216, + 46.8390378 + ], + [ + 10.4682744, + 46.8366779 + ], + [ + 10.4510253, + 46.8814982 + ], + [ + 10.475174, + 46.9321709 + ], + [ + 10.4130773, + 46.9557232 + ], + [ + 10.3941034, + 46.9886791 + ], + [ + 10.3665048, + 46.9804421 + ], + [ + 10.3389063, + 46.9474811 + ], + [ + 10.3285569, + 46.9180345 + ], + [ + 10.2975085, + 46.9133215 + ], + [ + 10.2595605, + 46.9251032 + ], + [ + 10.2388617, + 46.8626311 + ], + [ + 10.1664155, + 46.8390378 + ], + [ + 10.1353672, + 46.8472966 + ], + [ + 10.1319174, + 46.8720655 + ], + [ + 10.1060438, + 46.886214 + ], + [ + 10.0922445, + 46.9274592 + ], + [ + 10.1250177, + 46.952191 + ], + [ + 10.1457166, + 47.0004442 + ], + [ + 10.1129434, + 47.0251423 + ], + [ + 10.1526163, + 47.0498291 + ], + [ + 10.1301925, + 47.0627556 + ], + [ + 10.1336423, + 47.0909482 + ], + [ + 10.1595159, + 47.126168 + ], + [ + 10.2009137, + 47.1425959 + ], + [ + 10.1922891, + 47.2000536 + ], + [ + 10.2095382, + 47.2129438 + ], + [ + 10.1871144, + 47.2398857 + ], + [ + 10.2009137, + 47.2562785 + ], + [ + 10.1681404, + 47.2633024 + ], + [ + 10.1681404, + 47.2808581 + ], + [ + 10.2026386, + 47.2913887 + ], + [ + 10.2440364, + 47.2890488 + ], + [ + 10.3337316, + 47.3206295 + ], + [ + 10.3889286, + 47.3907413 + ], + [ + 10.4148022, + 47.3942444 + ], + [ + 10.4562, + 47.436264 + ], + [ + 10.4475755, + 47.4817474 + ], + [ + 10.419977, + 47.5050569 + ], + [ + 10.4424008, + 47.5551374 + ], + [ + 10.4130773, + 47.5714324 + ], + [ + 10.4399766, + 47.5976781 + ] + ], + [ + [ + 12.401896, + 47.1601916 + ], + [ + 12.3570484, + 47.1390761 + ], + [ + 12.3501488, + 47.1120829 + ], + [ + 12.3104759, + 47.107387 + ], + [ + 12.2552789, + 47.0721548 + ], + [ + 12.2138811, + 47.0592305 + ], + [ + 12.2000818, + 47.0263181 + ], + [ + 12.1448848, + 47.0310212 + ], + [ + 12.1155613, + 47.007502 + ], + [ + 12.1362602, + 46.9592552 + ], + [ + 12.1673086, + 46.9357044 + ], + [ + 12.1431599, + 46.9109649 + ], + [ + 12.1897324, + 46.9003588 + ], + [ + 12.2173309, + 46.8661692 + ], + [ + 12.2552789, + 46.8838562 + ], + [ + 12.2742529, + 46.8826772 + ], + [ + 12.2984016, + 46.8343179 + ], + [ + 12.2759778, + 46.8201557 + ], + [ + 12.2794276, + 46.7776467 + ], + [ + 12.3501488, + 46.77174 + ], + [ + 12.3811972, + 46.7150029 + ], + [ + 12.4432938, + 46.6842454 + ], + [ + 12.5140151, + 46.6700437 + ], + [ + 12.5657623, + 46.6487342 + ], + [ + 12.6295839, + 46.6534704 + ], + [ + 12.70203, + 46.6534704 + ], + [ + 12.7037549, + 46.6984434 + ], + [ + 12.7296285, + 46.7008093 + ], + [ + 12.7227289, + 46.7374685 + ], + [ + 12.8020747, + 46.7492887 + ], + [ + 12.8538219, + 46.744561 + ], + [ + 12.9038442, + 46.77174 + ], + [ + 12.9279929, + 46.7599247 + ], + [ + 12.9573164, + 46.7764654 + ], + [ + 12.9797402, + 46.7977246 + ], + [ + 12.8952197, + 46.8331378 + ], + [ + 12.8952197, + 46.8484763 + ], + [ + 12.8451974, + 46.8638104 + ], + [ + 12.8469223, + 46.9156781 + ], + [ + 12.7968999, + 46.930993 + ], + [ + 12.7882754, + 46.9474811 + ], + [ + 12.7486025, + 46.9686726 + ], + [ + 12.7365282, + 46.9969149 + ], + [ + 12.7813758, + 47.0416014 + ], + [ + 12.7624018, + 47.0510043 + ], + [ + 12.7141044, + 47.0451277 + ], + [ + 12.7106545, + 47.0780285 + ], + [ + 12.6226842, + 47.126168 + ], + [ + 12.5692121, + 47.1414227 + ], + [ + 12.551963, + 47.1332091 + ], + [ + 12.5260894, + 47.154327 + ], + [ + 12.4829667, + 47.1648828 + ], + [ + 12.4605429, + 47.1484618 + ], + [ + 12.4346693, + 47.1578459 + ], + [ + 12.4191451, + 47.1437691 + ], + [ + 12.401896, + 47.1601916 + ] + ] + ], + "terms_text": "tiris.tirol.gv.at", + "icon": "https://static.tirol.gv.at/plainhtml/v1/tirollogo.gif" + }, + { + "id": "tirol.gv.at-orthofoto", + "name": "Tiris: orthophoto", + "type": "wms", + "template": "https://gis.tirol.gv.at/arcgis/services/Service_Public/orthofoto/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Image_Aktuell_RGB&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.4399766, + 47.5976781 + ], + [ + 10.4788646, + 47.5992486 + ], + [ + 10.5027725, + 47.5865589 + ], + [ + 10.4837986, + 47.5597936 + ], + [ + 10.513122, + 47.5434951 + ], + [ + 10.5717689, + 47.5458237 + ], + [ + 10.570044, + 47.5621216 + ], + [ + 10.6010923, + 47.5807415 + ], + [ + 10.6390403, + 47.5691048 + ], + [ + 10.7080366, + 47.5702686 + ], + [ + 10.7114864, + 47.5493166 + ], + [ + 10.7684083, + 47.5504808 + ], + [ + 10.7856574, + 47.5260267 + ], + [ + 10.8960515, + 47.5504808 + ], + [ + 10.9357244, + 47.5236971 + ], + [ + 10.9339995, + 47.5050569 + ], + [ + 10.8908768, + 47.4957344 + ], + [ + 10.9512486, + 47.4910724 + ], + [ + 10.9546984, + 47.4677567 + ], + [ + 11.0029958, + 47.4327637 + ], + [ + 10.9909215, + 47.4082547 + ], + [ + 11.1030405, + 47.4047525 + ], + [ + 11.1151148, + 47.4199271 + ], + [ + 11.2099847, + 47.4455971 + ], + [ + 11.2686316, + 47.4409308 + ], + [ + 11.2669067, + 47.4105894 + ], + [ + 11.2945052, + 47.4420974 + ], + [ + 11.3307283, + 47.4607599 + ], + [ + 11.3824755, + 47.4584275 + ], + [ + 11.3704012, + 47.4759184 + ], + [ + 11.4393975, + 47.5306855 + ], + [ + 11.466996, + 47.5178728 + ], + [ + 11.5739403, + 47.5236971 + ], + [ + 11.5756652, + 47.5586296 + ], + [ + 11.598089, + 47.5912123 + ], + [ + 11.6343121, + 47.6063331 + ], + [ + 11.6688102, + 47.5947021 + ], + [ + 11.7930036, + 47.602844 + ], + [ + 11.8395761, + 47.5923756 + ], + [ + 11.8499255, + 47.6109847 + ], + [ + 12.0068922, + 47.6365615 + ], + [ + 12.0362156, + 47.6249373 + ], + [ + 12.0776134, + 47.6272623 + ], + [ + 12.1086617, + 47.6191242 + ], + [ + 12.1949071, + 47.6226121 + ], + [ + 12.1535093, + 47.6876775 + ], + [ + 12.158684, + 47.7166984 + ], + [ + 12.1811078, + 47.7120562 + ], + [ + 12.2190558, + 47.7248214 + ], + [ + 12.2414796, + 47.7538216 + ], + [ + 12.272528, + 47.7515022 + ], + [ + 12.2846023, + 47.7317829 + ], + [ + 12.2656283, + 47.695805 + ], + [ + 12.3363495, + 47.7108955 + ], + [ + 12.3760224, + 47.695805 + ], + [ + 12.4432938, + 47.7027704 + ], + [ + 12.4536433, + 47.692322 + ], + [ + 12.4536433, + 47.6749032 + ], + [ + 12.5105652, + 47.6319121 + ], + [ + 12.5312641, + 47.6458591 + ], + [ + 12.589911, + 47.6342369 + ], + [ + 12.5795615, + 47.6109847 + ], + [ + 12.6658069, + 47.5947021 + ], + [ + 12.6796062, + 47.5749235 + ], + [ + 12.645108, + 47.5504808 + ], + [ + 12.6675318, + 47.5318501 + ], + [ + 12.6847809, + 47.5038917 + ], + [ + 12.7123795, + 47.4817474 + ], + [ + 12.6675318, + 47.4560949 + ], + [ + 12.6416582, + 47.4595937 + ], + [ + 12.6502828, + 47.443264 + ], + [ + 12.6209593, + 47.4070873 + ], + [ + 12.5743868, + 47.3860701 + ], + [ + 12.5502381, + 47.3965797 + ], + [ + 12.4915913, + 47.3720539 + ], + [ + 12.5088403, + 47.3510227 + ], + [ + 12.4881414, + 47.3206295 + ], + [ + 12.4346693, + 47.322968 + ], + [ + 12.4139704, + 47.3042567 + ], + [ + 12.3639481, + 47.3089351 + ], + [ + 12.3122008, + 47.3276449 + ], + [ + 12.2708031, + 47.298408 + ], + [ + 12.177658, + 47.2937286 + ], + [ + 12.1483346, + 47.2843686 + ], + [ + 12.1172863, + 47.2995778 + ], + [ + 12.0983123, + 47.2750069 + ], + [ + 12.1259108, + 47.2504245 + ], + [ + 12.0965874, + 47.1977096 + ], + [ + 12.1103866, + 47.1484618 + ], + [ + 12.141435, + 47.109735 + ], + [ + 12.1379852, + 47.0897738 + ], + [ + 12.1500595, + 47.0756791 + ], + [ + 12.0051672, + 47.0439523 + ], + [ + 11.9206468, + 47.0298454 + ], + [ + 11.8309516, + 46.9910324 + ], + [ + 11.7878289, + 46.9863258 + ], + [ + 11.7740296, + 46.9674955 + ], + [ + 11.7309069, + 46.9651413 + ], + [ + 11.7067582, + 46.9898558 + ], + [ + 11.6429366, + 46.994562 + ], + [ + 11.6118883, + 47.0051495 + ], + [ + 11.5325425, + 46.9780884 + ], + [ + 11.4928696, + 47.0086782 + ], + [ + 11.4445722, + 46.9674955 + ], + [ + 11.4048993, + 46.9616097 + ], + [ + 11.3445276, + 46.9863258 + ], + [ + 11.2030851, + 46.9569006 + ], + [ + 11.1754866, + 46.9616097 + ], + [ + 11.1772115, + 46.9439484 + ], + [ + 11.1461632, + 46.922747 + ], + [ + 11.1254643, + 46.922747 + ], + [ + 11.1082152, + 46.9038944 + ], + [ + 11.1151148, + 46.8885717 + ], + [ + 11.0823416, + 46.853195 + ], + [ + 11.0961408, + 46.8236966 + ], + [ + 11.0512932, + 46.8024477 + ], + [ + 11.0236947, + 46.762288 + ], + [ + 10.9184753, + 46.7705586 + ], + [ + 10.8839772, + 46.7575613 + ], + [ + 10.8408545, + 46.7729214 + ], + [ + 10.8236054, + 46.7693772 + ], + [ + 10.7908322, + 46.7894581 + ], + [ + 10.756334, + 46.778828 + ], + [ + 10.7252857, + 46.7906391 + ], + [ + 10.7477095, + 46.8272372 + ], + [ + 10.6942373, + 46.8449371 + ], + [ + 10.6735384, + 46.869707 + ], + [ + 10.6079919, + 46.853195 + ], + [ + 10.5545198, + 46.8272372 + ], + [ + 10.5200216, + 46.8390378 + ], + [ + 10.4682744, + 46.8366779 + ], + [ + 10.4510253, + 46.8814982 + ], + [ + 10.475174, + 46.9321709 + ], + [ + 10.4130773, + 46.9557232 + ], + [ + 10.3941034, + 46.9886791 + ], + [ + 10.3665048, + 46.9804421 + ], + [ + 10.3389063, + 46.9474811 + ], + [ + 10.3285569, + 46.9180345 + ], + [ + 10.2975085, + 46.9133215 + ], + [ + 10.2595605, + 46.9251032 + ], + [ + 10.2388617, + 46.8626311 + ], + [ + 10.1664155, + 46.8390378 + ], + [ + 10.1353672, + 46.8472966 + ], + [ + 10.1319174, + 46.8720655 + ], + [ + 10.1060438, + 46.886214 + ], + [ + 10.0922445, + 46.9274592 + ], + [ + 10.1250177, + 46.952191 + ], + [ + 10.1457166, + 47.0004442 + ], + [ + 10.1129434, + 47.0251423 + ], + [ + 10.1526163, + 47.0498291 + ], + [ + 10.1301925, + 47.0627556 + ], + [ + 10.1336423, + 47.0909482 + ], + [ + 10.1595159, + 47.126168 + ], + [ + 10.2009137, + 47.1425959 + ], + [ + 10.1922891, + 47.2000536 + ], + [ + 10.2095382, + 47.2129438 + ], + [ + 10.1871144, + 47.2398857 + ], + [ + 10.2009137, + 47.2562785 + ], + [ + 10.1681404, + 47.2633024 + ], + [ + 10.1681404, + 47.2808581 + ], + [ + 10.2026386, + 47.2913887 + ], + [ + 10.2440364, + 47.2890488 + ], + [ + 10.3337316, + 47.3206295 + ], + [ + 10.3889286, + 47.3907413 + ], + [ + 10.4148022, + 47.3942444 + ], + [ + 10.4562, + 47.436264 + ], + [ + 10.4475755, + 47.4817474 + ], + [ + 10.419977, + 47.5050569 + ], + [ + 10.4424008, + 47.5551374 + ], + [ + 10.4130773, + 47.5714324 + ], + [ + 10.4399766, + 47.5976781 + ] + ], + [ + [ + 12.401896, + 47.1601916 + ], + [ + 12.3570484, + 47.1390761 + ], + [ + 12.3501488, + 47.1120829 + ], + [ + 12.3104759, + 47.107387 + ], + [ + 12.2552789, + 47.0721548 + ], + [ + 12.2138811, + 47.0592305 + ], + [ + 12.2000818, + 47.0263181 + ], + [ + 12.1448848, + 47.0310212 + ], + [ + 12.1155613, + 47.007502 + ], + [ + 12.1362602, + 46.9592552 + ], + [ + 12.1673086, + 46.9357044 + ], + [ + 12.1431599, + 46.9109649 + ], + [ + 12.1897324, + 46.9003588 + ], + [ + 12.2173309, + 46.8661692 + ], + [ + 12.2552789, + 46.8838562 + ], + [ + 12.2742529, + 46.8826772 + ], + [ + 12.2984016, + 46.8343179 + ], + [ + 12.2759778, + 46.8201557 + ], + [ + 12.2794276, + 46.7776467 + ], + [ + 12.3501488, + 46.77174 + ], + [ + 12.3811972, + 46.7150029 + ], + [ + 12.4432938, + 46.6842454 + ], + [ + 12.5140151, + 46.6700437 + ], + [ + 12.5657623, + 46.6487342 + ], + [ + 12.6295839, + 46.6534704 + ], + [ + 12.70203, + 46.6534704 + ], + [ + 12.7037549, + 46.6984434 + ], + [ + 12.7296285, + 46.7008093 + ], + [ + 12.7227289, + 46.7374685 + ], + [ + 12.8020747, + 46.7492887 + ], + [ + 12.8538219, + 46.744561 + ], + [ + 12.9038442, + 46.77174 + ], + [ + 12.9279929, + 46.7599247 + ], + [ + 12.9573164, + 46.7764654 + ], + [ + 12.9797402, + 46.7977246 + ], + [ + 12.8952197, + 46.8331378 + ], + [ + 12.8952197, + 46.8484763 + ], + [ + 12.8451974, + 46.8638104 + ], + [ + 12.8469223, + 46.9156781 + ], + [ + 12.7968999, + 46.930993 + ], + [ + 12.7882754, + 46.9474811 + ], + [ + 12.7486025, + 46.9686726 + ], + [ + 12.7365282, + 46.9969149 + ], + [ + 12.7813758, + 47.0416014 + ], + [ + 12.7624018, + 47.0510043 + ], + [ + 12.7141044, + 47.0451277 + ], + [ + 12.7106545, + 47.0780285 + ], + [ + 12.6226842, + 47.126168 + ], + [ + 12.5692121, + 47.1414227 + ], + [ + 12.551963, + 47.1332091 + ], + [ + 12.5260894, + 47.154327 + ], + [ + 12.4829667, + 47.1648828 + ], + [ + 12.4605429, + 47.1484618 + ], + [ + 12.4346693, + 47.1578459 + ], + [ + 12.4191451, + 47.1437691 + ], + [ + 12.401896, + 47.1601916 + ] + ] + ], + "terms_text": "tiris.tirol.gv.at", + "icon": "https://static.tirol.gv.at/plainhtml/v1/tirollogo.gif" + }, + { + "id": "tirol.gv.at-orthofoto-cir", + "name": "Tiris: orthophoto infrared", + "type": "wms", + "template": "https://gis.tirol.gv.at/arcgis/services/Service_Public/orthofoto/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Image_Aktuell_CIR&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.4399766, + 47.5976781 + ], + [ + 10.4788646, + 47.5992486 + ], + [ + 10.5027725, + 47.5865589 + ], + [ + 10.4837986, + 47.5597936 + ], + [ + 10.513122, + 47.5434951 + ], + [ + 10.5717689, + 47.5458237 + ], + [ + 10.570044, + 47.5621216 + ], + [ + 10.6010923, + 47.5807415 + ], + [ + 10.6390403, + 47.5691048 + ], + [ + 10.7080366, + 47.5702686 + ], + [ + 10.7114864, + 47.5493166 + ], + [ + 10.7684083, + 47.5504808 + ], + [ + 10.7856574, + 47.5260267 + ], + [ + 10.8960515, + 47.5504808 + ], + [ + 10.9357244, + 47.5236971 + ], + [ + 10.9339995, + 47.5050569 + ], + [ + 10.8908768, + 47.4957344 + ], + [ + 10.9512486, + 47.4910724 + ], + [ + 10.9546984, + 47.4677567 + ], + [ + 11.0029958, + 47.4327637 + ], + [ + 10.9909215, + 47.4082547 + ], + [ + 11.1030405, + 47.4047525 + ], + [ + 11.1151148, + 47.4199271 + ], + [ + 11.2099847, + 47.4455971 + ], + [ + 11.2686316, + 47.4409308 + ], + [ + 11.2669067, + 47.4105894 + ], + [ + 11.2945052, + 47.4420974 + ], + [ + 11.3307283, + 47.4607599 + ], + [ + 11.3824755, + 47.4584275 + ], + [ + 11.3704012, + 47.4759184 + ], + [ + 11.4393975, + 47.5306855 + ], + [ + 11.466996, + 47.5178728 + ], + [ + 11.5739403, + 47.5236971 + ], + [ + 11.5756652, + 47.5586296 + ], + [ + 11.598089, + 47.5912123 + ], + [ + 11.6343121, + 47.6063331 + ], + [ + 11.6688102, + 47.5947021 + ], + [ + 11.7930036, + 47.602844 + ], + [ + 11.8395761, + 47.5923756 + ], + [ + 11.8499255, + 47.6109847 + ], + [ + 12.0068922, + 47.6365615 + ], + [ + 12.0362156, + 47.6249373 + ], + [ + 12.0776134, + 47.6272623 + ], + [ + 12.1086617, + 47.6191242 + ], + [ + 12.1949071, + 47.6226121 + ], + [ + 12.1535093, + 47.6876775 + ], + [ + 12.158684, + 47.7166984 + ], + [ + 12.1811078, + 47.7120562 + ], + [ + 12.2190558, + 47.7248214 + ], + [ + 12.2414796, + 47.7538216 + ], + [ + 12.272528, + 47.7515022 + ], + [ + 12.2846023, + 47.7317829 + ], + [ + 12.2656283, + 47.695805 + ], + [ + 12.3363495, + 47.7108955 + ], + [ + 12.3760224, + 47.695805 + ], + [ + 12.4432938, + 47.7027704 + ], + [ + 12.4536433, + 47.692322 + ], + [ + 12.4536433, + 47.6749032 + ], + [ + 12.5105652, + 47.6319121 + ], + [ + 12.5312641, + 47.6458591 + ], + [ + 12.589911, + 47.6342369 + ], + [ + 12.5795615, + 47.6109847 + ], + [ + 12.6658069, + 47.5947021 + ], + [ + 12.6796062, + 47.5749235 + ], + [ + 12.645108, + 47.5504808 + ], + [ + 12.6675318, + 47.5318501 + ], + [ + 12.6847809, + 47.5038917 + ], + [ + 12.7123795, + 47.4817474 + ], + [ + 12.6675318, + 47.4560949 + ], + [ + 12.6416582, + 47.4595937 + ], + [ + 12.6502828, + 47.443264 + ], + [ + 12.6209593, + 47.4070873 + ], + [ + 12.5743868, + 47.3860701 + ], + [ + 12.5502381, + 47.3965797 + ], + [ + 12.4915913, + 47.3720539 + ], + [ + 12.5088403, + 47.3510227 + ], + [ + 12.4881414, + 47.3206295 + ], + [ + 12.4346693, + 47.322968 + ], + [ + 12.4139704, + 47.3042567 + ], + [ + 12.3639481, + 47.3089351 + ], + [ + 12.3122008, + 47.3276449 + ], + [ + 12.2708031, + 47.298408 + ], + [ + 12.177658, + 47.2937286 + ], + [ + 12.1483346, + 47.2843686 + ], + [ + 12.1172863, + 47.2995778 + ], + [ + 12.0983123, + 47.2750069 + ], + [ + 12.1259108, + 47.2504245 + ], + [ + 12.0965874, + 47.1977096 + ], + [ + 12.1103866, + 47.1484618 + ], + [ + 12.141435, + 47.109735 + ], + [ + 12.1379852, + 47.0897738 + ], + [ + 12.1500595, + 47.0756791 + ], + [ + 12.0051672, + 47.0439523 + ], + [ + 11.9206468, + 47.0298454 + ], + [ + 11.8309516, + 46.9910324 + ], + [ + 11.7878289, + 46.9863258 + ], + [ + 11.7740296, + 46.9674955 + ], + [ + 11.7309069, + 46.9651413 + ], + [ + 11.7067582, + 46.9898558 + ], + [ + 11.6429366, + 46.994562 + ], + [ + 11.6118883, + 47.0051495 + ], + [ + 11.5325425, + 46.9780884 + ], + [ + 11.4928696, + 47.0086782 + ], + [ + 11.4445722, + 46.9674955 + ], + [ + 11.4048993, + 46.9616097 + ], + [ + 11.3445276, + 46.9863258 + ], + [ + 11.2030851, + 46.9569006 + ], + [ + 11.1754866, + 46.9616097 + ], + [ + 11.1772115, + 46.9439484 + ], + [ + 11.1461632, + 46.922747 + ], + [ + 11.1254643, + 46.922747 + ], + [ + 11.1082152, + 46.9038944 + ], + [ + 11.1151148, + 46.8885717 + ], + [ + 11.0823416, + 46.853195 + ], + [ + 11.0961408, + 46.8236966 + ], + [ + 11.0512932, + 46.8024477 + ], + [ + 11.0236947, + 46.762288 + ], + [ + 10.9184753, + 46.7705586 + ], + [ + 10.8839772, + 46.7575613 + ], + [ + 10.8408545, + 46.7729214 + ], + [ + 10.8236054, + 46.7693772 + ], + [ + 10.7908322, + 46.7894581 + ], + [ + 10.756334, + 46.778828 + ], + [ + 10.7252857, + 46.7906391 + ], + [ + 10.7477095, + 46.8272372 + ], + [ + 10.6942373, + 46.8449371 + ], + [ + 10.6735384, + 46.869707 + ], + [ + 10.6079919, + 46.853195 + ], + [ + 10.5545198, + 46.8272372 + ], + [ + 10.5200216, + 46.8390378 + ], + [ + 10.4682744, + 46.8366779 + ], + [ + 10.4510253, + 46.8814982 + ], + [ + 10.475174, + 46.9321709 + ], + [ + 10.4130773, + 46.9557232 + ], + [ + 10.3941034, + 46.9886791 + ], + [ + 10.3665048, + 46.9804421 + ], + [ + 10.3389063, + 46.9474811 + ], + [ + 10.3285569, + 46.9180345 + ], + [ + 10.2975085, + 46.9133215 + ], + [ + 10.2595605, + 46.9251032 + ], + [ + 10.2388617, + 46.8626311 + ], + [ + 10.1664155, + 46.8390378 + ], + [ + 10.1353672, + 46.8472966 + ], + [ + 10.1319174, + 46.8720655 + ], + [ + 10.1060438, + 46.886214 + ], + [ + 10.0922445, + 46.9274592 + ], + [ + 10.1250177, + 46.952191 + ], + [ + 10.1457166, + 47.0004442 + ], + [ + 10.1129434, + 47.0251423 + ], + [ + 10.1526163, + 47.0498291 + ], + [ + 10.1301925, + 47.0627556 + ], + [ + 10.1336423, + 47.0909482 + ], + [ + 10.1595159, + 47.126168 + ], + [ + 10.2009137, + 47.1425959 + ], + [ + 10.1922891, + 47.2000536 + ], + [ + 10.2095382, + 47.2129438 + ], + [ + 10.1871144, + 47.2398857 + ], + [ + 10.2009137, + 47.2562785 + ], + [ + 10.1681404, + 47.2633024 + ], + [ + 10.1681404, + 47.2808581 + ], + [ + 10.2026386, + 47.2913887 + ], + [ + 10.2440364, + 47.2890488 + ], + [ + 10.3337316, + 47.3206295 + ], + [ + 10.3889286, + 47.3907413 + ], + [ + 10.4148022, + 47.3942444 + ], + [ + 10.4562, + 47.436264 + ], + [ + 10.4475755, + 47.4817474 + ], + [ + 10.419977, + 47.5050569 + ], + [ + 10.4424008, + 47.5551374 + ], + [ + 10.4130773, + 47.5714324 + ], + [ + 10.4399766, + 47.5976781 + ] + ], + [ + [ + 12.401896, + 47.1601916 + ], + [ + 12.3570484, + 47.1390761 + ], + [ + 12.3501488, + 47.1120829 + ], + [ + 12.3104759, + 47.107387 + ], + [ + 12.2552789, + 47.0721548 + ], + [ + 12.2138811, + 47.0592305 + ], + [ + 12.2000818, + 47.0263181 + ], + [ + 12.1448848, + 47.0310212 + ], + [ + 12.1155613, + 47.007502 + ], + [ + 12.1362602, + 46.9592552 + ], + [ + 12.1673086, + 46.9357044 + ], + [ + 12.1431599, + 46.9109649 + ], + [ + 12.1897324, + 46.9003588 + ], + [ + 12.2173309, + 46.8661692 + ], + [ + 12.2552789, + 46.8838562 + ], + [ + 12.2742529, + 46.8826772 + ], + [ + 12.2984016, + 46.8343179 + ], + [ + 12.2759778, + 46.8201557 + ], + [ + 12.2794276, + 46.7776467 + ], + [ + 12.3501488, + 46.77174 + ], + [ + 12.3811972, + 46.7150029 + ], + [ + 12.4432938, + 46.6842454 + ], + [ + 12.5140151, + 46.6700437 + ], + [ + 12.5657623, + 46.6487342 + ], + [ + 12.6295839, + 46.6534704 + ], + [ + 12.70203, + 46.6534704 + ], + [ + 12.7037549, + 46.6984434 + ], + [ + 12.7296285, + 46.7008093 + ], + [ + 12.7227289, + 46.7374685 + ], + [ + 12.8020747, + 46.7492887 + ], + [ + 12.8538219, + 46.744561 + ], + [ + 12.9038442, + 46.77174 + ], + [ + 12.9279929, + 46.7599247 + ], + [ + 12.9573164, + 46.7764654 + ], + [ + 12.9797402, + 46.7977246 + ], + [ + 12.8952197, + 46.8331378 + ], + [ + 12.8952197, + 46.8484763 + ], + [ + 12.8451974, + 46.8638104 + ], + [ + 12.8469223, + 46.9156781 + ], + [ + 12.7968999, + 46.930993 + ], + [ + 12.7882754, + 46.9474811 + ], + [ + 12.7486025, + 46.9686726 + ], + [ + 12.7365282, + 46.9969149 + ], + [ + 12.7813758, + 47.0416014 + ], + [ + 12.7624018, + 47.0510043 + ], + [ + 12.7141044, + 47.0451277 + ], + [ + 12.7106545, + 47.0780285 + ], + [ + 12.6226842, + 47.126168 + ], + [ + 12.5692121, + 47.1414227 + ], + [ + 12.551963, + 47.1332091 + ], + [ + 12.5260894, + 47.154327 + ], + [ + 12.4829667, + 47.1648828 + ], + [ + 12.4605429, + 47.1484618 + ], + [ + 12.4346693, + 47.1578459 + ], + [ + 12.4191451, + 47.1437691 + ], + [ + 12.401896, + 47.1601916 + ] + ] + ], + "terms_text": "tiris.tirol.gv.at", + "icon": "https://static.tirol.gv.at/plainhtml/v1/tirollogo.gif" + }, { "id": "lu.geoportail.opendata.topo", "name": "Topographical Map geoportail.lu", @@ -71638,6 +109256,2311 @@ "terms_text": "Administration du Cadastre et de la Topographie", "icon": "https://www.geoportail.lu/static/img/lion.png" }, + { + "id": "Torokbalint-orthophoto-2013", + "name": "Törökbálint orthophoto 2013", + "type": "wms", + "template": "http://terkep.torokbalint.hu/mapproxy/service?FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ORTO_2013_5CM_2013SZEPT_TAKARASSAL_512_512&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&TRANSPARENT=true", + "projection": "EPSG:3857", + "startDate": "2013-09-01T00:00:00.000Z", + "polygon": [ + [ + [ + 18.9173064, + 47.4085354 + ], + [ + 18.9169121, + 47.4084901 + ], + [ + 18.9160618, + 47.4088477 + ], + [ + 18.9156514, + 47.4090528 + ], + [ + 18.9145812, + 47.4093813 + ], + [ + 18.913849, + 47.4097008 + ], + [ + 18.9137605, + 47.4097607 + ], + [ + 18.9131436, + 47.4103815 + ], + [ + 18.9122048, + 47.4109805 + ], + [ + 18.9104104, + 47.4117465 + ], + [ + 18.9093161, + 47.4125778 + ], + [ + 18.9084095, + 47.4131731 + ], + [ + 18.9067599, + 47.4144328 + ], + [ + 18.90481, + 47.4156797 + ], + [ + 18.9036191, + 47.4159737 + ], + [ + 18.9031738, + 47.4161643 + ], + [ + 18.9006203, + 47.417422 + ], + [ + 18.9004192, + 47.4175527 + ], + [ + 18.8996789, + 47.4179738 + ], + [ + 18.8988796, + 47.4181843 + ], + [ + 18.898142, + 47.4183495 + ], + [ + 18.897517, + 47.4185509 + ], + [ + 18.896656, + 47.4190083 + ], + [ + 18.8958004, + 47.4195436 + ], + [ + 18.8942072, + 47.4205001 + ], + [ + 18.8905513, + 47.4220862 + ], + [ + 18.8874319, + 47.4233166 + ], + [ + 18.8855383, + 47.4242421 + ], + [ + 18.8843554, + 47.4247611 + ], + [ + 18.8818851, + 47.4255287 + ], + [ + 18.8808498, + 47.4259805 + ], + [ + 18.8801014, + 47.4262872 + ], + [ + 18.879557, + 47.4264922 + ], + [ + 18.8774098, + 47.4273787 + ], + [ + 18.8760151, + 47.4278868 + ], + [ + 18.8750763, + 47.4283585 + ], + [ + 18.8728072, + 47.4293384 + ], + [ + 18.8716377, + 47.4296795 + ], + [ + 18.8713963, + 47.4300061 + ], + [ + 18.8725872, + 47.4323032 + ], + [ + 18.8727321, + 47.4327822 + ], + [ + 18.8727374, + 47.4332431 + ], + [ + 18.872437, + 47.4348216 + ], + [ + 18.8720562, + 47.4352642 + ], + [ + 18.8689126, + 47.4371221 + ], + [ + 18.8656135, + 47.4374994 + ], + [ + 18.864664, + 47.4377353 + ], + [ + 18.8640364, + 47.4380909 + ], + [ + 18.8637762, + 47.4379113 + ], + [ + 18.8634034, + 47.4378423 + ], + [ + 18.8630037, + 47.437982 + ], + [ + 18.8519503, + 47.4471521 + ], + [ + 18.8521703, + 47.4484689 + ], + [ + 18.8592969, + 47.4538685 + ], + [ + 18.8583876, + 47.4551181 + ], + [ + 18.857768, + 47.4556839 + ], + [ + 18.8571779, + 47.4559977 + ], + [ + 18.8571967, + 47.456355 + ], + [ + 18.860151, + 47.4583903 + ], + [ + 18.8619415, + 47.4594978 + ], + [ + 18.8609867, + 47.4607128 + ], + [ + 18.8597904, + 47.4620076 + ], + [ + 18.8592862, + 47.4623594 + ], + [ + 18.8585941, + 47.4627221 + ], + [ + 18.8571297, + 47.4633313 + ], + [ + 18.8563411, + 47.4636033 + ], + [ + 18.8562821, + 47.4640277 + ], + [ + 18.857194, + 47.4652825 + ], + [ + 18.8566254, + 47.4655073 + ], + [ + 18.8565288, + 47.4658047 + ], + [ + 18.8569285, + 47.4665563 + ], + [ + 18.8583635, + 47.4695253 + ], + [ + 18.8582641, + 47.4698029 + ], + [ + 18.8582669, + 47.4699079 + ], + [ + 18.8583834, + 47.4701931 + ], + [ + 18.8584438, + 47.4702729 + ], + [ + 18.8585189, + 47.4703264 + ], + [ + 18.8586221, + 47.4703609 + ], + [ + 18.8587348, + 47.4703763 + ], + [ + 18.8589011, + 47.4703609 + ], + [ + 18.8614614, + 47.469732 + ], + [ + 18.8627677, + 47.469286 + ], + [ + 18.8661674, + 47.4678491 + ], + [ + 18.8679403, + 47.4665581 + ], + [ + 18.8699654, + 47.4652435 + ], + [ + 18.8708009, + 47.4645698 + ], + [ + 18.8726784, + 47.4633259 + ], + [ + 18.8753606, + 47.4611281 + ], + [ + 18.8768734, + 47.4592711 + ], + [ + 18.8894261, + 47.4598659 + ], + [ + 18.8902415, + 47.4598804 + ], + [ + 18.9037116, + 47.4553357 + ], + [ + 18.9042733, + 47.455203 + ], + [ + 18.9049332, + 47.4550579 + ], + [ + 18.9054213, + 47.4551014 + ], + [ + 18.9056735, + 47.4550543 + ], + [ + 18.9062877, + 47.4547659 + ], + [ + 18.9064835, + 47.4545301 + ], + [ + 18.9065968, + 47.4544712 + ], + [ + 18.9067819, + 47.454395 + ], + [ + 18.9081149, + 47.4539888 + ], + [ + 18.9083731, + 47.4539507 + ], + [ + 18.9089048, + 47.4538437 + ], + [ + 18.9095419, + 47.4536959 + ], + [ + 18.9132587, + 47.4531717 + ], + [ + 18.9135296, + 47.4532043 + ], + [ + 18.9137201, + 47.4531717 + ], + [ + 18.9138649, + 47.4530738 + ], + [ + 18.9143117, + 47.4529381 + ], + [ + 18.9159773, + 47.4529961 + ], + [ + 18.9180668, + 47.4531666 + ], + [ + 18.9184637, + 47.4529997 + ], + [ + 18.9190324, + 47.4516141 + ], + [ + 18.9217253, + 47.4508015 + ], + [ + 18.9224602, + 47.450689 + ], + [ + 18.9241768, + 47.4502537 + ], + [ + 18.9275564, + 47.4498946 + ], + [ + 18.9297237, + 47.4495064 + ], + [ + 18.9322127, + 47.4492199 + ], + [ + 18.9334694, + 47.4493242 + ], + [ + 18.9392093, + 47.4493532 + ], + [ + 18.9422885, + 47.4490339 + ], + [ + 18.945491, + 47.4488961 + ], + [ + 18.9482617, + 47.4487002 + ], + [ + 18.9500347, + 47.4482413 + ], + [ + 18.954699, + 47.4472183 + ], + [ + 18.9574899, + 47.4469162 + ], + [ + 18.958025, + 47.4471475 + ], + [ + 18.9584434, + 47.4470822 + ], + [ + 18.9587666, + 47.4466623 + ], + [ + 18.9614488, + 47.4393046 + ], + [ + 18.9636804, + 47.4357995 + ], + [ + 18.9659764, + 47.432882 + ], + [ + 18.9689912, + 47.4296958 + ], + [ + 18.9701003, + 47.4270366 + ], + [ + 18.9700922, + 47.4267935 + ], + [ + 18.9669541, + 47.424605 + ], + [ + 18.9573531, + 47.4184193 + ], + [ + 18.9567603, + 47.4184012 + ], + [ + 18.9560576, + 47.418129 + ], + [ + 18.9538513, + 47.4173936 + ], + [ + 18.9514447, + 47.4166549 + ], + [ + 18.9513133, + 47.4166426 + ], + [ + 18.9326981, + 47.4170333 + ], + [ + 18.9325733, + 47.4169625 + ], + [ + 18.9320101, + 47.4167393 + ], + [ + 18.9314857, + 47.4163972 + ], + [ + 18.9311357, + 47.4161158 + ], + [ + 18.9212291, + 47.4109106 + ], + [ + 18.9195742, + 47.4098705 + ], + [ + 18.9192684, + 47.4096109 + ], + [ + 18.9173064, + 47.4085354 + ] + ] + ], + "terms_url": "http://www.torokbalint.hu/", + "terms_text": "Törökbálint" + }, + { + "id": "Torokbalint-orthophoto-2015", + "name": "Törökbálint orthophoto 2015", + "type": "wms", + "template": "http://terkep.torokbalint.hu/mapproxy/service?FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=TBORTO_2015_20160218&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&TRANSPARENT=true", + "projection": "EPSG:3857", + "startDate": "2015-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 18.9173064, + 47.4085354 + ], + [ + 18.9169121, + 47.4084901 + ], + [ + 18.9160618, + 47.4088477 + ], + [ + 18.9156514, + 47.4090528 + ], + [ + 18.9145812, + 47.4093813 + ], + [ + 18.913849, + 47.4097008 + ], + [ + 18.9137605, + 47.4097607 + ], + [ + 18.9131436, + 47.4103815 + ], + [ + 18.9122048, + 47.4109805 + ], + [ + 18.9104104, + 47.4117465 + ], + [ + 18.9093161, + 47.4125778 + ], + [ + 18.9084095, + 47.4131731 + ], + [ + 18.9067599, + 47.4144328 + ], + [ + 18.90481, + 47.4156797 + ], + [ + 18.9036191, + 47.4159737 + ], + [ + 18.9031738, + 47.4161643 + ], + [ + 18.9006203, + 47.417422 + ], + [ + 18.9004192, + 47.4175527 + ], + [ + 18.8996789, + 47.4179738 + ], + [ + 18.8988796, + 47.4181843 + ], + [ + 18.898142, + 47.4183495 + ], + [ + 18.897517, + 47.4185509 + ], + [ + 18.896656, + 47.4190083 + ], + [ + 18.8958004, + 47.4195436 + ], + [ + 18.8942072, + 47.4205001 + ], + [ + 18.8905513, + 47.4220862 + ], + [ + 18.8874319, + 47.4233166 + ], + [ + 18.8855383, + 47.4242421 + ], + [ + 18.8843554, + 47.4247611 + ], + [ + 18.8818851, + 47.4255287 + ], + [ + 18.8808498, + 47.4259805 + ], + [ + 18.8801014, + 47.4262872 + ], + [ + 18.879557, + 47.4264922 + ], + [ + 18.8774098, + 47.4273787 + ], + [ + 18.8760151, + 47.4278868 + ], + [ + 18.8750763, + 47.4283585 + ], + [ + 18.8728072, + 47.4293384 + ], + [ + 18.8716377, + 47.4296795 + ], + [ + 18.8713963, + 47.4300061 + ], + [ + 18.8725872, + 47.4323032 + ], + [ + 18.8727321, + 47.4327822 + ], + [ + 18.8727374, + 47.4332431 + ], + [ + 18.872437, + 47.4348216 + ], + [ + 18.8720562, + 47.4352642 + ], + [ + 18.8689126, + 47.4371221 + ], + [ + 18.8656135, + 47.4374994 + ], + [ + 18.864664, + 47.4377353 + ], + [ + 18.8640364, + 47.4380909 + ], + [ + 18.8637762, + 47.4379113 + ], + [ + 18.8634034, + 47.4378423 + ], + [ + 18.8630037, + 47.437982 + ], + [ + 18.8519503, + 47.4471521 + ], + [ + 18.8521703, + 47.4484689 + ], + [ + 18.8592969, + 47.4538685 + ], + [ + 18.8583876, + 47.4551181 + ], + [ + 18.857768, + 47.4556839 + ], + [ + 18.8571779, + 47.4559977 + ], + [ + 18.8571967, + 47.456355 + ], + [ + 18.860151, + 47.4583903 + ], + [ + 18.8619415, + 47.4594978 + ], + [ + 18.8609867, + 47.4607128 + ], + [ + 18.8597904, + 47.4620076 + ], + [ + 18.8592862, + 47.4623594 + ], + [ + 18.8585941, + 47.4627221 + ], + [ + 18.8571297, + 47.4633313 + ], + [ + 18.8563411, + 47.4636033 + ], + [ + 18.8562821, + 47.4640277 + ], + [ + 18.857194, + 47.4652825 + ], + [ + 18.8566254, + 47.4655073 + ], + [ + 18.8565288, + 47.4658047 + ], + [ + 18.8569285, + 47.4665563 + ], + [ + 18.8583635, + 47.4695253 + ], + [ + 18.8582641, + 47.4698029 + ], + [ + 18.8582669, + 47.4699079 + ], + [ + 18.8583834, + 47.4701931 + ], + [ + 18.8584438, + 47.4702729 + ], + [ + 18.8585189, + 47.4703264 + ], + [ + 18.8586221, + 47.4703609 + ], + [ + 18.8587348, + 47.4703763 + ], + [ + 18.8589011, + 47.4703609 + ], + [ + 18.8614614, + 47.469732 + ], + [ + 18.8627677, + 47.469286 + ], + [ + 18.8661674, + 47.4678491 + ], + [ + 18.8679403, + 47.4665581 + ], + [ + 18.8699654, + 47.4652435 + ], + [ + 18.8708009, + 47.4645698 + ], + [ + 18.8726784, + 47.4633259 + ], + [ + 18.8753606, + 47.4611281 + ], + [ + 18.8768734, + 47.4592711 + ], + [ + 18.8894261, + 47.4598659 + ], + [ + 18.8902415, + 47.4598804 + ], + [ + 18.9037116, + 47.4553357 + ], + [ + 18.9042733, + 47.455203 + ], + [ + 18.9049332, + 47.4550579 + ], + [ + 18.9054213, + 47.4551014 + ], + [ + 18.9056735, + 47.4550543 + ], + [ + 18.9062877, + 47.4547659 + ], + [ + 18.9064835, + 47.4545301 + ], + [ + 18.9065968, + 47.4544712 + ], + [ + 18.9067819, + 47.454395 + ], + [ + 18.9081149, + 47.4539888 + ], + [ + 18.9083731, + 47.4539507 + ], + [ + 18.9089048, + 47.4538437 + ], + [ + 18.9095419, + 47.4536959 + ], + [ + 18.9132587, + 47.4531717 + ], + [ + 18.9135296, + 47.4532043 + ], + [ + 18.9137201, + 47.4531717 + ], + [ + 18.9138649, + 47.4530738 + ], + [ + 18.9143117, + 47.4529381 + ], + [ + 18.9159773, + 47.4529961 + ], + [ + 18.9180668, + 47.4531666 + ], + [ + 18.9184637, + 47.4529997 + ], + [ + 18.9190324, + 47.4516141 + ], + [ + 18.9217253, + 47.4508015 + ], + [ + 18.9224602, + 47.450689 + ], + [ + 18.9241768, + 47.4502537 + ], + [ + 18.9275564, + 47.4498946 + ], + [ + 18.9297237, + 47.4495064 + ], + [ + 18.9322127, + 47.4492199 + ], + [ + 18.9334694, + 47.4493242 + ], + [ + 18.9392093, + 47.4493532 + ], + [ + 18.9422885, + 47.4490339 + ], + [ + 18.945491, + 47.4488961 + ], + [ + 18.9482617, + 47.4487002 + ], + [ + 18.9500347, + 47.4482413 + ], + [ + 18.954699, + 47.4472183 + ], + [ + 18.9574899, + 47.4469162 + ], + [ + 18.958025, + 47.4471475 + ], + [ + 18.9584434, + 47.4470822 + ], + [ + 18.9587666, + 47.4466623 + ], + [ + 18.9614488, + 47.4393046 + ], + [ + 18.9636804, + 47.4357995 + ], + [ + 18.9659764, + 47.432882 + ], + [ + 18.9689912, + 47.4296958 + ], + [ + 18.9701003, + 47.4270366 + ], + [ + 18.9700922, + 47.4267935 + ], + [ + 18.9669541, + 47.424605 + ], + [ + 18.9573531, + 47.4184193 + ], + [ + 18.9567603, + 47.4184012 + ], + [ + 18.9560576, + 47.418129 + ], + [ + 18.9538513, + 47.4173936 + ], + [ + 18.9514447, + 47.4166549 + ], + [ + 18.9513133, + 47.4166426 + ], + [ + 18.9326981, + 47.4170333 + ], + [ + 18.9325733, + 47.4169625 + ], + [ + 18.9320101, + 47.4167393 + ], + [ + 18.9314857, + 47.4163972 + ], + [ + 18.9311357, + 47.4161158 + ], + [ + 18.9212291, + 47.4109106 + ], + [ + 18.9195742, + 47.4098705 + ], + [ + 18.9192684, + 47.4096109 + ], + [ + 18.9173064, + 47.4085354 + ] + ] + ], + "terms_url": "http://fototerkep.hu/", + "terms_text": "Fototerkep.hu", + "best": true + }, + { + "id": "Toulouse-Orthophotoplan-2007", + "name": "Toulouse - Orthophotoplan 2007", + "type": "wms", + "template": "https://wms.plan.toulouse.fr/geocache/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ortho2007&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2007-01-01T00:00:00.000Z", + "startDate": "2007-01-01T00:00:00.000Z", + "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 + ], + [ + 1.1919978, + 43.6328791 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/Toulouse/ToulouseMetropoleData", + "terms_text": "ToulouseMetropole" + }, + { + "id": "Toulouse-Orthophotoplan-2011", + "name": "Toulouse - Orthophotoplan 2011", + "type": "wms", + "template": "https://wms.plan.toulouse.fr/geocache/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ortho2011&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", + "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 + ], + [ + 1.1135067, + 43.6867566 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/Toulouse/ToulouseMetropoleData", + "terms_text": "ToulouseMetropole" + }, + { + "id": "Toulouse-Orthophotoplan-2013", + "name": "Toulouse - Orthophotoplan 2013", + "type": "wms", + "template": "https://wms.plan.toulouse.fr/geocache/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ortho2013&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", + "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 + ], + [ + 1.1135067, + 43.6867566 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/Toulouse/ToulouseMetropoleData", + "terms_text": "ToulouseMetropole" + }, + { + "id": "Toulouse-Orthophotoplan-2015", + "name": "Toulouse - Orthophotoplan 2015", + "type": "wms", + "template": "https://wms.plan.toulouse.fr/geocache/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ortho2015&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", + "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 + ], + [ + 1.1135067, + 43.6867566 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/Toulouse/ToulouseMetropoleData", + "terms_text": "ToulouseMetropole" + }, { "id": "Tours-Orthophoto-2008_2010", "name": "Tours - Orthophotos 2008-2010", @@ -72258,24 +112181,448 @@ "polygon": [ [ [ - 0.427093505859375, - 47.26199018174824 + 0.7751199, + 47.3298327 ], [ - 0.427093505859375, - 47.50096732311069 + 0.7742685, + 47.356166 ], [ - 0.814361572265625, - 47.50096732311069 + 0.7705338, + 47.3561106 ], [ - 0.814361572265625, - 47.26199018174824 + 0.7702424, + 47.3651192 ], [ - 0.427093505859375, - 47.26199018174824 + 0.7739772, + 47.3651747 + ], + [ + 0.7728024, + 47.4014836 + ], + [ + 0.7903977, + 47.4014691 + ], + [ + 0.7898827, + 47.4102988 + ], + [ + 0.7911702, + 47.410473 + ], + [ + 0.7910844, + 47.4194174 + ], + [ + 0.7939168, + 47.4194174 + ], + [ + 0.7931872, + 47.4373306 + ], + [ + 0.7983371, + 47.4374177 + ], + [ + 0.7980796, + 47.4554408 + ], + [ + 0.8004399, + 47.4554118 + ], + [ + 0.8013841, + 47.4642615 + ], + [ + 0.8007403, + 47.4689904 + ], + [ + 0.7939597, + 47.4733127 + ], + [ + 0.7840463, + 47.4732257 + ], + [ + 0.7838746, + 47.4787079 + ], + [ + 0.776064, + 47.4785919 + ], + [ + 0.7758494, + 47.4820434 + ], + [ + 0.7706567, + 47.4821884 + ], + [ + 0.7704421, + 47.4859006 + ], + [ + 0.7609578, + 47.4909176 + ], + [ + 0.7571813, + 47.4909176 + ], + [ + 0.737526, + 47.5033563 + ], + [ + 0.725896, + 47.5058785 + ], + [ + 0.7111331, + 47.5057626 + ], + [ + 0.7041808, + 47.5040811 + ], + [ + 0.6910916, + 47.5003846 + ], + [ + 0.6904479, + 47.4971808 + ], + [ + 0.6775733, + 47.4968329 + ], + [ + 0.6775733, + 47.4935273 + ], + [ + 0.6642695, + 47.4930054 + ], + [ + 0.6634971, + 47.4895256 + ], + [ + 0.6508799, + 47.4895836 + ], + [ + 0.6513306, + 47.4803177 + ], + [ + 0.6473394, + 47.4803032 + ], + [ + 0.6474682, + 47.4785194 + ], + [ + 0.6447431, + 47.4784614 + ], + [ + 0.644786, + 47.4757493 + ], + [ + 0.6423827, + 47.4757783 + ], + [ + 0.642254, + 47.4730226 + ], + [ + 0.6383487, + 47.4729356 + ], + [ + 0.6379195, + 47.4713111 + ], + [ + 0.6051322, + 47.470789 + ], + [ + 0.6051322, + 47.4663213 + ], + [ + 0.5985232, + 47.4660312 + ], + [ + 0.5987807, + 47.4615632 + ], + [ + 0.5920001, + 47.4615632 + ], + [ + 0.5922576, + 47.4597643 + ], + [ + 0.5808421, + 47.4597062 + ], + [ + 0.5800696, + 47.4614471 + ], + [ + 0.5723449, + 47.4613891 + ], + [ + 0.5722161, + 47.4651173 + ], + [ + 0.5587407, + 47.4648852 + ], + [ + 0.5465957, + 47.4605187 + ], + [ + 0.5326911, + 47.4535546 + ], + [ + 0.5267688, + 47.4531483 + ], + [ + 0.5267688, + 47.4515233 + ], + [ + 0.5223056, + 47.4512331 + ], + [ + 0.5225631, + 47.4480407 + ], + [ + 0.5197736, + 47.447765 + ], + [ + 0.520074, + 47.4424682 + ], + [ + 0.4975005, + 47.4415975 + ], + [ + 0.4971572, + 47.4404945 + ], + [ + 0.4935523, + 47.4401462 + ], + [ + 0.4935523, + 47.435734 + ], + [ + 0.4794331, + 47.4357485 + ], + [ + 0.4617091, + 47.428186 + ], + [ + 0.4564305, + 47.4208838 + ], + [ + 0.4548856, + 47.4122882 + ], + [ + 0.4550572, + 47.4021807 + ], + [ + 0.4614945, + 47.4019338 + ], + [ + 0.4616662, + 47.3964145 + ], + [ + 0.4687901, + 47.3960224 + ], + [ + 0.4701634, + 47.3517307 + ], + [ + 0.4567738, + 47.3514981 + ], + [ + 0.4572888, + 47.3425422 + ], + [ + 0.430853, + 47.3419606 + ], + [ + 0.431958, + 47.3060196 + ], + [ + 0.4715367, + 47.3067035 + ], + [ + 0.4725667, + 47.2800414 + ], + [ + 0.4852696, + 47.2800414 + ], + [ + 0.4857846, + 47.2708404 + ], + [ + 0.4993459, + 47.2710734 + ], + [ + 0.4991742, + 47.2624533 + ], + [ + 0.5527326, + 47.2630358 + ], + [ + 0.5522176, + 47.2720052 + ], + [ + 0.5656072, + 47.2722381 + ], + [ + 0.5652638, + 47.2815553 + ], + [ + 0.5911847, + 47.2815553 + ], + [ + 0.5906697, + 47.2909873 + ], + [ + 0.669119, + 47.2916859 + ], + [ + 0.6831952, + 47.2956444 + ], + [ + 0.6831952, + 47.3007668 + ], + [ + 0.6965848, + 47.3012324 + ], + [ + 0.6964131, + 47.3023965 + ], + [ + 0.7100602, + 47.3024547 + ], + [ + 0.7229348, + 47.3058887 + ], + [ + 0.722849, + 47.3104281 + ], + [ + 0.7416459, + 47.3108355 + ], + [ + 0.754263, + 47.3139197 + ], + [ + 0.7625028, + 47.318153 + ], + [ + 0.7620736, + 47.3201313 + ], + [ + 0.7661935, + 47.3200877 + ], + [ + 0.7695623, + 47.3220659 + ], + [ + 0.7723304, + 47.3250768 + ], + [ + 0.7733603, + 47.3266985 + ], + [ + 0.7751199, + 47.3298327 ] ] ], @@ -72803,6 +113150,438 @@ ], "terms_text": "Stadt Zürich Open Government Data" }, + { + "id": "uniao_dos_palmares", + "name": "União dos Palmares AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Uniao%20dos%20Palmares&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -35.97724708197, + -9.20751562713 + ], + [ + -35.97719915169, + -9.19398393291 + ], + [ + -35.97694352353, + -9.19052995603 + ], + [ + -35.97678375594, + -9.18606654789 + ], + [ + -35.97702340733, + -9.18207624495 + ], + [ + -35.97703938409, + -9.17967888719 + ], + [ + -35.97681570946, + -9.17734460222 + ], + [ + -35.9766399651, + -9.17516802537 + ], + [ + -35.97700743057, + -9.17518379771 + ], + [ + -35.97695950029, + -9.17070442381 + ], + [ + -35.97673582566, + -9.17065710618 + ], + [ + -35.97660801158, + -9.16644581169 + ], + [ + -35.97617663907, + -9.16221869434 + ], + [ + -35.97609675527, + -9.1602628469 + ], + [ + -35.97660801158, + -9.1602628469 + ], + [ + -35.9767198489, + -9.14608263113 + ], + [ + -35.97654410454, + -9.1412243182 + ], + [ + -35.97665594186, + -9.13319533758 + ], + [ + -35.97652812778, + -9.12183772804 + ], + [ + -35.9764801975, + -9.11748388185 + ], + [ + -35.98617809061, + -9.11754698145 + ], + [ + -35.9894693031, + -9.1173261328 + ], + [ + -36.00560583036, + -9.1173261328 + ], + [ + -36.01859493596, + -9.11735768262 + ], + [ + -36.04601105553, + -9.11721570843 + ], + [ + -36.06734002967, + -9.11697908465 + ], + [ + -36.0675637043, + -9.16133540973 + ], + [ + -36.06770749514, + -9.16404834833 + ], + [ + -36.06745186698, + -9.164079894 + ], + [ + -36.0675637043, + -9.16657199353 + ], + [ + -36.06777140218, + -9.16654044807 + ], + [ + -36.06797910005, + -9.20701095785 + ], + [ + -36.04979754756, + -9.2071055834 + ], + [ + -36.04671403295, + -9.206979416 + ], + [ + -36.02941120224, + -9.20708981247 + ], + [ + -36.0135462799, + -9.207184438 + ], + [ + -35.99317591134, + -9.20732637623 + ], + [ + -35.97724708197, + -9.20751562713 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, + { + "id": "UrbISOrtho2016", + "name": "UrbIS-Ortho 2016", + "type": "wms", + "template": "https://geoservices-urbis.irisnet.be/geoserver/ows/?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=Urbis:Ortho2016&WIDTH={width}&HEIGHT={height}&CRS={proj}&STYLES=&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2017-01-01T00:00:00.000Z", + "startDate": "2016-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 4.3797288, + 50.7638205 + ], + [ + 4.3891701, + 50.7637662 + ], + [ + 4.430283, + 50.7751656 + ], + [ + 4.4350037, + 50.7750028 + ], + [ + 4.464272, + 50.7864537 + ], + [ + 4.4816956, + 50.7913372 + ], + [ + 4.4823823, + 50.7961658 + ], + [ + 4.459208, + 50.8062556 + ], + [ + 4.4594655, + 50.8166144 + ], + [ + 4.4797215, + 50.8203559 + ], + [ + 4.4695935, + 50.8353735 + ], + [ + 4.4689927, + 50.8457258 + ], + [ + 4.4623837, + 50.8539626 + ], + [ + 4.4496808, + 50.8559133 + ], + [ + 4.4459901, + 50.8599226 + ], + [ + 4.4253049, + 50.8661526 + ], + [ + 4.431828, + 50.8762815 + ], + [ + 4.4400677, + 50.8784478 + ], + [ + 4.4310555, + 50.8901441 + ], + [ + 4.4359479, + 50.8950167 + ], + [ + 4.4295964, + 50.9010255 + ], + [ + 4.4165501, + 50.9075748 + ], + [ + 4.4154343, + 50.9134197 + ], + [ + 4.3957791, + 50.914069 + ], + [ + 4.3846211, + 50.9109303 + ], + [ + 4.3811879, + 50.9031907 + ], + [ + 4.3726048, + 50.9003218 + ], + [ + 4.3621335, + 50.9032989 + ], + [ + 4.3485722, + 50.9034072 + ], + [ + 4.3402467, + 50.9041108 + ], + [ + 4.328917, + 50.902487 + ], + [ + 4.3164716, + 50.8960453 + ], + [ + 4.3063435, + 50.8927429 + ], + [ + 4.2900357, + 50.8898192 + ], + [ + 4.2914948, + 50.8849461 + ], + [ + 4.2955289, + 50.8826176 + ], + [ + 4.2956147, + 50.8809389 + ], + [ + 4.2827401, + 50.8722735 + ], + [ + 4.2769894, + 50.8671277 + ], + [ + 4.2780194, + 50.8591099 + ], + [ + 4.2804227, + 50.8572136 + ], + [ + 4.2809376, + 50.8421489 + ], + [ + 4.2719254, + 50.8403603 + ], + [ + 4.2546735, + 50.8369455 + ], + [ + 4.2510686, + 50.83288 + ], + [ + 4.2522702, + 50.8269708 + ], + [ + 4.2434296, + 50.82182 + ], + [ + 4.2440305, + 50.8154755 + ], + [ + 4.2551884, + 50.8150959 + ], + [ + 4.2580209, + 50.8093472 + ], + [ + 4.2721829, + 50.8101065 + ], + [ + 4.2757878, + 50.8069607 + ], + [ + 4.2854008, + 50.8050623 + ], + [ + 4.2890057, + 50.8069065 + ], + [ + 4.298018, + 50.8059302 + ], + [ + 4.3028245, + 50.7970881 + ], + [ + 4.3145833, + 50.7945382 + ], + [ + 4.3162141, + 50.7862367 + ], + [ + 4.3295178, + 50.7738087 + ], + [ + 4.3420491, + 50.7716375 + ], + [ + 4.3452248, + 50.7733745 + ], + [ + 4.3785271, + 50.7681092 + ], + [ + 4.3797288, + 50.7638205 + ] + ] + ], + "terms_text": "Realized by means of Brussels UrbIS®© - Distribution & Copyright CIRB", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAACnUlEQVQoz11SXUiTYRh93ndz06YMNWcpRmWRSpgO+0EUDYwQ6sZ+oAyti8y6yCyKxOimILqQsLKbukmHSpFFLYlMqSkUmi3/pjZ/Zmv+Tec2bU237z1dfFHSc/HcPOc5HM45DAAREREgGOM217BpzDjs7PEHfNGa2PT47KxN+RFqrYDgjBMRE0JijBMRAKOlzmgxhChDN0cla1ThM0uTE65vsRFxRRkXk3TpMiMBkEQQQFPvw0LDnoYvVStBNwAhBIApj+X6m5OlT/dbnX0AJCHxkbl+zhTWub6XA4ZDqcd3JJTl1to7HV7G2E3TxOU2zaWcKm1YZKO5RlaliNknBma6Bqe7V6SVc5mVrmVFxSvLu1G3bSlwy2jVaXE6IzE0JLzV+jxJlxYTvp5X5j3Qx2ePzPcn6VJVysiUaHXX+d2zy8HqlrE8/bq3xXoiStalr1Fpxl1DRMQ547s27NWGRikVKtmuju9e34pEYcrhWV/f7E8iUinDQrjaH/AREQfAmSJGEzc6P0Qkvbd5ymt7DqfEmEr0Tre/4PFXInK4R7z+hXjtRiIi2aKPtpbi+qxue6vHj5ou+8KvAIBPP7yG3mkAd9sry18ULPrdAAgQAIJS4EZLacXrwqVlDwBJiKAkJCEB+Gz/UNyQ1TxY/8dWIiYgFFx5JPXM7JLjWe8jIgKBM3DGXT5no7lmy9rteVsLiIjJGXPGBcQ2XdqBlKJWa1PHeLOCcRAEhKH7zuKy+4T+QohCDQhGjLBqJBGsNl0teZI3OGMG0GiuKarPNI0aZTEyhq0qHxhjXv/C7bYyASkjIddoqctPOnY07ezf5hHRvwcikg+TXtv9jmsOjy0n8eCpnVeIESMiecnE/6kC0D/Vea+90h/wARAQqwG/AaEjsUbwLtXdAAAAAElFTkSuQmCC" + }, { "id": "UrbISOrtho2017", "name": "UrbIS-Ortho 2017", @@ -73070,6 +113849,536 @@ "best": true, "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAACnUlEQVQoz11SXUiTYRh93ndz06YMNWcpRmWRSpgO+0EUDYwQ6sZ+oAyti8y6yCyKxOimILqQsLKbukmHSpFFLYlMqSkUmi3/pjZ/Zmv+Tec2bU237z1dfFHSc/HcPOc5HM45DAAREREgGOM217BpzDjs7PEHfNGa2PT47KxN+RFqrYDgjBMRE0JijBMRAKOlzmgxhChDN0cla1ThM0uTE65vsRFxRRkXk3TpMiMBkEQQQFPvw0LDnoYvVStBNwAhBIApj+X6m5OlT/dbnX0AJCHxkbl+zhTWub6XA4ZDqcd3JJTl1to7HV7G2E3TxOU2zaWcKm1YZKO5RlaliNknBma6Bqe7V6SVc5mVrmVFxSvLu1G3bSlwy2jVaXE6IzE0JLzV+jxJlxYTvp5X5j3Qx2ePzPcn6VJVysiUaHXX+d2zy8HqlrE8/bq3xXoiStalr1Fpxl1DRMQ547s27NWGRikVKtmuju9e34pEYcrhWV/f7E8iUinDQrjaH/AREQfAmSJGEzc6P0Qkvbd5ymt7DqfEmEr0Tre/4PFXInK4R7z+hXjtRiIi2aKPtpbi+qxue6vHj5ou+8KvAIBPP7yG3mkAd9sry18ULPrdAAgQAIJS4EZLacXrwqVlDwBJiKAkJCEB+Gz/UNyQ1TxY/8dWIiYgFFx5JPXM7JLjWe8jIgKBM3DGXT5no7lmy9rteVsLiIjJGXPGBcQ2XdqBlKJWa1PHeLOCcRAEhKH7zuKy+4T+QohCDQhGjLBqJBGsNl0teZI3OGMG0GiuKarPNI0aZTEyhq0qHxhjXv/C7bYyASkjIddoqctPOnY07ezf5hHRvwcikg+TXtv9jmsOjy0n8eCpnVeIESMiecnE/6kC0D/Vea+90h/wARAQqwG/AaEjsUbwLtXdAAAAAElFTkSuQmCC" }, + { + "id": "UrbisAdmFR", + "name": "UrbisAdm FR", + "type": "wms", + "template": "https://geoservices-urbis.irisnet.be/geoserver/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=urbisFR&WIDTH={width}&HEIGHT={height}&CRS={proj}&STYLES=&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 4.3797288, + 50.7638205 + ], + [ + 4.3891701, + 50.7637662 + ], + [ + 4.430283, + 50.7751656 + ], + [ + 4.4350037, + 50.7750028 + ], + [ + 4.464272, + 50.7864537 + ], + [ + 4.4816956, + 50.7913372 + ], + [ + 4.4823823, + 50.7961658 + ], + [ + 4.459208, + 50.8062556 + ], + [ + 4.4594655, + 50.8166144 + ], + [ + 4.4797215, + 50.8203559 + ], + [ + 4.4695935, + 50.8353735 + ], + [ + 4.4689927, + 50.8457258 + ], + [ + 4.4623837, + 50.8539626 + ], + [ + 4.4496808, + 50.8559133 + ], + [ + 4.4459901, + 50.8599226 + ], + [ + 4.4253049, + 50.8661526 + ], + [ + 4.431828, + 50.8762815 + ], + [ + 4.4400677, + 50.8784478 + ], + [ + 4.4310555, + 50.8901441 + ], + [ + 4.4359479, + 50.8950167 + ], + [ + 4.4295964, + 50.9010255 + ], + [ + 4.4165501, + 50.9075748 + ], + [ + 4.4154343, + 50.9134197 + ], + [ + 4.3957791, + 50.914069 + ], + [ + 4.3846211, + 50.9109303 + ], + [ + 4.3811879, + 50.9031907 + ], + [ + 4.3726048, + 50.9003218 + ], + [ + 4.3621335, + 50.9032989 + ], + [ + 4.3485722, + 50.9034072 + ], + [ + 4.3402467, + 50.9041108 + ], + [ + 4.328917, + 50.902487 + ], + [ + 4.3164716, + 50.8960453 + ], + [ + 4.3063435, + 50.8927429 + ], + [ + 4.2900357, + 50.8898192 + ], + [ + 4.2914948, + 50.8849461 + ], + [ + 4.2955289, + 50.8826176 + ], + [ + 4.2956147, + 50.8809389 + ], + [ + 4.2827401, + 50.8722735 + ], + [ + 4.2769894, + 50.8671277 + ], + [ + 4.2780194, + 50.8591099 + ], + [ + 4.2804227, + 50.8572136 + ], + [ + 4.2809376, + 50.8421489 + ], + [ + 4.2719254, + 50.8403603 + ], + [ + 4.2546735, + 50.8369455 + ], + [ + 4.2510686, + 50.83288 + ], + [ + 4.2522702, + 50.8269708 + ], + [ + 4.2434296, + 50.82182 + ], + [ + 4.2440305, + 50.8154755 + ], + [ + 4.2551884, + 50.8150959 + ], + [ + 4.2580209, + 50.8093472 + ], + [ + 4.2721829, + 50.8101065 + ], + [ + 4.2757878, + 50.8069607 + ], + [ + 4.2854008, + 50.8050623 + ], + [ + 4.2890057, + 50.8069065 + ], + [ + 4.298018, + 50.8059302 + ], + [ + 4.3028245, + 50.7970881 + ], + [ + 4.3145833, + 50.7945382 + ], + [ + 4.3162141, + 50.7862367 + ], + [ + 4.3295178, + 50.7738087 + ], + [ + 4.3420491, + 50.7716375 + ], + [ + 4.3452248, + 50.7733745 + ], + [ + 4.3785271, + 50.7681092 + ], + [ + 4.3797288, + 50.7638205 + ] + ] + ], + "terms_text": "Realized by means of Brussels UrbIS®© - Distribution & Copyright CIRB", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAACnUlEQVQoz11SXUiTYRh93ndz06YMNWcpRmWRSpgO+0EUDYwQ6sZ+oAyti8y6yCyKxOimILqQsLKbukmHSpFFLYlMqSkUmi3/pjZ/Zmv+Tec2bU237z1dfFHSc/HcPOc5HM45DAAREREgGOM217BpzDjs7PEHfNGa2PT47KxN+RFqrYDgjBMRE0JijBMRAKOlzmgxhChDN0cla1ThM0uTE65vsRFxRRkXk3TpMiMBkEQQQFPvw0LDnoYvVStBNwAhBIApj+X6m5OlT/dbnX0AJCHxkbl+zhTWub6XA4ZDqcd3JJTl1to7HV7G2E3TxOU2zaWcKm1YZKO5RlaliNknBma6Bqe7V6SVc5mVrmVFxSvLu1G3bSlwy2jVaXE6IzE0JLzV+jxJlxYTvp5X5j3Qx2ePzPcn6VJVysiUaHXX+d2zy8HqlrE8/bq3xXoiStalr1Fpxl1DRMQ547s27NWGRikVKtmuju9e34pEYcrhWV/f7E8iUinDQrjaH/AREQfAmSJGEzc6P0Qkvbd5ymt7DqfEmEr0Tre/4PFXInK4R7z+hXjtRiIi2aKPtpbi+qxue6vHj5ou+8KvAIBPP7yG3mkAd9sry18ULPrdAAgQAIJS4EZLacXrwqVlDwBJiKAkJCEB+Gz/UNyQ1TxY/8dWIiYgFFx5JPXM7JLjWe8jIgKBM3DGXT5no7lmy9rteVsLiIjJGXPGBcQ2XdqBlKJWa1PHeLOCcRAEhKH7zuKy+4T+QohCDQhGjLBqJBGsNl0teZI3OGMG0GiuKarPNI0aZTEyhq0qHxhjXv/C7bYyASkjIddoqctPOnY07ezf5hHRvwcikg+TXtv9jmsOjy0n8eCpnVeIESMiecnE/6kC0D/Vea+90h/wARAQqwG/AaEjsUbwLtXdAAAAAElFTkSuQmCC" + }, + { + "id": "UrbisAdmNL", + "name": "UrbisAdm NL", + "type": "wms", + "template": "https://geoservices-urbis.irisnet.be/geoserver/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=urbisNL&WIDTH={width}&HEIGHT={height}&CRS={proj}&STYLES=&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 4.3797288, + 50.7638205 + ], + [ + 4.3891701, + 50.7637662 + ], + [ + 4.430283, + 50.7751656 + ], + [ + 4.4350037, + 50.7750028 + ], + [ + 4.464272, + 50.7864537 + ], + [ + 4.4816956, + 50.7913372 + ], + [ + 4.4823823, + 50.7961658 + ], + [ + 4.459208, + 50.8062556 + ], + [ + 4.4594655, + 50.8166144 + ], + [ + 4.4797215, + 50.8203559 + ], + [ + 4.4695935, + 50.8353735 + ], + [ + 4.4689927, + 50.8457258 + ], + [ + 4.4623837, + 50.8539626 + ], + [ + 4.4496808, + 50.8559133 + ], + [ + 4.4459901, + 50.8599226 + ], + [ + 4.4253049, + 50.8661526 + ], + [ + 4.431828, + 50.8762815 + ], + [ + 4.4400677, + 50.8784478 + ], + [ + 4.4310555, + 50.8901441 + ], + [ + 4.4359479, + 50.8950167 + ], + [ + 4.4295964, + 50.9010255 + ], + [ + 4.4165501, + 50.9075748 + ], + [ + 4.4154343, + 50.9134197 + ], + [ + 4.3957791, + 50.914069 + ], + [ + 4.3846211, + 50.9109303 + ], + [ + 4.3811879, + 50.9031907 + ], + [ + 4.3726048, + 50.9003218 + ], + [ + 4.3621335, + 50.9032989 + ], + [ + 4.3485722, + 50.9034072 + ], + [ + 4.3402467, + 50.9041108 + ], + [ + 4.328917, + 50.902487 + ], + [ + 4.3164716, + 50.8960453 + ], + [ + 4.3063435, + 50.8927429 + ], + [ + 4.2900357, + 50.8898192 + ], + [ + 4.2914948, + 50.8849461 + ], + [ + 4.2955289, + 50.8826176 + ], + [ + 4.2956147, + 50.8809389 + ], + [ + 4.2827401, + 50.8722735 + ], + [ + 4.2769894, + 50.8671277 + ], + [ + 4.2780194, + 50.8591099 + ], + [ + 4.2804227, + 50.8572136 + ], + [ + 4.2809376, + 50.8421489 + ], + [ + 4.2719254, + 50.8403603 + ], + [ + 4.2546735, + 50.8369455 + ], + [ + 4.2510686, + 50.83288 + ], + [ + 4.2522702, + 50.8269708 + ], + [ + 4.2434296, + 50.82182 + ], + [ + 4.2440305, + 50.8154755 + ], + [ + 4.2551884, + 50.8150959 + ], + [ + 4.2580209, + 50.8093472 + ], + [ + 4.2721829, + 50.8101065 + ], + [ + 4.2757878, + 50.8069607 + ], + [ + 4.2854008, + 50.8050623 + ], + [ + 4.2890057, + 50.8069065 + ], + [ + 4.298018, + 50.8059302 + ], + [ + 4.3028245, + 50.7970881 + ], + [ + 4.3145833, + 50.7945382 + ], + [ + 4.3162141, + 50.7862367 + ], + [ + 4.3295178, + 50.7738087 + ], + [ + 4.3420491, + 50.7716375 + ], + [ + 4.3452248, + 50.7733745 + ], + [ + 4.3785271, + 50.7681092 + ], + [ + 4.3797288, + 50.7638205 + ] + ] + ], + "terms_text": "Realized by means of Brussels UrbIS®© - Distribution & Copyright CIRB", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAACnUlEQVQoz11SXUiTYRh93ndz06YMNWcpRmWRSpgO+0EUDYwQ6sZ+oAyti8y6yCyKxOimILqQsLKbukmHSpFFLYlMqSkUmi3/pjZ/Zmv+Tec2bU237z1dfFHSc/HcPOc5HM45DAAREREgGOM217BpzDjs7PEHfNGa2PT47KxN+RFqrYDgjBMRE0JijBMRAKOlzmgxhChDN0cla1ThM0uTE65vsRFxRRkXk3TpMiMBkEQQQFPvw0LDnoYvVStBNwAhBIApj+X6m5OlT/dbnX0AJCHxkbl+zhTWub6XA4ZDqcd3JJTl1to7HV7G2E3TxOU2zaWcKm1YZKO5RlaliNknBma6Bqe7V6SVc5mVrmVFxSvLu1G3bSlwy2jVaXE6IzE0JLzV+jxJlxYTvp5X5j3Qx2ePzPcn6VJVysiUaHXX+d2zy8HqlrE8/bq3xXoiStalr1Fpxl1DRMQ547s27NWGRikVKtmuju9e34pEYcrhWV/f7E8iUinDQrjaH/AREQfAmSJGEzc6P0Qkvbd5ymt7DqfEmEr0Tre/4PFXInK4R7z+hXjtRiIi2aKPtpbi+qxue6vHj5ou+8KvAIBPP7yG3mkAd9sry18ULPrdAAgQAIJS4EZLacXrwqVlDwBJiKAkJCEB+Gz/UNyQ1TxY/8dWIiYgFFx5JPXM7JLjWe8jIgKBM3DGXT5no7lmy9rteVsLiIjJGXPGBcQ2XdqBlKJWa1PHeLOCcRAEhKH7zuKy+4T+QohCDQhGjLBqJBGsNl0teZI3OGMG0GiuKarPNI0aZTEyhq0qHxhjXv/C7bYyASkjIddoqctPOnY07ezf5hHRvwcikg+TXtv9jmsOjy0n8eCpnVeIESMiecnE/6kC0D/Vea+90h/wARAQqwG/AaEjsUbwLtXdAAAAAElFTkSuQmCC" + }, { "id": "USGS-Large_Scale", "name": "USGS Large Scale Imagery", @@ -78480,6 +119789,340 @@ "terms_url": "https://wiki.openstreetmap.org/wiki/Vejmidte", "terms_text": "Danish municipalities" }, + { + "id": "Vercors-Orthophotos-1999", + "name": "Vercors (Réserve naturelle des Hauts-Plateaux du Vercors) - Orthophoto - 1999 - 1 m", + "type": "tms", + "template": "http://wms.openstreetmap.fr/tms/1.0.0/PNRVercors-RHP-1999/{zoom}/{x}/{y}", + "endDate": "1999-01-01T00:00:00.000Z", + "startDate": "1999-01-01T00:00:00.000Z", + "scaleExtent": [ + 0, + 19 + ], + "polygon": [ + [ + [ + 5.4356493, + 44.9991755 + ], + [ + 5.4319266, + 44.9229046 + ], + [ + 5.4362415, + 44.9228447 + ], + [ + 5.4347186, + 44.8900063 + ], + [ + 5.4330265, + 44.8899463 + ], + [ + 5.4306544, + 44.8502562 + ], + [ + 5.4338694, + 44.8501362 + ], + [ + 5.4328541, + 44.8263781 + ], + [ + 5.435477, + 44.8262581 + ], + [ + 5.4349693, + 44.8138952 + ], + [ + 5.4410611, + 44.8137151 + ], + [ + 5.4371691, + 44.7409842 + ], + [ + 5.4545983, + 44.7404433 + ], + [ + 5.4528215, + 44.7042536 + ], + [ + 5.5210998, + 44.7024496 + ], + [ + 5.5232996, + 44.7385803 + ], + [ + 5.5890397, + 44.7368374 + ], + [ + 5.5929812, + 44.8126305 + ], + [ + 5.5879047, + 44.8129906 + ], + [ + 5.5897661, + 44.8494722 + ], + [ + 5.588228, + 44.8493765 + ], + [ + 5.5897237, + 44.8735055 + ], + [ + 5.5386318, + 44.8750318 + ], + [ + 5.5394694, + 44.886859 + ], + [ + 5.5283416, + 44.8873253 + ], + [ + 5.5300168, + 44.9201234 + ], + [ + 5.5331876, + 44.9201234 + ], + [ + 5.5376148, + 44.996241 + ], + [ + 5.4356493, + 44.9991755 + ] + ] + ], + "terms_text": "Parc Naturel du Vercors" + }, + { + "id": "vicosa_al", + "name": "Viçosa AL", + "type": "wms", + "template": "http://geo.seplande.al.gov.br/teogc/terraogcwms.cgi?LAYERS=Vicosa&SERVICE=WMS&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.0&SERVICE=WMS&REQUEST=GetMap&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -36.19799506289, + -9.42067411388 + ], + [ + -36.19777392167, + -9.41788790418 + ], + [ + -36.19779919496, + -9.41528243495 + ], + [ + -36.19801401785, + -9.41074463302 + ], + [ + -36.19789396976, + -9.4085692096 + ], + [ + -36.19792556136, + -9.40636883904 + ], + [ + -36.1979697896, + -9.40560836777 + ], + [ + -36.19793187968, + -9.40405001978 + ], + [ + -36.19798874457, + -9.40311500762 + ], + [ + -36.19827306898, + -9.40027878861 + ], + [ + -36.19829202394, + -9.39495536094 + ], + [ + -36.19788765144, + -9.39168895497 + ], + [ + -36.19844366363, + -9.38932016801 + ], + [ + -36.19836784379, + -9.3862033184 + ], + [ + -36.197938198, + -9.38166513525 + ], + [ + -36.19801401785, + -9.37972018144 + ], + [ + -36.1983425705, + -9.37867289409 + ], + [ + -36.19831729722, + -9.37697727931 + ], + [ + -36.19816565754, + -9.37585517674 + ], + [ + -36.19851948347, + -9.37139166614 + ], + [ + -36.1982162041, + -9.36238966295 + ], + [ + -36.1986205766, + -9.35318792839 + ], + [ + -36.19849421019, + -9.35096850339 + ], + [ + -36.19857003004, + -9.34852462578 + ], + [ + -36.19879748957, + -9.34667923744 + ], + [ + -36.19859530332, + -9.34348719127 + ], + [ + -36.19877221629, + -9.34084375588 + ], + [ + -36.19894912926, + -9.33301308429 + ], + [ + -36.19877221629, + -9.33039450836 + ], + [ + -36.28957911612, + -9.33114267492 + ], + [ + -36.28937692987, + -9.33318765532 + ], + [ + -36.28950329627, + -9.33538225508 + ], + [ + -36.28925056346, + -9.34124276628 + ], + [ + -36.28945274971, + -9.34291361737 + ], + [ + -36.28927583674, + -9.34520790729 + ], + [ + -36.28897255737, + -9.37311224406 + ], + [ + -36.28914947033, + -9.37480787773 + ], + [ + -36.2889220108, + -9.37707702159 + ], + [ + -36.28889673752, + -9.38540540039 + ], + [ + -36.28871982455, + -9.38632799292 + ], + [ + -36.28871982455, + -9.39343436657 + ], + [ + -36.28887146424, + -9.39557871736 + ], + [ + -36.28877037111, + -9.40128860991 + ], + [ + -36.28861873143, + -9.40652467311 + ], + [ + -36.28871982455, + -9.40714800869 + ], + [ + -36.28877037111, + -9.4213348225 + ], + [ + -36.19799506289, + -9.42067411388 + ] + ] + ], + "terms_url": "http://www.seplande.al.gov.br/", + "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" + }, { "id": "wien.gv.at-labels", "name": "Vienna: Beschriftungen (annotations)", @@ -78590,6 +120233,2554 @@ "terms_url": "https://data.wien.gv.at/", "terms_text": "Stadt Wien", "icon": "https://www.wien.gv.at/layout-a/logo/wappen-klein.gif" + }, + { + "id": "vogis.cnv.at-DGM", + "name": "VoGIS: DGM (Terrain model)", + "type": "wms", + "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_hoehen_und_gelaende_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=schummerung_50cm_terrain&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 9.9680512, + 47.5463081 + ], + [ + 9.9680895, + 47.5462689 + ], + [ + 9.9712464, + 47.544249 + ], + [ + 9.9648355, + 47.538031 + ], + [ + 9.9683952, + 47.5280172 + ], + [ + 9.965262, + 47.5208928 + ], + [ + 9.9956949, + 47.5027787 + ], + [ + 9.9873585, + 47.4984652 + ], + [ + 10.0007641, + 47.4821056 + ], + [ + 10.023014, + 47.4841071 + ], + [ + 10.0374328, + 47.4891775 + ], + [ + 10.0447745, + 47.4876222 + ], + [ + 10.0541256, + 47.4758854 + ], + [ + 10.0534684, + 47.4668571 + ], + [ + 10.064681, + 47.4636357 + ], + [ + 10.0699906, + 47.4559503 + ], + [ + 10.0805676, + 47.4553604 + ], + [ + 10.0885672, + 47.4602924 + ], + [ + 10.091638, + 47.4589276 + ], + [ + 10.0938486, + 47.4404644 + ], + [ + 10.1055856, + 47.4287167 + ], + [ + 10.0937374, + 47.4168811 + ], + [ + 10.07418, + 47.4147226 + ], + [ + 10.0691405, + 47.410176 + ], + [ + 10.0862396, + 47.3995221 + ], + [ + 10.0828437, + 47.3938062 + ], + [ + 10.0998387, + 47.3547604 + ], + [ + 10.1193354, + 47.375613 + ], + [ + 10.1416871, + 47.36718 + ], + [ + 10.1658749, + 47.3688749 + ], + [ + 10.1695804, + 47.3712997 + ], + [ + 10.1693975, + 47.3858299 + ], + [ + 10.1813043, + 47.3872516 + ], + [ + 10.181849, + 47.3924258 + ], + [ + 10.1950843, + 47.3893456 + ], + [ + 10.1998763, + 47.3833352 + ], + [ + 10.2125912, + 47.3803897 + ], + [ + 10.227051, + 47.388895 + ], + [ + 10.2361856, + 47.3819213 + ], + [ + 10.2316784, + 47.3789694 + ], + [ + 10.2371623, + 47.3735651 + ], + [ + 10.2169885, + 47.3543552 + ], + [ + 10.2171047, + 47.3498849 + ], + [ + 10.2042369, + 47.3367531 + ], + [ + 10.2074173, + 47.3323161 + ], + [ + 10.1995092, + 47.3264601 + ], + [ + 10.2111311, + 47.3189838 + ], + [ + 10.2159718, + 47.311064 + ], + [ + 10.2123593, + 47.3112242 + ], + [ + 10.1991314, + 47.2975423 + ], + [ + 10.1896365, + 47.2939449 + ], + [ + 10.1796106, + 47.2960256 + ], + [ + 10.172077, + 47.2790762 + ], + [ + 10.1740416, + 47.2702482 + ], + [ + 10.1783421, + 47.2701114 + ], + [ + 10.174493, + 47.263697 + ], + [ + 10.218842, + 47.255327 + ], + [ + 10.223433, + 47.249833 + ], + [ + 10.210873, + 47.247805 + ], + [ + 10.1977606, + 47.236662 + ], + [ + 10.207913, + 47.232802 + ], + [ + 10.214282, + 47.216842 + ], + [ + 10.21269, + 47.204315 + ], + [ + 10.1996265, + 47.195388 + ], + [ + 10.1995066, + 47.1852535 + ], + [ + 10.2115119, + 47.1712368 + ], + [ + 10.2091987, + 47.1653713 + ], + [ + 10.20851, + 47.159483 + ], + [ + 10.213206, + 47.1576984 + ], + [ + 10.222203, + 47.15323 + ], + [ + 10.2216565, + 47.1492513 + ], + [ + 10.214808, + 47.143515 + ], + [ + 10.203327, + 47.142152 + ], + [ + 10.208868, + 47.131643 + ], + [ + 10.186295, + 47.12886 + ], + [ + 10.186525, + 47.119455 + ], + [ + 10.172877, + 47.120333 + ], + [ + 10.162993, + 47.113607 + ], + [ + 10.157657, + 47.114262 + ], + [ + 10.154415, + 47.105778 + ], + [ + 10.132428, + 47.081218 + ], + [ + 10.1345877, + 47.0639183 + ], + [ + 10.1508456, + 47.0618412 + ], + [ + 10.156932, + 47.048827 + ], + [ + 10.1441816, + 47.0335527 + ], + [ + 10.1232555, + 47.0220943 + ], + [ + 10.1328399, + 47.0120428 + ], + [ + 10.1544702, + 47.0054497 + ], + [ + 10.159614, + 46.9988153 + ], + [ + 10.1544222, + 46.9929855 + ], + [ + 10.1600074, + 46.9839969 + ], + [ + 10.1446293, + 46.9830135 + ], + [ + 10.1349173, + 46.9658398 + ], + [ + 10.1350134, + 46.9548285 + ], + [ + 10.1268364, + 46.9434986 + ], + [ + 10.0977188, + 46.9267603 + ], + [ + 10.0995372, + 46.9171215 + ], + [ + 10.1092134, + 46.908337 + ], + [ + 10.1090833, + 46.8943061 + ], + [ + 10.1249668, + 46.8801373 + ], + [ + 10.1414741, + 46.8746789 + ], + [ + 10.1396666, + 46.8621658 + ], + [ + 10.1450621, + 46.8510986 + ], + [ + 10.1394105, + 46.8473781 + ], + [ + 10.1230851, + 46.8484838 + ], + [ + 10.1191237, + 46.8441698 + ], + [ + 10.1051833, + 46.8408981 + ], + [ + 10.0919546, + 46.851426 + ], + [ + 10.0926536, + 46.8581775 + ], + [ + 10.087123, + 46.861277 + ], + [ + 10.0548814, + 46.8617049 + ], + [ + 10.0508964, + 46.8644202 + ], + [ + 10.0519245, + 46.8740502 + ], + [ + 10.0389144, + 46.8861128 + ], + [ + 10.0322055, + 46.8880172 + ], + [ + 10.0178184, + 46.9016148 + ], + [ + 10.0049435, + 46.8988926 + ], + [ + 9.9824336, + 46.9061986 + ], + [ + 9.9779314, + 46.9160343 + ], + [ + 9.9665663, + 46.9122226 + ], + [ + 9.9590704, + 46.9160246 + ], + [ + 9.946121, + 46.9123495 + ], + [ + 9.9375809, + 46.9132426 + ], + [ + 9.9215303, + 46.918824 + ], + [ + 9.9123097, + 46.9260554 + ], + [ + 9.9063207, + 46.9253006 + ], + [ + 9.8944853, + 46.9316447 + ], + [ + 9.8761296, + 46.9346278 + ], + [ + 9.8807063, + 46.9401115 + ], + [ + 9.8765706, + 46.9407057 + ], + [ + 9.8748781, + 46.9503903 + ], + [ + 9.8787197, + 46.9570665 + ], + [ + 9.8707312, + 46.9632091 + ], + [ + 9.8848165, + 46.9854648 + ], + [ + 9.8923039, + 46.9903589 + ], + [ + 9.8887771, + 47.0007231 + ], + [ + 9.870696, + 47.0096514 + ], + [ + 9.8711507, + 47.0130577 + ], + [ + 9.8803497, + 47.0172237 + ], + [ + 9.8777935, + 47.0205525 + ], + [ + 9.8597449, + 47.0232098 + ], + [ + 9.8527287, + 47.0164129 + ], + [ + 9.8361195, + 47.012531 + ], + [ + 9.8235302, + 47.0198587 + ], + [ + 9.8075641, + 47.0235627 + ], + [ + 9.7849142, + 47.0384853 + ], + [ + 9.7480774, + 47.0369227 + ], + [ + 9.7418488, + 47.042675 + ], + [ + 9.718211, + 47.0433745 + ], + [ + 9.7070102, + 47.0480458 + ], + [ + 9.7075964, + 47.0538077 + ], + [ + 9.69756, + 47.0523884 + ], + [ + 9.6839177, + 47.0576471 + ], + [ + 9.6818398, + 47.0620979 + ], + [ + 9.6774319, + 47.061409 + ], + [ + 9.6582148, + 47.0581823 + ], + [ + 9.6450573, + 47.059775 + ], + [ + 9.6415752, + 47.0559826 + ], + [ + 9.6365412, + 47.051703 + ], + [ + 9.6263272, + 47.0513274 + ], + [ + 9.6070544, + 47.0607725 + ], + [ + 9.6133977, + 47.0694958 + ], + [ + 9.6115341, + 47.0794024 + ], + [ + 9.6186894, + 47.0781689 + ], + [ + 9.6233873, + 47.0825788 + ], + [ + 9.6334608, + 47.0834395 + ], + [ + 9.6356428, + 47.0955277 + ], + [ + 9.6285845, + 47.1075584 + ], + [ + 9.6208286, + 47.1103155 + ], + [ + 9.6350298, + 47.1281316 + ], + [ + 9.6246665, + 47.1326485 + ], + [ + 9.6225823, + 47.1413535 + ], + [ + 9.6258673, + 47.1458981 + ], + [ + 9.6205943, + 47.1516392 + ], + [ + 9.6089021, + 47.1477494 + ], + [ + 9.5967871, + 47.1629415 + ], + [ + 9.5794635, + 47.1711566 + ], + [ + 9.5645583, + 47.1702904 + ], + [ + 9.5730168, + 47.1755955 + ], + [ + 9.5725939, + 47.1907921 + ], + [ + 9.5803175, + 47.1957775 + ], + [ + 9.5847667, + 47.2053225 + ], + [ + 9.5687023, + 47.2196758 + ], + [ + 9.5585129, + 47.2241649 + ], + [ + 9.5517611, + 47.2237671 + ], + [ + 9.5667871, + 47.2428808 + ], + [ + 9.5307265, + 47.2705781 + ], + [ + 9.5461876, + 47.2800507 + ], + [ + 9.556344, + 47.2982863 + ], + [ + 9.588051, + 47.3173029 + ], + [ + 9.5996599, + 47.3454983 + ], + [ + 9.6107327, + 47.355706 + ], + [ + 9.6244598, + 47.3661451 + ], + [ + 9.6587582, + 47.369461 + ], + [ + 9.6725468, + 47.3802057 + ], + [ + 9.673111, + 47.3919406 + ], + [ + 9.6516178, + 47.404626 + ], + [ + 9.6455139, + 47.4311951 + ], + [ + 9.6451212, + 47.4378008 + ], + [ + 9.6579866, + 47.4477909 + ], + [ + 9.6589756, + 47.4522045 + ], + [ + 9.6223413, + 47.457472 + ], + [ + 9.609044, + 47.4705422 + ], + [ + 9.6029186, + 47.4619769 + ], + [ + 9.5951426, + 47.4633095 + ], + [ + 9.5821741, + 47.4827585 + ], + [ + 9.562202, + 47.4959175 + ], + [ + 9.550566, + 47.5371757 + ], + [ + 9.5827036, + 47.5359236 + ], + [ + 9.6046496, + 47.5295205 + ], + [ + 9.7347836, + 47.5339558 + ], + [ + 9.7351711, + 47.5466141 + ], + [ + 9.7416436, + 47.5549858 + ], + [ + 9.7471037, + 47.5556923 + ], + [ + 9.7433711, + 47.5586655 + ], + [ + 9.7520662, + 47.5674668 + ], + [ + 9.7480649, + 47.5705239 + ], + [ + 9.7563218, + 47.5726206 + ], + [ + 9.7563266, + 47.5796315 + ], + [ + 9.7619689, + 47.5809636 + ], + [ + 9.7655314, + 47.5891166 + ], + [ + 9.7693306, + 47.5873852 + ], + [ + 9.7769663, + 47.5954393 + ], + [ + 9.7915143, + 47.5935211 + ], + [ + 9.7999911, + 47.5961057 + ], + [ + 9.81414, + 47.5880685 + ], + [ + 9.8238141, + 47.5871045 + ], + [ + 9.8272819, + 47.579972 + ], + [ + 9.8207906, + 47.5707624 + ], + [ + 9.8256191, + 47.5592156 + ], + [ + 9.8171007, + 47.5533268 + ], + [ + 9.8157872, + 47.5476661 + ], + [ + 9.8502301, + 47.5416393 + ], + [ + 9.8583884, + 47.5338767 + ], + [ + 9.8745052, + 47.5285372 + ], + [ + 9.8780368, + 47.5387569 + ], + [ + 9.8751486, + 47.543427 + ], + [ + 9.8812471, + 47.5481426 + ], + [ + 9.8891039, + 47.5439867 + ], + [ + 9.8993513, + 47.54475 + ], + [ + 9.9066603, + 47.5421716 + ], + [ + 9.913579, + 47.532546 + ], + [ + 9.9218947, + 47.5296364 + ], + [ + 9.9335226, + 47.5326499 + ], + [ + 9.9410791, + 47.5382227 + ], + [ + 9.9636997, + 47.5347198 + ], + [ + 9.9588294, + 47.5431278 + ], + [ + 9.9631795, + 47.54229 + ], + [ + 9.9680512, + 47.5463081 + ] + ] + ], + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAD1BMVEUAAACEAgT8AgQEAgSEgoTQjzHEAAAAAXRSTlMAQObYZgAAAHJJREFUeF6ljVEKgzAQRCftBUQv0KwXML7cwPvfqQwJtIVqi76fHR7DrKSUJY1DD84xKEVuwcT40C1HC18bqQDTBKWosUZn+VvQ4UTjkoCYWd/Eco9ZLwEWggsNC9CPL3C0UauFz44wFh941Bw0tm1PPAGCUydahBcw6wAAAABJRU5ErkJggg==" + }, + { + "id": "vogis.cnv.at-DOM", + "name": "VoGIS: DOM (Surface model)", + "type": "wms", + "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_hoehen_und_gelaende_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=schummerung_50cm_surface&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 9.9680512, + 47.5463081 + ], + [ + 9.9680895, + 47.5462689 + ], + [ + 9.9712464, + 47.544249 + ], + [ + 9.9648355, + 47.538031 + ], + [ + 9.9683952, + 47.5280172 + ], + [ + 9.965262, + 47.5208928 + ], + [ + 9.9956949, + 47.5027787 + ], + [ + 9.9873585, + 47.4984652 + ], + [ + 10.0007641, + 47.4821056 + ], + [ + 10.023014, + 47.4841071 + ], + [ + 10.0374328, + 47.4891775 + ], + [ + 10.0447745, + 47.4876222 + ], + [ + 10.0541256, + 47.4758854 + ], + [ + 10.0534684, + 47.4668571 + ], + [ + 10.064681, + 47.4636357 + ], + [ + 10.0699906, + 47.4559503 + ], + [ + 10.0805676, + 47.4553604 + ], + [ + 10.0885672, + 47.4602924 + ], + [ + 10.091638, + 47.4589276 + ], + [ + 10.0938486, + 47.4404644 + ], + [ + 10.1055856, + 47.4287167 + ], + [ + 10.0937374, + 47.4168811 + ], + [ + 10.07418, + 47.4147226 + ], + [ + 10.0691405, + 47.410176 + ], + [ + 10.0862396, + 47.3995221 + ], + [ + 10.0828437, + 47.3938062 + ], + [ + 10.0998387, + 47.3547604 + ], + [ + 10.1193354, + 47.375613 + ], + [ + 10.1416871, + 47.36718 + ], + [ + 10.1658749, + 47.3688749 + ], + [ + 10.1695804, + 47.3712997 + ], + [ + 10.1693975, + 47.3858299 + ], + [ + 10.1813043, + 47.3872516 + ], + [ + 10.181849, + 47.3924258 + ], + [ + 10.1950843, + 47.3893456 + ], + [ + 10.1998763, + 47.3833352 + ], + [ + 10.2125912, + 47.3803897 + ], + [ + 10.227051, + 47.388895 + ], + [ + 10.2361856, + 47.3819213 + ], + [ + 10.2316784, + 47.3789694 + ], + [ + 10.2371623, + 47.3735651 + ], + [ + 10.2169885, + 47.3543552 + ], + [ + 10.2171047, + 47.3498849 + ], + [ + 10.2042369, + 47.3367531 + ], + [ + 10.2074173, + 47.3323161 + ], + [ + 10.1995092, + 47.3264601 + ], + [ + 10.2111311, + 47.3189838 + ], + [ + 10.2159718, + 47.311064 + ], + [ + 10.2123593, + 47.3112242 + ], + [ + 10.1991314, + 47.2975423 + ], + [ + 10.1896365, + 47.2939449 + ], + [ + 10.1796106, + 47.2960256 + ], + [ + 10.172077, + 47.2790762 + ], + [ + 10.1740416, + 47.2702482 + ], + [ + 10.1783421, + 47.2701114 + ], + [ + 10.174493, + 47.263697 + ], + [ + 10.218842, + 47.255327 + ], + [ + 10.223433, + 47.249833 + ], + [ + 10.210873, + 47.247805 + ], + [ + 10.1977606, + 47.236662 + ], + [ + 10.207913, + 47.232802 + ], + [ + 10.214282, + 47.216842 + ], + [ + 10.21269, + 47.204315 + ], + [ + 10.1996265, + 47.195388 + ], + [ + 10.1995066, + 47.1852535 + ], + [ + 10.2115119, + 47.1712368 + ], + [ + 10.2091987, + 47.1653713 + ], + [ + 10.20851, + 47.159483 + ], + [ + 10.213206, + 47.1576984 + ], + [ + 10.222203, + 47.15323 + ], + [ + 10.2216565, + 47.1492513 + ], + [ + 10.214808, + 47.143515 + ], + [ + 10.203327, + 47.142152 + ], + [ + 10.208868, + 47.131643 + ], + [ + 10.186295, + 47.12886 + ], + [ + 10.186525, + 47.119455 + ], + [ + 10.172877, + 47.120333 + ], + [ + 10.162993, + 47.113607 + ], + [ + 10.157657, + 47.114262 + ], + [ + 10.154415, + 47.105778 + ], + [ + 10.132428, + 47.081218 + ], + [ + 10.1345877, + 47.0639183 + ], + [ + 10.1508456, + 47.0618412 + ], + [ + 10.156932, + 47.048827 + ], + [ + 10.1441816, + 47.0335527 + ], + [ + 10.1232555, + 47.0220943 + ], + [ + 10.1328399, + 47.0120428 + ], + [ + 10.1544702, + 47.0054497 + ], + [ + 10.159614, + 46.9988153 + ], + [ + 10.1544222, + 46.9929855 + ], + [ + 10.1600074, + 46.9839969 + ], + [ + 10.1446293, + 46.9830135 + ], + [ + 10.1349173, + 46.9658398 + ], + [ + 10.1350134, + 46.9548285 + ], + [ + 10.1268364, + 46.9434986 + ], + [ + 10.0977188, + 46.9267603 + ], + [ + 10.0995372, + 46.9171215 + ], + [ + 10.1092134, + 46.908337 + ], + [ + 10.1090833, + 46.8943061 + ], + [ + 10.1249668, + 46.8801373 + ], + [ + 10.1414741, + 46.8746789 + ], + [ + 10.1396666, + 46.8621658 + ], + [ + 10.1450621, + 46.8510986 + ], + [ + 10.1394105, + 46.8473781 + ], + [ + 10.1230851, + 46.8484838 + ], + [ + 10.1191237, + 46.8441698 + ], + [ + 10.1051833, + 46.8408981 + ], + [ + 10.0919546, + 46.851426 + ], + [ + 10.0926536, + 46.8581775 + ], + [ + 10.087123, + 46.861277 + ], + [ + 10.0548814, + 46.8617049 + ], + [ + 10.0508964, + 46.8644202 + ], + [ + 10.0519245, + 46.8740502 + ], + [ + 10.0389144, + 46.8861128 + ], + [ + 10.0322055, + 46.8880172 + ], + [ + 10.0178184, + 46.9016148 + ], + [ + 10.0049435, + 46.8988926 + ], + [ + 9.9824336, + 46.9061986 + ], + [ + 9.9779314, + 46.9160343 + ], + [ + 9.9665663, + 46.9122226 + ], + [ + 9.9590704, + 46.9160246 + ], + [ + 9.946121, + 46.9123495 + ], + [ + 9.9375809, + 46.9132426 + ], + [ + 9.9215303, + 46.918824 + ], + [ + 9.9123097, + 46.9260554 + ], + [ + 9.9063207, + 46.9253006 + ], + [ + 9.8944853, + 46.9316447 + ], + [ + 9.8761296, + 46.9346278 + ], + [ + 9.8807063, + 46.9401115 + ], + [ + 9.8765706, + 46.9407057 + ], + [ + 9.8748781, + 46.9503903 + ], + [ + 9.8787197, + 46.9570665 + ], + [ + 9.8707312, + 46.9632091 + ], + [ + 9.8848165, + 46.9854648 + ], + [ + 9.8923039, + 46.9903589 + ], + [ + 9.8887771, + 47.0007231 + ], + [ + 9.870696, + 47.0096514 + ], + [ + 9.8711507, + 47.0130577 + ], + [ + 9.8803497, + 47.0172237 + ], + [ + 9.8777935, + 47.0205525 + ], + [ + 9.8597449, + 47.0232098 + ], + [ + 9.8527287, + 47.0164129 + ], + [ + 9.8361195, + 47.012531 + ], + [ + 9.8235302, + 47.0198587 + ], + [ + 9.8075641, + 47.0235627 + ], + [ + 9.7849142, + 47.0384853 + ], + [ + 9.7480774, + 47.0369227 + ], + [ + 9.7418488, + 47.042675 + ], + [ + 9.718211, + 47.0433745 + ], + [ + 9.7070102, + 47.0480458 + ], + [ + 9.7075964, + 47.0538077 + ], + [ + 9.69756, + 47.0523884 + ], + [ + 9.6839177, + 47.0576471 + ], + [ + 9.6818398, + 47.0620979 + ], + [ + 9.6774319, + 47.061409 + ], + [ + 9.6582148, + 47.0581823 + ], + [ + 9.6450573, + 47.059775 + ], + [ + 9.6415752, + 47.0559826 + ], + [ + 9.6365412, + 47.051703 + ], + [ + 9.6263272, + 47.0513274 + ], + [ + 9.6070544, + 47.0607725 + ], + [ + 9.6133977, + 47.0694958 + ], + [ + 9.6115341, + 47.0794024 + ], + [ + 9.6186894, + 47.0781689 + ], + [ + 9.6233873, + 47.0825788 + ], + [ + 9.6334608, + 47.0834395 + ], + [ + 9.6356428, + 47.0955277 + ], + [ + 9.6285845, + 47.1075584 + ], + [ + 9.6208286, + 47.1103155 + ], + [ + 9.6350298, + 47.1281316 + ], + [ + 9.6246665, + 47.1326485 + ], + [ + 9.6225823, + 47.1413535 + ], + [ + 9.6258673, + 47.1458981 + ], + [ + 9.6205943, + 47.1516392 + ], + [ + 9.6089021, + 47.1477494 + ], + [ + 9.5967871, + 47.1629415 + ], + [ + 9.5794635, + 47.1711566 + ], + [ + 9.5645583, + 47.1702904 + ], + [ + 9.5730168, + 47.1755955 + ], + [ + 9.5725939, + 47.1907921 + ], + [ + 9.5803175, + 47.1957775 + ], + [ + 9.5847667, + 47.2053225 + ], + [ + 9.5687023, + 47.2196758 + ], + [ + 9.5585129, + 47.2241649 + ], + [ + 9.5517611, + 47.2237671 + ], + [ + 9.5667871, + 47.2428808 + ], + [ + 9.5307265, + 47.2705781 + ], + [ + 9.5461876, + 47.2800507 + ], + [ + 9.556344, + 47.2982863 + ], + [ + 9.588051, + 47.3173029 + ], + [ + 9.5996599, + 47.3454983 + ], + [ + 9.6107327, + 47.355706 + ], + [ + 9.6244598, + 47.3661451 + ], + [ + 9.6587582, + 47.369461 + ], + [ + 9.6725468, + 47.3802057 + ], + [ + 9.673111, + 47.3919406 + ], + [ + 9.6516178, + 47.404626 + ], + [ + 9.6455139, + 47.4311951 + ], + [ + 9.6451212, + 47.4378008 + ], + [ + 9.6579866, + 47.4477909 + ], + [ + 9.6589756, + 47.4522045 + ], + [ + 9.6223413, + 47.457472 + ], + [ + 9.609044, + 47.4705422 + ], + [ + 9.6029186, + 47.4619769 + ], + [ + 9.5951426, + 47.4633095 + ], + [ + 9.5821741, + 47.4827585 + ], + [ + 9.562202, + 47.4959175 + ], + [ + 9.550566, + 47.5371757 + ], + [ + 9.5827036, + 47.5359236 + ], + [ + 9.6046496, + 47.5295205 + ], + [ + 9.7347836, + 47.5339558 + ], + [ + 9.7351711, + 47.5466141 + ], + [ + 9.7416436, + 47.5549858 + ], + [ + 9.7471037, + 47.5556923 + ], + [ + 9.7433711, + 47.5586655 + ], + [ + 9.7520662, + 47.5674668 + ], + [ + 9.7480649, + 47.5705239 + ], + [ + 9.7563218, + 47.5726206 + ], + [ + 9.7563266, + 47.5796315 + ], + [ + 9.7619689, + 47.5809636 + ], + [ + 9.7655314, + 47.5891166 + ], + [ + 9.7693306, + 47.5873852 + ], + [ + 9.7769663, + 47.5954393 + ], + [ + 9.7915143, + 47.5935211 + ], + [ + 9.7999911, + 47.5961057 + ], + [ + 9.81414, + 47.5880685 + ], + [ + 9.8238141, + 47.5871045 + ], + [ + 9.8272819, + 47.579972 + ], + [ + 9.8207906, + 47.5707624 + ], + [ + 9.8256191, + 47.5592156 + ], + [ + 9.8171007, + 47.5533268 + ], + [ + 9.8157872, + 47.5476661 + ], + [ + 9.8502301, + 47.5416393 + ], + [ + 9.8583884, + 47.5338767 + ], + [ + 9.8745052, + 47.5285372 + ], + [ + 9.8780368, + 47.5387569 + ], + [ + 9.8751486, + 47.543427 + ], + [ + 9.8812471, + 47.5481426 + ], + [ + 9.8891039, + 47.5439867 + ], + [ + 9.8993513, + 47.54475 + ], + [ + 9.9066603, + 47.5421716 + ], + [ + 9.913579, + 47.532546 + ], + [ + 9.9218947, + 47.5296364 + ], + [ + 9.9335226, + 47.5326499 + ], + [ + 9.9410791, + 47.5382227 + ], + [ + 9.9636997, + 47.5347198 + ], + [ + 9.9588294, + 47.5431278 + ], + [ + 9.9631795, + 47.54229 + ], + [ + 9.9680512, + 47.5463081 + ] + ] + ], + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAD1BMVEUAAACEAgT8AgQEAgSEgoTQjzHEAAAAAXRSTlMAQObYZgAAAHJJREFUeF6ljVEKgzAQRCftBUQv0KwXML7cwPvfqQwJtIVqi76fHR7DrKSUJY1DD84xKEVuwcT40C1HC18bqQDTBKWosUZn+VvQ4UTjkoCYWd/Eco9ZLwEWggsNC9CPL3C0UauFz44wFh941Bw0tm1PPAGCUydahBcw6wAAAABJRU5ErkJggg==" + }, + { + "id": "vogis.cnv.at-ef2012_12cm", + "name": "VoGIS: Echtfarbenbild 2012 (12cm)", + "type": "wms", + "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_luftbilder_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ef2012_12cm&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 9.5436683, + 47.4847893 + ], + [ + 9.6145139, + 47.4505807 + ], + [ + 9.6135938, + 47.3827196 + ], + [ + 9.4424603, + 47.2479843 + ], + [ + 9.4461405, + 47.0959963 + ], + [ + 9.4286592, + 47.0891059 + ], + [ + 9.4249789, + 47.0151345 + ], + [ + 9.8528128, + 47.0019594 + ], + [ + 9.8574132, + 46.898956 + ], + [ + 9.9669019, + 46.889525 + ], + [ + 10.0451081, + 46.849897 + ], + [ + 10.1582771, + 46.833534 + ], + [ + 10.1591972, + 46.8920401 + ], + [ + 10.1471804, + 46.8924787 + ], + [ + 10.1511549, + 46.9433055 + ], + [ + 10.1631717, + 46.9428673 + ], + [ + 10.1646986, + 46.9623816 + ], + [ + 10.1785187, + 46.9668098 + ], + [ + 10.1757585, + 47.1035121 + ], + [ + 10.2291227, + 47.1022595 + ], + [ + 10.2208421, + 47.2436121 + ], + [ + 10.2613253, + 47.4126142 + ], + [ + 10.1242344, + 47.4057648 + ], + [ + 10.093872, + 47.4779493 + ], + [ + 10.0046249, + 47.5071683 + ], + [ + 9.9862234, + 47.5612116 + ], + [ + 9.8436121, + 47.5624533 + ], + [ + 9.8408519, + 47.6071356 + ], + [ + 9.539988, + 47.6065153 + ], + [ + 9.5436683, + 47.4847893 + ] + ] + ], + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAD1BMVEUAAACEAgT8AgQEAgSEgoTQjzHEAAAAAXRSTlMAQObYZgAAAHJJREFUeF6ljVEKgzAQRCftBUQv0KwXML7cwPvfqQwJtIVqi76fHR7DrKSUJY1DD84xKEVuwcT40C1HC18bqQDTBKWosUZn+VvQ4UTjkoCYWd/Eco9ZLwEWggsNC9CPL3C0UauFz44wFh941Bw0tm1PPAGCUydahBcw6wAAAABJRU5ErkJggg==" + }, + { + "id": "vogis.cnv.at-ef2015_10cm", + "name": "VoGIS: Echtfarbenbild 2015 (10cm)", + "type": "wms", + "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_luftbilder_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ef2015_10cm&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 9.5436683, + 47.4847893 + ], + [ + 9.6145139, + 47.4505807 + ], + [ + 9.6135938, + 47.3827196 + ], + [ + 9.4424603, + 47.2479843 + ], + [ + 9.4461405, + 47.0959963 + ], + [ + 9.4286592, + 47.0891059 + ], + [ + 9.4249789, + 47.0151345 + ], + [ + 9.8528128, + 47.0019594 + ], + [ + 9.8574132, + 46.898956 + ], + [ + 9.9669019, + 46.889525 + ], + [ + 10.0451081, + 46.849897 + ], + [ + 10.1582771, + 46.833534 + ], + [ + 10.1591972, + 46.8920401 + ], + [ + 10.1471804, + 46.8924787 + ], + [ + 10.1511549, + 46.9433055 + ], + [ + 10.1631717, + 46.9428673 + ], + [ + 10.1646986, + 46.9623816 + ], + [ + 10.1785187, + 46.9668098 + ], + [ + 10.1757585, + 47.1035121 + ], + [ + 10.2291227, + 47.1022595 + ], + [ + 10.2208421, + 47.2436121 + ], + [ + 10.2613253, + 47.4126142 + ], + [ + 10.1242344, + 47.4057648 + ], + [ + 10.093872, + 47.4779493 + ], + [ + 10.0046249, + 47.5071683 + ], + [ + 9.9862234, + 47.5612116 + ], + [ + 9.8436121, + 47.5624533 + ], + [ + 9.8408519, + 47.6071356 + ], + [ + 9.539988, + 47.6065153 + ], + [ + 9.5436683, + 47.4847893 + ] + ] + ], + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAD1BMVEUAAACEAgT8AgQEAgSEgoTQjzHEAAAAAXRSTlMAQObYZgAAAHJJREFUeF6ljVEKgzAQRCftBUQv0KwXML7cwPvfqQwJtIVqi76fHR7DrKSUJY1DD84xKEVuwcT40C1HC18bqQDTBKWosUZn+VvQ4UTjkoCYWd/Eco9ZLwEWggsNC9CPL3C0UauFz44wFh941Bw0tm1PPAGCUydahBcw6wAAAABJRU5ErkJggg==" + }, + { + "id": "vogis.cnv.at-wi2015_20cm", + "name": "VoGIS: Echtfarbenbild Winter 2015 (20cm)", + "type": "wms", + "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_luftbilder_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=wi2015_20cm&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.1703925, + 46.8297883 + ], + [ + 10.1710791, + 46.93644 + ], + [ + 10.1841254, + 46.9411282 + ], + [ + 10.1854987, + 47.1015707 + ], + [ + 10.239057, + 47.104375 + ], + [ + 10.2428336, + 47.1561117 + ], + [ + 10.2569098, + 47.1870362 + ], + [ + 10.2455802, + 47.2759749 + ], + [ + 10.2531333, + 47.323472 + ], + [ + 10.2689261, + 47.3262646 + ], + [ + 10.2644629, + 47.41102 + ], + [ + 10.1319403, + 47.4086966 + ], + [ + 10.1343436, + 47.4610652 + ], + [ + 10.1175208, + 47.4615294 + ], + [ + 10.1188941, + 47.4733659 + ], + [ + 10.0873084, + 47.4742942 + ], + [ + 10.0849051, + 47.5072362 + ], + [ + 10.0684256, + 47.5070043 + ], + [ + 10.0673956, + 47.521497 + ], + [ + 10.0234503, + 47.5242791 + ], + [ + 10.000791, + 47.5794276 + ], + [ + 9.8490424, + 47.5775748 + ], + [ + 9.8504157, + 47.6146181 + ], + [ + 9.7275061, + 47.6127666 + ], + [ + 9.7202963, + 47.5908903 + ], + [ + 9.7034735, + 47.5891536 + ], + [ + 9.7031302, + 47.5449087 + ], + [ + 9.6821875, + 47.5449087 + ], + [ + 9.6804709, + 47.5534826 + ], + [ + 9.5639128, + 47.5493117 + ], + [ + 9.5620246, + 47.5395782 + ], + [ + 9.5517249, + 47.5395782 + ], + [ + 9.5517249, + 47.5340154 + ], + [ + 9.5216841, + 47.5347108 + ], + [ + 9.5270056, + 47.3049672 + ], + [ + 9.505033, + 47.3026391 + ], + [ + 9.5009131, + 47.2336806 + ], + [ + 9.5235724, + 47.2322819 + ], + [ + 9.5242591, + 47.165566 + ], + [ + 9.5448584, + 47.1640488 + ], + [ + 9.5438284, + 47.1544774 + ], + [ + 9.5723242, + 47.1540105 + ], + [ + 9.5702643, + 47.128089 + ], + [ + 9.590177, + 47.128673 + ], + [ + 9.5918936, + 47.1002853 + ], + [ + 9.5723242, + 47.1001685 + ], + [ + 9.5771308, + 47.0286063 + ], + [ + 9.7240729, + 47.0304785 + ], + [ + 9.7230429, + 47.0174892 + ], + [ + 9.7745413, + 47.0156166 + ], + [ + 9.776258, + 47.0055504 + ], + [ + 9.7927374, + 47.0039115 + ], + [ + 9.7947974, + 46.9912671 + ], + [ + 9.8387427, + 46.9931405 + ], + [ + 9.840116, + 46.9034933 + ], + [ + 9.8902411, + 46.9072462 + ], + [ + 9.8854346, + 46.887071 + ], + [ + 9.959249, + 46.8914116 + ], + [ + 9.9619956, + 46.8767458 + ], + [ + 10.0001044, + 46.8786233 + ], + [ + 9.9966712, + 46.857146 + ], + [ + 10.0186438, + 46.8565591 + ], + [ + 10.0234503, + 46.8307278 + ], + [ + 10.1703925, + 46.8297883 + ] + ] + ], + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAD1BMVEUAAACEAgT8AgQEAgSEgoTQjzHEAAAAAXRSTlMAQObYZgAAAHJJREFUeF6ljVEKgzAQRCftBUQv0KwXML7cwPvfqQwJtIVqi76fHR7DrKSUJY1DD84xKEVuwcT40C1HC18bqQDTBKWosUZn+VvQ4UTjkoCYWd/Eco9ZLwEWggsNC9CPL3C0UauFz44wFh941Bw0tm1PPAGCUydahBcw6wAAAABJRU5ErkJggg==" } ] } \ No newline at end of file diff --git a/data/update_imagery.js b/data/update_imagery.js index a3c291fdb..761b93fa3 100644 --- a/data/update_imagery.js +++ b/data/update_imagery.js @@ -32,6 +32,16 @@ var blacklist = { 'OSM_Inspector-Routing': true, 'OSM_Inspector-Tagging': true }; +var supportedWMSProjections = [ + 'EPSG:3857', + 'EPSG:900913', // EPSG:3857 alternatives codes + 'EPSG:3587', + 'EPSG:54004', + 'EPSG:41001', + 'EPSG:102113', + 'EPSG:102100', + 'EPSG:3785' +]; var whitelist = [ // Add custom sources here if needed. @@ -39,8 +49,15 @@ var whitelist = [ sources.concat(whitelist).forEach(function(source) { - if (source.type !== 'tms' && source.type !== 'bing') return; + if (source.type !== 'tms' && source.type !== 'wms' && source.type !== 'bing') return; if (source.id in blacklist) return; + var supportedProjection = source.available_projections && + supportedWMSProjections.find(function(supportedProjection) { + return source.available_projections.some(function(projection) { + return supportedProjection === projection; + }) + }); + if (source.type === 'wms' && supportedProjection === undefined) return; var im = { id: source.id, @@ -49,6 +66,10 @@ sources.concat(whitelist).forEach(function(source) { template: source.url }; + if (source.type === 'wms') { + im.projection = supportedProjection; + } + var startDate, endDate, isValid; if (source.end_date) { diff --git a/modules/renderer/background_source.js b/modules/renderer/background_source.js index a6b92f167..df5de7df1 100644 --- a/modules/renderer/background_source.js +++ b/modules/renderer/background_source.js @@ -1,7 +1,10 @@ import _clone from 'lodash-es/clone'; import _some from 'lodash-es/some'; -import { geoArea as d3_geoArea } from 'd3-geo'; +import { + geoArea as d3_geoArea, + geoMercatorRaw as d3_geoMercatorRaw +} from 'd3-geo'; import { t } from '../util/locale'; import { geoExtent, geoPolygonIntersectsPolygon } from '../geo'; @@ -29,6 +32,17 @@ function vintageRange(vintage) { return s; } +function getEPSG3857XY(x, y, z) { + var zoomSize = Math.pow(2, z); + var lon = x / zoomSize * Math.PI * 2 - Math.PI; + var lat = Math.atan(Math.sinh(Math.PI * (1 - 2 * y / zoomSize))); + var mercCoords = d3_geoMercatorRaw(lon, lat); + return { + x: 20037508.34 / Math.PI * mercCoords[0], + y: 20037508.34 / Math.PI * mercCoords[1] + }; +} + export function rendererBackgroundSource(data) { var source = _clone(data); @@ -93,6 +107,15 @@ export function rendererBackgroundSource(data) { source.url = function(coord) { + if (this.type === 'wms') { + var minXmaxY = getEPSG3857XY(coord[0], coord[1], coord[2]); + var maxXminY = getEPSG3857XY(coord[0]+1, coord[1]+1, coord[2]); + return template + .replace('{width}', 256) + .replace('{height}', 256) + .replace('{proj}', this.projection) + .replace('{bbox}', minXmaxY.x + ',' + maxXminY.y + ',' + maxXminY.x + ',' + minXmaxY.y); + } return template .replace('{x}', coord[0]) .replace('{y}', coord[1]) From 97cbfc5c67f8f37748827cb26cb053f3f4ac4353 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 25 Feb 2018 22:38:13 -0500 Subject: [PATCH 084/157] Add icons and improve css styles for restriction field help --- css/80_app.css | 36 ++++++++++++++++++++++++++++++++++++ data/core.yaml | 14 +++++++------- dist/locales/en.json | 14 +++++++------- modules/ui/field_help.js | 11 ++++++++++- svg/iD-sprite.json | 3 +++ svg/iD-sprite.src.idraw | Bin 363536 -> 365240 bytes svg/iD-sprite.src.svg | 9 +++++++++ 7 files changed, 72 insertions(+), 15 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index fb49f255c..6be83c1a5 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1920,6 +1920,42 @@ input[type=number] { color: #78f; } +.field-help-body h2 { + font-size: 16px; + margin-bottom: 10px; +} +.field-help-body h3 { + font-size: 12px; + margin-bottom: 5px; +} +.field-help-body p { + margin-bottom: 5px; +} +.field-help-body ul li { + list-style: inside; + margin-bottom: 5px; +} +.field-help-content svg.turn { + width: 40px; + height: 20px; +} +.field-help-content svg.shadow { + width: 60px; + height: 20px; +} +.field-help-content svg.from { + color: #777; +} +.field-help-content svg.allow { + color: #5b3; +} +.field-help-content svg.restrict { + color: #d53; +} +.field-help-content svg.only { + color: #68f; +} + /* Changeset editor while comment text is empty */ .form-field-comment:not(.present) #preset-input-comment { diff --git a/data/core.yaml b/data/core.yaml index dc0d97aa9..cb9b071d3 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -749,18 +749,18 @@ en: title: Inspecting about: "To inspect turn restrictions, hover over a starting segment." shadow: "All paths starting from that segment will be drawn with a line shadow." - from: "{from} Starting segment" - allow: "{allowed} Allowed" - restrict: "{restricted} Restricted" - only: "{only} Only" + from: "{fromShadow} **Starting segment**" + allow: "{allowShadow} **Allowed**" + restrict: "{restrictShadow} **Restricted**" + only: "{onlyShadow} **Only**" modifying: title: Modifying about: "To modify turn restrictions, click on a starting segment." indicators: "All of the possible TO destinations from that segment will appear as turn indicators." indicators2: "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." - allow: "{allowed} Allowed" - restrict: "{restricted} Restricted" - only: "{only} Only" + allow: "{allowTurn} **Allowed**" + restrict: "{restrictTurn} **Restricted**" + only: "{onlyTurn} **Only**" tips: title: Tips tip1: "* Prefer simple restrictions over complex ones." diff --git a/dist/locales/en.json b/dist/locales/en.json index b367ceeca..1b3fc1716 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -890,19 +890,19 @@ "title": "Inspecting", "about": "To inspect turn restrictions, hover over a starting segment.", "shadow": "All paths starting from that segment will be drawn with a line shadow.", - "from": "{from} Starting segment", - "allow": "{allowed} Allowed", - "restrict": "{restricted} Restricted", - "only": "{only} Only" + "from": "{fromShadow} **Starting segment**", + "allow": "{allowShadow} **Allowed**", + "restrict": "{restrictShadow} **Restricted**", + "only": "{onlyShadow} **Only**" }, "modifying": { "title": "Modifying", "about": "To modify turn restrictions, click on a starting segment.", "indicators": "All of the possible TO destinations from that segment will appear as turn indicators.", "indicators2": "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", - "allow": "{allowed} Allowed", - "restrict": "{restricted} Restricted", - "only": "{only} Only" + "allow": "{allowTurn} **Allowed**", + "restrict": "{restrictTurn} **Restricted**", + "only": "{onlyTurn} **Only**" }, "tips": { "title": "Tips", diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index 0530f7571..a304a576e 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -6,6 +6,7 @@ import { import marked from 'marked'; import { t, textDirection } from '../util/locale'; import { svgIcon } from '../svg'; +import { icon } from 'intro/helper'; // This currently only works with the 'restrictions' field @@ -46,7 +47,15 @@ var fieldHelpHeadings = { 'help.field.restrictions.tips.title': 3 }; -var replacements = {}; +var replacements = { + fromShadow: icon('#turn-shadow', 'pre-text shadow from'), + allowShadow: icon('#turn-shadow', 'pre-text shadow allow'), + restrictShadow: icon('#turn-shadow', 'pre-text shadow restrict'), + onlyShadow: icon('#turn-shadow', 'pre-text shadow only'), + allowTurn: icon('#turn-yes', 'pre-text turn'), + restrictTurn: icon('#turn-no', 'pre-text turn'), + onlyTurn: icon('#turn-only', 'pre-text turn') +}; export function uiFieldHelp(fieldName) { diff --git a/svg/iD-sprite.json b/svg/iD-sprite.json index 601522a96..58bc82e0a 100644 --- a/svg/iD-sprite.json +++ b/svg/iD-sprite.json @@ -375,6 +375,9 @@ "turn-yes-u": { "viewBox": "200 344 32 32" }, "turn-no-u": { "viewBox": "232 344 32 32" }, "turn-only-u": { "viewBox": "264 344 32 32" }, + "turn-shadow": { "viewBox": "296 344 37 11" }, + + "turn-shadow-shape": { "fill": "currentColor" }, "preset-icon-frame": { "viewBox": "340 320 45 45" }, diff --git a/svg/iD-sprite.src.idraw b/svg/iD-sprite.src.idraw index fbd4f988d43494347e35980361d87a862e216b4e..bb831b58e9b22640cf20bbf6cd26716396799044 100644 GIT binary patch delta 237064 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

bAx@4by^|J10{rc`Zw4{sx7 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 z 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ℜfarqfp#h|V@ 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 AwEzGB delta 235283 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അMg(5HNfj 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 Q00IDd0001hiv<7x04S-fF#rGn diff --git a/svg/iD-sprite.src.svg b/svg/iD-sprite.src.svg index c71269ebe..dc4bfe7af 100644 --- a/svg/iD-sprite.src.svg +++ b/svg/iD-sprite.src.svg @@ -280,6 +280,15 @@ + + + + + + + + + From de1fdaa21fe6198f15000c0b0e6cb4de1e1be83f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 26 Feb 2018 13:58:50 -0500 Subject: [PATCH 085/157] Add close button, remove _showing state variable --- css/80_app.css | 92 ++++++++++++++++++++++++---------------- modules/ui/field.js | 3 -- modules/ui/field_help.js | 41 +++++++++--------- 3 files changed, 75 insertions(+), 61 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 6be83c1a5..1c0ee2dea 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -681,12 +681,14 @@ button.save.has-count .count::before { height: 100%; } +.field-help-title button.close, .entity-editor-pane .header button.preset-close, .preset-list-pane .header button.preset-choose { position: absolute; right: 0; top: 0; } +[dir='rtl'] .field-help-title button.close, [dir='rtl'] .entity-editor-pane .header button.preset-close, [dir='rtl'] .preset-list-pane .header button.preset-choose { left: 0; @@ -1920,42 +1922,6 @@ input[type=number] { color: #78f; } -.field-help-body h2 { - font-size: 16px; - margin-bottom: 10px; -} -.field-help-body h3 { - font-size: 12px; - margin-bottom: 5px; -} -.field-help-body p { - margin-bottom: 5px; -} -.field-help-body ul li { - list-style: inside; - margin-bottom: 5px; -} -.field-help-content svg.turn { - width: 40px; - height: 20px; -} -.field-help-content svg.shadow { - width: 60px; - height: 20px; -} -.field-help-content svg.from { - color: #777; -} -.field-help-content svg.allow { - color: #5b3; -} -.field-help-content svg.restrict { - color: #d53; -} -.field-help-content svg.only { - color: #68f; -} - /* Changeset editor while comment text is empty */ .form-field-comment:not(.present) #preset-input-comment { @@ -2045,10 +2011,62 @@ div.combobox { width: 100%; height: 100%; z-index: 2; - padding: 10px; + padding: 0px; background: rgba(255,255,255,0.95); } +.field-help-title h2 { + padding: 10px; + margin-bottom: 0px; + font-size: 16px; +} + +.field-help-title button { + width: 32px; + height: 40px; + border-radius: 0; +} + +.field-help-content { + padding: 10px; +} + +.field-help-content h3 { + font-size: 12px; + margin-bottom: 5px; +} + +.field-help-content p { + margin-bottom: 5px; +} + +.field-help-content ul li { + list-style: inside; + margin-bottom: 5px; +} + +.field-help-content svg.turn { + width: 40px; + height: 20px; +} +.field-help-content svg.shadow { + width: 60px; + height: 20px; +} +.field-help-content svg.from { + color: #777; +} +.field-help-content svg.allow { + color: #5b3; +} +.field-help-content svg.restrict { + color: #d53; +} +.field-help-content svg.only { + color: #68f; +} + + /* Raw Tag Editor */ .tag-list { diff --git a/modules/ui/field.js b/modules/ui/field.js index eee682068..ef998340c 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -149,9 +149,6 @@ export function uiField(context, presetField, entity, options) { // instantiate field help if (options.wrap && field.type === 'restrictions') { help = uiFieldHelp('restrictions'); - if (_state === 'hover') { - help.showing(false); - } } // instantiate tag reference diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index a304a576e..2f88a3629 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -61,7 +61,6 @@ var replacements = { export function uiFieldHelp(fieldName) { var fieldHelp = {}; var _body = d3_select(null); - var _showing; // For each section, squash all the texts into a single markdown document @@ -87,8 +86,6 @@ export function uiFieldHelp(fieldName) { .transition() .duration(200) .style('height', '100%'); - - _showing = true; } @@ -100,8 +97,6 @@ export function uiFieldHelp(fieldName) { .on('end', function () { _body.classed('hide', true); }); - - _showing = false; } @@ -166,10 +161,10 @@ export function uiFieldHelp(fieldName) { .on('click', function () { d3_event.stopPropagation(); d3_event.preventDefault(); - if (_showing) { - hide(); - } else { + if (_body.classed('hide')) { show(); + } else { + hide(); } }); }; @@ -185,13 +180,28 @@ export function uiFieldHelp(fieldName) { var enter = _body.enter() .append('div') - .attr('class', 'field-help-body cf hide') + .attr('class', 'field-help-body cf hide') // initially hidden .style('height', '0px'); - enter + var titleEnter = enter + .append('div') + .attr('class', 'field-help-title cf'); + + titleEnter .append('h2') + .attr('class', 'fl') .text(t('help.field.' + fieldName + '.title')); + titleEnter + .append('button') + .attr('class', 'fr close') + .on('click', function() { + d3_event.stopPropagation(); + d3_event.preventDefault(); + hide(); + }) + .call(svgIcon('#icon-close')); + enter .append('div') .attr('class', 'field-help-content'); @@ -204,17 +214,6 @@ export function uiFieldHelp(fieldName) { .merge(enter); clickHelp(docs[0], 0); - - if (_showing === false) { - hide(); - } - }; - - - fieldHelp.showing = function(_) { - if (!arguments.length) return _showing; - _showing = _; - return fieldHelp; }; From 6c6b1378b2d451cb63e8a4f7583e8cf376a9be75 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 26 Feb 2018 16:31:00 -0500 Subject: [PATCH 086/157] Add some restriction help images, adjust styles --- css/80_app.css | 27 +++++++++-- data/core.yaml | 10 ++-- dist/img/tr_inspect.gif | Bin 0 -> 78535 bytes dist/img/tr_modify.gif | Bin 0 -> 64096 bytes dist/locales/en.json | 10 ++-- modules/ui/field.js | 2 +- modules/ui/field_help.js | 99 +++++++++++++++++++-------------------- 7 files changed, 79 insertions(+), 69 deletions(-) create mode 100644 dist/img/tr_inspect.gif create mode 100644 dist/img/tr_modify.gif diff --git a/css/80_app.css b/css/80_app.css index 1c0ee2dea..7cb24d993 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -2006,13 +2006,16 @@ div.combobox { .field-help-body { display: block; position: absolute; + border: 1px solid #ccc; + border-top: 0; + border-radius: 0 0 4px 4px; + margin-left: 5px; + margin-right: 5px; overflow: hidden; top: 0; - width: 100%; - height: 100%; z-index: 2; - padding: 0px; background: rgba(255,255,255,0.95); + box-shadow: 0 0 10px 0 rgba(0,0,0,.1); } .field-help-title h2 { @@ -2029,6 +2032,8 @@ div.combobox { .field-help-content { padding: 10px; + overflow-y: auto; + overflow-x: hidden; } .field-help-content h3 { @@ -2050,6 +2055,7 @@ div.combobox { height: 20px; } .field-help-content svg.shadow { + opacity: 0.7; width: 60px; height: 20px; } @@ -2066,6 +2072,19 @@ div.combobox { color: #68f; } +.field-help-nav { + position: relative; +} +.field-help-nav a { + float: left; + width: 50%; + text-align: center; +} +.field-help-nav-item { + display: inline-block; + list-style: none; +} + /* Raw Tag Editor */ @@ -2757,7 +2776,7 @@ div.full-screen > button:hover { } .help-wrap .toc li a:hover, -.help-wrap .nav a:hover { +.help-wrap .nav a:hover { background: #ececec; } diff --git a/data/core.yaml b/data/core.yaml index cb9b071d3..ed2dafbc1 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -747,17 +747,15 @@ en: title: Editing Turn Restrictions inspecting: title: Inspecting - about: "To inspect turn restrictions, hover over a starting segment." - shadow: "All paths starting from that segment will be drawn with a line shadow." - from: "{fromShadow} **Starting segment**" + about: "Hover over any starting segment. All possible **TO** destinations will be drawn with a shadow." + from: "{fromShadow} **FROM**" allow: "{allowShadow} **Allowed**" restrict: "{restrictShadow} **Restricted**" only: "{onlyShadow} **Only**" modifying: title: Modifying - about: "To modify turn restrictions, click on a starting segment." - indicators: "All of the possible TO destinations from that segment will appear as turn indicators." - indicators2: "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." + about: "Click on any starting segment to select it. All possible **TO** destinations will appear as turn indicators." + indicators: "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." allow: "{allowTurn} **Allowed**" restrict: "{restrictTurn} **Restricted**" only: "{onlyTurn} **Only**" diff --git a/dist/img/tr_inspect.gif b/dist/img/tr_inspect.gif new file mode 100644 index 0000000000000000000000000000000000000000..57c889c120b91bd1702494e980b765b7f2e55bea GIT binary patch literal 78535 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�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 literal 0 HcmV?d00001 diff --git a/dist/img/tr_modify.gif b/dist/img/tr_modify.gif new file mode 100644 index 0000000000000000000000000000000000000000..5931416f7b0b168e45f2e0bdc07811f1c810a7d4 GIT binary patch literal 64096 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 literal 0 HcmV?d00001 diff --git a/dist/locales/en.json b/dist/locales/en.json index 1b3fc1716..2a24b2caa 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -888,18 +888,16 @@ "title": "Editing Turn Restrictions", "inspecting": { "title": "Inspecting", - "about": "To inspect turn restrictions, hover over a starting segment.", - "shadow": "All paths starting from that segment will be drawn with a line shadow.", - "from": "{fromShadow} **Starting segment**", + "about": "Hover over any starting segment. All possible **TO** destinations will be drawn with a shadow.", + "from": "{fromShadow} **FROM**", "allow": "{allowShadow} **Allowed**", "restrict": "{restrictShadow} **Restricted**", "only": "{onlyShadow} **Only**" }, "modifying": { "title": "Modifying", - "about": "To modify turn restrictions, click on a starting segment.", - "indicators": "All of the possible TO destinations from that segment will appear as turn indicators.", - "indicators2": "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", + "about": "Click on any starting segment to select it. All possible **TO** destinations will appear as turn indicators.", + "indicators": "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", "allow": "{allowTurn} **Allowed**", "restrict": "{restrictTurn} **Restricted**", "only": "{onlyTurn} **Only**" diff --git a/modules/ui/field.js b/modules/ui/field.js index ef998340c..4936dd51a 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -148,7 +148,7 @@ export function uiField(context, presetField, entity, options) { // instantiate field help if (options.wrap && field.type === 'restrictions') { - help = uiFieldHelp('restrictions'); + help = uiFieldHelp(context, 'restrictions'); } // instantiate tag reference diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index 2f88a3629..333756d54 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -4,7 +4,7 @@ import { } from 'd3-selection'; import marked from 'marked'; -import { t, textDirection } from '../util/locale'; +import { t } from '../util/locale'; import { svgIcon } from '../svg'; import { icon } from 'intro/helper'; @@ -15,7 +15,6 @@ var fieldHelpKeys = { ['inspecting',[ 'title', 'about', - 'shadow', 'from', 'allow', 'restrict', @@ -25,7 +24,6 @@ var fieldHelpKeys = { 'title', 'about', 'indicators', - 'indicators2', 'allow', 'restrict', 'only' @@ -58,11 +56,11 @@ var replacements = { }; -export function uiFieldHelp(fieldName) { +export function uiFieldHelp(context, fieldName) { var fieldHelp = {}; + var _wrap = d3_select(null); var _body = d3_select(null); - // For each section, squash all the texts into a single markdown document var docs = fieldHelpKeys[fieldName].map(function(key) { var helpkey = 'help.field.' + fieldName + '.' + key[0]; @@ -74,6 +72,7 @@ export function uiFieldHelp(fieldName) { }, ''); return { + key: helpkey, title: t(helpkey + '.title'), html: marked(text.trim()) }; @@ -81,11 +80,14 @@ export function uiFieldHelp(fieldName) { function show() { + _wrap // allow help to spill outside the wrap + .style('overflow', 'visible'); + _body .classed('hide', false) .transition() .duration(200) - .style('height', '100%'); + .style('height', '600px'); } @@ -95,54 +97,32 @@ export function uiFieldHelp(fieldName) { .duration(200) .style('height', '0px') .on('end', function () { + _wrap.style('overflow', null); _body.classed('hide', true); }); } function clickHelp(d, i) { - var rtl = (textDirection === 'rtl'); + var content = _body.selectAll('.field-help-content') + .html(d.html); - _body.selectAll('.field-help-content').html(d.html); - var nav = _body.selectAll('.field-help-nav').html(''); - - if (rtl) { - nav.call(drawNext).call(drawPrevious); - } else { - nav.call(drawPrevious).call(drawNext); + // add an image for some help sections + var img; + switch (d.key) { + case 'help.field.restrictions.inspecting': + img = 'tr_inspect.gif'; + break; + case 'help.field.restrictions.modifying': + img = 'tr_modify.gif'; + break; } - function drawNext(selection) { - if (i < docs.length - 1) { - var nextLink = selection - .append('a') - .attr('class', 'next') - .on('click', function() { - clickHelp(docs[i + 1], i + 1); - }); - - nextLink - .append('span') - .text(docs[i + 1].title) - .call(svgIcon((rtl ? '#icon-backward' : '#icon-forward'), 'inline')); - } - } - - - function drawPrevious(selection) { - if (i > 0) { - var prevLink = selection - .append('a') - .attr('class', 'previous') - .on('click', function() { - clickHelp(docs[i - 1], i - 1); - }); - - prevLink - .call(svgIcon((rtl ? '#icon-forward' : '#icon-backward'), 'inline')) - .append('span') - .text(docs[i - 1].title); - } + if (img) { + content + .append('img') + .attr('class', 'field-help-image') + .attr('src', context.imagePath(img)); } } @@ -172,10 +152,10 @@ export function uiFieldHelp(fieldName) { fieldHelp.body = function(selection) { // this control expects the field to have a preset-input-wrap div - var wrap = selection.selectAll('.preset-input-wrap'); - if (wrap.empty()) return; + _wrap = selection.selectAll('.preset-input-wrap'); + if (_wrap.empty()) return; - _body = wrap.selectAll('.field-help-body') + _body = _wrap.selectAll('.field-help-body') .data([0]); var enter = _body.enter() @@ -202,13 +182,28 @@ export function uiFieldHelp(fieldName) { }) .call(svgIcon('#icon-close')); - enter - .append('div') - .attr('class', 'field-help-content'); + var navEnter = enter + .append('ul') + .attr('class', 'field-help-nav'); + + var titles = docs.map(function(d) { return d.title; }); + navEnter.selectAll('.field-help-nav-item') + .data(titles) + .enter() + .append('li') + .attr('class', 'field-help-nav-item') + .append('a') + .attr('class', 'next') + .text(function(d) { return d; }) + .on('click', function(d, i) { + d3_event.stopPropagation(); + d3_event.preventDefault(); + clickHelp(docs[i], i); + }); enter .append('div') - .attr('class', 'field-help-nav'); + .attr('class', 'field-help-content'); _body = _body .merge(enter); From a700d42e7df374bb6012548072d46d14b2a00ffd Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 26 Feb 2018 21:42:45 -0500 Subject: [PATCH 087/157] Much improved field help - absolutely positioned attach to inspector, - float slightly above field - looks much better --- css/80_app.css | 6 +++--- modules/ui/field_help.js | 35 ++++++++++++++++++++++++-------- modules/ui/inspector.js | 43 ++++++++++++++++++++++------------------ 3 files changed, 54 insertions(+), 30 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 7cb24d993..4cabf6b14 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -2011,11 +2011,11 @@ div.combobox { border-radius: 0 0 4px 4px; margin-left: 5px; margin-right: 5px; - overflow: hidden; top: 0; - z-index: 2; + z-index: 20; + max-height: 550px; background: rgba(255,255,255,0.95); - box-shadow: 0 0 10px 0 rgba(0,0,0,.1); + box-shadow: 0 0 10px 0 rgba(0,0,0,.3); } .field-help-title h2 { diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index 333756d54..df334a5fe 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -58,6 +58,7 @@ var replacements = { export function uiFieldHelp(context, fieldName) { var fieldHelp = {}; + var _inspector = d3_select(null); var _wrap = d3_select(null); var _body = d3_select(null); @@ -80,24 +81,24 @@ export function uiFieldHelp(context, fieldName) { function show() { - _wrap // allow help to spill outside the wrap - .style('overflow', 'visible'); + updatePosition(); _body .classed('hide', false) + .style('opacity', '0') .transition() .duration(200) - .style('height', '600px'); + .style('opacity', '1'); } function hide() { _body + .classed('hide', true) .transition() .duration(200) - .style('height', '0px') + .style('opacity', '0') .on('end', function () { - _wrap.style('overflow', null); _body.classed('hide', true); }); } @@ -128,6 +129,8 @@ export function uiFieldHelp(context, fieldName) { fieldHelp.button = function(selection) { + if (_body.empty()) return; + var button = selection.selectAll('.field-help-button') .data([0]); @@ -150,18 +153,34 @@ export function uiFieldHelp(context, fieldName) { }; + function updatePosition() { + var wrap = _wrap.node(); + var inspector = _inspector.node(); + var wRect = wrap.getBoundingClientRect(); + var iRect = inspector.getBoundingClientRect(); + + _body + .style('left', wRect.left + 'px') + .style('width', wRect.width - 10 + 'px') + .style('top', wRect.top + inspector.scrollTop - iRect.top + 5 + 'px'); + } + + fieldHelp.body = function(selection) { // this control expects the field to have a preset-input-wrap div _wrap = selection.selectAll('.preset-input-wrap'); if (_wrap.empty()) return; - _body = _wrap.selectAll('.field-help-body') + _inspector = d3_select('#sidebar .entity-editor-pane .inspector-body'); + if (_inspector.empty()) return; + + _body = _inspector.selectAll('.field-help-body') .data([0]); var enter = _body.enter() .append('div') - .attr('class', 'field-help-body cf hide') // initially hidden - .style('height', '0px'); + .attr('class', 'field-help-body hide'); // initially hidden + // .style('height', '0px'); var titleEnter = enter .append('div') diff --git a/modules/ui/inspector.js b/modules/ui/inspector.js index b2a398db2..89d1f28ed 100644 --- a/modules/ui/inspector.js +++ b/modules/ui/inspector.js @@ -1,4 +1,5 @@ import { interpolate as d3_interpolate } from 'd3-interpolate'; +import { selectAll as d3_selectAll } from 'd3-selection'; import { uiEntityEditor } from './entity_editor'; import { uiPresetList } from './preset_list'; @@ -6,22 +7,22 @@ import { uiViewOnOSM } from './view_on_osm'; export function uiInspector(context) { - var presetList = uiPresetList(context), - entityEditor = uiEntityEditor(context), - state = 'select', - entityID, - newFeature = false; + var presetList = uiPresetList(context); + var entityEditor = uiEntityEditor(context); + var _state = 'select'; + var _entityID; + var _newFeature = false; function inspector(selection) { presetList - .entityID(entityID) - .autofocus(newFeature) + .entityID(_entityID) + .autofocus(_newFeature) .on('choose', setPreset); entityEditor - .state(state) - .entityID(entityID) + .state(_state) + .entityID(_entityID) .on('choose', showList); var wrap = selection.selectAll('.panewrap') @@ -44,8 +45,8 @@ export function uiInspector(context) { var editorPane = wrap.selectAll('.entity-editor-pane'); var graph = context.graph(), - entity = context.entity(entityID), - showEditor = state === 'hover' || + entity = context.entity(_entityID), + showEditor = _state === 'hover' || entity.isUsed(graph) || entity.isHighwayIntersection(graph); @@ -66,7 +67,7 @@ export function uiInspector(context) { .merge(footer); footer - .call(uiViewOnOSM(context).entityID(entityID)); + .call(uiViewOnOSM(context).entityID(_entityID)); function showList(preset) { @@ -89,23 +90,27 @@ export function uiInspector(context) { inspector.state = function(_) { - if (!arguments.length) return state; - state = _; - entityEditor.state(state); + if (!arguments.length) return _state; + _state = _; + entityEditor.state(_state); + + // remove any old field help overlay that might have gotten attached to the inspector + d3_selectAll('.field-help-body').remove(); + return inspector; }; inspector.entityID = function(_) { - if (!arguments.length) return entityID; - entityID = _; + if (!arguments.length) return _entityID; + _entityID = _; return inspector; }; inspector.newFeature = function(_) { - if (!arguments.length) return newFeature; - newFeature = _; + if (!arguments.length) return _newFeature; + _newFeature = _; return inspector; }; From d87a43d33a1bd8c94ae38e6585fb8cf5edc5068f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 27 Feb 2018 09:11:39 -0500 Subject: [PATCH 088/157] Increase box shadow slightly so help popup stands out more --- css/80_app.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/css/80_app.css b/css/80_app.css index 4cabf6b14..310adf82d 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -2015,7 +2015,7 @@ div.combobox { z-index: 20; max-height: 550px; background: rgba(255,255,255,0.95); - box-shadow: 0 0 10px 0 rgba(0,0,0,.3); + box-shadow: 0 0 30px 5px rgba(0,0,0,.4); } .field-help-title h2 { From e9750140ecc2e4333ec7c0ae036dd4e61f2b395a Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 27 Feb 2018 15:34:22 -0500 Subject: [PATCH 089/157] Finish help, improve text and styling --- css/80_app.css | 64 ++++++++++------- data/core.yaml | 40 ++++++----- dist/locales/en.json | 41 ++++++----- modules/ui/field_help.js | 151 ++++++++++++++++++++------------------- 4 files changed, 168 insertions(+), 128 deletions(-) diff --git a/css/80_app.css b/css/80_app.css index 310adf82d..593da509e 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -2006,14 +2006,15 @@ div.combobox { .field-help-body { display: block; position: absolute; + top: 0; + left: 20px; + right: 20px; + margin: 5px; + padding: 8px; border: 1px solid #ccc; border-top: 0; border-radius: 0 0 4px 4px; - margin-left: 5px; - margin-right: 5px; - top: 0; z-index: 20; - max-height: 550px; background: rgba(255,255,255,0.95); box-shadow: 0 0 30px 5px rgba(0,0,0,.4); } @@ -2021,13 +2022,31 @@ div.combobox { .field-help-title h2 { padding: 10px; margin-bottom: 0px; - font-size: 16px; + font-size: 17px; +} +.field-help-title button { + width: 45px; + height: 55px; + border-radius: 0; } -.field-help-title button { - width: 32px; - height: 40px; - border-radius: 0; +.field-help-nav { + font-size: 13px; + font-weight: bold; + margin-bottom: 10px; +} +.field-help-nav-item { + display: inline-block; + padding: 5px 10px; + cursor: pointer; + color: #666; +} +.field-help-nav-item.active { + color: #7092ff; +} +.field-help-nav-item:hover { + color: #597be7; + background-color: #efefef; } .field-help-content { @@ -2035,21 +2054,23 @@ div.combobox { overflow-y: auto; overflow-x: hidden; } - .field-help-content h3 { font-size: 12px; margin-bottom: 5px; } - .field-help-content p { - margin-bottom: 5px; + margin-bottom: 15px; } - .field-help-content ul li { list-style: inside; margin-bottom: 5px; } +.field-help-content .field-help-image { + width: 100%; + margin-bottom: 15px; +} + .field-help-content svg.turn { width: 40px; height: 20px; @@ -2072,17 +2093,12 @@ div.combobox { color: #68f; } -.field-help-nav { - position: relative; -} -.field-help-nav a { - float: left; - width: 50%; - text-align: center; -} -.field-help-nav-item { - display: inline-block; - list-style: none; +.field-help-content p.from_shadow, +.field-help-content p.allow_shadow, +.field-help-content p.restrict_shadow, +.field-help-content p.allow_turn, +.field-help-content p.restrict_turn { + margin-bottom: 5px; } diff --git a/data/core.yaml b/data/core.yaml index ed2dafbc1..3cd073fd5 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -744,28 +744,36 @@ en: upload: "You can also [upload your GPS data to OpenStreetMap](https://www.openstreetmap.org/trace/create) for other users to use." field: restrictions: - title: Editing Turn Restrictions + title: Turn Restrictions Help + about: + title: About + about: "This field allows you to inspect and modify turn restrictions. It displays a model of the selected intersection including other nearby connected roads." + from_via_to: "A turn restriction always contains: one **FROM way**, one **TO way**, and one **VIA node** or one or more **VIA ways**." + maxdist: "The \"{distField}\" slider controls how far to search for additional connected roads." + maxvia: "The \"{viaField}\" slider adjusts how many via ways may be included in the search. (Tip: simple is better)" inspecting: title: Inspecting - about: "Hover over any starting segment. All possible **TO** destinations will be drawn with a shadow." - from: "{fromShadow} **FROM**" - allow: "{allowShadow} **Allowed**" - restrict: "{restrictShadow} **Restricted**" - only: "{onlyShadow} **Only**" + about: "Hover over any **FROM** segment. Possible **TO** destinations will be drawn with a shadow." + from_shadow: "{fromShadow} **FROM segment**" + allow_shadow: "{allowShadow} **TO Allowed**" + restrict_shadow: "{restrictShadow} **TO Restricted**" + only_shadow: "{onlyShadow} **TO Only**" + restricted: "\"Restricted\" means that there is a turn restriction, for example \"No Left Turn\"." + only: "\"Only\" means that a vehicle may only make that choice, for example \"Only Straight On\"." modifying: title: Modifying - about: "Click on any starting segment to select it. All possible **TO** destinations will appear as turn indicators." - indicators: "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." - allow: "{allowTurn} **Allowed**" - restrict: "{restrictTurn} **Restricted**" - only: "{onlyTurn} **Only**" + about: "Click on any starting **FROM** segment to select it. The selected segment will pulse, and all possible **TO** destinations will appear as turn symbols." + indicators: "Click on a turn symbol to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." + allow_turn: "{allowTurn} **TO Allowed**" + restrict_turn: "{restrictTurn} **TO Restricted**" + only_turn: "{onlyTurn} **TO Only**" tips: title: Tips - tip1: "* Prefer simple restrictions over complex ones." - tip2: For example, avoid using a via-way restriction if a simpler turn restriction will do. - tip3: "* Some restrictions are \"(indirect)\". These restrictions exist because of another nearby restriction." - tip4: "For example, a route with an \"Only Straight On\" turn restriction will indirectly create \"No Turn\" restrictions." - tip5: "* You may not edit an indirect restriction. Instead, edit the nearby direct restriction." + simple: "**Prefer simple restrictions over complex ones.**" + simple_example: "For example, avoid creating a via-way restriction if a simpler via-node turn restriction will do." + indirect: "**Some restrictions display the text \"(indirect)\" and are drawn lighter.**" + indirect_example: "These restrictions exist because of another nearby restriction. For example, a route with an \"Only Straight On\" restriction will indirectly create \"No Turn\" restrictions for all other paths through the intersection." + indirect_noedit: "You may not edit indirect restrictions. Instead, edit the nearby direct restriction." intro: done: done ok: OK diff --git a/dist/locales/en.json b/dist/locales/en.json index 2a24b2caa..434e0704f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -885,30 +885,39 @@ }, "field": { "restrictions": { - "title": "Editing Turn Restrictions", + "title": "Turn Restrictions Help", + "about": { + "title": "About", + "about": "This field allows you to inspect and modify turn restrictions. It displays a model of the selected intersection including other nearby connected roads.", + "from_via_to": "A turn restriction always contains: one **FROM way**, one **TO way**, and one **VIA node** or one or more **VIA ways**.", + "maxdist": "The \"{distField}\" slider controls how far to search for additional connected roads.", + "maxvia": "The \"{viaField}\" slider adjusts how many via ways may be included in the search. (Tip: simple is better)" + }, "inspecting": { "title": "Inspecting", - "about": "Hover over any starting segment. All possible **TO** destinations will be drawn with a shadow.", - "from": "{fromShadow} **FROM**", - "allow": "{allowShadow} **Allowed**", - "restrict": "{restrictShadow} **Restricted**", - "only": "{onlyShadow} **Only**" + "about": "Hover over any **FROM** segment. Possible **TO** destinations will be drawn with a shadow.", + "from_shadow": "{fromShadow} **FROM segment**", + "allow_shadow": "{allowShadow} **TO Allowed**", + "restrict_shadow": "{restrictShadow} **TO Restricted**", + "only_shadow": "{onlyShadow} **TO Only**", + "restricted": "\"Restricted\" means that there is a turn restriction, for example \"No Left Turn\".", + "only": "\"Only\" means that a vehicle may only make that choice, for example \"Only Straight On\"." }, "modifying": { "title": "Modifying", - "about": "Click on any starting segment to select it. All possible **TO** destinations will appear as turn indicators.", - "indicators": "Click on a turn indicator to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", - "allow": "{allowTurn} **Allowed**", - "restrict": "{restrictTurn} **Restricted**", - "only": "{onlyTurn} **Only**" + "about": "Click on any starting **FROM** segment to select it. The selected segment will pulse, and all possible **TO** destinations will appear as turn symbols.", + "indicators": "Click on a turn symbol to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", + "allow_turn": "{allowTurn} **TO Allowed**", + "restrict_turn": "{restrictTurn} **TO Restricted**", + "only_turn": "{onlyTurn} **TO Only**" }, "tips": { "title": "Tips", - "tip1": "* Prefer simple restrictions over complex ones.", - "tip2": "For example, avoid using a via-way restriction if a simpler turn restriction will do.", - "tip3": "* Some restrictions are \"(indirect)\". These restrictions exist because of another nearby restriction.", - "tip4": "For example, a route with an \"Only Straight On\" turn restriction will indirectly create \"No Turn\" restrictions.", - "tip5": "* You may not edit an indirect restriction. Instead, edit the nearby direct restriction." + "simple": "**Prefer simple restrictions over complex ones.**", + "simple_example": "For example, avoid creating a via-way restriction if a simpler via-node turn restriction will do.", + "indirect": "**Some restrictions display the text \"(indirect)\" and are drawn lighter.**", + "indirect_example": "These restrictions exist because of another nearby restriction. For example, a route with an \"Only Straight On\" restriction will indirectly create \"No Turn\" restrictions for all other paths through the intersection.", + "indirect_noedit": "You may not edit indirect restrictions. Instead, edit the nearby direct restriction." } } } diff --git a/modules/ui/field_help.js b/modules/ui/field_help.js index df334a5fe..803e40c67 100644 --- a/modules/ui/field_help.js +++ b/modules/ui/field_help.js @@ -10,51 +10,7 @@ import { icon } from 'intro/helper'; // This currently only works with the 'restrictions' field -var fieldHelpKeys = { - restrictions: [ - ['inspecting',[ - 'title', - 'about', - 'from', - 'allow', - 'restrict', - 'only' - ]], - ['modifying',[ - 'title', - 'about', - 'indicators', - 'allow', - 'restrict', - 'only' - ]], - ['tips',[ - 'title', - 'tip1', - 'tip2', - 'tip3', - 'tip4', - 'tip5' - ]] - ] -}; - -var fieldHelpHeadings = { - 'help.field.restrictions.inspecting.title': 3, - 'help.field.restrictions.modifying.title': 3, - 'help.field.restrictions.tips.title': 3 -}; - -var replacements = { - fromShadow: icon('#turn-shadow', 'pre-text shadow from'), - allowShadow: icon('#turn-shadow', 'pre-text shadow allow'), - restrictShadow: icon('#turn-shadow', 'pre-text shadow restrict'), - onlyShadow: icon('#turn-shadow', 'pre-text shadow only'), - allowTurn: icon('#turn-yes', 'pre-text turn'), - restrictTurn: icon('#turn-no', 'pre-text turn'), - onlyTurn: icon('#turn-only', 'pre-text turn') -}; - +// It borrows some code from uiHelp export function uiFieldHelp(context, fieldName) { var fieldHelp = {}; @@ -62,6 +18,55 @@ export function uiFieldHelp(context, fieldName) { var _wrap = d3_select(null); var _body = d3_select(null); + var fieldHelpKeys = { + restrictions: [ + ['about',[ + 'about', + 'from_via_to', + 'maxdist', + 'maxvia' + ]], + ['inspecting',[ + 'about', + 'from_shadow', + 'allow_shadow', + 'restrict_shadow', + 'only_shadow', + 'restricted', + 'only' + ]], + ['modifying',[ + 'about', + 'indicators', + 'allow_turn', + 'restrict_turn', + 'only_turn' + ]], + ['tips',[ + 'simple', + 'simple_example', + 'indirect', + 'indirect_example', + 'indirect_noedit' + ]] + ] + }; + + var fieldHelpHeadings = {}; + + var replacements = { + distField: t('restriction.controls.distance'), + viaField: t('restriction.controls.via'), + fromShadow: icon('#turn-shadow', 'pre-text shadow from'), + allowShadow: icon('#turn-shadow', 'pre-text shadow allow'), + restrictShadow: icon('#turn-shadow', 'pre-text shadow restrict'), + onlyShadow: icon('#turn-shadow', 'pre-text shadow only'), + allowTurn: icon('#turn-yes', 'pre-text turn'), + restrictTurn: icon('#turn-no', 'pre-text turn'), + onlyTurn: icon('#turn-only', 'pre-text turn') + }; + + // For each section, squash all the texts into a single markdown document var docs = fieldHelpKeys[fieldName].map(function(key) { var helpkey = 'help.field.' + fieldName + '.' + key[0]; @@ -104,26 +109,32 @@ export function uiFieldHelp(context, fieldName) { } - function clickHelp(d, i) { + function clickHelp(index) { + var d = docs[index]; + var tkeys = fieldHelpKeys[fieldName][index][1]; + + _body.selectAll('.field-help-nav-item') + .classed('active', function(d, i) { return i === index; }); + var content = _body.selectAll('.field-help-content') .html(d.html); - // add an image for some help sections - var img; - switch (d.key) { - case 'help.field.restrictions.inspecting': - img = 'tr_inspect.gif'; - break; - case 'help.field.restrictions.modifying': - img = 'tr_modify.gif'; - break; - } + // class the paragraphs so we can find and style them + content.selectAll('p') + .attr('class', function(d, i) { return tkeys[i]; }); - if (img) { + // insert special content for certain help sections + if (d.key === 'help.field.restrictions.inspecting') { content - .append('img') - .attr('class', 'field-help-image') - .attr('src', context.imagePath(img)); + .insert('img', 'p.from_shadow') + .attr('class', 'field-help-image cf') + .attr('src', context.imagePath('tr_inspect.gif')); + + } else if (d.key === 'help.field.restrictions.modifying') { + content + .insert('img', 'p.allow_turn') + .attr('class', 'field-help-image cf') + .attr('src', context.imagePath('tr_modify.gif')); } } @@ -160,17 +171,16 @@ export function uiFieldHelp(context, fieldName) { var iRect = inspector.getBoundingClientRect(); _body - .style('left', wRect.left + 'px') - .style('width', wRect.width - 10 + 'px') - .style('top', wRect.top + inspector.scrollTop - iRect.top + 5 + 'px'); + .style('top', wRect.top + inspector.scrollTop - iRect.top + 'px'); } fieldHelp.body = function(selection) { - // this control expects the field to have a preset-input-wrap div + // This control expects the field to have a preset-input-wrap div _wrap = selection.selectAll('.preset-input-wrap'); if (_wrap.empty()) return; + // absolute position relative to the inspector, so it "floats" above the fields _inspector = d3_select('#sidebar .entity-editor-pane .inspector-body'); if (_inspector.empty()) return; @@ -180,7 +190,6 @@ export function uiFieldHelp(context, fieldName) { var enter = _body.enter() .append('div') .attr('class', 'field-help-body hide'); // initially hidden - // .style('height', '0px'); var titleEnter = enter .append('div') @@ -202,22 +211,20 @@ export function uiFieldHelp(context, fieldName) { .call(svgIcon('#icon-close')); var navEnter = enter - .append('ul') - .attr('class', 'field-help-nav'); + .append('div') + .attr('class', 'field-help-nav cf'); var titles = docs.map(function(d) { return d.title; }); navEnter.selectAll('.field-help-nav-item') .data(titles) .enter() - .append('li') + .append('div') .attr('class', 'field-help-nav-item') - .append('a') - .attr('class', 'next') .text(function(d) { return d; }) .on('click', function(d, i) { d3_event.stopPropagation(); d3_event.preventDefault(); - clickHelp(docs[i], i); + clickHelp(i); }); enter @@ -227,7 +234,7 @@ export function uiFieldHelp(context, fieldName) { _body = _body .merge(enter); - clickHelp(docs[0], 0); + clickHelp(0); }; From 48577aeb6310778f7e4895fe04b61faaf41c9417 Mon Sep 17 00:00:00 2001 From: Jon D Date: Tue, 27 Feb 2018 22:25:30 +0000 Subject: [PATCH 090/157] Add Flow Type Alias for function which returns an object (session_mutex) --- modules/util/session_mutex.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/modules/util/session_mutex.js b/modules/util/session_mutex.js index 472dcd4a3..b3b850ea6 100644 --- a/modules/util/session_mutex.js +++ b/modules/util/session_mutex.js @@ -1,10 +1,19 @@ +// @flow // A per-domain session mutex backed by a cookie and dead man's // switch. If the session crashes, the mutex will auto-release // after 5 seconds. -export function utilSessionMutex(name) { - var mutex = {}, - intervalID; +// This is a type alias (https://flow.org/en/docs/types/aliases/) which allows flow to understand the object returned by utilSessionMutex in other files. +type utilSessionMutexType = { + lock: () => boolean, + unlock: () => void, + locked: () => boolean +}; + +// This accepts a string and returns an object that complies with utilSessionMutexType +export function utilSessionMutex(name: string): utilSessionMutexType { + var mutex = {}; + var intervalID: ?IntervalID; // This indicates a Maybe type - intervalId can be null so we need to use "?IntervalID", not "IntervalID" function renew() { var expires = new Date(); @@ -12,7 +21,7 @@ export function utilSessionMutex(name) { document.cookie = name + '=1; expires=' + expires.toUTCString(); } - mutex.lock = function() { + mutex.lock = function (): boolean { if (intervalID) return true; var cookie = document.cookie.replace(new RegExp('(?:(?:^|.*;)\\s*' + name + '\\s*\\=\\s*([^;]*).*$)|^.*$'), '$1'); if (cookie) return false; @@ -21,14 +30,14 @@ export function utilSessionMutex(name) { return true; }; - mutex.unlock = function() { + mutex.unlock = function (): void { if (!intervalID) return; document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT'; clearInterval(intervalID); intervalID = null; }; - mutex.locked = function() { + mutex.locked = function (): boolean { return !!intervalID; }; From fb4098754caa3a4a71eec5983fa33e0d68eccc24 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 27 Feb 2018 21:14:09 -0500 Subject: [PATCH 091/157] Adjust wording of some of the restriction help sections --- data/core.yaml | 12 ++++++------ dist/locales/en.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index 3cd073fd5..be8cb7a76 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -748,22 +748,22 @@ en: about: title: About about: "This field allows you to inspect and modify turn restrictions. It displays a model of the selected intersection including other nearby connected roads." - from_via_to: "A turn restriction always contains: one **FROM way**, one **TO way**, and one **VIA node** or one or more **VIA ways**." + from_via_to: "A turn restriction always contains: one **FROM way**, one **TO way**, and either one **VIA node** or one or more **VIA ways**." maxdist: "The \"{distField}\" slider controls how far to search for additional connected roads." maxvia: "The \"{viaField}\" slider adjusts how many via ways may be included in the search. (Tip: simple is better)" inspecting: title: Inspecting - about: "Hover over any **FROM** segment. Possible **TO** destinations will be drawn with a shadow." + about: "Hover over any **FROM** segment to see whether it has any turn restrictions. Each possible **TO** destination will be drawn with a colored shadow showing whether a restriction exists." from_shadow: "{fromShadow} **FROM segment**" allow_shadow: "{allowShadow} **TO Allowed**" restrict_shadow: "{restrictShadow} **TO Restricted**" only_shadow: "{onlyShadow} **TO Only**" restricted: "\"Restricted\" means that there is a turn restriction, for example \"No Left Turn\"." - only: "\"Only\" means that a vehicle may only make that choice, for example \"Only Straight On\"." + only: "\"Only\" means that a vehicle taking that path may only make that choice, for example \"Only Straight On\"." modifying: title: Modifying - about: "Click on any starting **FROM** segment to select it. The selected segment will pulse, and all possible **TO** destinations will appear as turn symbols." - indicators: "Click on a turn symbol to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." + about: "To modify turn restrictions, first click on any starting **FROM** segment to select it. The selected segment will pulse, and all possible **TO** destinations will appear as turn symbols." + indicators: "Then, click on a turn symbol to toggle it between \"Allowed\", \"Restricted\", and \"Only\"." allow_turn: "{allowTurn} **TO Allowed**" restrict_turn: "{restrictTurn} **TO Restricted**" only_turn: "{onlyTurn} **TO Only**" @@ -772,7 +772,7 @@ en: simple: "**Prefer simple restrictions over complex ones.**" simple_example: "For example, avoid creating a via-way restriction if a simpler via-node turn restriction will do." indirect: "**Some restrictions display the text \"(indirect)\" and are drawn lighter.**" - indirect_example: "These restrictions exist because of another nearby restriction. For example, a route with an \"Only Straight On\" restriction will indirectly create \"No Turn\" restrictions for all other paths through the intersection." + indirect_example: "These restrictions exist because of another nearby restriction. For example, an \"Only Straight On\" restriction will indirectly create \"No Turn\" restrictions for all other paths through the intersection." indirect_noedit: "You may not edit indirect restrictions. Instead, edit the nearby direct restriction." intro: done: done diff --git a/dist/locales/en.json b/dist/locales/en.json index 434e0704f..14d209991 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -889,24 +889,24 @@ "about": { "title": "About", "about": "This field allows you to inspect and modify turn restrictions. It displays a model of the selected intersection including other nearby connected roads.", - "from_via_to": "A turn restriction always contains: one **FROM way**, one **TO way**, and one **VIA node** or one or more **VIA ways**.", + "from_via_to": "A turn restriction always contains: one **FROM way**, one **TO way**, and either one **VIA node** or one or more **VIA ways**.", "maxdist": "The \"{distField}\" slider controls how far to search for additional connected roads.", "maxvia": "The \"{viaField}\" slider adjusts how many via ways may be included in the search. (Tip: simple is better)" }, "inspecting": { "title": "Inspecting", - "about": "Hover over any **FROM** segment. Possible **TO** destinations will be drawn with a shadow.", + "about": "Hover over any **FROM** segment to see whether it has any turn restrictions. Each possible **TO** destination will be drawn with a colored shadow showing whether a restriction exists.", "from_shadow": "{fromShadow} **FROM segment**", "allow_shadow": "{allowShadow} **TO Allowed**", "restrict_shadow": "{restrictShadow} **TO Restricted**", "only_shadow": "{onlyShadow} **TO Only**", "restricted": "\"Restricted\" means that there is a turn restriction, for example \"No Left Turn\".", - "only": "\"Only\" means that a vehicle may only make that choice, for example \"Only Straight On\"." + "only": "\"Only\" means that a vehicle taking that path may only make that choice, for example \"Only Straight On\"." }, "modifying": { "title": "Modifying", - "about": "Click on any starting **FROM** segment to select it. The selected segment will pulse, and all possible **TO** destinations will appear as turn symbols.", - "indicators": "Click on a turn symbol to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", + "about": "To modify turn restrictions, first click on any starting **FROM** segment to select it. The selected segment will pulse, and all possible **TO** destinations will appear as turn symbols.", + "indicators": "Then, click on a turn symbol to toggle it between \"Allowed\", \"Restricted\", and \"Only\".", "allow_turn": "{allowTurn} **TO Allowed**", "restrict_turn": "{restrictTurn} **TO Restricted**", "only_turn": "{onlyTurn} **TO Only**" @@ -916,7 +916,7 @@ "simple": "**Prefer simple restrictions over complex ones.**", "simple_example": "For example, avoid creating a via-way restriction if a simpler via-node turn restriction will do.", "indirect": "**Some restrictions display the text \"(indirect)\" and are drawn lighter.**", - "indirect_example": "These restrictions exist because of another nearby restriction. For example, a route with an \"Only Straight On\" restriction will indirectly create \"No Turn\" restrictions for all other paths through the intersection.", + "indirect_example": "These restrictions exist because of another nearby restriction. For example, an \"Only Straight On\" restriction will indirectly create \"No Turn\" restrictions for all other paths through the intersection.", "indirect_noedit": "You may not edit indirect restrictions. Instead, edit the nearby direct restriction." } } From f9d000a8a5a6f5d3ae9a3bd882ecbfb7dc3e5133 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 27 Feb 2018 22:53:46 -0500 Subject: [PATCH 092/157] When switching to ONLY restriction remove all other restrictions But we keep them around in `_oldTurns` and will put them back if the user clicks again to unrestrict the ONLY. --- modules/ui/fields/restrictions.js | 53 ++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 27541876e..a60bd547a 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -60,6 +60,7 @@ export function uiFieldRestrictions(field, context) { var _initialized = false; var _parent = d3_select(null); // the entire field var _container = d3_select(null); // just the map + var _oldTurns; var _graph; var _vertexID; var _intersection; @@ -288,6 +289,7 @@ export function uiFieldRestrictions(field, context) { // is selected, and that way is no longer part of the intersection. if (_fromWayID && !vgraph.hasEntity(_fromWayID)) { _fromWayID = null; + _oldTurns = null; } surface @@ -332,30 +334,57 @@ export function uiFieldRestrictions(field, context) { if (datum instanceof osmWay && (datum.__from || datum.__via)) { _fromWayID = datum.id; + _oldTurns = null; redraw(); } else if (datum instanceof osmTurn) { - var actions; + var actions, extraActions, turns, i; datum.restriction = osmInferRestriction(vgraph, datum, projection); if (datum.restrictionID && !datum.direct) { return; - } else if (datum.restrictionID && !datum.only) { // cycle thru the `only_` state + } else if (datum.restrictionID && !datum.only) { // cycle NO -> ONLY var datumOnly = _cloneDeep(datum); datumOnly.only = true; datumOnly.restriction = datumOnly.restriction.replace(/^no/, 'only'); - actions = _intersection.actions.concat([ - actionUnrestrictTurn(datum, projection), + + // Adding an ONLY restriction should destroy all other direct restrictions from the FROM. + // We will remember them in _oldTurns, and restore them if the user clicks again. + turns = _intersection.turns(_fromWayID, 2); + extraActions = []; + _oldTurns = []; + for (i = 0; i < turns.length; i++) { + if (turns[i].direct) { + _oldTurns.push(turns[i]); + extraActions.push(actionUnrestrictTurn(turns[i], projection)); + } + } + + actions = _intersection.actions.concat(extraActions, [ actionRestrictTurn(datumOnly, projection), t('operations.restriction.annotation.create') ]); - } else if (datum.restrictionID) { - actions = _intersection.actions.concat([ + + } else if (datum.restrictionID) { // cycle ONLY -> Allowed + // Restore whatever restrictions we might have destroyed by cycling thru the ONLY state. + // This relies on the assumption that the intersection was already split up when we + // performed the previous action (NO -> ONLY), so the IDs in _oldTurns shouldn't have changed. + turns = _oldTurns || []; + extraActions = []; + for (i = 0; i < turns.length; i++) { + if (turns[i].key !== datum.key) { + extraActions.push(actionRestrictTurn(turns[i], projection)); + } + } + _oldTurns = null; + + actions = _intersection.actions.concat(extraActions, [ actionUnrestrictTurn(datum, projection), t('operations.restriction.annotation.delete') ]); - } else { + + } else { // cycle Allowed -> NO actions = _intersection.actions.concat([ actionRestrictTurn(datum, projection), t('operations.restriction.annotation.create') @@ -372,6 +401,7 @@ export function uiFieldRestrictions(field, context) { } else { _fromWayID = null; + _oldTurns = null; redraw(); } } @@ -590,11 +620,10 @@ export function uiFieldRestrictions(field, context) { restrictions.entity = function(_) { - // if (!_vertexID || _vertexID !== _.id) { - _intersection = null; - _fromWayID = null; - _vertexID = _.id; - // } + _intersection = null; + _fromWayID = null; + _oldTurns = null; + _vertexID = _.id; }; From e1cf49eaffd6e7d58f898c997a3c1ed5a312bcad Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 28 Feb 2018 13:42:26 -0500 Subject: [PATCH 093/157] Remove the "excludes coincident highways" check These should not be a thing, and if they are, I'm ok with them being treated as 2 separate ways. We can add code back in later if it turns out to be a widespread issue in OSM. --- test/spec/osm/intersection.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/test/spec/osm/intersection.js b/test/spec/osm/intersection.js index 9f287e328..880b281a5 100644 --- a/test/spec/osm/intersection.js +++ b/test/spec/osm/intersection.js @@ -22,17 +22,6 @@ describe('iD.osmIntersection', function() { expect(result.map(function(i) { return i.id; })).to.eql(['=']); }); -//TODO? - // it('excludes coincident highways', function() { - // var graph = iD.coreGraph([ - // iD.osmNode({id: 'u'}), - // iD.osmNode({id: '*'}), - // iD.osmWay({id: '=', nodes: ['u', '*'], tags: {highway: 'residential'}}), - // iD.osmWay({id: '-', nodes: ['u', '*'], tags: {highway: 'residential'}}) - // ]); - // expect(iD.osmIntersection(graph, '*').ways).to.eql([]); - // }); - it('includes line highways', function() { var graph = iD.coreGraph([ iD.osmNode({id: 'u'}), From 7a10474ad1df7733be5c0609e0c43d4d775e4f2c Mon Sep 17 00:00:00 2001 From: MaciejWojcik Date: Wed, 28 Feb 2018 23:30:06 +0100 Subject: [PATCH 094/157] changed farm preset name, added farm_auxiliary preset changed farm preset name, added farm_auxiliary preset --- data/presets.yaml | 4 ++++ data/presets/presets.json | 18 +++++++++++++++++- data/presets/presets/building/farm.json | 2 +- .../presets/building/farm_auxiliary.json | 16 ++++++++++++++++ data/taginfo.json | 4 ++++ dist/locales/en.json | 6 +++++- 6 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 data/presets/presets/building/farm_auxiliary.json diff --git a/data/presets.yaml b/data/presets.yaml index b367bee15..e875c38cc 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -2567,6 +2567,10 @@ en: name: Entrance/Exit building/farm: # building=farm + name: Farm House + terms: '' + building/farm_auxiliary: + # building=farm_auxiliary name: Farm Building terms: '' building/garage: diff --git a/data/presets/presets.json b/data/presets/presets.json index 57635ddfb..57fc2921c 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -4497,6 +4497,22 @@ "matchScore": 0.5, "name": "Dormitory" }, + "building/farm_auxiliary": { + "icon": "farm", + "fields": [ + "name", + "address", + "levels" + ], + "geometry": [ + "area" + ], + "tags": { + "building": "farm_auxiliary" + }, + "matchScore": 0.5, + "name": "Farm Building" + }, "building/farm": { "icon": "farm", "fields": [ @@ -4511,7 +4527,7 @@ "building": "farm" }, "matchScore": 0.5, - "name": "Farm Building" + "name": "Farm House" }, "building/garage": { "icon": "warehouse", diff --git a/data/presets/presets/building/farm.json b/data/presets/presets/building/farm.json index ac9366286..ef9f9e1bb 100644 --- a/data/presets/presets/building/farm.json +++ b/data/presets/presets/building/farm.json @@ -12,5 +12,5 @@ "building": "farm" }, "matchScore": 0.5, - "name": "Farm Building" + "name": "Farm House" } diff --git a/data/presets/presets/building/farm_auxiliary.json b/data/presets/presets/building/farm_auxiliary.json new file mode 100644 index 000000000..070af2d4f --- /dev/null +++ b/data/presets/presets/building/farm_auxiliary.json @@ -0,0 +1,16 @@ +{ + "icon": "farm", + "fields": [ + "name", + "address", + "levels" + ], + "geometry": [ + "area" + ], + "tags": { + "building": "farm_auxiliary" + }, + "matchScore": 0.5, + "name": "Farm Building" +} diff --git a/data/taginfo.json b/data/taginfo.json index d206b8f4c..1c07efae5 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -844,6 +844,10 @@ "key": "building", "value": "dormitory" }, + { + "key": "building", + "value": "farm_auxiliary" + }, { "key": "building", "value": "farm" diff --git a/dist/locales/en.json b/dist/locales/en.json index bf48be27f..354cfaf06 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -3513,10 +3513,14 @@ "name": "Dormitory", "terms": "" }, - "building/farm": { + "building/farm_auxiliary": { "name": "Farm Building", "terms": "" }, + "building/farm": { + "name": "Farm House", + "terms": "" + }, "building/garage": { "name": "Garage", "terms": "" From 241159b547f85060ec07dae4bf33f7d08771c091 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 28 Feb 2018 23:55:59 -0500 Subject: [PATCH 095/157] Cleanup docs and tests for actionRestrictTurn / actionUnrestrictTurn - actionRestrictTurn will no longer "infer" the turn type - restrictionType *must* be passed in - this is ok because the only code we use this action (restrictions.js) already has inferred the type - this simplifies what the action actually does - moved the tests from restrict_turn.js that were really just testing the restriction type inferrence over to intersection.js (and added a few more tests for iD.osmInferRestriction) --- modules/actions/restrict_turn.js | 30 +-- modules/actions/unrestrict_turn.js | 19 +- modules/ui/fields/restrictions.js | 21 +- test/spec/actions/restrict_turn.js | 332 +++++---------------------- test/spec/actions/unrestrict_turn.js | 4 +- test/spec/osm/intersection.js | 150 ++++++++++++ 6 files changed, 239 insertions(+), 317 deletions(-) diff --git a/modules/actions/restrict_turn.js b/modules/actions/restrict_turn.js index 50490012d..c21ace82c 100644 --- a/modules/actions/restrict_turn.js +++ b/modules/actions/restrict_turn.js @@ -1,33 +1,23 @@ -import { - osmInferRestriction, - osmRelation -} from '../osm'; +import { osmRelation } from '../osm'; -// Create a restriction relation for `turn`, which must have the following structure: +// `actionRestrictTurn` creates a turn restriction relation. // -// { -// from: { node: , way: }, -// via: { node: , ways: [,,...] }, -// to: { node: , way: }, -// restriction: <'no_right_turn', 'no_left_turn', etc.> -// } +// `turn` must be an `osmTurn` object +// see osm/intersection.js, pathToTurn() // // This specifies a restriction of type `restriction` when traveling from -// `from.node` in `from.way` toward `to.node` in `to.way` via `via.node` OR `via.ways`. +// `turn.from.way` toward `turn.to.way` via `turn.via.node` OR `turn.via.ways`. // (The action does not check that these entities form a valid intersection.) // -// If `restriction` is not provided, it is automatically determined by -// osmInferRestriction. -// // From, to, and via ways should be split before calling this action. // (old versions of the code would split the ways here, but we no longer do it) // -// For testing convenience, accepts an ID to assign to the new relation. -// Normally, this will be undefined and the relation will automatically -// be assigned a new ID. +// For testing convenience, accepts a restrictionID to assign to the new +// relation. Normally, this will be undefined and the relation will +// automatically be assigned a new ID. // -export function actionRestrictTurn(turn, projection, restrictionID) { +export function actionRestrictTurn(turn, restrictionType, restrictionID) { return function(graph) { var fromWay = graph.entity(turn.from.way); @@ -52,7 +42,7 @@ export function actionRestrictTurn(turn, projection, restrictionID) { id: restrictionID, tags: { type: 'restriction', - restriction: turn.restriction || osmInferRestriction(graph, turn, projection) + restriction: restrictionType }, members: members })); diff --git a/modules/actions/unrestrict_turn.js b/modules/actions/unrestrict_turn.js index 4210b3a7b..8d980f459 100644 --- a/modules/actions/unrestrict_turn.js +++ b/modules/actions/unrestrict_turn.js @@ -1,23 +1,10 @@ import { actionDeleteRelation } from './delete_relation'; -// Remove the effects of `turn.restriction` on `turn`, which must have the -// following structure: +// `actionUnrestrictTurn` deletes a turn restriction relation. // -// { -// from: { node: , way: }, -// via: { node: }, -// to: { node: , way: }, -// restrictionID: -// } -// -// In the simple case, `restrictionID` is a reference to a `no_*` restriction -// on the turn itself. In this case, it is simply deleted. -// -// The more complex case is where `restrictionID` references an `only_*` -// restriction on a different turn in the same intersection. In that case, -// that restriction is also deleted, but at the same time restrictions on -// the turns other than the first two are created. +// `turn` must be an `osmTurn` object with a `restrictionID` property. +// see osm/intersection.js, pathToTurn() // export function actionUnrestrictTurn(turn) { return function(graph) { diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index a60bd547a..97b10a03c 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -339,15 +339,15 @@ export function uiFieldRestrictions(field, context) { } else if (datum instanceof osmTurn) { var actions, extraActions, turns, i; - datum.restriction = osmInferRestriction(vgraph, datum, projection); + var restrictionType = osmInferRestriction(vgraph, datum, projection); if (datum.restrictionID && !datum.direct) { return; - } else if (datum.restrictionID && !datum.only) { // cycle NO -> ONLY + } else if (datum.restrictionID && !datum.only) { // NO -> ONLY var datumOnly = _cloneDeep(datum); datumOnly.only = true; - datumOnly.restriction = datumOnly.restriction.replace(/^no/, 'only'); + restrictionType = restrictionType.replace(/^no/, 'only'); // Adding an ONLY restriction should destroy all other direct restrictions from the FROM. // We will remember them in _oldTurns, and restore them if the user clicks again. @@ -356,17 +356,18 @@ export function uiFieldRestrictions(field, context) { _oldTurns = []; for (i = 0; i < turns.length; i++) { if (turns[i].direct) { + turns[i].restrictionType = osmInferRestriction(vgraph, turns[i], projection); _oldTurns.push(turns[i]); - extraActions.push(actionUnrestrictTurn(turns[i], projection)); + extraActions.push(actionUnrestrictTurn(turns[i])); } } actions = _intersection.actions.concat(extraActions, [ - actionRestrictTurn(datumOnly, projection), + actionRestrictTurn(datumOnly, restrictionType), t('operations.restriction.annotation.create') ]); - } else if (datum.restrictionID) { // cycle ONLY -> Allowed + } else if (datum.restrictionID) { // ONLY -> Allowed // Restore whatever restrictions we might have destroyed by cycling thru the ONLY state. // This relies on the assumption that the intersection was already split up when we // performed the previous action (NO -> ONLY), so the IDs in _oldTurns shouldn't have changed. @@ -374,19 +375,19 @@ export function uiFieldRestrictions(field, context) { extraActions = []; for (i = 0; i < turns.length; i++) { if (turns[i].key !== datum.key) { - extraActions.push(actionRestrictTurn(turns[i], projection)); + extraActions.push(actionRestrictTurn(turns[i], turns[i].restrictionType)); } } _oldTurns = null; actions = _intersection.actions.concat(extraActions, [ - actionUnrestrictTurn(datum, projection), + actionUnrestrictTurn(datum), t('operations.restriction.annotation.delete') ]); - } else { // cycle Allowed -> NO + } else { // Allowed -> NO actions = _intersection.actions.concat([ - actionRestrictTurn(datum, projection), + actionRestrictTurn(datum, restrictionType), t('operations.restriction.annotation.create') ]); } diff --git a/test/spec/actions/restrict_turn.js b/test/spec/actions/restrict_turn.js index 96de8be59..46f273be7 100644 --- a/test/spec/actions/restrict_turn.js +++ b/test/spec/actions/restrict_turn.js @@ -1,288 +1,80 @@ describe('iD.actionRestrictTurn', function() { - var projection = d3.geoMercator().scale(250 / Math.PI); + it('adds a via node restriction to an unrestricted turn', function() { + // + // u === * --- w + // + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: '*'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', '*']}), + iD.osmWay({id: '-', nodes: ['*', 'w']}) + ]); - describe('via node', function() { + var turn = { + from: { node: 'u', way: '=' }, + via: { node: '*'}, + to: { node: 'w', way: '-' } + }; - it('adds a via node restriction to an unrestricted turn', function() { - // u====*--->w - var graph = iD.coreGraph([ - iD.osmNode({id: 'u'}), - iD.osmNode({id: '*'}), - iD.osmNode({id: 'w'}), - iD.osmWay({id: '=', nodes: ['u', '*']}), - iD.osmWay({id: '-', nodes: ['*', 'w']}) - ]); - var action = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '-'}, - restriction: 'no_right_turn' - }, projection, 'r'); + var action = iD.actionRestrictTurn(turn, 'no_straight_on', 'r'); + graph = action(graph); - graph = action(graph); + var r = graph.entity('r'); + expect(r.tags).to.eql({type: 'restriction', restriction: 'no_straight_on'}); - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_right_turn'}); + var f = r.memberByRole('from'); + expect(f.id).to.eql('='); + expect(f.type).to.eql('way'); - var f = r.memberByRole('from'); - expect(f.id).to.eql('='); - expect(f.type).to.eql('way'); + var v = r.memberByRole('via'); + expect(v.id).to.eql('*'); + expect(v.type).to.eql('node'); - var v = r.memberByRole('via'); - expect(v.id).to.eql('*'); - expect(v.type).to.eql('node'); - - var t = r.memberByRole('to'); - expect(t.id).to.eql('-'); - expect(t.type).to.eql('way'); - }); - -//TODO? - it.skip('infers the restriction type based on the turn angle', function() { - // u====*~~~~w - // | - // x - var graph = iD.coreGraph([ - iD.osmNode({id: 'u', loc: [-1, 0]}), - iD.osmNode({id: '*', loc: [ 0, 0]}), - iD.osmNode({id: 'w', loc: [ 1, 0]}), - iD.osmNode({id: 'x', loc: [ 0, -1]}), - iD.osmWay({id: '=', nodes: ['u', '*']}), - iD.osmWay({id: '-', nodes: ['*', 'x']}), - iD.osmWay({id: '~', nodes: ['*', 'w']}) - ]); - - var r1 = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'x', way: '-'} - }, projection, 'r')(graph); - expect(r1.entity('r').tags.restriction).to.equal('no_right_turn'); - - var r2 = iD.actionRestrictTurn({ - from: {node: 'x', way: '-'}, - via: {node: '*'}, - to: {node: 'w', way: '~'} - }, projection, 'r')(graph); - expect(r2.entity('r').tags.restriction).to.equal('no_right_turn'); - - var l1 = iD.actionRestrictTurn({ - from: {node: 'x', way: '-'}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }, projection, 'r')(graph); - expect(l1.entity('r').tags.restriction).to.equal('no_left_turn'); - - var l2 = iD.actionRestrictTurn({ - from: {node: 'w', way: '~'}, - via: {node: '*'}, - to: {node: 'x', way: '-'} - }, projection, 'r')(graph); - expect(l2.entity('r').tags.restriction).to.equal('no_left_turn'); - - var s = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'w', way: '~'} - }, projection, 'r')(graph); - expect(s.entity('r').tags.restriction).to.equal('no_straight_on'); - - var u = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {node: '*'}, - to: {node: 'u', way: '='} - }, projection, 'r')(graph); - expect(u.entity('r').tags.restriction).to.equal('no_u_turn'); - }); - -//TODO? - it.skip('infers no_u_turn from acute angle made by forward oneways', function() { - // * - // / \ - // w2/ \w1 - // / \ - // u x - var graph = iD.coreGraph([ - iD.osmNode({id: 'u', loc: [-1, -20]}), - iD.osmNode({id: '*', loc: [ 0, 0]}), - iD.osmNode({id: 'x', loc: [ 1, -20]}), - iD.osmWay({id: 'w1', nodes: ['x', '*'], tags: {oneway: 'yes'}}), - iD.osmWay({id: 'w2', nodes: ['*', 'u'], tags: {oneway: 'yes'}}) - ]); - - var r = iD.actionRestrictTurn({ - from: {node: 'x', way: 'w1'}, - via: {node: '*'}, - to: {node: 'u', way: 'w2'} - }, projection, 'r')(graph); - expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); - }); - -//TODO? - it.skip('infers no_u_turn from acute angle made by reverse oneways', function() { - // * - // / \ - // w2/ \w1 - // / \ - // u x - var graph = iD.coreGraph([ - iD.osmNode({id: 'u', loc: [-1, -20]}), - iD.osmNode({id: '*', loc: [ 0, 0]}), - iD.osmNode({id: 'x', loc: [ 1, -20]}), - iD.osmWay({id: 'w1', nodes: ['*', 'x'], tags: {oneway: '-1'}}), - iD.osmWay({id: 'w2', nodes: ['u', '*'], tags: {oneway: '-1'}}) - ]); - - var r = iD.actionRestrictTurn({ - from: {node: 'x', way: 'w1'}, - via: {node: '*'}, - to: {node: 'u', way: 'w2'} - }, projection, 'r')(graph); - expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); - }); + var t = r.memberByRole('to'); + expect(t.id).to.eql('-'); + expect(t.type).to.eql('way'); }); - describe('via way', function() { + it('adds a via way restriction to an unrestricted turn', function() { + // + // u === v1 + // | + // w --- v2 + // + var graph = iD.coreGraph([ + iD.osmNode({id: 'u'}), + iD.osmNode({id: 'v1'}), + iD.osmNode({id: 'v2'}), + iD.osmNode({id: 'w'}), + iD.osmWay({id: '=', nodes: ['u', 'v1']}), + iD.osmWay({id: '|', nodes: ['v1', 'v2']}), + iD.osmWay({id: '-', nodes: ['v2', 'w']}) + ]); - it('adds a via way restriction to an unrestricted turn', function() { - // u ==== VIA ---> w - var graph = iD.coreGraph([ - iD.osmNode({id: 'u'}), - iD.osmNode({id: 'V1'}), - iD.osmNode({id: 'V2'}), - iD.osmNode({id: 'w'}), - iD.osmWay({id: '=', nodes: ['u', 'V1']}), - iD.osmWay({id: 'VIA', nodes: ['V1', 'V2']}), - iD.osmWay({id: '-', nodes: ['V2', 'w']}) - ]); - var action = iD.actionRestrictTurn({ - from: {node: 'u', way: '='}, - via: {ways: ['VIA']}, - to: {node: 'w', way: '-'}, - restriction: 'no_u_turn' - }, projection, 'r'); + var turn = { + from: { node: 'u', way: '=' }, + via: { ways: ['|'] }, + to: { node: 'w', way: '-' } + }; - graph = action(graph); + var action = iD.actionRestrictTurn(turn, 'no_u_turn', 'r'); + graph = action(graph); - var r = graph.entity('r'); - expect(r.tags).to.eql({type: 'restriction', restriction: 'no_u_turn'}); + var r = graph.entity('r'); + expect(r.tags).to.eql({type: 'restriction', restriction: 'no_u_turn'}); - var f = r.memberByRole('from'); - expect(f.id).to.eql('='); - expect(f.type).to.eql('way'); + var f = r.memberByRole('from'); + expect(f.id).to.eql('='); + expect(f.type).to.eql('way'); - var v = r.memberByRole('via'); - expect(v.id).to.eql('VIA'); - expect(v.type).to.eql('way'); + var v = r.memberByRole('via'); + expect(v.id).to.eql('|'); + expect(v.type).to.eql('way'); - var t = r.memberByRole('to'); - expect(t.id).to.eql('-'); - expect(t.type).to.eql('way'); - }); - - -// TODO? - - // it('infers the restriction type based on the turn angle', function() { - // // u====*~~~~w - // // | - // // x - // var graph = iD.coreGraph([ - // iD.osmNode({id: 'u', loc: [-1, 0]}), - // iD.osmNode({id: '*', loc: [ 0, 0]}), - // iD.osmNode({id: 'w', loc: [ 1, 0]}), - // iD.osmNode({id: 'x', loc: [ 0, -1]}), - // iD.osmWay({id: '=', nodes: ['u', '*']}), - // iD.osmWay({id: '-', nodes: ['*', 'x']}), - // iD.osmWay({id: '~', nodes: ['*', 'w']}) - // ]); - - // var r1 = iD.actionRestrictTurn({ - // from: {node: 'u', way: '='}, - // via: {node: '*'}, - // to: {node: 'x', way: '-'} - // }, projection, 'r')(graph); - // expect(r1.entity('r').tags.restriction).to.equal('no_right_turn'); - - // var r2 = iD.actionRestrictTurn({ - // from: {node: 'x', way: '-'}, - // via: {node: '*'}, - // to: {node: 'w', way: '~'} - // }, projection, 'r')(graph); - // expect(r2.entity('r').tags.restriction).to.equal('no_right_turn'); - - // var l1 = iD.actionRestrictTurn({ - // from: {node: 'x', way: '-'}, - // via: {node: '*'}, - // to: {node: 'u', way: '='} - // }, projection, 'r')(graph); - // expect(l1.entity('r').tags.restriction).to.equal('no_left_turn'); - - // var l2 = iD.actionRestrictTurn({ - // from: {node: 'w', way: '~'}, - // via: {node: '*'}, - // to: {node: 'x', way: '-'} - // }, projection, 'r')(graph); - // expect(l2.entity('r').tags.restriction).to.equal('no_left_turn'); - - // var s = iD.actionRestrictTurn({ - // from: {node: 'u', way: '='}, - // via: {node: '*'}, - // to: {node: 'w', way: '~'} - // }, projection, 'r')(graph); - // expect(s.entity('r').tags.restriction).to.equal('no_straight_on'); - - // var u = iD.actionRestrictTurn({ - // from: {node: 'u', way: '='}, - // via: {node: '*'}, - // to: {node: 'u', way: '='} - // }, projection, 'r')(graph); - // expect(u.entity('r').tags.restriction).to.equal('no_u_turn'); - // }); - - // it('infers no_u_turn from acute angle made by forward oneways', function() { - // // * - // // / \ - // // w2/ \w1 - // // / \ - // // u x - // var graph = iD.coreGraph([ - // iD.osmNode({id: 'u', loc: [-1, -20]}), - // iD.osmNode({id: '*', loc: [ 0, 0]}), - // iD.osmNode({id: 'x', loc: [ 1, -20]}), - // iD.osmWay({id: 'w1', nodes: ['x', '*'], tags: {oneway: 'yes'}}), - // iD.osmWay({id: 'w2', nodes: ['*', 'u'], tags: {oneway: 'yes'}}) - // ]); - - // var r = iD.actionRestrictTurn({ - // from: {node: 'x', way: 'w1'}, - // via: {node: '*'}, - // to: {node: 'u', way: 'w2'} - // }, projection, 'r')(graph); - // expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); - // }); - - // it('infers no_u_turn from acute angle made by reverse oneways', function() { - // // * - // // / \ - // // w2/ \w1 - // // / \ - // // u x - // var graph = iD.coreGraph([ - // iD.osmNode({id: 'u', loc: [-1, -20]}), - // iD.osmNode({id: '*', loc: [ 0, 0]}), - // iD.osmNode({id: 'x', loc: [ 1, -20]}), - // iD.osmWay({id: 'w1', nodes: ['*', 'x'], tags: {oneway: '-1'}}), - // iD.osmWay({id: 'w2', nodes: ['u', '*'], tags: {oneway: '-1'}}) - // ]); - - // var r = iD.actionRestrictTurn({ - // from: {node: 'x', way: 'w1'}, - // via: {node: '*'}, - // to: {node: 'u', way: 'w2'} - // }, projection, 'r')(graph); - // expect(r.entity('r').tags.restriction).to.equal('no_u_turn'); - // }); + var t = r.memberByRole('to'); + expect(t.id).to.eql('-'); + expect(t.type).to.eql('way'); }); }); diff --git a/test/spec/actions/unrestrict_turn.js b/test/spec/actions/unrestrict_turn.js index 9ab094c6e..3c617618d 100644 --- a/test/spec/actions/unrestrict_turn.js +++ b/test/spec/actions/unrestrict_turn.js @@ -1,6 +1,8 @@ describe('iD.actionUnrestrictTurn', function() { it('removes a restriction from a restricted turn', function() { - // u====*--->w + // + // u === * --- w + // var graph = iD.coreGraph([ iD.osmNode({ id: 'u' }), iD.osmNode({ id: '*' }), diff --git a/test/spec/osm/intersection.js b/test/spec/osm/intersection.js index 880b281a5..ba4785a49 100644 --- a/test/spec/osm/intersection.js +++ b/test/spec/osm/intersection.js @@ -557,3 +557,153 @@ describe('iD.osmIntersection', function() { }); }); + + +describe('iD.osmInferRestriction', function() { + var projection = d3.geoMercator().scale(250 / Math.PI); + + it('infers the restriction type based on the turn angle', function() { + // + // u === * ~~~ w + // | + // x + // + var graph = iD.coreGraph([ + iD.osmNode({id: 'u', loc: [-1, 0]}), + iD.osmNode({id: '*', loc: [ 0, 0]}), + iD.osmNode({id: 'w', loc: [ 1, 0]}), + iD.osmNode({id: 'x', loc: [ 0, -1]}), + iD.osmWay({id: '=', nodes: ['u', '*']}), + iD.osmWay({id: '-', nodes: ['*', 'x']}), + iD.osmWay({id: '~', nodes: ['*', 'w']}) + ]); + + var r1 = iD.osmInferRestriction(graph, { + from: { node: 'u', way: '=', vertex: '*' }, + to: { node: 'x', way: '-', vertex: '*' } + }, projection); + expect(r1).to.equal('no_right_turn'); + + var r2 = iD.osmInferRestriction(graph, { + from: { node: 'x', way: '-', vertex: '*' }, + to: { node: 'w', way: '~', vertex: '*' } + }, projection); + expect(r2).to.equal('no_right_turn'); + + var l1 = iD.osmInferRestriction(graph, { + from: { node: 'x', way: '-', vertex: '*' }, + to: { node: 'u', way: '=', vertex: '*' } + }, projection); + expect(l1).to.equal('no_left_turn'); + + var l2 = iD.osmInferRestriction(graph, { + from: { node: 'w', way: '~', vertex: '*' }, + to: { node: 'x', way: '-', vertex: '*' } + }, projection); + expect(l2).to.equal('no_left_turn'); + + var s = iD.osmInferRestriction(graph, { + from: { node: 'u', way: '=', vertex: '*' }, + to: { node: 'w', way: '~', vertex: '*' } + }, projection); + expect(s).to.equal('no_straight_on'); + + var u = iD.osmInferRestriction(graph, { + from: { node: 'u', way: '=', vertex: '*' }, + to: { node: 'u', way: '=', vertex: '*' } + }, projection); + expect(u).to.equal('no_u_turn'); + }); + + + it('infers no_u_turn from sharply acute angle made by forward oneways', function() { + // * + // / \ + // w2/ \w1 angle ≈22.6° + // / \ + // u x + var graph = iD.coreGraph([ + iD.osmNode({ id: 'u', loc: [0, -5] }), + iD.osmNode({ id: '*', loc: [1, 0] }), + iD.osmNode({ id: 'x', loc: [2, -5] }), + iD.osmWay({ id: 'w1', nodes: ['x', '*'], tags: { oneway: 'yes' } }), + iD.osmWay({ id: 'w2', nodes: ['*', 'u'], tags: { oneway: 'yes' } }) + ]); + + var r = iD.osmInferRestriction(graph, { + from: { node: 'x', way: 'w1', vertex: '*' }, + to: { node: 'u', way: 'w2', vertex: '*' } + }, projection); + expect(r).to.equal('no_u_turn'); + }); + + + it('does not infer no_u_turn from widely acute angle made by forward oneways', function() { + // * + // / \ + // w2/ \w1 angle ≈36.9° + // / \ + // u x + var graph = iD.coreGraph([ + iD.osmNode({ id: 'u', loc: [0, -3] }), + iD.osmNode({ id: '*', loc: [1, 0] }), + iD.osmNode({ id: 'x', loc: [2, -3] }), + iD.osmWay({ id: 'w1', nodes: ['x', '*'], tags: { oneway: 'yes' } }), + iD.osmWay({ id: 'w2', nodes: ['*', 'u'], tags: { oneway: 'yes' } }) + ]); + + var r = iD.osmInferRestriction(graph, { + from: { node: 'x', way: 'w1', vertex: '*' }, + to: { node: 'u', way: 'w2', vertex: '*' } + }, projection); + expect(r).to.equal('no_left_turn'); + }); + + + it('infers no_u_turn from sharply acute angle made by forward oneways with a via way', function() { + // * -- + + // / \ + // w2/ \w1 angle ≈22.6° + // / \ + // u x + var graph = iD.coreGraph([ + iD.osmNode({ id: 'u', loc: [0, -5] }), + iD.osmNode({ id: '*', loc: [1, 0] }), + iD.osmNode({ id: '+', loc: [2, 0] }), + iD.osmNode({ id: 'x', loc: [3, -5] }), + iD.osmWay({ id: 'w1', nodes: ['x', '+'], tags: { oneway: 'yes' } }), + iD.osmWay({ id: 'w2', nodes: ['*', 'u'], tags: { oneway: 'yes' } }), + iD.osmWay({ id: '-', nodes: ['*', '+'] }) + ]); + + var r = iD.osmInferRestriction(graph, { + from: { node: 'x', way: 'w1', vertex: '+' }, + to: { node: 'u', way: 'w2', vertex: '*' } + }, projection); + expect(r).to.equal('no_u_turn'); + }); + + + it('infers no_u_turn from widely acute angle made by forward oneways with a via way', function() { + // * -- + + // / \ + // w2/ \w1 angle ≈36.9° + // / \ + // u x + var graph = iD.coreGraph([ + iD.osmNode({ id: 'u', loc: [0, -3] }), + iD.osmNode({ id: '*', loc: [1, 0] }), + iD.osmNode({ id: '+', loc: [2, 0] }), + iD.osmNode({ id: 'x', loc: [3, -3] }), + iD.osmWay({ id: 'w1', nodes: ['x', '+'], tags: { oneway: 'yes' } }), + iD.osmWay({ id: 'w2', nodes: ['*', 'u'], tags: { oneway: 'yes' } }), + iD.osmWay({ id: '-', nodes: ['*', '+'] }) + ]); + + var r = iD.osmInferRestriction(graph, { + from: { node: 'x', way: 'w1', vertex: '+' }, + to: { node: 'u', way: 'w2', vertex: '*' } + }, projection); + expect(r).to.equal('no_u_turn'); + }); +}); From 78170f8fe9a518da04ca7d3252a22f0b0b07f8a3 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 00:58:53 -0500 Subject: [PATCH 096/157] Improve hint text to aid in localization - change the "Up to {num} ways" to "Up to 2 ways" (we don't plan to go above 2 for now) - enumerate all the turn types No/Only/Allowed x Left/Right/Straight/U - Add a line for "Click for" to let user know they can click to toggle see https://github.com/openstreetmap/iD/pull/4768#pullrequestreview-100256196 --- data/core.yaml | 28 ++++++++++++------------- dist/locales/en.json | 28 ++++++++++++------------- modules/ui/fields/restrictions.js | 35 ++++++++++++++----------------- 3 files changed, 44 insertions(+), 47 deletions(-) diff --git a/data/core.yaml b/data/core.yaml index be8cb7a76..4d487fa0d 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -229,20 +229,22 @@ en: via: Via via_node_only: "Node only" via_up_to_one: "Up to 1 way" - via_up_to_multiple: "Up to {num} ways" + via_up_to_two: "Up to 2 ways" help: - no: NO - only: ONLY - allowed: Allowed indirect: "(indirect)" turn: - left_turn: Left Turn - right_turn: Right Turn - u_turn: U-Turn - straight_on: Straight On - no_turn_string: "{no} {turn} {indirect}" - only_turn_string: "{only} {turn} {indirect}" - allowed_turn_string: "{turn} {allowed} {indirect}" + no_left_turn: "NO Left Turn {indirect}" + no_right_turn: "NO Right Turn {indirect}" + no_u_turn: "NO U-Turn {indirect}" + no_straight_on: "NO Straight On {indirect}" + only_left_turn: "ONLY Left Turn {indirect}" + only_right_turn: "ONLY Right Turn {indirect}" + only_u_turn: "ONLY U-Turn {indirect}" + only_straight_on: "ONLY Straight On {indirect}" + allowed_left_turn: "Left Turn Allowed {indirect}" + allowed_right_turn: "Right Turn Allowed {indirect}" + allowed_u_turn: "U-Turn Allowed {indirect}" + allowed_straight_on: "Straight On Allowed {indirect}" from: FROM via: VIA to: TO @@ -251,9 +253,7 @@ en: via_names: "{via} {viaNames}" select_from: "Click to select a {from} segment" select_from_name: "Click to select {from} {fromName}" - toggle: Click to toggle turn restrictions. - toggle_on: 'Click to add a "{restriction}" restriction.' - toggle_off: 'Click to remove the "{restriction}" restriction.' + toggle: "Click for \"{turn}\"" undo: tooltip: "Undo: {action}" nothing: Nothing to undo. diff --git a/dist/locales/en.json b/dist/locales/en.json index 14d209991..bf5fe30d0 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -298,22 +298,24 @@ "via": "Via", "via_node_only": "Node only", "via_up_to_one": "Up to 1 way", - "via_up_to_multiple": "Up to {num} ways" + "via_up_to_two": "Up to 2 ways" }, "help": { - "no": "NO", - "only": "ONLY", - "allowed": "Allowed", "indirect": "(indirect)", "turn": { - "left_turn": "Left Turn", - "right_turn": "Right Turn", - "u_turn": "U-Turn", - "straight_on": "Straight On" + "no_left_turn": "NO Left Turn {indirect}", + "no_right_turn": "NO Right Turn {indirect}", + "no_u_turn": "NO U-Turn {indirect}", + "no_straight_on": "NO Straight On {indirect}", + "only_left_turn": "ONLY Left Turn {indirect}", + "only_right_turn": "ONLY Right Turn {indirect}", + "only_u_turn": "ONLY U-Turn {indirect}", + "only_straight_on": "ONLY Straight On {indirect}", + "allowed_left_turn": "Left Turn Allowed {indirect}", + "allowed_right_turn": "Right Turn Allowed {indirect}", + "allowed_u_turn": "U-Turn Allowed {indirect}", + "allowed_straight_on": "Straight On Allowed {indirect}" }, - "no_turn_string": "{no} {turn} {indirect}", - "only_turn_string": "{only} {turn} {indirect}", - "allowed_turn_string": "{turn} {allowed} {indirect}", "from": "FROM", "via": "VIA", "to": "TO", @@ -322,9 +324,7 @@ "via_names": "{via} {viaNames}", "select_from": "Click to select a {from} segment", "select_from_name": "Click to select {from} {fromName}", - "toggle": "Click to toggle turn restrictions.", - "toggle_on": "Click to add a \"{restriction}\" restriction.", - "toggle_off": "Click to remove the \"{restriction}\" restriction." + "toggle": "Click for \"{turn}\"" } }, "undo": { diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 97b10a03c..0905d5b1e 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -499,35 +499,26 @@ export function uiFieldRestrictions(field, context) { var restrictionType = osmInferRestriction(vgraph, datum, projection); var turnType = restrictionType.replace(/^(only|no)\_/, ''); var indirect = (datum.direct === false ? t('restriction.help.indirect') : ''); - var klass, turnHtml; + var klass, turnText, nextText; if (datum.no) { klass = 'restrict'; - turnHtml = t('restriction.help.no_turn_string', { - no: t('restriction.help.no'), - turn: t('restriction.help.turn.' + turnType), - indirect: indirect - }); + turnText = t('restriction.help.turn.no_' + turnType, { indirect: indirect }); + nextText = t('restriction.help.turn.only_' + turnType, { indirect: '' }); } else if (datum.only) { klass = 'only'; - turnHtml = t('restriction.help.only_turn_string', { - only: t('restriction.help.only'), - turn: t('restriction.help.turn.' + turnType), - indirect: indirect - }); + turnText = t('restriction.help.turn.only_' + turnType, { indirect: indirect }); + nextText = t('restriction.help.turn.allowed_' + turnType, { indirect: '' }); } else { klass = 'allow'; - turnHtml = t('restriction.help.allowed_turn_string', { - allowed: t('restriction.help.allowed'), - turn: t('restriction.help.turn.' + turnType), - indirect: indirect - }); + turnText = t('restriction.help.turn.allowed_' + turnType, { indirect: indirect }); + nextText = t('restriction.help.turn.no_' + turnType, { indirect: '' }); } help - .append('div') // Turn Description + .append('div') // "NO Right Turn (indirect)" .attr('class', 'qualifier ' + klass) - .html(turnHtml); + .text(turnText); help .append('div') // "FROM {fromName} TO {toName}" @@ -555,6 +546,12 @@ export function uiFieldRestrictions(field, context) { })); } + if (!indirect) { + help + .append('div') // Click for "No Right Turn" + .text(t('restriction.help.toggle', { turn: nextText.trim() })); + } + highlightPathsFrom(null); var alongIDs = datum.path.slice(); surface.selectAll(utilEntitySelector(alongIDs)) @@ -607,7 +604,7 @@ export function uiFieldRestrictions(field, context) { function displayMaxVia(maxVia) { return maxVia === 0 ? t('restriction.controls.via_node_only') : maxVia === 1 ? t('restriction.controls.via_up_to_one') - : t('restriction.controls.via_up_to_multiple', { num: maxVia }); + : t('restriction.controls.via_up_to_two'); } From 1e3a62d4b79142ddb7e12bf73c085fec3e017747 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 14:19:55 -0500 Subject: [PATCH 097/157] Bump all dependency versions --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0e61e2e38..f1e9c93de 100644 --- a/package.json +++ b/package.json @@ -30,15 +30,15 @@ "@mapbox/togeojson": "0.16.0", "diacritics": "1.3.0", "lodash-es": "4.17.5", - "marked": "0.3.12", - "node-diff3": "bhousel/node-diff3.git#v0.1.0", + "marked": "0.3.17", + "node-diff3": "1.0.0", "osm-auth": "1.0.2", "rbush": "2.0.2", "wmf-sitematrix": "0.1.4" }, "devDependencies": { "@mapbox/maki": "^4.0.0", - "@std/esm": "^0.22.0", + "@std/esm": "^0.23.3", "chai": "^4.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", @@ -52,7 +52,7 @@ "js-yaml": "^3.9.0", "json-stable-stringify": "^1.0.1", "jsonschema": "^1.1.0", - "mapillary-js": "2.10.1", + "mapillary-js": "2.11.1", "minimist": "^1.2.0", "mocha": "^5.0.0", "mocha-phantomjs-core": "^2.1.0", @@ -60,7 +60,7 @@ "npm-run-all": "^4.0.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.81.0", - "rollup": "~0.55.0", + "rollup": "~0.56.3", "rollup-plugin-commonjs": "~8.3.0", "rollup-plugin-includepaths": "~0.2.2", "rollup-plugin-json": "~2.2.0", From a065f2f214a96b7a5d96428e34db62c3da2101e7 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 15:33:45 -0500 Subject: [PATCH 098/157] Revert @std/esm to 0.22.0 so we can continue to support Node 4 until EOL We can bump this dependency when Node 4 goes EOL after Apr 2018 For now we don't _really_ use @std/esm for much anyway. (It just lets use the es6 modular lodash in build scripts) --- package.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index f1e9c93de..4694376c8 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ }, "devDependencies": { "@mapbox/maki": "^4.0.0", - "@std/esm": "^0.23.3", + "@std/esm": "0.22.0", "chai": "^4.1.0", "colors": "^1.1.2", "concat-files": "^0.1.1", @@ -76,7 +76,10 @@ "xmlbuilder": "^9.0.6" }, "greenkeeper": { - "label": "chore-greenkeeper" + "label": "chore-greenkeeper", + "ignore": [ + "@std/esm" + ] }, "engines": { "node": ">=4.0.0" From d9ebdda105f2efb55a3181ae893f17f5355e90ab Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 22:06:18 -0500 Subject: [PATCH 099/157] Polyfill sinh for IE11, add tests for wms replacement tokens (see #4814) --- data/update_imagery.js | 4 +-- modules/renderer/background_source.js | 8 ++++- test/spec/renderer/background_source.js | 43 +++++++++++++++++++------ 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/data/update_imagery.js b/data/update_imagery.js index 761b93fa3..225f9c153 100644 --- a/data/update_imagery.js +++ b/data/update_imagery.js @@ -54,7 +54,7 @@ sources.concat(whitelist).forEach(function(source) { var supportedProjection = source.available_projections && supportedWMSProjections.find(function(supportedProjection) { return source.available_projections.some(function(projection) { - return supportedProjection === projection; + return supportedProjection === projection; }) }); if (source.type === 'wms' && supportedProjection === undefined) return; @@ -67,7 +67,7 @@ sources.concat(whitelist).forEach(function(source) { }; if (source.type === 'wms') { - im.projection = supportedProjection; + im.projection = supportedProjection; } var startDate, endDate, isValid; diff --git a/modules/renderer/background_source.js b/modules/renderer/background_source.js index df5de7df1..74d75cd3a 100644 --- a/modules/renderer/background_source.js +++ b/modules/renderer/background_source.js @@ -33,9 +33,15 @@ function vintageRange(vintage) { } function getEPSG3857XY(x, y, z) { + //polyfill for IE11, PhantomJS + var sinh = Math.sinh || function(x) { + var y = Math.exp(x); + return (y - 1 / y) / 2; + }; + var zoomSize = Math.pow(2, z); var lon = x / zoomSize * Math.PI * 2 - Math.PI; - var lat = Math.atan(Math.sinh(Math.PI * (1 - 2 * y / zoomSize))); + var lat = Math.atan(sinh(Math.PI * (1 - 2 * y / zoomSize))); var mercCoords = d3_geoMercatorRaw(lon, lat); return { x: 20037508.34 / Math.PI * mercCoords[0], diff --git a/test/spec/renderer/background_source.js b/test/spec/renderer/background_source.js index 21f64ad92..2828bdf0c 100644 --- a/test/spec/renderer/background_source.js +++ b/test/spec/renderer/background_source.js @@ -1,48 +1,71 @@ -describe('iD.BackgroundSource', function() { +describe('iD.rendererBackgroundSource', function() { it('does not error with blank template', function() { - var source = iD.BackgroundSource({ template: '' }); + var source = iD.rendererBackgroundSource({ template: '' }); expect(source.url([0,1,2])).to.equal(''); }); - it('generates a tile-generating source', function() { - var source = iD.BackgroundSource({ template: '{z}/{x}/{y}' }); + it('supports tms replacement tokens', function() { + var source = iD.rendererBackgroundSource({ + type: 'tms', + template: '{z}/{x}/{y}' + }); expect(source.url([0,1,2])).to.equal('2/0/1'); }); + it('supports wms replacement tokens', function() { + var source = iD.rendererBackgroundSource({ + type: 'wms', + projection: 'EPSG:3857', + template: 'SRS={proj}&FORMAT=image/jpeg&WIDTH={width}&HEIGHT={height}&BBOX={bbox}' + }); + + var result = iD.utilStringQs(source.url([0,1,2])); + expect(result.SRS).to.equal('EPSG:3857'); + expect(result.FORMAT).to.equal('image/jpeg'); + expect(result.WIDTH).to.equal('256'); + expect(result.HEIGHT).to.equal('256'); + + var bbox = result.BBOX.split(','); + expect(+bbox[0]).to.be.closeTo(-20037508.34, 1e-3); + expect(+bbox[1]).to.be.closeTo(0, 1e-3); + expect(+bbox[2]).to.be.closeTo(-10018754.17, 1e-3); + expect(+bbox[3]).to.be.closeTo(10018754.17, 1e-3); + }); + it('supports subdomains', function() { - var source = iD.BackgroundSource({ template: '{switch:a,b}/{z}/{x}/{y}'}); + var source = iD.rendererBackgroundSource({ template: '{switch:a,b}/{z}/{x}/{y}'}); expect(source.url([0,1,2])).to.equal('b/2/0/1'); }); it('distributes requests between subdomains', function() { - var source = iD.BackgroundSource({ template: '{switch:a,b}/{z}/{x}/{y}' }); + var source = iD.rendererBackgroundSource({ template: '{switch:a,b}/{z}/{x}/{y}' }); expect(source.url([0,1,1])).to.equal('b/1/0/1'); expect(source.url([0,2,1])).to.equal('a/1/0/2'); }); it('correctly displays an overlay with no overzoom specified', function() { - var source = iD.BackgroundSource({ scaleExtent: [6,16] }); + var source = iD.rendererBackgroundSource({ scaleExtent: [6,16] }); expect(source.validZoom(10)).to.be.true; expect(source.validZoom(3)).to.be.false; expect(source.validZoom(17)).to.be.true; }); it('correctly displays an overlay with an invalid overzoom', function() { - var source = iD.BackgroundSource({ scaleExtent: [6,16], overzoom: 'gibberish'}); + var source = iD.rendererBackgroundSource({ scaleExtent: [6,16], overzoom: 'gibberish'}); expect(source.validZoom(10)).to.be.true; expect(source.validZoom(3)).to.be.false; expect(source.validZoom(17)).to.be.true; }); it('correctly displays an overlay with overzoom:true', function() { - var source = iD.BackgroundSource({ scaleExtent: [6,16], overzoom: true}); + var source = iD.rendererBackgroundSource({ scaleExtent: [6,16], overzoom: true}); expect(source.validZoom(10)).to.be.true; expect(source.validZoom(3)).to.be.false; expect(source.validZoom(17)).to.be.true; }); it('correctly displays an overlay with overzoom:false', function() { - var source = iD.BackgroundSource({ scaleExtent: [6,16], overzoom: false}); + var source = iD.rendererBackgroundSource({ scaleExtent: [6,16], overzoom: false}); expect(source.validZoom(10)).to.be.true; expect(source.validZoom(3)).to.be.false; expect(source.validZoom(17)).to.be.false; From 410197ce002583bbcb46487c15dd380e0a0b5340 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 22:23:55 -0500 Subject: [PATCH 100/157] Vertex navigation for home/end should work with way selected (closes #4841) Before, first/last keyboard shortcuts only worked if you had a vertex selected. Now you can navigate to the first/last vertices even if you have the way selected. --- modules/modes/select.js | 93 ++++++++++++++++++++++++----------------- 1 file changed, 54 insertions(+), 39 deletions(-) diff --git a/modules/modes/select.js b/modules/modes/select.js index ba9af0b95..1cb2b0002 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -54,22 +54,22 @@ export function modeSelect(context, selectedIDs) { button: 'browse' }; - var keybinding = d3_keybinding('select'), - timeout = null, - behaviors = [ - behaviorCopy(context), - behaviorPaste(context), - behaviorBreathe(context), - behaviorHover(context), - behaviorSelect(context), - behaviorLasso(context), - modeDragNode(context).restoreSelectedIDs(selectedIDs).behavior - ], - inspector, - editMenu, - newFeature = false, - suppressMenu = true, - follow = false; + var keybinding = d3_keybinding('select'); + var timeout = null; + var behaviors = [ + behaviorCopy(context), + behaviorPaste(context), + behaviorBreathe(context), + behaviorHover(context), + behaviorSelect(context), + behaviorLasso(context), + modeDragNode(context).restoreSelectedIDs(selectedIDs).behavior + ]; + var inspector; + var editMenu; + var newFeature = false; + var suppressMenu = true; + var follow = false; var wrap = context.container() @@ -102,8 +102,8 @@ export function modeSelect(context, selectedIDs) { // find the common parent ways for nextVertex, previousVertex function commonParents() { - var graph = context.graph(), - commonParents = []; + var graph = context.graph(); + var commonParents = []; for (var i = 0; i < selectedIDs.length; i++) { var entity = context.hasEntity(selectedIDs[i]); @@ -164,8 +164,8 @@ export function modeSelect(context, selectedIDs) { if (entity && context.geometry(entity.id) === 'relation') { suppressMenu = true; } else { - var point = context.mouse(), - viewport = geoExtent(context.projection.clipExtent()).polygon(); + var point = context.mouse(); + var viewport = geoExtent(context.projection.clipExtent()).polygon(); if (point && geoPointInPolygon(point, viewport)) { editMenu.center(point); @@ -278,8 +278,8 @@ export function modeSelect(context, selectedIDs) { function selectElements(drawn) { if (!checkSelectedIDs()) return; - var surface = context.surface(), - entity = singular(); + var surface = context.surface(); + var entity = singular(); if (entity && context.geometry(entity.id) === 'relation') { suppressMenu = true; @@ -319,9 +319,17 @@ export function modeSelect(context, selectedIDs) { function firstVertex() { d3_event.preventDefault(); + var entity = singular(); var parent = singularParent(); - if (parent) { - var way = context.entity(parent); + var way; + + if (entity && entity.type === 'way') { + way = entity; + } else if (parent) { + way = context.entity(parent); + } + + if (way) { context.enter( modeSelect(context, [way.first()]).follow(true) ); @@ -331,9 +339,17 @@ export function modeSelect(context, selectedIDs) { function lastVertex() { d3_event.preventDefault(); + var entity = singular(); var parent = singularParent(); - if (parent) { - var way = context.entity(parent); + var way; + + if (entity && entity.type === 'way') { + way = entity; + } else if (parent) { + way = context.entity(parent); + } + + if (way) { context.enter( modeSelect(context, [way.last()]).follow(true) ); @@ -346,10 +362,10 @@ export function modeSelect(context, selectedIDs) { var parent = singularParent(); if (!parent) return; - var way = context.entity(parent), - length = way.nodes.length, - curr = way.nodes.indexOf(selectedIDs[0]), - index = -1; + var way = context.entity(parent); + var length = way.nodes.length; + var curr = way.nodes.indexOf(selectedIDs[0]); + var index = -1; if (curr > 0) { index = curr - 1; @@ -370,10 +386,10 @@ export function modeSelect(context, selectedIDs) { var parent = singularParent(); if (!parent) return; - var way = context.entity(parent), - length = way.nodes.length, - curr = way.nodes.indexOf(selectedIDs[0]), - index = -1; + var way = context.entity(parent); + var length = way.nodes.length; + var curr = way.nodes.indexOf(selectedIDs[0]); + var index = -1; if (curr < length - 1) { index = curr + 1; @@ -415,8 +431,8 @@ export function modeSelect(context, selectedIDs) { if (!checkSelectedIDs()) return; var operations = _without(_values(Operations), Operations.operationDelete) - .map(function(o) { return o(selectedIDs, context); }) - .filter(function(o) { return o.available(); }); + .map(function(o) { return o(selectedIDs, context); }) + .filter(function(o) { return o.available(); }); // deprecation warning - Radial Menu to be removed in iD v3 var isRadialMenu = context.storage('edit-menu-style') === 'radial'; @@ -478,8 +494,8 @@ export function modeSelect(context, selectedIDs) { } if (follow) { - var extent = geoExtent(), - graph = context.graph(); + var extent = geoExtent(); + var graph = context.graph(); selectedIDs.forEach(function(id) { var entity = context.entity(id); extent._extend(entity.extent(graph)); @@ -503,7 +519,6 @@ export function modeSelect(context, selectedIDs) { mode.exit = function() { if (timeout) window.clearTimeout(timeout); - if (inspector) wrap.call(inspector.close); behaviors.forEach(function(behavior) { From 69a1a75b49a995d46576b4b16a0f7433696de985 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 22:33:49 -0500 Subject: [PATCH 101/157] Improve rendering of tree row, use a thicker line (closes #4825) --- css/50_misc.css | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/css/50_misc.css b/css/50_misc.css index e533a7647..1630d185f 100644 --- a/css/50_misc.css +++ b/css/50_misc.css @@ -32,6 +32,28 @@ path.casing.tag-boundary-national_park { } +/* Tree Rows */ +path.shadow.tag-natural-tree_row { + stroke-width: 16; +} +path.casing.tag-natural-tree_row { + stroke-width: 7; +} +path.stroke.tag-natural-tree_row { + stroke-width: 5; +} + +.low-zoom path.shadow.tag-natural-tree_row { + stroke-width: 12; +} +.low-zoom path.casing.tag-natural-tree_row { + stroke-width: 5; +} +.low-zoom path.stroke.tag-natural-tree_row { + stroke-width: 3; +} + + /* barriers */ path.stroke.tag-barrier { stroke: #ddd; From cc79e2170b0616688e694b6cb4743b7446668070 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 1 Mar 2018 22:49:56 -0500 Subject: [PATCH 102/157] Only draw targets for lines and areas that have a valid path Before, it was drawing svg path elements for all the segments, even those that were clipped out of view (getPath returns null). This was putting a lot of junk into the DOM. --- modules/svg/areas.js | 7 ++++--- modules/svg/lines.js | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/svg/areas.js b/modules/svg/areas.js index 8826ddcad..01a12de7f 100644 --- a/modules/svg/areas.js +++ b/modules/svg/areas.js @@ -58,9 +58,10 @@ export function svgAreas(projection, context) { // Targets allow hover and vertex snapping + var targetData = data.targets.filter(getPath); var targets = selection.selectAll('.area.target-allowed') .filter(function(d) { return filter(d.properties.entity); }) - .data(data.targets, function key(d) { return d.id; }); + .data(targetData, function key(d) { return d.id; }); // exit targets.exit() @@ -75,9 +76,10 @@ export function svgAreas(projection, context) { // NOPE + var nopeData = data.nopes.filter(getPath); var nopes = selection.selectAll('.area.target-nope') .filter(function(d) { return filter(d.properties.entity); }) - .data(data.nopes, function key(d) { return d.id; }); + .data(nopeData, function key(d) { return d.id; }); // exit nopes.exit() @@ -92,7 +94,6 @@ export function svgAreas(projection, context) { } - function drawAreas(selection, graph, entities, filter) { var path = svgPath(projection, graph, true), areas = {}, diff --git a/modules/svg/lines.js b/modules/svg/lines.js index 24eb23870..67c2cce9a 100644 --- a/modules/svg/lines.js +++ b/modules/svg/lines.js @@ -54,9 +54,10 @@ export function svgLines(projection, context) { // Targets allow hover and vertex snapping + var targetData = data.targets.filter(getPath); var targets = selection.selectAll('.line.target-allowed') .filter(function(d) { return filter(d.properties.entity); }) - .data(data.targets, function key(d) { return d.id; }); + .data(targetData, function key(d) { return d.id; }); // exit targets.exit() @@ -71,9 +72,10 @@ export function svgLines(projection, context) { // NOPE + var nopeData = data.nopes.filter(getPath); var nopes = selection.selectAll('.line.target-nope') .filter(function(d) { return filter(d.properties.entity); }) - .data(data.nopes, function key(d) { return d.id; }); + .data(nopeData, function key(d) { return d.id; }); // exit nopes.exit() From 668c17ad1ea8cb3da231ace621ddfd98d8a5db65 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 00:21:24 -0500 Subject: [PATCH 103/157] Do not localize decimalCoordinatePair appearing in info panels (closes #4765) --- modules/util/units.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/util/units.js b/modules/util/units.js index b27e7c4b7..03e316fe1 100644 --- a/modules/util/units.js +++ b/modules/util/units.js @@ -144,12 +144,13 @@ export function dmsCoordinatePair(coord) { /** * Returns the given coordinate pair in decimal format. + * note: unlocalized to avoid comma ambiguity - see #4765 * * @param {Array} coord longitude and latitude */ export function decimalCoordinatePair(coord) { return t('units.coordinate_pair', { - latitude: clamp(coord[1], -90, 90).toLocaleString(locale, { maximumFractionDigits: OSM_PRECISION }), - longitude: wrap(coord[0], -180, 180).toLocaleString(locale, { maximumFractionDigits: OSM_PRECISION }) + latitude: clamp(coord[1], -90, 90).toFixed(OSM_PRECISION), + longitude: wrap(coord[0], -180, 180).toFixed(OSM_PRECISION) }); } From 3917f02067fe8bcc8a70ff16d2748203b6c41535 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 00:42:24 -0500 Subject: [PATCH 104/157] When combobox is attached to textarea, let user up/down arrow (closes #4750) --- modules/lib/d3.combobox.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/lib/d3.combobox.js b/modules/lib/d3.combobox.js index 60c2ecbdc..a33ba9e1c 100644 --- a/modules/lib/d3.combobox.js +++ b/modules/lib/d3.combobox.js @@ -36,6 +36,7 @@ export function d3combobox() { .selectAll('div.combobox') .filter(function(d) { return d === input.node(); }); var shown = !wrapper.empty(); + var tagName = input.node() ? input.node().tagName.toLowerCase() : ''; input .classed('combobox-input', true) @@ -139,11 +140,13 @@ export function d3combobox() { break; // up arrow case 38: + if (tagName === 'textarea' && !shown) return; nav(-1); d3_event.preventDefault(); break; // down arrow case 40: + if (tagName === 'textarea' && !shown) return; nav(+1); d3_event.preventDefault(); break; From e8e081f9402a9d424b078934bee69dca3150cd51 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 12:31:27 -0500 Subject: [PATCH 105/157] Blacklist landsat wms layer (slow/offline, and low res) --- data/update_imagery.js | 1 + 1 file changed, 1 insertion(+) diff --git a/data/update_imagery.js b/data/update_imagery.js index 225f9c153..be5a02a00 100644 --- a/data/update_imagery.js +++ b/data/update_imagery.js @@ -14,6 +14,7 @@ var blacklist = { 'openpt_map': true, // 'OpenPT Map (overlay)' 'tf-cycle': true, // 'Thunderforest OpenCycleMap' 'qa_no_address': true, // 'QA No Address' + 'landsat': true, // 'Landsat' 'US-TIGER-Roads-2012': true, 'US-TIGER-Roads-2014': true, From 51147a483fdc38ebd6d026e0abfd35b6a7ce0d66 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 12:32:27 -0500 Subject: [PATCH 106/157] npm run imagery --- data/imagery.json | 5648 ++++++++++++++++++++++++--------------------- 1 file changed, 3009 insertions(+), 2639 deletions(-) diff --git a/data/imagery.json b/data/imagery.json index e625121ec..b445e05a5 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -4377,6 +4377,1956 @@ "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", "terms_text": "CRAIG - IGN -TopoGEODIS - Feder Auvergne-Rhône-Alpes 2016" }, + { + "id": "CRAIG-Auvergne-2013", + "name": "Auvergne 2013 25cm CRAIG", + "type": "tms", + "template": "http://tiles.craig.fr/osm/tms/1.0.0/ortho_2013/webmercator/{zoom-1}/{x}/{-y}.jpeg", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 2.9401192, + 44.6338837 + ], + [ + 2.9971896, + 44.633931 + ], + [ + 2.9971676, + 44.6473385 + ], + [ + 3.0159744, + 44.6473541 + ], + [ + 3.0159305, + 44.6741168 + ], + [ + 3.0349486, + 44.6741326 + ], + [ + 3.0349036, + 44.7015216 + ], + [ + 3.0536338, + 44.7015371 + ], + [ + 3.0535675, + 44.7418954 + ], + [ + 3.0723301, + 44.741911 + ], + [ + 3.0722196, + 44.8091687 + ], + [ + 3.0921583, + 44.8091852 + ], + [ + 3.092137, + 44.8221252 + ], + [ + 3.1301398, + 44.8221567 + ], + [ + 3.1300495, + 44.8770722 + ], + [ + 3.1485587, + 44.8770875 + ], + [ + 3.1485807, + 44.8636964 + ], + [ + 3.1682313, + 44.8637126 + ], + [ + 3.1682538, + 44.8500261 + ], + [ + 3.2064, + 44.8500576 + ], + [ + 3.2063789, + 44.8628393 + ], + [ + 3.2439492, + 44.8628704 + ], + [ + 3.2439263, + 44.8767893 + ], + [ + 3.2631452, + 44.8768052 + ], + [ + 3.2630782, + 44.9175197 + ], + [ + 3.3200437, + 44.9175667 + ], + [ + 3.3200227, + 44.9303336 + ], + [ + 3.3390815, + 44.9303493 + ], + [ + 3.3390586, + 44.9441978 + ], + [ + 3.3769989, + 44.9442292 + ], + [ + 3.3770218, + 44.9302879 + ], + [ + 3.396031, + 44.9303036 + ], + [ + 3.39612, + 44.8762713 + ], + [ + 3.4148252, + 44.8762867 + ], + [ + 3.4148923, + 44.8355255 + ], + [ + 3.4333371, + 44.8355408 + ], + [ + 3.4333819, + 44.8082784 + ], + [ + 3.4525549, + 44.8082943 + ], + [ + 3.4525774, + 44.7946344 + ], + [ + 3.5089262, + 44.7946811 + ], + [ + 3.508904, + 44.8081469 + ], + [ + 3.604265, + 44.8082258 + ], + [ + 3.6042213, + 44.8348239 + ], + [ + 3.6236136, + 44.83484 + ], + [ + 3.6235695, + 44.8616583 + ], + [ + 3.6424823, + 44.8616739 + ], + [ + 3.642549, + 44.821102 + ], + [ + 3.6610055, + 44.8211172 + ], + [ + 3.6610275, + 44.8077696 + ], + [ + 3.6992999, + 44.8078013 + ], + [ + 3.6992782, + 44.820994 + ], + [ + 3.7361139, + 44.8210245 + ], + [ + 3.7361819, + 44.7797075 + ], + [ + 3.7751058, + 44.7797397 + ], + [ + 3.775151, + 44.7522344 + ], + [ + 3.8118352, + 44.7522648 + ], + [ + 3.8118567, + 44.7392021 + ], + [ + 3.8311822, + 44.7392181 + ], + [ + 3.8312061, + 44.7246766 + ], + [ + 3.887824, + 44.7247235 + ], + [ + 3.8878019, + 44.7381833 + ], + [ + 3.925626, + 44.7382146 + ], + [ + 3.9256039, + 44.7516682 + ], + [ + 3.9454097, + 44.7516846 + ], + [ + 3.9453656, + 44.7784691 + ], + [ + 3.9643737, + 44.7784848 + ], + [ + 3.9643516, + 44.7919273 + ], + [ + 4.0033183, + 44.7919596 + ], + [ + 4.0032964, + 44.8052575 + ], + [ + 4.0216937, + 44.8052727 + ], + [ + 4.0216718, + 44.8185687 + ], + [ + 4.0596515, + 44.8186001 + ], + [ + 4.0596082, + 44.8449216 + ], + [ + 4.0798132, + 44.8449383 + ], + [ + 4.0797928, + 44.8573502 + ], + [ + 4.173882, + 44.857428 + ], + [ + 4.1738604, + 44.8705468 + ], + [ + 4.1932576, + 44.8705628 + ], + [ + 4.193235, + 44.8842744 + ], + [ + 4.2140385, + 44.8842916 + ], + [ + 4.2139961, + 44.9100242 + ], + [ + 4.2324138, + 44.9100394 + ], + [ + 4.2323689, + 44.9373093 + ], + [ + 4.2715486, + 44.9373416 + ], + [ + 4.2715273, + 44.9502971 + ], + [ + 4.3288672, + 44.9503445 + ], + [ + 4.3287793, + 45.0036659 + ], + [ + 4.3489259, + 45.0036825 + ], + [ + 4.3489038, + 45.0170656 + ], + [ + 4.4060793, + 45.0171127 + ], + [ + 4.4059904, + 45.0710024 + ], + [ + 4.3884707, + 45.0709879 + ], + [ + 4.3884482, + 45.0845976 + ], + [ + 4.407943, + 45.0846137 + ], + [ + 4.4079231, + 45.09663 + ], + [ + 4.4843608, + 45.0966929 + ], + [ + 4.4842941, + 45.1370472 + ], + [ + 4.4663631, + 45.1370324 + ], + [ + 4.4663413, + 45.1502035 + ], + [ + 4.4864469, + 45.15022 + ], + [ + 4.4864022, + 45.1772415 + ], + [ + 4.5065524, + 45.177258 + ], + [ + 4.5064402, + 45.2450058 + ], + [ + 4.4881342, + 45.2449908 + ], + [ + 4.4881106, + 45.2592077 + ], + [ + 4.4698588, + 45.2591927 + ], + [ + 4.469836, + 45.2729835 + ], + [ + 4.4508849, + 45.2729679 + ], + [ + 4.4508626, + 45.2864203 + ], + [ + 4.3936753, + 45.2863733 + ], + [ + 4.3936303, + 45.3135182 + ], + [ + 4.3750893, + 45.3135029 + ], + [ + 4.3750662, + 45.3274054 + ], + [ + 4.3950734, + 45.3274218 + ], + [ + 4.3950283, + 45.3545849 + ], + [ + 4.3767871, + 45.35457 + ], + [ + 4.3767639, + 45.3685486 + ], + [ + 4.3576564, + 45.3685329 + ], + [ + 4.3576335, + 45.3823359 + ], + [ + 4.2814576, + 45.3822734 + ], + [ + 4.2814334, + 45.3968834 + ], + [ + 4.2444556, + 45.3968531 + ], + [ + 4.2444325, + 45.4107893 + ], + [ + 4.1481178, + 45.4107104 + ], + [ + 4.1481388, + 45.3980659 + ], + [ + 4.1291913, + 45.3980504 + ], + [ + 4.1292145, + 45.3840899 + ], + [ + 4.0902138, + 45.3840579 + ], + [ + 4.0902351, + 45.3712093 + ], + [ + 4.0135507, + 45.3711464 + ], + [ + 4.0135259, + 45.3860975 + ], + [ + 3.9170932, + 45.3860185 + ], + [ + 3.9170704, + 45.3997355 + ], + [ + 3.9375703, + 45.3997523 + ], + [ + 3.9375481, + 45.4131142 + ], + [ + 3.975277, + 45.4131451 + ], + [ + 3.9752552, + 45.4262061 + ], + [ + 3.9953725, + 45.4262226 + ], + [ + 3.9956999, + 45.5209568 + ], + [ + 3.9777821, + 45.5209421 + ], + [ + 3.977693, + 45.5743873 + ], + [ + 3.9581755, + 45.5743714 + ], + [ + 3.9581522, + 45.5883658 + ], + [ + 3.9396019, + 45.5883506 + ], + [ + 3.9395781, + 45.6026212 + ], + [ + 3.9202279, + 45.6026054 + ], + [ + 3.9202048, + 45.6164603 + ], + [ + 3.8818916, + 45.616429 + ], + [ + 3.8818468, + 45.643276 + ], + [ + 3.8441329, + 45.6432453 + ], + [ + 3.8441098, + 45.6570896 + ], + [ + 3.8261689, + 45.657075 + ], + [ + 3.8261241, + 45.6838865 + ], + [ + 3.8072175, + 45.6838711 + ], + [ + 3.8071277, + 45.7375802 + ], + [ + 3.7882101, + 45.7375648 + ], + [ + 3.7881863, + 45.7517966 + ], + [ + 3.7688482, + 45.7517809 + ], + [ + 3.7688028, + 45.7789651 + ], + [ + 3.750719, + 45.7789504 + ], + [ + 3.7505822, + 45.8606554 + ], + [ + 3.7696692, + 45.8606709 + ], + [ + 3.7695793, + 45.914333 + ], + [ + 3.751661, + 45.9143185 + ], + [ + 3.7516379, + 45.9280879 + ], + [ + 3.7328974, + 45.9280727 + ], + [ + 3.7328527, + 45.9547155 + ], + [ + 3.8101795, + 45.9547782 + ], + [ + 3.8101569, + 45.9682278 + ], + [ + 3.8495994, + 45.9682598 + ], + [ + 3.8495098, + 46.0216192 + ], + [ + 3.8318849, + 46.0216049 + ], + [ + 3.8317936, + 46.0759058 + ], + [ + 3.8505037, + 46.0759209 + ], + [ + 3.8504583, + 46.1029545 + ], + [ + 3.8324727, + 46.10294 + ], + [ + 3.8323353, + 46.1845598 + ], + [ + 3.8142194, + 46.1845452 + ], + [ + 3.8141522, + 46.2244234 + ], + [ + 3.8336864, + 46.2244392 + ], + [ + 3.8336634, + 46.2381001 + ], + [ + 3.8528929, + 46.2381156 + ], + [ + 3.8528703, + 46.2514729 + ], + [ + 3.8931424, + 46.2515054 + ], + [ + 3.8931205, + 46.2644677 + ], + [ + 3.9130562, + 46.2644838 + ], + [ + 3.9130335, + 46.2779317 + ], + [ + 3.9518926, + 46.2779631 + ], + [ + 3.9518709, + 46.2908227 + ], + [ + 3.971523, + 46.2908386 + ], + [ + 3.9715012, + 46.3036947 + ], + [ + 4.0105021, + 46.3037261 + ], + [ + 4.0104784, + 46.3177638 + ], + [ + 4.0298278, + 46.3177794 + ], + [ + 4.029783, + 46.3442827 + ], + [ + 4.0116018, + 46.344268 + ], + [ + 4.0114647, + 46.4253437 + ], + [ + 4.031532, + 46.4253598 + ], + [ + 4.0314635, + 46.4657978 + ], + [ + 4.0132435, + 46.4657832 + ], + [ + 4.0132204, + 46.479378 + ], + [ + 3.9943703, + 46.4793629 + ], + [ + 3.9943461, + 46.4936113 + ], + [ + 3.9745971, + 46.4935955 + ], + [ + 3.9745735, + 46.5075278 + ], + [ + 3.8775423, + 46.5074499 + ], + [ + 3.8774959, + 46.5347758 + ], + [ + 3.8583577, + 46.5347605 + ], + [ + 3.8583347, + 46.5483156 + ], + [ + 3.8186897, + 46.5482838 + ], + [ + 3.8187114, + 46.5355316 + ], + [ + 3.7992386, + 46.535516 + ], + [ + 3.7992156, + 46.5490706 + ], + [ + 3.7610377, + 46.5490399 + ], + [ + 3.7609226, + 46.6168059 + ], + [ + 3.7423295, + 46.616791 + ], + [ + 3.7422834, + 46.6439624 + ], + [ + 3.7228558, + 46.6439468 + ], + [ + 3.7228098, + 46.6710357 + ], + [ + 3.7038706, + 46.6710206 + ], + [ + 3.7038474, + 46.6846709 + ], + [ + 3.6841096, + 46.6846551 + ], + [ + 3.6840631, + 46.711998 + ], + [ + 3.6648359, + 46.7119826 + ], + [ + 3.6647898, + 46.7390375 + ], + [ + 3.6457623, + 46.7390222 + ], + [ + 3.6457158, + 46.7663375 + ], + [ + 3.6257542, + 46.7663216 + ], + [ + 3.6257314, + 46.7797093 + ], + [ + 3.5672301, + 46.7796626 + ], + [ + 3.5672528, + 46.7663082 + ], + [ + 3.5471462, + 46.7662922 + ], + [ + 3.5471922, + 46.7392824 + ], + [ + 3.5271621, + 46.7392664 + ], + [ + 3.5272308, + 46.6988967 + ], + [ + 3.4877399, + 46.6988651 + ], + [ + 3.4877618, + 46.685943 + ], + [ + 3.4679636, + 46.6859272 + ], + [ + 3.4679407, + 46.6994059 + ], + [ + 3.4679179, + 46.7127907 + ], + [ + 3.4486497, + 46.7127753 + ], + [ + 3.4486258, + 46.7267878 + ], + [ + 3.350433, + 46.7267092 + ], + [ + 3.3504786, + 46.6999004 + ], + [ + 3.3303913, + 46.6998843 + ], + [ + 3.3303448, + 46.7271984 + ], + [ + 3.2327174, + 46.7271203 + ], + [ + 3.2327406, + 46.7135148 + ], + [ + 3.2129042, + 46.7134989 + ], + [ + 3.212927, + 46.7001302 + ], + [ + 3.1735446, + 46.7000987 + ], + [ + 3.173498, + 46.7275094 + ], + [ + 3.1541227, + 46.7274939 + ], + [ + 3.1541002, + 46.7407271 + ], + [ + 3.1147772, + 46.7406957 + ], + [ + 3.114754, + 46.7542756 + ], + [ + 3.0753432, + 46.7542441 + ], + [ + 3.0752971, + 46.7813548 + ], + [ + 3.05597, + 46.7813394 + ], + [ + 3.055924, + 46.8083069 + ], + [ + 2.99704, + 46.8082598 + ], + [ + 2.9970166, + 46.8219593 + ], + [ + 2.9379443, + 46.8219121 + ], + [ + 2.9379675, + 46.8082604 + ], + [ + 2.8986634, + 46.808229 + ], + [ + 2.8986872, + 46.7942392 + ], + [ + 2.878991, + 46.7942234 + ], + [ + 2.8790134, + 46.7810427 + ], + [ + 2.8594188, + 46.781027 + ], + [ + 2.8594415, + 46.7677056 + ], + [ + 2.8400446, + 46.7676901 + ], + [ + 2.8400671, + 46.754466 + ], + [ + 2.7414032, + 46.7543871 + ], + [ + 2.741382, + 46.7668245 + ], + [ + 2.7023351, + 46.7667932 + ], + [ + 2.7023571, + 46.7538869 + ], + [ + 2.6826621, + 46.7538711 + ], + [ + 2.6826849, + 46.7404752 + ], + [ + 2.6634875, + 46.7404599 + ], + [ + 2.6635123, + 46.7258966 + ], + [ + 2.6434164, + 46.7258805 + ], + [ + 2.6434382, + 46.7130938 + ], + [ + 2.6241432, + 46.7130784 + ], + [ + 2.6241658, + 46.6998093 + ], + [ + 2.6039699, + 46.6997931 + ], + [ + 2.6039936, + 46.6858433 + ], + [ + 2.5651245, + 46.6858122 + ], + [ + 2.5651469, + 46.6726126 + ], + [ + 2.5459278, + 46.6725972 + ], + [ + 2.5459966, + 46.6321534 + ], + [ + 2.5659222, + 46.6321694 + ], + [ + 2.565946, + 46.6181104 + ], + [ + 2.5456397, + 46.6180941 + ], + [ + 2.5456862, + 46.5907192 + ], + [ + 2.5664225, + 46.5907358 + ], + [ + 2.5664449, + 46.5775417 + ], + [ + 2.5854963, + 46.577557 + ], + [ + 2.5855181, + 46.5647199 + ], + [ + 2.5661318, + 46.5647044 + ], + [ + 2.5661557, + 46.5506246 + ], + [ + 2.468279, + 46.5505461 + ], + [ + 2.4683039, + 46.5358205 + ], + [ + 2.3321246, + 46.5357112 + ], + [ + 2.3321701, + 46.5088566 + ], + [ + 2.3126474, + 46.5088409 + ], + [ + 2.3126703, + 46.4953444 + ], + [ + 2.2928767, + 46.4953285 + ], + [ + 2.2928996, + 46.4818182 + ], + [ + 2.2748687, + 46.4818037 + ], + [ + 2.2749151, + 46.4544154 + ], + [ + 2.2553921, + 46.4543997 + ], + [ + 2.255529, + 46.3734888 + ], + [ + 2.275948, + 46.3735052 + ], + [ + 2.276037, + 46.3208741 + ], + [ + 2.3145615, + 46.3209052 + ], + [ + 2.3145849, + 46.3070421 + ], + [ + 2.3537075, + 46.3070737 + ], + [ + 2.3537313, + 46.2929669 + ], + [ + 2.3938428, + 46.2929992 + ], + [ + 2.3938862, + 46.2672854 + ], + [ + 2.4515727, + 46.267332 + ], + [ + 2.451596, + 46.2534921 + ], + [ + 2.4709353, + 46.2535077 + ], + [ + 2.4709807, + 46.2265552 + ], + [ + 2.4915062, + 46.2265718 + ], + [ + 2.4915521, + 46.199329 + ], + [ + 2.5108806, + 46.1993446 + ], + [ + 2.5109254, + 46.1727799 + ], + [ + 2.5311728, + 46.1727963 + ], + [ + 2.5313772, + 46.051352 + ], + [ + 2.5516349, + 46.0513684 + ], + [ + 2.5516577, + 46.0377665 + ], + [ + 2.5705635, + 46.0377818 + ], + [ + 2.5706774, + 45.9699434 + ], + [ + 2.5514356, + 45.9699278 + ], + [ + 2.551458, + 45.9566151 + ], + [ + 2.5322621, + 45.9565995 + ], + [ + 2.5322849, + 45.9430066 + ], + [ + 2.5130653, + 45.942991 + ], + [ + 2.513134, + 45.9020279 + ], + [ + 2.4749412, + 45.9019969 + ], + [ + 2.4749633, + 45.8888235 + ], + [ + 2.4361947, + 45.888792 + ], + [ + 2.4362172, + 45.8753288 + ], + [ + 2.417209, + 45.8753133 + ], + [ + 2.4172548, + 45.8479368 + ], + [ + 2.3784736, + 45.8479053 + ], + [ + 2.378497, + 45.8339746 + ], + [ + 2.3595157, + 45.8339592 + ], + [ + 2.3595606, + 45.8070849 + ], + [ + 2.3787254, + 45.8071005 + ], + [ + 2.3787481, + 45.7935783 + ], + [ + 2.3986981, + 45.7935945 + ], + [ + 2.3987203, + 45.7803477 + ], + [ + 2.4182486, + 45.7803636 + ], + [ + 2.4183161, + 45.7400007 + ], + [ + 2.4572171, + 45.7400324 + ], + [ + 2.4572394, + 45.7266956 + ], + [ + 2.4758919, + 45.7267107 + ], + [ + 2.4759144, + 45.7132391 + ], + [ + 2.49533, + 45.7132549 + ], + [ + 2.4954204, + 45.6591268 + ], + [ + 2.4576942, + 45.659096 + ], + [ + 2.4577622, + 45.618343 + ], + [ + 2.4391188, + 45.6183278 + ], + [ + 2.4391866, + 45.5776619 + ], + [ + 2.4585044, + 45.5776777 + ], + [ + 2.4585496, + 45.5505348 + ], + [ + 2.4780887, + 45.5505508 + ], + [ + 2.4781108, + 45.5372464 + ], + [ + 2.4975506, + 45.5372623 + ], + [ + 2.4975949, + 45.5106757 + ], + [ + 2.4785536, + 45.5106601 + ], + [ + 2.4786444, + 45.4561337 + ], + [ + 2.4597798, + 45.4561183 + ], + [ + 2.4598701, + 45.401757 + ], + [ + 2.4224876, + 45.4017264 + ], + [ + 2.4224651, + 45.4152816 + ], + [ + 2.4023154, + 45.4152651 + ], + [ + 2.4022929, + 45.4288193 + ], + [ + 2.3256006, + 45.4287565 + ], + [ + 2.3256684, + 45.3879609 + ], + [ + 2.3456182, + 45.3879773 + ], + [ + 2.3456629, + 45.3611091 + ], + [ + 2.326256, + 45.3610932 + ], + [ + 2.326279, + 45.3472146 + ], + [ + 2.3073819, + 45.3471991 + ], + [ + 2.3074045, + 45.3335972 + ], + [ + 2.2881095, + 45.3335813 + ], + [ + 2.2881307, + 45.3208191 + ], + [ + 2.2696332, + 45.3208039 + ], + [ + 2.2696574, + 45.306212 + ], + [ + 2.2506602, + 45.3061964 + ], + [ + 2.2506828, + 45.2925147 + ], + [ + 2.2316866, + 45.2924992 + ], + [ + 2.2317086, + 45.2792355 + ], + [ + 2.2130009, + 45.2792202 + ], + [ + 2.213046, + 45.2520355 + ], + [ + 2.1937387, + 45.2520197 + ], + [ + 2.1937617, + 45.2381134 + ], + [ + 2.1756091, + 45.2380985 + ], + [ + 2.1757423, + 45.1576822 + ], + [ + 2.1573543, + 45.157667 + ], + [ + 2.1574448, + 45.1029478 + ], + [ + 2.1202408, + 45.1029172 + ], + [ + 2.1202629, + 45.0895468 + ], + [ + 2.1006669, + 45.0895306 + ], + [ + 2.1006902, + 45.0754441 + ], + [ + 2.0824591, + 45.0754291 + ], + [ + 2.082548, + 45.0215961 + ], + [ + 2.1025534, + 45.0216126 + ], + [ + 2.1025982, + 44.994453 + ], + [ + 2.0457406, + 44.9944061 + ], + [ + 2.0458508, + 44.9275321 + ], + [ + 2.0657794, + 44.9275486 + ], + [ + 2.0658912, + 44.8596881 + ], + [ + 2.0856964, + 44.8597044 + ], + [ + 2.0857193, + 44.8458126 + ], + [ + 2.1055593, + 44.8458291 + ], + [ + 2.1056029, + 44.8193264 + ], + [ + 2.124743, + 44.8193422 + ], + [ + 2.1247657, + 44.805512 + ], + [ + 2.1435067, + 44.8055275 + ], + [ + 2.143551, + 44.778597 + ], + [ + 2.1256091, + 44.7785822 + ], + [ + 2.1256984, + 44.7242739 + ], + [ + 2.1066459, + 44.7242581 + ], + [ + 2.1067116, + 44.6842263 + ], + [ + 2.1263414, + 44.6842426 + ], + [ + 2.1263635, + 44.670735 + ], + [ + 2.14598, + 44.6707513 + ], + [ + 2.146069, + 44.6164441 + ], + [ + 2.1839622, + 44.6164756 + ], + [ + 2.183983, + 44.6037819 + ], + [ + 2.2404173, + 44.6038288 + ], + [ + 2.2403728, + 44.6309515 + ], + [ + 2.25948, + 44.6309674 + ], + [ + 2.2594571, + 44.644934 + ], + [ + 2.316678, + 44.6449815 + ], + [ + 2.3167011, + 44.6308801 + ], + [ + 2.3361516, + 44.6308963 + ], + [ + 2.3361734, + 44.6175824 + ], + [ + 2.3724238, + 44.6176125 + ], + [ + 2.3724009, + 44.6315823 + ], + [ + 2.4110495, + 44.6316144 + ], + [ + 2.4110701, + 44.6190741 + ], + [ + 2.4492173, + 44.6191058 + ], + [ + 2.4491956, + 44.6323197 + ], + [ + 2.5048575, + 44.6323659 + ], + [ + 2.5048126, + 44.6597555 + ], + [ + 2.5246119, + 44.6597719 + ], + [ + 2.524567, + 44.6871739 + ], + [ + 2.5422544, + 44.6871886 + ], + [ + 2.5422313, + 44.70122 + ], + [ + 2.5807101, + 44.701252 + ], + [ + 2.5805999, + 44.7683374 + ], + [ + 2.61769, + 44.7683681 + ], + [ + 2.6176235, + 44.808838 + ], + [ + 2.6367564, + 44.8088539 + ], + [ + 2.6366899, + 44.8492948 + ], + [ + 2.6733105, + 44.8493251 + ], + [ + 2.6732888, + 44.8625164 + ], + [ + 2.6933766, + 44.862533 + ], + [ + 2.6933323, + 44.8894303 + ], + [ + 2.7305201, + 44.8894611 + ], + [ + 2.7304757, + 44.9164461 + ], + [ + 2.7499202, + 44.9164622 + ], + [ + 2.7500519, + 44.8364688 + ], + [ + 2.8073346, + 44.8365162 + ], + [ + 2.8073139, + 44.8491017 + ], + [ + 2.8263796, + 44.8491175 + ], + [ + 2.8264007, + 44.8362845 + ], + [ + 2.8457039, + 44.8363004 + ], + [ + 2.8457707, + 44.7957107 + ], + [ + 2.8642166, + 44.795726 + ], + [ + 2.8642611, + 44.7686452 + ], + [ + 2.8839885, + 44.7686615 + ], + [ + 2.8840323, + 44.7419697 + ], + [ + 2.9020315, + 44.7419846 + ], + [ + 2.9021426, + 44.6743192 + ], + [ + 2.9219777, + 44.6743357 + ], + [ + 2.9220221, + 44.6472986 + ], + [ + 2.9400972, + 44.6473136 + ], + [ + 2.9401192, + 44.6338837 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", + "terms_text": "Orthophotographie CRAIG/Sintegra/IGN 2013" + }, { "id": "BANO", "name": "BANO", @@ -16675,6 +18625,283 @@ ], "terms_text": "Communauté urbaine de Bordeaux - 2012" }, + { + "id": "Bordeaux_2016", + "name": "Bordeaux 2016", + "type": "tms", + "template": "http://tms.bordeaux.inria.fr/bdx2016/{zoom}/{x}/{y}.jpg", + "endDate": "2016-01-01T00:00:00.000Z", + "startDate": "2016-01-01T00:00:00.000Z", + "scaleExtent": [ + 14, + 20 + ], + "polygon": [ + [ + [ + -0.5992269128228901, + 45.041932410852176 + ], + [ + -0.542312560140509, + 45.02756808640373 + ], + [ + -0.509790072893434, + 45.006014839274926 + ], + [ + -0.4772675856463589, + 45.002062530648324 + ], + [ + -0.47066145542429677, + 44.97366975755017 + ], + [ + -0.4554165395272304, + 44.95101733966983 + ], + [ + -0.4645634890654702, + 44.91792155099146 + ], + [ + -0.47320227474047455, + 44.91936089493768 + ], + [ + -0.48793902677430534, + 44.90928473014602 + ], + [ + -0.49810230403901634, + 44.89056716544938 + ], + [ + -0.48946351836401203, + 44.87796537368711 + ], + [ + -0.46659614451841236, + 44.87076311041642 + ], + [ + -0.4762512579198878, + 44.84734952959955 + ], + [ + -0.4950533208596031, + 44.839783107079846 + ], + [ + -0.4909880099537187, + 44.83185531284354 + ], + [ + -0.46964512769782574, + 44.825368124499924 + ], + [ + -0.4970859763125452, + 44.80445999547304 + ], + [ + -0.5245268249272648, + 44.80013322923096 + ], + [ + -0.5102982367566694, + 44.76767213918935 + ], + [ + -0.5346901021919757, + 44.76514662270613 + ], + [ + -0.5621309508066953, + 44.75107386670688 + ], + [ + -0.5600982953537531, + 44.7416901252491 + ], + [ + -0.5728023919346418, + 44.741329181695264 + ], + [ + -0.5946534380537702, + 44.760095258488434 + ], + [ + -0.6342902193861429, + 44.73988538494593 + ], + [ + -0.650043299146445, + 44.7770516622697 + ], + [ + -0.6790086393508712, + 44.77488729214841 + ], + [ + -0.688155588889111, + 44.779215951267936 + ], + [ + -0.7150882736405949, + 44.76839369504671 + ], + [ + -0.7516760717935543, + 44.74710400814933 + ], + [ + -0.7633638406479719, + 44.755765166198834 + ], + [ + -0.7384638113494302, + 44.77560875786918 + ], + [ + -0.7420209583920789, + 44.785708331523864 + ], + [ + -0.7277923702214837, + 44.81239155746571 + ], + [ + -0.7399883029391369, + 44.828611809936305 + ], + [ + -0.7643801683744431, + 44.82933260413425 + ], + [ + -0.8030006219803447, + 44.821763815493405 + ], + [ + -0.8400965839965395, + 44.82753060173851 + ], + [ + -0.8390802562700685, + 44.840143435448645 + ], + [ + -0.875668054423028, + 44.8502317148731 + ], + [ + -0.8853231678245034, + 44.85851719417739 + ], + [ + -0.88684765941421, + 44.887686999278294 + ], + [ + -0.8660129410215526, + 44.88696693520083 + ], + [ + -0.8456863864921306, + 44.8966870397005 + ], + [ + -0.8334904537744775, + 44.92763642292355 + ], + [ + -0.818245537877411, + 44.92763642292355 + ], + [ + -0.8019842942538735, + 44.92223947466319 + ], + [ + -0.7984271472112248, + 44.94849985224626 + ], + [ + -0.7872475422200427, + 44.948140202171814 + ], + [ + -0.7557413826994388, + 44.97007473283782 + ], + [ + -0.7216944038626572, + 44.95784996320919 + ], + [ + -0.6957780468376442, + 44.930874348504034 + ], + [ + -0.6886637527523465, + 44.93447182951288 + ], + [ + -0.6713861814023379, + 44.93267311717697 + ], + [ + -0.6693535259493957, + 44.940946727451696 + ], + [ + -0.6251432698479031, + 44.95065770536977 + ], + [ + -0.6322575639332009, + 44.95892872413991 + ], + [ + -0.6312412362067297, + 44.96719855081702 + ], + [ + -0.6002432405493613, + 44.967558081456815 + ], + [ + -0.5514595096787488, + 44.97834295278015 + ], + [ + -0.5407880685508023, + 44.97726455691398 + ], + [ + -0.5545084928581621, + 44.99739126890938 + ], + [ + -0.5936371103272993, + 45.01751091397198 + ], + [ + -0.6078656984978945, + 45.0340324785955 + ], + [ + -0.5992269128228901, + 45.041932410852176 + ] + ] + ], + "terms_text": "Bordeaux Métropole - 2016" + }, { "id": "branquinha_al", "name": "Branquinha AL", @@ -27941,1956 +30168,6 @@ "best": true, "description": "OpenStreetMap use only. City of Cape Town Aerial ortho-photography of the municipal area. 8cm ground sample distance" }, - { - "id": "CRAIG-Auvergne-2013", - "name": "CRAIG - Auvergne 2013 - 25 cm", - "type": "tms", - "template": "http://tiles.craig.fr/osm/tms/1.0.0/ortho_2013/webmercator/{zoom-1}/{x}/{-y}.jpeg", - "endDate": "2013-01-01T00:00:00.000Z", - "startDate": "2013-01-01T00:00:00.000Z", - "polygon": [ - [ - [ - 2.9401192, - 44.6338837 - ], - [ - 2.9971896, - 44.633931 - ], - [ - 2.9971676, - 44.6473385 - ], - [ - 3.0159744, - 44.6473541 - ], - [ - 3.0159305, - 44.6741168 - ], - [ - 3.0349486, - 44.6741326 - ], - [ - 3.0349036, - 44.7015216 - ], - [ - 3.0536338, - 44.7015371 - ], - [ - 3.0535675, - 44.7418954 - ], - [ - 3.0723301, - 44.741911 - ], - [ - 3.0722196, - 44.8091687 - ], - [ - 3.0921583, - 44.8091852 - ], - [ - 3.092137, - 44.8221252 - ], - [ - 3.1301398, - 44.8221567 - ], - [ - 3.1300495, - 44.8770722 - ], - [ - 3.1485587, - 44.8770875 - ], - [ - 3.1485807, - 44.8636964 - ], - [ - 3.1682313, - 44.8637126 - ], - [ - 3.1682538, - 44.8500261 - ], - [ - 3.2064, - 44.8500576 - ], - [ - 3.2063789, - 44.8628393 - ], - [ - 3.2439492, - 44.8628704 - ], - [ - 3.2439263, - 44.8767893 - ], - [ - 3.2631452, - 44.8768052 - ], - [ - 3.2630782, - 44.9175197 - ], - [ - 3.3200437, - 44.9175667 - ], - [ - 3.3200227, - 44.9303336 - ], - [ - 3.3390815, - 44.9303493 - ], - [ - 3.3390586, - 44.9441978 - ], - [ - 3.3769989, - 44.9442292 - ], - [ - 3.3770218, - 44.9302879 - ], - [ - 3.396031, - 44.9303036 - ], - [ - 3.39612, - 44.8762713 - ], - [ - 3.4148252, - 44.8762867 - ], - [ - 3.4148923, - 44.8355255 - ], - [ - 3.4333371, - 44.8355408 - ], - [ - 3.4333819, - 44.8082784 - ], - [ - 3.4525549, - 44.8082943 - ], - [ - 3.4525774, - 44.7946344 - ], - [ - 3.5089262, - 44.7946811 - ], - [ - 3.508904, - 44.8081469 - ], - [ - 3.604265, - 44.8082258 - ], - [ - 3.6042213, - 44.8348239 - ], - [ - 3.6236136, - 44.83484 - ], - [ - 3.6235695, - 44.8616583 - ], - [ - 3.6424823, - 44.8616739 - ], - [ - 3.642549, - 44.821102 - ], - [ - 3.6610055, - 44.8211172 - ], - [ - 3.6610275, - 44.8077696 - ], - [ - 3.6992999, - 44.8078013 - ], - [ - 3.6992782, - 44.820994 - ], - [ - 3.7361139, - 44.8210245 - ], - [ - 3.7361819, - 44.7797075 - ], - [ - 3.7751058, - 44.7797397 - ], - [ - 3.775151, - 44.7522344 - ], - [ - 3.8118352, - 44.7522648 - ], - [ - 3.8118567, - 44.7392021 - ], - [ - 3.8311822, - 44.7392181 - ], - [ - 3.8312061, - 44.7246766 - ], - [ - 3.887824, - 44.7247235 - ], - [ - 3.8878019, - 44.7381833 - ], - [ - 3.925626, - 44.7382146 - ], - [ - 3.9256039, - 44.7516682 - ], - [ - 3.9454097, - 44.7516846 - ], - [ - 3.9453656, - 44.7784691 - ], - [ - 3.9643737, - 44.7784848 - ], - [ - 3.9643516, - 44.7919273 - ], - [ - 4.0033183, - 44.7919596 - ], - [ - 4.0032964, - 44.8052575 - ], - [ - 4.0216937, - 44.8052727 - ], - [ - 4.0216718, - 44.8185687 - ], - [ - 4.0596515, - 44.8186001 - ], - [ - 4.0596082, - 44.8449216 - ], - [ - 4.0798132, - 44.8449383 - ], - [ - 4.0797928, - 44.8573502 - ], - [ - 4.173882, - 44.857428 - ], - [ - 4.1738604, - 44.8705468 - ], - [ - 4.1932576, - 44.8705628 - ], - [ - 4.193235, - 44.8842744 - ], - [ - 4.2140385, - 44.8842916 - ], - [ - 4.2139961, - 44.9100242 - ], - [ - 4.2324138, - 44.9100394 - ], - [ - 4.2323689, - 44.9373093 - ], - [ - 4.2715486, - 44.9373416 - ], - [ - 4.2715273, - 44.9502971 - ], - [ - 4.3288672, - 44.9503445 - ], - [ - 4.3287793, - 45.0036659 - ], - [ - 4.3489259, - 45.0036825 - ], - [ - 4.3489038, - 45.0170656 - ], - [ - 4.4060793, - 45.0171127 - ], - [ - 4.4059904, - 45.0710024 - ], - [ - 4.3884707, - 45.0709879 - ], - [ - 4.3884482, - 45.0845976 - ], - [ - 4.407943, - 45.0846137 - ], - [ - 4.4079231, - 45.09663 - ], - [ - 4.4843608, - 45.0966929 - ], - [ - 4.4842941, - 45.1370472 - ], - [ - 4.4663631, - 45.1370324 - ], - [ - 4.4663413, - 45.1502035 - ], - [ - 4.4864469, - 45.15022 - ], - [ - 4.4864022, - 45.1772415 - ], - [ - 4.5065524, - 45.177258 - ], - [ - 4.5064402, - 45.2450058 - ], - [ - 4.4881342, - 45.2449908 - ], - [ - 4.4881106, - 45.2592077 - ], - [ - 4.4698588, - 45.2591927 - ], - [ - 4.469836, - 45.2729835 - ], - [ - 4.4508849, - 45.2729679 - ], - [ - 4.4508626, - 45.2864203 - ], - [ - 4.3936753, - 45.2863733 - ], - [ - 4.3936303, - 45.3135182 - ], - [ - 4.3750893, - 45.3135029 - ], - [ - 4.3750662, - 45.3274054 - ], - [ - 4.3950734, - 45.3274218 - ], - [ - 4.3950283, - 45.3545849 - ], - [ - 4.3767871, - 45.35457 - ], - [ - 4.3767639, - 45.3685486 - ], - [ - 4.3576564, - 45.3685329 - ], - [ - 4.3576335, - 45.3823359 - ], - [ - 4.2814576, - 45.3822734 - ], - [ - 4.2814334, - 45.3968834 - ], - [ - 4.2444556, - 45.3968531 - ], - [ - 4.2444325, - 45.4107893 - ], - [ - 4.1481178, - 45.4107104 - ], - [ - 4.1481388, - 45.3980659 - ], - [ - 4.1291913, - 45.3980504 - ], - [ - 4.1292145, - 45.3840899 - ], - [ - 4.0902138, - 45.3840579 - ], - [ - 4.0902351, - 45.3712093 - ], - [ - 4.0135507, - 45.3711464 - ], - [ - 4.0135259, - 45.3860975 - ], - [ - 3.9170932, - 45.3860185 - ], - [ - 3.9170704, - 45.3997355 - ], - [ - 3.9375703, - 45.3997523 - ], - [ - 3.9375481, - 45.4131142 - ], - [ - 3.975277, - 45.4131451 - ], - [ - 3.9752552, - 45.4262061 - ], - [ - 3.9953725, - 45.4262226 - ], - [ - 3.9956999, - 45.5209568 - ], - [ - 3.9777821, - 45.5209421 - ], - [ - 3.977693, - 45.5743873 - ], - [ - 3.9581755, - 45.5743714 - ], - [ - 3.9581522, - 45.5883658 - ], - [ - 3.9396019, - 45.5883506 - ], - [ - 3.9395781, - 45.6026212 - ], - [ - 3.9202279, - 45.6026054 - ], - [ - 3.9202048, - 45.6164603 - ], - [ - 3.8818916, - 45.616429 - ], - [ - 3.8818468, - 45.643276 - ], - [ - 3.8441329, - 45.6432453 - ], - [ - 3.8441098, - 45.6570896 - ], - [ - 3.8261689, - 45.657075 - ], - [ - 3.8261241, - 45.6838865 - ], - [ - 3.8072175, - 45.6838711 - ], - [ - 3.8071277, - 45.7375802 - ], - [ - 3.7882101, - 45.7375648 - ], - [ - 3.7881863, - 45.7517966 - ], - [ - 3.7688482, - 45.7517809 - ], - [ - 3.7688028, - 45.7789651 - ], - [ - 3.750719, - 45.7789504 - ], - [ - 3.7505822, - 45.8606554 - ], - [ - 3.7696692, - 45.8606709 - ], - [ - 3.7695793, - 45.914333 - ], - [ - 3.751661, - 45.9143185 - ], - [ - 3.7516379, - 45.9280879 - ], - [ - 3.7328974, - 45.9280727 - ], - [ - 3.7328527, - 45.9547155 - ], - [ - 3.8101795, - 45.9547782 - ], - [ - 3.8101569, - 45.9682278 - ], - [ - 3.8495994, - 45.9682598 - ], - [ - 3.8495098, - 46.0216192 - ], - [ - 3.8318849, - 46.0216049 - ], - [ - 3.8317936, - 46.0759058 - ], - [ - 3.8505037, - 46.0759209 - ], - [ - 3.8504583, - 46.1029545 - ], - [ - 3.8324727, - 46.10294 - ], - [ - 3.8323353, - 46.1845598 - ], - [ - 3.8142194, - 46.1845452 - ], - [ - 3.8141522, - 46.2244234 - ], - [ - 3.8336864, - 46.2244392 - ], - [ - 3.8336634, - 46.2381001 - ], - [ - 3.8528929, - 46.2381156 - ], - [ - 3.8528703, - 46.2514729 - ], - [ - 3.8931424, - 46.2515054 - ], - [ - 3.8931205, - 46.2644677 - ], - [ - 3.9130562, - 46.2644838 - ], - [ - 3.9130335, - 46.2779317 - ], - [ - 3.9518926, - 46.2779631 - ], - [ - 3.9518709, - 46.2908227 - ], - [ - 3.971523, - 46.2908386 - ], - [ - 3.9715012, - 46.3036947 - ], - [ - 4.0105021, - 46.3037261 - ], - [ - 4.0104784, - 46.3177638 - ], - [ - 4.0298278, - 46.3177794 - ], - [ - 4.029783, - 46.3442827 - ], - [ - 4.0116018, - 46.344268 - ], - [ - 4.0114647, - 46.4253437 - ], - [ - 4.031532, - 46.4253598 - ], - [ - 4.0314635, - 46.4657978 - ], - [ - 4.0132435, - 46.4657832 - ], - [ - 4.0132204, - 46.479378 - ], - [ - 3.9943703, - 46.4793629 - ], - [ - 3.9943461, - 46.4936113 - ], - [ - 3.9745971, - 46.4935955 - ], - [ - 3.9745735, - 46.5075278 - ], - [ - 3.8775423, - 46.5074499 - ], - [ - 3.8774959, - 46.5347758 - ], - [ - 3.8583577, - 46.5347605 - ], - [ - 3.8583347, - 46.5483156 - ], - [ - 3.8186897, - 46.5482838 - ], - [ - 3.8187114, - 46.5355316 - ], - [ - 3.7992386, - 46.535516 - ], - [ - 3.7992156, - 46.5490706 - ], - [ - 3.7610377, - 46.5490399 - ], - [ - 3.7609226, - 46.6168059 - ], - [ - 3.7423295, - 46.616791 - ], - [ - 3.7422834, - 46.6439624 - ], - [ - 3.7228558, - 46.6439468 - ], - [ - 3.7228098, - 46.6710357 - ], - [ - 3.7038706, - 46.6710206 - ], - [ - 3.7038474, - 46.6846709 - ], - [ - 3.6841096, - 46.6846551 - ], - [ - 3.6840631, - 46.711998 - ], - [ - 3.6648359, - 46.7119826 - ], - [ - 3.6647898, - 46.7390375 - ], - [ - 3.6457623, - 46.7390222 - ], - [ - 3.6457158, - 46.7663375 - ], - [ - 3.6257542, - 46.7663216 - ], - [ - 3.6257314, - 46.7797093 - ], - [ - 3.5672301, - 46.7796626 - ], - [ - 3.5672528, - 46.7663082 - ], - [ - 3.5471462, - 46.7662922 - ], - [ - 3.5471922, - 46.7392824 - ], - [ - 3.5271621, - 46.7392664 - ], - [ - 3.5272308, - 46.6988967 - ], - [ - 3.4877399, - 46.6988651 - ], - [ - 3.4877618, - 46.685943 - ], - [ - 3.4679636, - 46.6859272 - ], - [ - 3.4679407, - 46.6994059 - ], - [ - 3.4679179, - 46.7127907 - ], - [ - 3.4486497, - 46.7127753 - ], - [ - 3.4486258, - 46.7267878 - ], - [ - 3.350433, - 46.7267092 - ], - [ - 3.3504786, - 46.6999004 - ], - [ - 3.3303913, - 46.6998843 - ], - [ - 3.3303448, - 46.7271984 - ], - [ - 3.2327174, - 46.7271203 - ], - [ - 3.2327406, - 46.7135148 - ], - [ - 3.2129042, - 46.7134989 - ], - [ - 3.212927, - 46.7001302 - ], - [ - 3.1735446, - 46.7000987 - ], - [ - 3.173498, - 46.7275094 - ], - [ - 3.1541227, - 46.7274939 - ], - [ - 3.1541002, - 46.7407271 - ], - [ - 3.1147772, - 46.7406957 - ], - [ - 3.114754, - 46.7542756 - ], - [ - 3.0753432, - 46.7542441 - ], - [ - 3.0752971, - 46.7813548 - ], - [ - 3.05597, - 46.7813394 - ], - [ - 3.055924, - 46.8083069 - ], - [ - 2.99704, - 46.8082598 - ], - [ - 2.9970166, - 46.8219593 - ], - [ - 2.9379443, - 46.8219121 - ], - [ - 2.9379675, - 46.8082604 - ], - [ - 2.8986634, - 46.808229 - ], - [ - 2.8986872, - 46.7942392 - ], - [ - 2.878991, - 46.7942234 - ], - [ - 2.8790134, - 46.7810427 - ], - [ - 2.8594188, - 46.781027 - ], - [ - 2.8594415, - 46.7677056 - ], - [ - 2.8400446, - 46.7676901 - ], - [ - 2.8400671, - 46.754466 - ], - [ - 2.7414032, - 46.7543871 - ], - [ - 2.741382, - 46.7668245 - ], - [ - 2.7023351, - 46.7667932 - ], - [ - 2.7023571, - 46.7538869 - ], - [ - 2.6826621, - 46.7538711 - ], - [ - 2.6826849, - 46.7404752 - ], - [ - 2.6634875, - 46.7404599 - ], - [ - 2.6635123, - 46.7258966 - ], - [ - 2.6434164, - 46.7258805 - ], - [ - 2.6434382, - 46.7130938 - ], - [ - 2.6241432, - 46.7130784 - ], - [ - 2.6241658, - 46.6998093 - ], - [ - 2.6039699, - 46.6997931 - ], - [ - 2.6039936, - 46.6858433 - ], - [ - 2.5651245, - 46.6858122 - ], - [ - 2.5651469, - 46.6726126 - ], - [ - 2.5459278, - 46.6725972 - ], - [ - 2.5459966, - 46.6321534 - ], - [ - 2.5659222, - 46.6321694 - ], - [ - 2.565946, - 46.6181104 - ], - [ - 2.5456397, - 46.6180941 - ], - [ - 2.5456862, - 46.5907192 - ], - [ - 2.5664225, - 46.5907358 - ], - [ - 2.5664449, - 46.5775417 - ], - [ - 2.5854963, - 46.577557 - ], - [ - 2.5855181, - 46.5647199 - ], - [ - 2.5661318, - 46.5647044 - ], - [ - 2.5661557, - 46.5506246 - ], - [ - 2.468279, - 46.5505461 - ], - [ - 2.4683039, - 46.5358205 - ], - [ - 2.3321246, - 46.5357112 - ], - [ - 2.3321701, - 46.5088566 - ], - [ - 2.3126474, - 46.5088409 - ], - [ - 2.3126703, - 46.4953444 - ], - [ - 2.2928767, - 46.4953285 - ], - [ - 2.2928996, - 46.4818182 - ], - [ - 2.2748687, - 46.4818037 - ], - [ - 2.2749151, - 46.4544154 - ], - [ - 2.2553921, - 46.4543997 - ], - [ - 2.255529, - 46.3734888 - ], - [ - 2.275948, - 46.3735052 - ], - [ - 2.276037, - 46.3208741 - ], - [ - 2.3145615, - 46.3209052 - ], - [ - 2.3145849, - 46.3070421 - ], - [ - 2.3537075, - 46.3070737 - ], - [ - 2.3537313, - 46.2929669 - ], - [ - 2.3938428, - 46.2929992 - ], - [ - 2.3938862, - 46.2672854 - ], - [ - 2.4515727, - 46.267332 - ], - [ - 2.451596, - 46.2534921 - ], - [ - 2.4709353, - 46.2535077 - ], - [ - 2.4709807, - 46.2265552 - ], - [ - 2.4915062, - 46.2265718 - ], - [ - 2.4915521, - 46.199329 - ], - [ - 2.5108806, - 46.1993446 - ], - [ - 2.5109254, - 46.1727799 - ], - [ - 2.5311728, - 46.1727963 - ], - [ - 2.5313772, - 46.051352 - ], - [ - 2.5516349, - 46.0513684 - ], - [ - 2.5516577, - 46.0377665 - ], - [ - 2.5705635, - 46.0377818 - ], - [ - 2.5706774, - 45.9699434 - ], - [ - 2.5514356, - 45.9699278 - ], - [ - 2.551458, - 45.9566151 - ], - [ - 2.5322621, - 45.9565995 - ], - [ - 2.5322849, - 45.9430066 - ], - [ - 2.5130653, - 45.942991 - ], - [ - 2.513134, - 45.9020279 - ], - [ - 2.4749412, - 45.9019969 - ], - [ - 2.4749633, - 45.8888235 - ], - [ - 2.4361947, - 45.888792 - ], - [ - 2.4362172, - 45.8753288 - ], - [ - 2.417209, - 45.8753133 - ], - [ - 2.4172548, - 45.8479368 - ], - [ - 2.3784736, - 45.8479053 - ], - [ - 2.378497, - 45.8339746 - ], - [ - 2.3595157, - 45.8339592 - ], - [ - 2.3595606, - 45.8070849 - ], - [ - 2.3787254, - 45.8071005 - ], - [ - 2.3787481, - 45.7935783 - ], - [ - 2.3986981, - 45.7935945 - ], - [ - 2.3987203, - 45.7803477 - ], - [ - 2.4182486, - 45.7803636 - ], - [ - 2.4183161, - 45.7400007 - ], - [ - 2.4572171, - 45.7400324 - ], - [ - 2.4572394, - 45.7266956 - ], - [ - 2.4758919, - 45.7267107 - ], - [ - 2.4759144, - 45.7132391 - ], - [ - 2.49533, - 45.7132549 - ], - [ - 2.4954204, - 45.6591268 - ], - [ - 2.4576942, - 45.659096 - ], - [ - 2.4577622, - 45.618343 - ], - [ - 2.4391188, - 45.6183278 - ], - [ - 2.4391866, - 45.5776619 - ], - [ - 2.4585044, - 45.5776777 - ], - [ - 2.4585496, - 45.5505348 - ], - [ - 2.4780887, - 45.5505508 - ], - [ - 2.4781108, - 45.5372464 - ], - [ - 2.4975506, - 45.5372623 - ], - [ - 2.4975949, - 45.5106757 - ], - [ - 2.4785536, - 45.5106601 - ], - [ - 2.4786444, - 45.4561337 - ], - [ - 2.4597798, - 45.4561183 - ], - [ - 2.4598701, - 45.401757 - ], - [ - 2.4224876, - 45.4017264 - ], - [ - 2.4224651, - 45.4152816 - ], - [ - 2.4023154, - 45.4152651 - ], - [ - 2.4022929, - 45.4288193 - ], - [ - 2.3256006, - 45.4287565 - ], - [ - 2.3256684, - 45.3879609 - ], - [ - 2.3456182, - 45.3879773 - ], - [ - 2.3456629, - 45.3611091 - ], - [ - 2.326256, - 45.3610932 - ], - [ - 2.326279, - 45.3472146 - ], - [ - 2.3073819, - 45.3471991 - ], - [ - 2.3074045, - 45.3335972 - ], - [ - 2.2881095, - 45.3335813 - ], - [ - 2.2881307, - 45.3208191 - ], - [ - 2.2696332, - 45.3208039 - ], - [ - 2.2696574, - 45.306212 - ], - [ - 2.2506602, - 45.3061964 - ], - [ - 2.2506828, - 45.2925147 - ], - [ - 2.2316866, - 45.2924992 - ], - [ - 2.2317086, - 45.2792355 - ], - [ - 2.2130009, - 45.2792202 - ], - [ - 2.213046, - 45.2520355 - ], - [ - 2.1937387, - 45.2520197 - ], - [ - 2.1937617, - 45.2381134 - ], - [ - 2.1756091, - 45.2380985 - ], - [ - 2.1757423, - 45.1576822 - ], - [ - 2.1573543, - 45.157667 - ], - [ - 2.1574448, - 45.1029478 - ], - [ - 2.1202408, - 45.1029172 - ], - [ - 2.1202629, - 45.0895468 - ], - [ - 2.1006669, - 45.0895306 - ], - [ - 2.1006902, - 45.0754441 - ], - [ - 2.0824591, - 45.0754291 - ], - [ - 2.082548, - 45.0215961 - ], - [ - 2.1025534, - 45.0216126 - ], - [ - 2.1025982, - 44.994453 - ], - [ - 2.0457406, - 44.9944061 - ], - [ - 2.0458508, - 44.9275321 - ], - [ - 2.0657794, - 44.9275486 - ], - [ - 2.0658912, - 44.8596881 - ], - [ - 2.0856964, - 44.8597044 - ], - [ - 2.0857193, - 44.8458126 - ], - [ - 2.1055593, - 44.8458291 - ], - [ - 2.1056029, - 44.8193264 - ], - [ - 2.124743, - 44.8193422 - ], - [ - 2.1247657, - 44.805512 - ], - [ - 2.1435067, - 44.8055275 - ], - [ - 2.143551, - 44.778597 - ], - [ - 2.1256091, - 44.7785822 - ], - [ - 2.1256984, - 44.7242739 - ], - [ - 2.1066459, - 44.7242581 - ], - [ - 2.1067116, - 44.6842263 - ], - [ - 2.1263414, - 44.6842426 - ], - [ - 2.1263635, - 44.670735 - ], - [ - 2.14598, - 44.6707513 - ], - [ - 2.146069, - 44.6164441 - ], - [ - 2.1839622, - 44.6164756 - ], - [ - 2.183983, - 44.6037819 - ], - [ - 2.2404173, - 44.6038288 - ], - [ - 2.2403728, - 44.6309515 - ], - [ - 2.25948, - 44.6309674 - ], - [ - 2.2594571, - 44.644934 - ], - [ - 2.316678, - 44.6449815 - ], - [ - 2.3167011, - 44.6308801 - ], - [ - 2.3361516, - 44.6308963 - ], - [ - 2.3361734, - 44.6175824 - ], - [ - 2.3724238, - 44.6176125 - ], - [ - 2.3724009, - 44.6315823 - ], - [ - 2.4110495, - 44.6316144 - ], - [ - 2.4110701, - 44.6190741 - ], - [ - 2.4492173, - 44.6191058 - ], - [ - 2.4491956, - 44.6323197 - ], - [ - 2.5048575, - 44.6323659 - ], - [ - 2.5048126, - 44.6597555 - ], - [ - 2.5246119, - 44.6597719 - ], - [ - 2.524567, - 44.6871739 - ], - [ - 2.5422544, - 44.6871886 - ], - [ - 2.5422313, - 44.70122 - ], - [ - 2.5807101, - 44.701252 - ], - [ - 2.5805999, - 44.7683374 - ], - [ - 2.61769, - 44.7683681 - ], - [ - 2.6176235, - 44.808838 - ], - [ - 2.6367564, - 44.8088539 - ], - [ - 2.6366899, - 44.8492948 - ], - [ - 2.6733105, - 44.8493251 - ], - [ - 2.6732888, - 44.8625164 - ], - [ - 2.6933766, - 44.862533 - ], - [ - 2.6933323, - 44.8894303 - ], - [ - 2.7305201, - 44.8894611 - ], - [ - 2.7304757, - 44.9164461 - ], - [ - 2.7499202, - 44.9164622 - ], - [ - 2.7500519, - 44.8364688 - ], - [ - 2.8073346, - 44.8365162 - ], - [ - 2.8073139, - 44.8491017 - ], - [ - 2.8263796, - 44.8491175 - ], - [ - 2.8264007, - 44.8362845 - ], - [ - 2.8457039, - 44.8363004 - ], - [ - 2.8457707, - 44.7957107 - ], - [ - 2.8642166, - 44.795726 - ], - [ - 2.8642611, - 44.7686452 - ], - [ - 2.8839885, - 44.7686615 - ], - [ - 2.8840323, - 44.7419697 - ], - [ - 2.9020315, - 44.7419846 - ], - [ - 2.9021426, - 44.6743192 - ], - [ - 2.9219777, - 44.6743357 - ], - [ - 2.9220221, - 44.6472986 - ], - [ - 2.9400972, - 44.6473136 - ], - [ - 2.9401192, - 44.6338837 - ] - ] - ], - "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", - "terms_text": "Orthophotographie CRAIG/Sintegra/IGN 2013" - }, { "id": "Czech_CUZK-KM", "name": "Czech CUZK:KM", @@ -42298,39 +42575,6 @@ "terms_url": "http://wiki.openstreetmap.org/wiki/Nancy/Orthophotographie", "terms_text": "GrandNancy Orthophotographie 2012" }, - { - "id": "graz.at-basemap", - "name": "Graz: Basiskarte (base map)", - "type": "wms", - "template": "http://geodaten1.graz.at/ArcGIS_Graz/services/Extern/BASISKARTE_WMS/MapServer/WMSServer?FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:3857", - "polygon": [ - [ - [ - 15.3444649457389, - 47.0072927285598 - ], - [ - 15.3444649457389, - 47.143749958186 - ], - [ - 15.5442161820906, - 47.143749958186 - ], - [ - 15.5442161820906, - 47.0072927285598 - ], - [ - 15.3444649457389, - 47.0072927285598 - ] - ] - ], - "terms_text": "Stadt Graz – data.graz.gv.at", - "icon": "https://www.graz.at/cms/bilder/60222/80/0/0/2f67ae5c/graz-logo.gif" - }, { "id": "hamburg-40cm", "name": "Hamburg (40 cm)", @@ -48128,643 +48372,6 @@ "terms_text": "IBGE", "overlay": true }, - { - "id": "IBGE_BC250_Terra_Publico_Militar", - "name": "IBGE-BC250-Terra Publico (Militar)", - "type": "wms", - "template": "http://geoservicos.ibge.gov.br/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=CCAR:BC250_Terra_Publica_A&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}&FORMAT=image%2Fpng&TRANSPARENT=TRUE", - "projection": "EPSG:3857", - "polygon": [ - [ - [ - -29.3325, - 2.335959 - ], - [ - -28.72472, - 2.031551 - ], - [ - -27.76041, - -8.937033 - ], - [ - -27.67249, - -22.20839 - ], - [ - -51.11495, - -35.46552 - ], - [ - -53.39394, - -33.85064 - ], - [ - -53.62553, - -33.72493 - ], - [ - -53.62503, - -33.15428 - ], - [ - -53.24498, - -32.73392 - ], - [ - -53.65747, - -32.51873 - ], - [ - -53.8329, - -32.16592 - ], - [ - -54.64174, - -31.55507 - ], - [ - -55.29638, - -31.3429 - ], - [ - -55.57371, - -30.99691 - ], - [ - -56.06384, - -31.16749 - ], - [ - -56.10468, - -30.86436 - ], - [ - -56.86862, - -30.20752 - ], - [ - -57.39671, - -30.40464 - ], - [ - -57.74384, - -30.22142 - ], - [ - -55.83724, - -28.16598 - ], - [ - -54.86969, - -27.44994 - ], - [ - -53.9016, - -27.02998 - ], - [ - -53.74972, - -26.25781 - ], - [ - -53.97158, - -25.74513 - ], - [ - -54.44723, - -25.79609 - ], - [ - -54.67802, - -25.64668 - ], - [ - -54.36097, - -24.35145 - ], - [ - -54.41679, - -24.06527 - ], - [ - -54.64355, - -23.94107 - ], - [ - -55.22163, - -24.11355 - ], - [ - -55.49138, - -24.02797 - ], - [ - -55.71734, - -22.68488 - ], - [ - -55.90555, - -22.39886 - ], - [ - -56.45255, - -22.21731 - ], - [ - -56.8256, - -22.4002 - ], - [ - -57.34109, - -22.34351 - ], - [ - -58.08472, - -22.13075 - ], - [ - -57.95766, - -20.99818 - ], - [ - -58.26551, - -20.24147 - ], - [ - -58.03577, - -19.95871 - ], - [ - -58.23083, - -19.75211 - ], - [ - -57.64739, - -18.19828 - ], - [ - -57.89356, - -17.57377 - ], - [ - -58.16997, - -17.53519 - ], - [ - -58.48825, - -17.21961 - ], - [ - -58.57691, - -16.81466 - ], - [ - -58.45563, - -16.42158 - ], - [ - -60.2541, - -16.32571 - ], - [ - -60.33481, - -15.51483 - ], - [ - -60.67423, - -15.1122 - ], - [ - -60.34999, - -14.99707 - ], - [ - -60.63603, - -13.84119 - ], - [ - -61.07283, - -13.62569 - ], - [ - -61.9025, - -13.62647 - ], - [ - -62.21395, - -13.25048 - ], - [ - -62.80185, - -13.10905 - ], - [ - -63.17194, - -12.76568 - ], - [ - -63.74229, - -12.54071 - ], - [ - -64.32845, - -12.59578 - ], - [ - -65.10261, - -12.0682 - ], - [ - -65.45781, - -11.27865 - ], - [ - -65.41641, - -9.838943 - ], - [ - -66.52331, - -9.985873 - ], - [ - -67.66452, - -10.80093 - ], - [ - -67.99778, - -10.75991 - ], - [ - -68.52286, - -11.20807 - ], - [ - -69.88988, - -11.02776 - ], - [ - -70.30957, - -11.1699 - ], - [ - -70.71896, - -11.02003 - ], - [ - -70.68128, - -9.669083 - ], - [ - -71.27536, - -10.08971 - ], - [ - -72.18053, - -10.09967 - ], - [ - -72.41623, - -9.587397 - ], - [ - -73.29207, - -9.454149 - ], - [ - -73.0625, - -9.017267 - ], - [ - -73.61432, - -8.40982 - ], - [ - -74.09056, - -7.527548 - ], - [ - -74.03652, - -7.27885 - ], - [ - -73.84718, - -7.238285 - ], - [ - -73.78618, - -6.774872 - ], - [ - -73.22362, - -6.430106 - ], - [ - -73.33719, - -6.029736 - ], - [ - -72.93016, - -5.038711 - ], - [ - -71.93973, - -4.425027 - ], - [ - -70.96802, - -4.248294 - ], - [ - -70.79598, - -4.064931 - ], - [ - -70.02393, - -4.167345 - ], - [ - -69.51025, - -1.134089 - ], - [ - -69.70776, - -0.567619 - ], - [ - -70.13645, - -0.226161 - ], - [ - -70.14083, - 0.5844 - ], - [ - -69.26594, - 0.806502 - ], - [ - -69.34226, - 0.968924 - ], - [ - -69.92481, - 1.015705 - ], - [ - -69.92343, - 1.773851 - ], - [ - -68.38511, - 1.82943 - ], - [ - -68.24848, - 2.119808 - ], - [ - -67.94571, - 1.948424 - ], - [ - -67.37696, - 2.327468 - ], - [ - -67.05751, - 1.858336 - ], - [ - -67.00579, - 1.291603 - ], - [ - -66.79967, - 1.314684 - ], - [ - -66.28683, - 0.857709 - ], - [ - -65.67671, - 1.111146 - ], - [ - -65.42494, - 0.966549 - ], - [ - -65.15671, - 1.24203 - ], - [ - -64.27483, - 1.601591 - ], - [ - -64.0486, - 2.065137 - ], - [ - -63.47236, - 2.279358 - ], - [ - -64.13446, - 2.433909 - ], - [ - -64.10005, - 2.723778 - ], - [ - -64.32628, - 3.118275 - ], - [ - -64.28142, - 3.541983 - ], - [ - -64.88451, - 4.117671 - ], - [ - -64.88064, - 4.342461 - ], - [ - -64.13653, - 4.223152 - ], - [ - -63.95465, - 4.021316 - ], - [ - -63.17706, - 4.048301 - ], - [ - -62.96093, - 3.763658 - ], - [ - -62.82024, - 4.106019 - ], - [ - -62.49922, - 4.270815 - ], - [ - -61.91181, - 4.26284 - ], - [ - -61.35393, - 4.630097 - ], - [ - -61.04904, - 4.623115 - ], - [ - -60.70452, - 4.969851 - ], - [ - -60.78709, - 5.296764 - ], - [ - -60.22457, - 5.371207 - ], - [ - -59.89857, - 5.107541 - ], - [ - -59.97549, - 4.603025 - ], - [ - -59.59676, - 4.439875 - ], - [ - -59.41942, - 3.96994 - ], - [ - -59.71017, - 3.542008 - ], - [ - -59.88955, - 2.72301 - ], - [ - -59.63006, - 2.316332 - ], - [ - -59.63382, - 1.966581 - ], - [ - -59.18812, - 1.478079 - ], - [ - -58.80545, - 1.320732 - ], - [ - -58.35933, - 1.689932 - ], - [ - -57.6, - 1.803907 - ], - [ - -57.39854, - 2.065119 - ], - [ - -57.12392, - 2.128758 - ], - [ - -56.02925, - 1.949445 - ], - [ - -56.23884, - 2.263348 - ], - [ - -55.98195, - 2.628657 - ], - [ - -55.64816, - 2.519953 - ], - [ - -54.93958, - 2.682515 - ], - [ - -54.24988, - 2.25056 - ], - [ - -53.73937, - 2.473731 - ], - [ - -52.98578, - 2.280494 - ], - [ - -52.65712, - 2.564069 - ], - [ - -52.41739, - 3.22121 - ], - [ - -51.73983, - 4.119158 - ], - [ - -51.7246, - 4.556867 - ], - [ - -51.0112, - 5.522895 - ], - [ - -43.48209, - 5.335832 - ], - [ - -29.3325, - 2.335959 - ] - ] - ], - "terms_text": "IBGE", - "overlay": true - }, { "id": "IBGE_BC250_Rodoviario", "name": "IBGE-BC250-Trecho Rodoviario", @@ -63751,6 +63358,130 @@ "terms_text": "Kanton Zürich OF 2015", "best": true }, + { + "id": "kartverket-friluft", + "name": "Kartverket Hiking Trails", + "type": "wms", + "template": "https://wms.geonorge.no/skwms1/wms.friluftsruter2?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Fotrute&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "scaleExtent": [ + 6, + 24 + ], + "polygon": [ + [ + [ + 31.904253, + 70.4368136 + ], + [ + 28.4765186, + 71.3289643 + ], + [ + 23.6865015, + 71.2514263 + ], + [ + 16.8090601, + 70.0730823 + ], + [ + 11.1620655, + 67.5253903 + ], + [ + 9.975542, + 64.811576 + ], + [ + 4.2187061, + 62.1449966 + ], + [ + 4.3725367, + 59.1871966 + ], + [ + 6.1743055, + 57.8915032 + ], + [ + 7.932118, + 57.7393554 + ], + [ + 10.777577, + 58.8649103 + ], + [ + 11.7224012, + 58.762509 + ], + [ + 12.722157, + 60.1141506 + ], + [ + 13.0517469, + 61.3493518 + ], + [ + 12.5243921, + 63.6169922 + ], + [ + 14.2382593, + 63.9856094 + ], + [ + 15.1171656, + 65.9016624 + ], + [ + 18.6987085, + 68.3749083 + ], + [ + 20.0610132, + 68.2612583 + ], + [ + 21.0058375, + 68.7841518 + ], + [ + 25.2465601, + 68.3506025 + ], + [ + 26.9384546, + 69.8472011 + ], + [ + 28.7621851, + 69.6112133 + ], + [ + 28.5864039, + 68.8556004 + ], + [ + 31.069314, + 69.5191547 + ], + [ + 31.904253, + 70.4368136 + ] + ] + ], + "terms_url": "https://kartverket.no/geodataarbeid/temadata/nasjonal-database-for-tur--og-friluftsruter/", + "terms_text": "© Kartverket", + "description": "Hiking trails from the Norwegian database `Tur- og Friluftsruter´, including DNT routes.", + "icon": "https://www.kartverket.no/Content/Images/logo-graphic-512.png", + "overlay": true + }, { "id": "kartverket-topo4", "name": "Kartverket N50 topo", @@ -63873,6 +63604,130 @@ "description": "Topographic map N50, equivalent to Norway 1:50.000 paper map series.", "icon": "https://www.kartverket.no/Content/Images/logo-graphic-512.png" }, + { + "id": "kartverket-vegnett", + "name": "Kartverket Road Network", + "type": "wms", + "template": "http://openwms.statkart.no/skwms1/wms.vegnett?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=all&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "scaleExtent": [ + 3, + 24 + ], + "polygon": [ + [ + [ + 31.904253, + 70.4368136 + ], + [ + 28.4765186, + 71.3289643 + ], + [ + 23.6865015, + 71.2514263 + ], + [ + 16.8090601, + 70.0730823 + ], + [ + 11.1620655, + 67.5253903 + ], + [ + 9.975542, + 64.811576 + ], + [ + 4.2187061, + 62.1449966 + ], + [ + 4.3725367, + 59.1871966 + ], + [ + 6.1743055, + 57.8915032 + ], + [ + 7.932118, + 57.7393554 + ], + [ + 10.777577, + 58.8649103 + ], + [ + 11.7224012, + 58.762509 + ], + [ + 12.722157, + 60.1141506 + ], + [ + 13.0517469, + 61.3493518 + ], + [ + 12.5243921, + 63.6169922 + ], + [ + 14.2382593, + 63.9856094 + ], + [ + 15.1171656, + 65.9016624 + ], + [ + 18.6987085, + 68.3749083 + ], + [ + 20.0610132, + 68.2612583 + ], + [ + 21.0058375, + 68.7841518 + ], + [ + 25.2465601, + 68.3506025 + ], + [ + 26.9384546, + 69.8472011 + ], + [ + 28.7621851, + 69.6112133 + ], + [ + 28.5864039, + 68.8556004 + ], + [ + 31.069314, + 69.5191547 + ], + [ + 31.904253, + 70.4368136 + ] + ] + ], + "terms_url": "https://www.kartverket.no/data/kartdata/vegdata/", + "terms_text": "© Kartverket", + "description": "Norwegian road network from the National Road database (NVDB). Colours represent national, county, municipal, private and forest roads + footways/cycleways.", + "icon": "https://www.kartverket.no/Content/Images/logo-graphic-512.png", + "overlay": true + }, { "id": "kelowna_2012", "name": "Kelowna 2012", @@ -64673,14 +64528,6 @@ ], "overlay": true }, - { - "id": "landsat", - "name": "Landsat", - "type": "wms", - "template": "http://irs.gis-lab.info/?layers=landsat&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:3857", - "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAADFBMVEUTPmdaXSdnXUmdcyo9AbYLAAAAFklEQVQI12NYtYqBgYEI4v//0FAiCAA8TB/hMzHkwAAAAABJRU5ErkJggg==" - }, { "id": "landsat_233055", "name": "Landsat 233055", @@ -68317,7 +68164,7 @@ "id": "LPI_NSW_Administrative_Boundaries_County", "name": "LPI NSW Administrative Boundaries County", "type": "wms", - "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=County&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=4&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", "projection": "EPSG:3857", "scaleExtent": [ 0, @@ -68489,7 +68336,7 @@ "id": "LPI_NSW_Administrative_Boundaries_LGA", "name": "LPI NSW Administrative Boundaries LGA", "type": "wms", - "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=LocalGovernmentArea&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=6&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", "projection": "EPSG:3857", "scaleExtent": [ 0, @@ -68661,7 +68508,7 @@ "id": "LPI_NSW_Administrative_Boundaries_NPWS_Reserve", "name": "LPI NSW Administrative Boundaries NPWS Reserve", "type": "wms", - "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=NPWSReserve&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=1&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", "projection": "EPSG:3857", "scaleExtent": [ 0, @@ -68833,7 +68680,7 @@ "id": "LPI_NSW_Administrative_Boundaries_Parish", "name": "LPI NSW Administrative Boundaries Parish", "type": "wms", - "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=Parish&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=3&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", "projection": "EPSG:3857", "scaleExtent": [ 0, @@ -69005,7 +68852,7 @@ "id": "LPI_NSW_Administrative_Boundaries_StateForest", "name": "LPI NSW Administrative Boundaries State Forest", "type": "wms", - "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=StateForest&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=2&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", "projection": "EPSG:3857", "scaleExtent": [ 0, @@ -69177,7 +69024,7 @@ "id": "LPI_NSW_Administrative_Boundaries_Suburb", "name": "LPI NSW Administrative Boundaries Suburb", "type": "wms", - "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=Suburb&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Administrative_Boundaries/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=7&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", "projection": "EPSG:3857", "scaleExtent": [ 0, @@ -69822,6 +69669,364 @@ "terms_text": "© Land and Property Information 2017", "best": true }, + { + "id": "NSW_LPI_Imagery_Dates", + "name": "LPI NSW Imagery Dates", + "type": "wms", + "template": "https://maps.six.nsw.gov.au/arcgis/services/public/NSW_Imagery_Dates/MapServer/WMSServer?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS={proj}&BBOX={bbox}&WIDTH={width}&HEIGHT={height}&LAYERS=0&STYLES=&FORMAT=image/png32&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE", + "projection": "EPSG:3857", + "scaleExtent": [ + 0, + 21 + ], + "polygon": [ + [ + [ + 140.9868688, + -28.9887829 + ], + [ + 148.9951472, + -28.9727491 + ], + [ + 148.9966717, + -28.4915066 + ], + [ + 151.0029027, + -28.4930697 + ], + [ + 151.0029027, + -28.7261663 + ], + [ + 151.4915093, + -28.7323921 + ], + [ + 151.4918687, + -28.7155337 + ], + [ + 151.9228213, + -28.719635 + ], + [ + 151.9251607, + -28.4897139 + ], + [ + 151.9955886, + -28.4898718 + ], + [ + 151.9989947, + -28.1192742 + ], + [ + 152.4967606, + -28.122091 + ], + [ + 152.4968241, + -28.1146398 + ], + [ + 153.0044563, + -28.1154389 + ], + [ + 153.0044563, + -28.120397 + ], + [ + 153.5038629, + -28.119345 + ], + [ + 153.5039264, + -28.1227063 + ], + [ + 153.5919395, + -28.1223619 + ], + [ + 153.5926582, + -28.1776872 + ], + [ + 153.6111186, + -28.1757867 + ], + [ + 153.6113881, + -28.1825173 + ], + [ + 153.7426846, + -28.2162084 + ], + [ + 153.7787253, + -28.710911 + ], + [ + 152.6237954, + -32.5877239 + ], + [ + 152.3123961, + -32.6328837 + ], + [ + 151.4141942, + -33.5790388 + ], + [ + 150.8929925, + -35.2648721 + ], + [ + 150.4620695, + -35.7777256 + ], + [ + 150.0156501, + -37.5103569 + ], + [ + 149.9918121, + -37.5126787 + ], + [ + 149.519778, + -37.5130704 + ], + [ + 149.5199577, + -37.5216919 + ], + [ + 149.4462958, + -37.5353701 + ], + [ + 149.063344, + -37.5357975 + ], + [ + 148.9836635, + -37.5217631 + ], + [ + 148.9816872, + -37.5191982 + ], + [ + 148.9863847, + -37.2584972 + ], + [ + 148.4875376, + -37.265846 + ], + [ + 148.4824774, + -37.0092669 + ], + [ + 147.994386, + -37.014339 + ], + [ + 147.988288, + -36.5332184 + ], + [ + 147.9529707, + -36.5260725 + ], + [ + 147.9486513, + -36.0685992 + ], + [ + 147.5034997, + -36.0716798 + ], + [ + 147.5047701, + -36.2651047 + ], + [ + 146.4919996, + -36.266129 + ], + [ + 146.4922536, + -36.2565 + ], + [ + 145.9929826, + -36.2534267 + ], + [ + 145.9965866, + -36.0188147 + ], + [ + 145.9831568, + -36.0187058 + ], + [ + 145.9624506, + -36.0219026 + ], + [ + 145.946236, + -36.0120936 + ], + [ + 145.9454275, + -36.0060259 + ], + [ + 145.5041534, + -36.0013564 + ], + [ + 145.5037941, + -36.0109125 + ], + [ + 145.0072008, + -36.0036213 + ], + [ + 145.0035404, + -36.1520424 + ], + [ + 144.4860806, + -36.1423149 + ], + [ + 144.4874127, + -36.0137522 + ], + [ + 143.9874676, + -36.0024134 + ], + [ + 143.9932853, + -35.5723753 + ], + [ + 143.4971691, + -35.5837101 + ], + [ + 143.4917967, + -35.4065648 + ], + [ + 143.4613438, + -35.3674934 + ], + [ + 143.4585591, + -35.3555888 + ], + [ + 143.4897755, + -35.3396522 + ], + [ + 143.4895509, + -35.332214 + ], + [ + 143.4316994, + -35.2570613 + ], + [ + 143.2505542, + -35.2606556 + ], + [ + 143.2438356, + -35.0132729 + ], + [ + 142.9933305, + -35.0177207 + ], + [ + 142.9919767, + -34.7961882 + ], + [ + 142.4971375, + -34.8032323 + ], + [ + 142.4973172, + -34.8007613 + ], + [ + 142.4211401, + -34.8017571 + ], + [ + 142.4209155, + -34.7838306 + ], + [ + 142.2330892, + -34.7859191 + ], + [ + 142.2307707, + -34.7807542 + ], + [ + 142.2269959, + -34.5061271 + ], + [ + 141.9975302, + -34.5083733 + ], + [ + 141.9945959, + -34.2526687 + ], + [ + 141.4982345, + -34.2556921 + ], + [ + 141.498171, + -34.2522794 + ], + [ + 140.9945397, + -34.2528411 + ], + [ + 140.9868688, + -28.9887829 + ] + ] + ], + "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", + "terms_text": "© Land and Property Information 2017", + "overlay": true + }, { "id": "NSW_LPI_TopographicMap", "name": "LPI NSW Topographic Map", @@ -70414,6 +70619,165 @@ "terms_url": "http://spatialservices.finance.nsw.gov.au/mapping_and_imagery/lpi_web_services", "terms_text": "© Land and Property Information 2017" }, + { + "id": "orthophoto_lyon_2012", + "name": "Lyon Orthophoto 2012-03 10cm", + "type": "wms", + "template": "https://download.data.grandlyon.com/wms/grandlyon?language=fre&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1830_5150_10cm_CC46,1830_5155_10cm_CC46,1830_5160_10cm_CC46,1830_5165_10cm_CC46,1830_5170_10cm_CC46,1830_5175_10cm_CC46,1830_5180_10cm_CC46,1830_5185_10cm_CC46,1830_5190_10cm_CC46,1835_5150_10cm_CC46,1835_5155_10cm_CC46,1835_5160_10cm_CC46,1835_5165_10cm_CC46,1835_5170_10cm_CC46,1835_5175_10cm_CC46,1835_5180_10cm_CC46,1835_5185_10cm_CC46,1835_5190_10cm_CC46,1840_5150_10cm_CC46,1840_5155_10cm_CC46,1840_5160_10cm_CC46,1840_5165_10cm_CC46,1840_5170_10cm_CC46,1840_5175_10cm_CC46,1840_5180_10cm_CC46,1840_5185_10cm_CC46,1840_5190_10cm_CC46,1845_5150_10cm_CC46,1845_5155_10cm_CC46,1845_5160_10cm_CC46,1845_5165_10cm_CC46,1845_5170_10cm_CC46,1845_5175_10cm_CC46,1845_5180_10cm_CC46,1845_5185_10cm_CC46,1845_5190_10cm_CC46,1850_5155_10cm_CC46,1850_5160_10cm_CC46,1850_5165_10cm_CC46,1850_5170_10cm_CC46,1850_5175_10cm_CC46,1850_5180_10cm_CC46,1850_5185_10cm_CC46,1855_5155_10cm_CC46,1855_5165_10cm_CC46,1855_5170_10cm_CC46,1855_5175_10cm_CC46,1855_5180_10cm_CC46,1855_5185_10cm_CC46,1860_5155_10cm_CC46,1860_5160_10cm_CC46,1860_5165_10cm_CC46,1860_5170_10cm_CC46,1860_5175_10cm_CC46,1860_5180_10cm_CC46,1860_5185_10cm_CC46,1865_5155_10cm_CC46,1865_5160_10cm_CC46,1865_5165_10cm_CC46,1865_5170_10cm_CC46&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2012-03-01T00:00:00.000Z", + "startDate": "2012-03-01T00:00:00.000Z", + "polygon": [ + [ + [ + 4.690486, + 45.546522 + ], + [ + 4.831309, + 45.546522 + ], + [ + 4.831309, + 45.571307 + ], + [ + 4.883437, + 45.571307 + ], + [ + 4.883437, + 45.59745 + ], + [ + 5.166222, + 45.59745 + ], + [ + 5.166222, + 45.745327 + ], + [ + 5.107934, + 45.745327 + ], + [ + 5.107934, + 45.881452 + ], + [ + 4.906982, + 45.881452 + ], + [ + 4.906982, + 45.92107 + ], + [ + 4.84377, + 45.92107 + ], + [ + 4.84377, + 45.940115 + ], + [ + 4.715432, + 45.940115 + ], + [ + 4.715432, + 45.870179 + ], + [ + 4.674581, + 45.870179 + ], + [ + 4.674581, + 45.717805 + ], + [ + 4.695675, + 45.717805 + ], + [ + 4.690486, + 45.546522 + ] + ] + ], + "terms_url": "http://smartdata.grandlyon.com/imagerie/orthophotographie-2012-du-grand-lyon/", + "terms_text": "Grand Lyon Smart Data DSIT" + }, + { + "id": "orthophoto_lyon_2015_8cm", + "name": "Lyon Orthophoto 2015-05 8cm", + "type": "wms", + "template": "https://download.data.grandlyon.com/wms/grandlyon?language=fre&FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1835_5155_8cm_CC46,1835_5160_8cm_CC46,1835_5165_8cm_CC46,1835_5170_8cm_CC46,1835_5180_8cm_CC46,1835_5175_8cm_CC46,1845_5175_8cm_CC46,1845_5180_8cm_CC46,1845_5185_8cm_CC46,1845_5190_8cm_CC46,1850_5165_8cm_CC46,1850_5160_8cm_CC46,1850_5155_8cm_CC46,1850_5170_8cm_CC46,1850_5175_8cm_CC46,1850_5180_8cm_CC46,1850_5185_8cm_CC46,1855_5155_8cm_CC46,1855_5160_8cm_CC46,1855_5185_8cm_CC46,1855_5180_8cm_CC46,1855_5175_8cm_CC46,1855_5170_8cm_CC46,1855_5165_8cm_CC46,1860_5160_8cm_CC46,1860_5155_8cm_CC46,1860_5165_8cm_CC46,1835_5185_8cm_CC46,1835_5190_8cm_CC46,1835_5195_8cm_CC46,1840_5160_8cm_CC46,1840_5155_8cm_CC46,1840_5150_8cm_CC46,1830_5195_8cm_CC46,1830_5190_8cm_CC46,1830_5175_8cm_CC46,1830_5170_8cm_CC46,1830_5165_8cm_CC46,1830_5160_8cm_CC46,1830_5155_8cm_CC46,1830_5180_8cm_CC46,1830_5185_8cm_CC46,1835_5150_8cm_CC46,1860_5170_8cm_CC46,1860_5175_8cm_CC46,1840_5180_8cm_CC46,1840_5175_8cm_CC46,1840_5185_8cm_CC46,1840_5190_8cm_CC46,1840_5195_8cm_CC46,1845_5150_8cm_CC46,1845_5155_8cm_CC46,1845_5160_8cm_CC46,1845_5170_8cm_CC46,1845_5165_8cm_CC46,1840_5170_8cm_CC46,1840_5165_8cm_CC46,1860_5180_8cm_CC46,1860_5185_8cm_CC46,1865_5155_8cm_CC46,1865_5160_8cm_CC46,1865_5165_8cm_CC46,1865_5170_8cm_CC46,1830_5150_8cm_CC46&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2015-05-01T00:00:00.000Z", + "startDate": "2015-05-01T00:00:00.000Z", + "polygon": [ + [ + [ + 4.664889, + 45.546882 + ], + [ + 4.882528, + 45.543476 + ], + [ + 4.884346, + 45.597449 + ], + [ + 5.166229, + 45.592416 + ], + [ + 5.17217, + 45.745324 + ], + [ + 5.107932, + 45.746531 + ], + [ + 5.113048, + 45.88145 + ], + [ + 4.906978, + 45.885083 + ], + [ + 4.908215, + 45.921064 + ], + [ + 4.84377, + 45.922124 + ], + [ + 4.844965, + 45.958104 + ], + [ + 4.677293, + 45.96069 + ], + [ + 4.664889, + 45.546882 + ] + ] + ], + "terms_url": "http://data.grandlyon.com/imagerie/orthophotographie-2015-du-grand-lyon/", + "terms_text": "Métropole de Lyon DINSI", + "best": true + }, { "id": "major_isidoro", "name": "Major Isidoro AL", @@ -71601,8 +71965,9 @@ { "id": "geodata.state.nj.us-Infrared2015", "name": "NJ 2015 Aerial Imagery (Infrared)", - "type": "tms", - "template": "http://whoots.mapwarper.net/tms/{zoom}/{x}/{y}/Infrared2015/http://geodata.state.nj.us/imagerywms/Infrared2015", + "type": "wms", + "template": "http://geodata.state.nj.us/imagerywms/Infrared2015?FORMAT=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS={proj}&WIDTH={width}&HEIGHT={height}&LAYERS=Infrared2015&BBOX={bbox}", + "projection": "EPSG:3857", "endDate": "2015-05-03T00:00:00.000Z", "startDate": "2015-03-29T00:00:00.000Z", "scaleExtent": [ @@ -72053,15 +72418,16 @@ ] ] ], - "terms_url": "https://njgin.state.nj.us/NJ_NJGINExplorer/ShowMetadata.jsp?docId={E30775F2-6370-4525-8E68-C371ED29BBB3}", + "terms_url": "https://njgin.state.nj.us/NJ_NJGINExplorer/ShowMetadata.jsp?docId={CDC67AB8-ADA1-4B4B-9087-67A82CB9151C}", "terms_text": "NJ Office of Information Technology (NJOIT), Office of Geographic Information Systems (OGIS)", "description": "Digital orthophotography of New Jersey, Near Infrared, 1 foot resolution" }, { "id": "geodata.state.nj.us-Natural2015", "name": "NJ 2015 Aerial Imagery (Natural Color)", - "type": "tms", - "template": "http://whoots.mapwarper.net/tms/{zoom}/{x}/{y}/Natural2015/http://geodata.state.nj.us/imagerywms/Natural2015", + "type": "wms", + "template": "http://geodata.state.nj.us/imagerywms/Natural2015?FORMAT=image/png&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&SRS={proj}&WIDTH={width}&HEIGHT={height}&LAYERS=Natural2015&BBOX={bbox}", + "projection": "EPSG:3857", "endDate": "2015-05-03T00:00:00.000Z", "startDate": "2015-03-29T00:00:00.000Z", "scaleExtent": [ @@ -92342,6 +92708,10 @@ "type": "tms", "template": "http://adam.openstreetmap.hu/mapproxy/tiles/1.0.0/Soskut-Tarnok-Pusztazamor-Diosd/mercator/{zoom}/{x}/{y}.png", "startDate": "2017-03-01T00:00:00.000Z", + "scaleExtent": [ + 11, + 20 + ], "polygon": [ [ [ From ad032ab928711f540fa34e8f7159aed328239bd0 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 16:56:28 -0500 Subject: [PATCH 107/157] Changelog 2.7.0 --- CHANGELOG.md | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 90fd2c778..465a22c88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,113 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, [@xxxx]: https://github.com/xxxx --> +# 2.7.0 +##### March 2, 2018 + +#### :mega: Release Highlights +* :world_map: We've added support for more background imagery from WMS servers. Thanks Martin Raifer [@tyrasd] and Guillaume Rischard [@grischard] for your work on this! + + _Press B to see if new imagery is available in your area._ + +* :arrow_right_hook: The turn restriction editor just got a big update! + * Include nearby connected roads (with configurable distance) + * Hover over a from way to see which paths are restricted or allowed + * Add restrictions that span one or more via ways (e.g. divided highway u-turns) + * Add `only_` turn restrictions (e.g. only straight on) + * View popup help for more information about working with turn restrictions + + _Try selecting a junction node in a complex intersection, editing turn restrictions, and viewing the popup help._ + +[@tyrasd]: https://github.com/tyrasd +[@grischard]: https://github.com/grischard + +#### :tada: New Features +* Support background imagery on WMS servers supporting EPSG:3857 ([#1141], [#4814], thanks [@tyrasd] and [@grischard]) +* Add support for complex intersection via way, and `only_` restrictions ([#2346], [#2622], [#4768]) + * :warning: code depending on any of these modules will need modification: + `actionRestrictTurn`, `actionUnrestrictTurn`, `osmIntersection`, `osmInferRestriction`, `uiFieldRestrictions` +* Added `uiFieldHelp` component for popup field help (currently used only for restrictions field) ([#4768]) + +[#4814]: https://github.com/openstreetmap/iD/issues/4814 +[#4768]: https://github.com/openstreetmap/iD/issues/4768 +[#2622]: https://github.com/openstreetmap/iD/issues/2622 +[#2346]: https://github.com/openstreetmap/iD/issues/2346 +[#1141]: https://github.com/openstreetmap/iD/issues/1141 +[@tyrasd]: https://github.com/tyrasd +[@grischard]: https://github.com/grischard + +#### :sparkles: Usability +* When combobox is attached to textarea, let user up/down arrow ([#4750]) +* Improve rendering of tree row, use a thicker line ([#4825]) +* Vertex navigation for home/end should work with way selected ([#4841]) +* Improve combobox option visibility ([#4761]) +* Increase max height of combobox, so they can show more items ([#4819], [#4831], thanks [@SteevenBosse]) + +[#4841]: https://github.com/openstreetmap/iD/issues/4841 +[#4831]: https://github.com/openstreetmap/iD/issues/4831 +[#4825]: https://github.com/openstreetmap/iD/issues/4825 +[#4819]: https://github.com/openstreetmap/iD/issues/4819 +[#4761]: https://github.com/openstreetmap/iD/issues/4761 +[#4750]: https://github.com/openstreetmap/iD/issues/4750 +[@SteevenBosse]: https://github.com/SteevenBosse + +#### :bug: Bugfixes +* Fix bug trying to stop Mapillary autoplaying if `_mlyViewer` is not initialized ([#4804], [#4809], thanks [@fritruc]) +* Fix bug trying to show labels when `.geojson` file has `null` properties ([#4795], [#4805], thanks [@vershwal]) +* Query the appropriate metadata for esri clarity background imagery ([#4766], [#4767], thanks [@jgravois]) + +[#4809]: https://github.com/openstreetmap/iD/issues/4809 +[#4805]: https://github.com/openstreetmap/iD/issues/4805 +[#4804]: https://github.com/openstreetmap/iD/issues/4804 +[#4795]: https://github.com/openstreetmap/iD/issues/4795 +[#4767]: https://github.com/openstreetmap/iD/issues/4767 +[#4766]: https://github.com/openstreetmap/iD/issues/4766 +[@fritruc]: https://github.com/fritruc +[@vershwal]: https://github.com/vershwal +[@jgravois]: https://github.com/jgravois + +#### :earth_asia: Localization +* Do not localize decimalCoordinatePair appearing in info panels ([#4765]) +* Fix Polish address format to not show place and city together ([#4784], thanks [@MKuranowski]) + +[#4784]: https://github.com/openstreetmap/iD/issues/4784 +[#4765]: https://github.com/openstreetmap/iD/issues/4765 +[@MKuranowski]: https://github.com/MKuranowski + +#### :hourglass: Performance +* Don't draw line and area touch targets for segments outside the viewport +* Improve performance of `coreDifference`, `actionDiscardTags` (slow changeset comment typing) ([#2743], [#4611]) + +[#4611]: https://github.com/openstreetmap/iD/issues/4611 +[#2743]: https://github.com/openstreetmap/iD/issues/2743 + +#### :rocket: Presets +* Rename `building=farm` to "Farm House", add `building=farm_auxiliary` as "Farm Building" ([#4839], [#4826], thanks [@MaciejWWojcik]) +* Reduce the search priority for "Boat Builder" below "Building" ([#4808], thanks [@bencostamagna]) +* Add religion and denomination fields to `historic=wayside_shrine` preset ([#4785], thanks [@hikemaniac]) +* Add `leisure=amusement_arcade` preset ([#4774], [#4777], thanks [@fritruc]) +* Change caption on `shop=agrarian` preset to "Farm Supply Shop" ([#4775]) +* Add presets for `shop=wholesale` and `shop=health_food` ([#4754], [#4773], thanks [@fritruc]) +* Add `dispensing` field to `amenity=pharmacy` preset ([#4763]) +* Add `opening_hours` field to `amenity=police` preset ([#4753]) + +[#4839]: https://github.com/openstreetmap/iD/issues/4839 +[#4826]: https://github.com/openstreetmap/iD/issues/4826 +[#4808]: https://github.com/openstreetmap/iD/issues/4808 +[#4785]: https://github.com/openstreetmap/iD/issues/4785 +[#4774]: https://github.com/openstreetmap/iD/issues/4774 +[#4777]: https://github.com/openstreetmap/iD/issues/4777 +[#4775]: https://github.com/openstreetmap/iD/issues/4775 +[#4754]: https://github.com/openstreetmap/iD/issues/4754 +[#4773]: https://github.com/openstreetmap/iD/issues/4773 +[#4763]: https://github.com/openstreetmap/iD/issues/4763 +[#4753]: https://github.com/openstreetmap/iD/issues/4753 +[@MaciejWWojcik]: https://github.com/MaciejWWojcik +[@bencostamagna]: https://github.com/bencostamagna +[@hikemaniac]: https://github.com/hikemaniac +[@fritruc]: https://github.com/fritruc + + # 2.6.1 ##### February 1, 2018 From ecd63cdad2e632d5b471adcdaa65b6b09c3e543f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 17:27:57 -0500 Subject: [PATCH 108/157] Use `maxDistance` passed in to `osmIntersection()` in turn search (closes #4844) The maxDistance was previously hardcoded to 30 meters. Now we pass it in as a parameter when creating the intersection. But we need to honor that same maxDistance later when walking the graph to find turns from. --- modules/osm/intersection.js | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 17c42beb2..4b6a3cf24 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -387,7 +387,6 @@ export function osmIntersection(graph, startVertexId, maxDistance) { // maxViaWay=1 from-*-via-*-to (1 via max) // maxViaWay=2 from-*-via-*-via-*-to (2 vias max) var maxPathLength = (maxViaWay * 2) + 3; - var maxDistance = 30; // meters var turns = []; step(start); From f983f2397454bb94e30fb3e488f7ba96dae4c70e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 17:53:18 -0500 Subject: [PATCH 109/157] npm run imagery --- data/imagery.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/imagery.json b/data/imagery.json index b445e05a5..24a8e0ec8 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -33675,7 +33675,7 @@ "id": "DigitalGlobe-Premium", "name": "DigitalGlobe Premium Imagery", "type": "tms", - "template": "https://{switch:a,b,c,d}.tiles.mapbox.com/v4/digitalglobe.316c9a2e/{zoom}/{x}/{y}.png?access_token=pk.eyJ1IjoiZGlnaXRhbGdsb2JlIiwiYSI6ImNqOGRmNXltOTBucm0yd3BtY3E5czl6NmYifQ.qJJsPgCjyzMCm3YG3YWQBQ", + "template": "https://{switch:a,b,c,d}.tiles.mapbox.com/v4/digitalglobe.316c9a2e/{zoom}/{x}/{y}.png?access_token=pk.eyJ1IjoiZGlnaXRhbGdsb2JlIiwiYSI6ImNqZGFrZ2c2dzFlMWgyd2x0ZHdmMDB6NzYifQ.9Pl3XOO82ArX94fHV289Pg", "scaleExtent": [ 0, 22 @@ -33705,7 +33705,7 @@ "id": "DigitalGlobe-Standard", "name": "DigitalGlobe Standard Imagery", "type": "tms", - "template": "https://{switch:a,b,c,d}.tiles.mapbox.com/v4/digitalglobe.0a8e44ba/{zoom}/{x}/{y}.png?access_token=pk.eyJ1IjoiZGlnaXRhbGdsb2JlIiwiYSI6ImNqOGRmNW9qZjBudmgzMnA1a294OGRtNm8ifQ.06mo-nDisy4KmqjYxEVwQw", + "template": "https://{switch:a,b,c,d}.tiles.mapbox.com/v4/digitalglobe.0a8e44ba/{zoom}/{x}/{y}.png?access_token=pk.eyJ1IjoiZGlnaXRhbGdsb2JlIiwiYSI6ImNqZGFrZ3pjczNpaHYycXFyMGo0djY3N2IifQ.90uebT4-ow1uqZKTUrf6RQ", "scaleExtent": [ 0, 22 @@ -72418,7 +72418,7 @@ ] ] ], - "terms_url": "https://njgin.state.nj.us/NJ_NJGINExplorer/ShowMetadata.jsp?docId={CDC67AB8-ADA1-4B4B-9087-67A82CB9151C}", + "terms_url": "https://njgin.state.nj.us/NJ_NJGINExplorer/ShowMetadata.jsp?docId={E30775F2-6370-4525-8E68-C371ED29BBB3}", "terms_text": "NJ Office of Information Technology (NJOIT), Office of Geographic Information Systems (OGIS)", "description": "Digital orthophotography of New Jersey, Near Infrared, 1 foot resolution" }, From 07015d420b94ef058d24eb27e80232792edf384c Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 17:53:42 -0500 Subject: [PATCH 110/157] npm run translations --- data/locales.json | 6 +- dist/locales/ar.json | 187 +- dist/locales/ast.json | 9 - dist/locales/bg.json | 2725 ++++++++++++++++++++++++++ dist/locales/ca.json | 121 +- dist/locales/ckb.json | 83 + dist/locales/cs.json | 286 ++- dist/locales/cy.json | 202 ++ dist/locales/da.json | 183 +- dist/locales/de.json | 414 ++-- dist/locales/el.json | 6 - dist/locales/en-GB.json | 9 - dist/locales/eo.json | 28 +- dist/locales/es.json | 115 +- dist/locales/et.json | 100 +- dist/locales/fa.json | 113 +- dist/locales/fi.json | 1064 ++++++++++- dist/locales/fr.json | 353 +++- dist/locales/gl.json | 60 +- dist/locales/he.json | 1896 +++++++++++++++++- dist/locales/hr.json | 24 +- dist/locales/hu.json | 48 +- dist/locales/hy.json | 6 - dist/locales/id.json | 6 - dist/locales/is.json | 4029 ++++++++++++++++++++++++++++++++++++++- dist/locales/it.json | 60 +- dist/locales/ja.json | 372 ++-- dist/locales/kn.json | 6 - dist/locales/ko.json | 25 +- dist/locales/ku.json | 76 +- dist/locales/lt.json | 6 - dist/locales/mk.json | 6 - dist/locales/ms.json | 6 - dist/locales/nl.json | 71 +- dist/locales/no.json | 16 +- dist/locales/pl.json | 320 +++- dist/locales/pt-BR.json | 47 +- dist/locales/pt.json | 80 +- dist/locales/ro.json | 30 +- dist/locales/ru.json | 1667 ++++++++++++---- dist/locales/si.json | 6 - dist/locales/sk.json | 6 - dist/locales/sl.json | 13 +- dist/locales/sq.json | 5 - dist/locales/sr.json | 6 - dist/locales/sv.json | 31 +- dist/locales/te.json | 5 - dist/locales/tl.json | 6 - dist/locales/tr.json | 176 +- dist/locales/uk.json | 139 +- dist/locales/vi.json | 55 +- dist/locales/yue.json | 6 - dist/locales/zh-CN.json | 39 +- dist/locales/zh-HK.json | 6 - dist/locales/zh-TW.json | 34 +- 55 files changed, 13882 insertions(+), 1512 deletions(-) create mode 100644 dist/locales/ckb.json diff --git a/data/locales.json b/data/locales.json index 5bfac1cd3..d7b95f1c5 100644 --- a/data/locales.json +++ b/data/locales.json @@ -18,9 +18,6 @@ "bg": { "rtl": false }, - "bg-BG": { - "rtl": false - }, "bn": { "rtl": false }, @@ -30,6 +27,9 @@ "ca": { "rtl": false }, + "ckb": { + "rtl": false + }, "cs": { "rtl": false }, diff --git a/dist/locales/ar.json b/dist/locales/ar.json index 93c05fb8f..49456c689 100644 --- a/dist/locales/ar.json +++ b/dist/locales/ar.json @@ -282,12 +282,6 @@ "connected_to_hidden": "لا يمكن فصل هذه لأنها متصلة بعنصر مخفي." }, "restriction": { - "help": { - "select": "انقر لتحديد جزء من الطريق.", - "toggle": "انقر لتبديل القيود المفروضة على الإنعطاف.", - "toggle_on": "انقر لإضافة تقييد \"{restriction}\".", - "toggle_off": "انقر لإزالة تقييد \"{restriction}\"." - }, "annotation": { "create": "تم إضافة تقييد انعطاف", "delete": "تمت ازالة تقييد انعطاف" @@ -310,7 +304,7 @@ "localized_translation_language": "اختر لغة", "localized_translation_name": "الاسم" }, - "zoom_in_edit": "كبّر للتعديل", + "zoom_in_edit": "كبّر الخريطة للتعديل", "login": "تسجيل دخول", "logout": "تسجيل خروج", "loading_auth": "جار الإتصال بـ OpenStreetMap ...", @@ -336,12 +330,13 @@ "changes": "عدد التغييرات: {count}", "download_changes": "تنزيل ملف osmChange", "warnings": "تحذيرات", - "modified": "عُدلت", - "deleted": "حُذفت", - "created": " تم إنشائها", + "modified": "تم تعديل", + "deleted": "تم حذف", + "created": "تم إنشاء", "about_changeset_comments": "حول ملخص التغييرات التي قمت بها", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", - "google_warning": "ذكرت جوجل في هذا التعليق: تذكر أن النسخ من خرائط جوجل ممنوع منعاً باتاً." + "google_warning": "لقد قمت بذكر جوجل في هذا التعليق: تذكر أن النسخ من خرائط جوجل ممنوع منعاً باتاً.", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "حُرر بواسطة {users}", @@ -353,7 +348,10 @@ "key": "خ", "title": "الخلفية", "zoom": "تقريب", + "source": "المصدر", "description": "الوصف", + "resolution": "درجة الوضوح", + "accuracy": "الدقة", "unknown": "مجهول" }, "history": { @@ -448,13 +446,22 @@ "title": "الخلفية", "description": "إعدادات الخلفية", "key": "خ", + "backgrounds": "الخلفيات", "none": "لا شيء", "best_imagery": "أفضل مصدر صور معروف لهذه المنطقة", "switch": "رجوع إلى هذه الخلفية.", "custom": "مخصص", "custom_button": "تحرير خلفية مخصصة", + "overlays": "التراكبات", + "imagery_source_faq": "معلومات الصور / الإبلاغ عن مشكلة", "reset": "إعادة الضبط", + "display_options": "خيارات العرض", + "brightness": "السطوع", + "contrast": "التباين", + "saturation": "التشبع", + "sharpness": "الحِدة", "minimap": { + "description": "عرض خريطة مصغّرة", "tooltip": "عرض الخريطة من بعيد للمساعدة في تحديد المنطقة المعروضة حاليا.", "key": "/" }, @@ -543,19 +550,20 @@ } }, "restore": { - "heading": "لديك تعديلات غير محفوظة", + "heading": "لديك تغييرات غير محفوظة", "description": "هل ترغب باستعادة التغييرات الغير محفوظة من جلسة التعديل السابقة؟", "restore": "استعادة تغييراتي", "reset": "تجاهل تغييراتي" }, "save": { "title": "حفظ", - "help": "راجع تعديلاتك وارفعها على OpenStreetMap واجعلها مرئية للمستخدمين الآخرين.", - "no_changes": "لا يوجد تعديلات للحفظ.", + "help": "راجع تغييراتك وارفعها على OpenStreetMap واجعلها مرئية للمستخدمين الآخرين.", + "no_changes": "لا يوجد تغييرات للحفظ.", "error": "حدث خطأ أثناء محاولة الحفظ", "status_code": "أعاد الخادم رمز الحالة {code}", "unknown_error_details": "الرجاء التأكد من أنك متصل بالإنترنت.", - "uploading": "جارٍ رفع التعديلات على OpenStreetMap ...", + "uploading": "جارٍ رفع التغييرات على OpenStreetMap ...", + "conflict_progress": "التحقق من وجود تعارضات: {num} من {total}", "unsaved_changes": "لديك تغييرات غير محفوظة", "conflict": { "header": "حل عمليات التحرير المتعارضة", @@ -650,9 +658,38 @@ "mapillary": { "view_on_mapillary": "اعرض هذه الصورة في Mapillary" }, + "openstreetcam_images": { + "tooltip": "صور على مستوى الشارع من OpenStreetCam", + "title": "تراكب الصور (OpenStreetCam)" + }, + "openstreetcam": { + "view_on_openstreetcam": "عرض هذه الصورة على OpenStreetCam" + }, "help": { "title": "المساعدة", - "key": "م" + "key": "م", + "help": { + "title": "المساعدة", + "welcome": "مرحبا بك في محرر iD لتحرير الخرائط على [OpenStreetMap](https://www.openstreetmap.org/).\nمع هذا المحرر بإمكانك تحديث البيانات على OpenStreetMap مباشرة من خلال متصفح الويب.", + "open_data_h": "البيانات المفتوحة", + "open_data": "التعديلات والتغييرات التي تقوم بها على هذه الخرائط ستكون مرئية لكل من يستخدم خرائط OpenStreetMap.\nتعديلاتك يمكن أن تستند على معرفتك الشخصية، أو من خلال المسح والاستقصاء على أرض الواقع، أو من خلال الصور التي تم جمعها من التصوير الجوي وصور مستوى الشارع.\n كما ينبغي التنبيه والتشديد على أن النسخ من المصادر التجارية، كخرائط جوجل [ممنوع منعًا باتا](https://www.openstreetmap.org/copyright).", + "before_start_h": "قبل أن تبدأ", + "before_start": "ينبغي أن تكون على دراية بخرائط OpenStreetMap وهذا المحرر قبل البدء بالتحرير.\nإن محرر iD يحتوي على جولة لتعليمك أساسيات التحرير على خرائط OpenStreetMap.\nانقر على \"بدء جولة تعليم\" الظاهرة في هذه الصفحة لبدء جولة تعليمية - قد تستغرق منك حوالي 15 دقيقة فقط.", + "open_source_h": "المصدر مفتوح", + "open_source": "إن محرر iD هو مشروع تعاوني مفتوح المصدر، وأنت تستخدم الإصدار رقم {version} منه الآن.\nالكود المصدري متوفر [على موقع الاستضافة GitHub](https://github.com/openstreetmap/iD).", + "open_source_help": "يمكنك المساهمة والمساعدة في مشروع iD عن طريق [الترجمة](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) أو [الإبلاغ عن العلل والمشاكل](https://github.com/openstreetmap/iD/issues)التي قد تواجهها أثناء استخدامك للمحرر." + }, + "overview": { + "title": "نظرة عامة", + "navigation_h": "التنقل بين عناصر المحرر", + "navigation_drag": "يمكنك تحريك وسحب الخريطة عن طريق الضغط عليها بزر الفأرة الأيسر {leftclick} مع الاستمرار على الضغط مع تحريك الفأرة. يمكنك أيضا استخدام مفاتيح الأسهم `↓`, `↑`, `←`, `→` على لوحة مفاتيحك لنفس الغرض." + }, + "editing": { + "upload": "قبل رفع تغييراتك ينبغي عليك إدخال [تعليق على التغييرات](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). ثم اضغط على **رفع** لإرسال تغييراتك إلى خرائط OpenStreetMap, حيث ستدمج هذه التغييرات مع الخرائط وتكون مرئية للجميع." + }, + "imagery": { + "title": "صور الخلفية" + } }, "intro": { "done": "تم", @@ -720,6 +757,7 @@ "main-street": "الشارع الرئيسي", "maple-street": "شارع القيقب", "marina-park": "حديقة مارينا", + "market-street": "شارع السوق", "michigan-avenue": "جادة ميشيغان", "middle-street": "الشارع الأوسط", "pizza-hut": "بيتزا هت", @@ -733,13 +771,13 @@ }, "welcome": { "title": "مرحبًا", - "welcome": "أهلا بك ! هذه جولة ستعلمك أساسيات التحرير على خرائط الشارع المفتوحة OpenStreetMap.", - "practice": "جميع البيانات في هذه الجولة هي من أجل الممارسة والتعلم، وأي تغييرات أو تعديلات ستقوم بها في هذه الجولة لن يتم حفظها.", - "words": "ستعرض عليك هذه الجولة بعض الكلمات والمفاهيم الجديدة. عند عرض كلمة جديدة أو مفهوم جديد سنستخدم *الخط المائل*.", + "welcome": "أهلا بك ! هذه الجولة ستعلمك أساسيات التحرير على خرائط الشارع المفتوحة OpenStreetMap.", + "practice": "جميع البيانات في هذه الجولة من أجل الممارسة والتعلّم، وأي تغييرات أو تعديلات ستقوم بها في هذه الجولة لن يتم حفظها.", + "words": "ستعرض عليك هذه الجولة بعض الكلمات والمفاهيم الجديدة.\nعند عرض كلمة جديدة أو مفهوم جديد سنستخدم *الخط المائل*.", "mouse": "يمكنك استخدام أي جهاز إدخال لتحرير الخريطة، ولكن في هذه الجولة سنفترض أن لديك فأرة تحتوي زرّ أيمن وزرّ أيسر. **إذا كنت ترغب بتوصيل فأرة حاسوب، فافعل ذلك الآن، ثم انقر على موافق**", "leftclick": "عندما يُطلب منك في هذه الجولة أن تقوم بالنقر أو النقر المزدوج، فإنه يعني النقر بالزر الأيسر للفأرة.\nفي لوحة اللمس كما في أجهزة الحاسوب المحمولة قد تكون نقرة واحدة أو لمسة واحدة. **أنقر بالزر الأيسر للفأرة {num} مرات.**", - "rightclick": "في بعض الأحيان قد يُطلب منك أن تنقر بالزر الأيمن للفأرة. قد يكون هذا كضغط مفتاح Ctrl على لوحة المفاتيح، أو اللمس باصبعين على لوحة اللمس كما في الأجهزة المحمولة. كما قد تحتوي لوحة مفاتيحك على مفتاح \"القائمة\" والذي يعمل نفس عمل النقر الأيمن للفأرة. **أنقر بالزرّ الأيمن للفأرة {num} مرات.**", - "chapters": "إلى الآن، الأمور جيدة!. يمكنك استخدام الأزرار أدناه لتخطي أقسام الجولة في أي وقت، أو إعادة قسم ما من البداية إذا واجهت مشكلة. دعنا نبدأ! **أنقر '{next}' للمتابعة.**" + "rightclick": "في بعض الأحيان قد يُطلب منك أن تنقر بالزر الأيمن للفأرة. قد يكون هذا كضغط مفتاح Ctrl على لوحة المفاتيح، أو اللمس باصبعين على لوحة اللمس كما في الحواسيب المحمولة. كما قد تحتوي لوحة مفاتيحك على مفتاح \"القائمة\" والذي يعمل نفس عمل النقر الأيمن للفأرة. **أنقر بالزرّ الأيمن للفأرة {num} مرات.**", + "chapters": "إلى الآن، الأمور جيدة !\nيمكنك استخدام الأزرار أدناه لتخطي أقسام الجولة في أي وقت، أو إعادة قسم ما من البداية إذا واجهت مشكلة.\nدعنا نبدأ! **أنقر '{next}' للمتابعة.**" }, "navigation": { "title": "التنقل", @@ -747,12 +785,13 @@ "zoom": "يمكنك تكبير أو تصغير الخريطة عن طريق إدارة عجلة الفأرة الوسطى، أو عن طريق الضغط على أزرار {plus} / {minus} في لوحة المفاتيح. **كبّر الخريطة وصغّرها!**", "features": "نحن نستخدم كلمة *عناصر* لوصف الأشياء الظاهرة على الخريطة. أي شيء في العالم الحقيقي يمكن وصفه كعنصر في خرائط OpenStreetMap.", "points_lines_areas": "عناصر الخريطة تتمثل في ثلاثة أشياء أساسية وهي *النقاط، والخطوط، والمساحات.*", - "click_townhall": "جميع العناصر على الخريطة يمكن تحديدها عن طريق النقر عليها. **انقر على النقطة لتحديدها.**", - "selected_townhall": "رائع! ، تم تحديد النقطة. العناصر المُحددة تظهر بحد متوهج ينبض باستمرار.", - "editor_townhall": "عند تحديد عنصر، فإن *محرر العناصر* يظهر إلى جانب الخريطة على اليمين.", + "nodes_ways": "في خرائط OpenStreetMap، قد يُطلق على النقطة في بعض الأحيان مصطلح *عُقدة*، كما قد يطلق على الخطوط والمساحات مصطلح *طُرق*.", + "click_townhall": "جميع العناصر على الخريطة يمكن اختيارها عن طريق النقر عليها. **انقر على النقطة لاختيارها.**", + "selected_townhall": "رائع! ، تم اختيار النقطة.\nالعناصر المُختارة تظهر بحد متوهج ينبض باستمرار.", + "editor_townhall": "عند اختيار عنصر، فإن *محرر العناصر* يظهر إلى جانب الخريطة على اليمين.", "preset_townhall": "في الجزء العلوي من محرر العناصر يظهر نوع العنصر. تلك النقطة المُختارة هي {preset}.", "fields_townhall": "الجزء الأوسط من محرر العناصر يحتوي على *حقول* تعرض صفات وخصائص العنصر المُختار، مثل اسم العنصر وعنوانه.", - "close_townhall": "**يمكنك غلق محرر العناصر عن طريق الضغط على مفتاح الهروب في لوحة المفاتيح \"Esc\" أو النقر على زرّ {button} في الركن العلوي من محرر العناصر.**", + "close_townhall": "**أغلق محرر العناصر عن طريق الضغط على مفتاح الهروب في لوحة المفاتيح \"Esc\" أو النقر على زرّ {button} في الركن العلوي من محرر العناصر.**", "search_street": "يمكنك أيضا البحث عن العناصر المختلفة في العرض الحالي، أو في جميع أنحاء العالم. **ابحث عن '{name}'.**", "choose_street": "**اختر {name} من القائمة لاختياره**", "selected_street": "رائع! {name} مختار الآن.", @@ -761,24 +800,25 @@ }, "points": { "title": "النقاط", - "add_point": "يمكن استخدام *النقاط* لتمثيل المتاجر، والمطاعم، والآثار ونحو ذلك.{br}يمكنك تحديد منطقة معينة، ووصف ما يوجد بها. **انقر على زرّ {button} لإضافة نقطة جديدة.**", + "add_point": "يمكن استخدام *النقاط* لتمثيل المتاجر، والمطاعم، والآثار ونحو ذلك.{br}يمكنك تحديد منطقة معينة، ووصف ما يوجد بها. **انقر على زرّ {button} نقطة لإضافة نقطة جديدة.**", "place_point": "لوضع النقطة الجديدة على الخريطة، ضع مؤشر الفأرة في المكان الذي ترغب بإنشاء النقطة فيه، ثم انقر على الزرّ الأيسر للفأرة أو اضغط على مفتاح المسافة على لوحة المفاتيح. **حرّك مؤشر الفأرة حتى يكون على هذا المبنى، ثم انقر بالزرّ الأيسر للفأرة أو اضغط على مفتاح المسافة.**", - "search_cafe": "هناك العديد من العناصر المختلفة التي يمكن تمثيلها بالنقاط. النقطة التي اضفتها للتو عبارة عن مقهى. **ابحث عن '{preset}'.**", + "search_cafe": "هناك العديد من العناصر المختلفة التي يمكن تمثيلها بالنقاط.\nالنقطة التي اضفتها للتو عبارة عن مقهى.\n**ابحث عن '{preset}'.**", "choose_cafe": "**اختر {preset} من القائمة.**", "feature_editor": "النقطة الآن عبارة عن مقهى. باستخدام محرر العناصر، يمكنك إضافة المزيد من المعلومات عن المقهى.", "add_name": "في OpenStreetMap جميع الحقول اختيارية، ولا بأس من ترك حقل ما فارغ إذا كنت غير متأكد مما سيكتب فيه.{br}دعنا نتظاهر حاليا بأنك تعرف هذا المقهى، وتعرف اسمه. **أضف اسما للمقهى.**", "add_close": "محرر العناصر سيتذكّر جميع تغييراتك آليا. **عندما تنتهي من إضافة الاسم، اضغط مفتاح الهروب 'Esc'، أو مفتاح 'Enter'، أو اضغط على زرّ {button} لإغلاق محرر العناصر.**", - "reselect": "في كثير من الأحيان تكون النقاط موجودة مسبقا، ولكنها قد تحتوي أخطاءً أو قد تكون غير مكتملة.\nيمكنك تعديل النقاط الموجودة مسبقا. **انقر لاختيار المقهى الذي أنشأته للتو.**", + "reselect": "في كثير من الأحيان تكون النقاط موجودة مسبقا، ولكنها قد تحتوي أخطاء أو قد تكون غير مكتملة.\nيمكنك تعديل النقاط الموجودة مسبقا. **انقر على النقطة لاختيار المقهى الذي أنشأته للتو.**", "update": "دعنا نملأ بعضا من التفاصيل لهذا المقهى. يمكنك تغيير اسمه، أو إضافة عنوانه، أو إضافة مشروب يقدمه هذا المقهى. **قم بتغيير بعض تفاصيل المقهى.**", "update_close": "** عند انتهائك من تحديث تفاصيل المقهى، اضغط مفتاح 'Esc'، أو 'Enter'، أو اضغط زرّ {button} لإغلاق محرر العناصر.**", "rightclick": "يمكنك النقر بالزر الأيمن للفأرة على أي عنصر لعرض *قائمة التحرير*، والتي تعرض قائمة من عمليات التحرير التي يمكن إجرائها على العنصر. **انقر بالزر الأيمن على النقطة التي أنشأتها وشاهد قائمة التحرير.**", "delete": "لا بأس من حذف العناصر التي لا وجود لها فعليا في العالم الحقيقي.{br}حذف العناصر من OpenStreetMap يزيلها نهائيا من الخرائط التي يستخدمها الجميع. لذلك يجب عليك التأكد أن العنصر غير موجود فعليا قبل حذفه. **انقر على زرّ {button} لحذف النقطة.**", "undo": "يمكنك دوما التراجع عن أي تعديلات قمت بها حتى تقوم بحفظها على OpenStreetMap. **انقر على زرّ {button} للتراجع عن الحذف والبدء مجددا من نقطة سابقة.**", - "play": "الآن وبعد معرفتك كيفية إنشاء وتحرير النقاط، حاول إنشاء بعض النقاط الأخرى وتحريرها لغرض التمرين! ** عندما تكون جاهز للمتابعة إلى الجزء التالي من الجولة انقر '{next}'.**" + "play": "الآن وبعد معرفتك كيفية إنشاء وتحرير النقاط، حاول إنشاء بعض النقاط الأخرى وتحريرها لغرض التمرين! ** عندما تكون جاهزا للمتابعة إلى الجزء التالي من الجولة انقر '{next}'.**" }, "areas": { "title": "المساحات", - "start_playground": "دعنا نضيف هذا الملعب إلى الخريطة عن طريق رسم مساحة. تُرسم المساحة عن طريق وضع *نقاط تلاقي* على طول الحافة الخارجية للعنصر المراد رسمه. **انقر أو اضغط على مفتاح المسافة لوضع نقطة بدء رسم الملعب.**", + "add_playground": "تستخدم *المساحات* لعرض الحدود للعناصر مثل البحيرات، والمباني، والمناطق السكنية.\n.{br}كما يمكن استخدامها أيضا لعرض تفاصيل أكثر عن العناصر التي يتم وصفها عادة بالنقاط.\n**انقر على زر {button} مساحة لإضافة مساحة جديدة.**", + "start_playground": "دعنا نضيف هذا الملعب إلى الخريطة عن طريق رسم مساحة. تُرسم المساحة عن طريق وضع *عُقد* على طول الحافة الخارجية للعنصر المراد رسمه. **انقر أو اضغط على مفتاح المسافة لوضع نقطة بدء رسم الملعب.**", "continue_playground": "استمر في رسم المساحة عن طريق وضع مزيد من نقاط التلاقي على طول حافة الملعب. ولا بأس بوصل المساحة المرسومة بمسارات المشي الموجودة من قبل.{br}تلميح: يمكنك الضغط على مفتاح '{alt}' أثناء الرسم لمنع نقاط التلاقي من الاتصال بالعناصر الأخرى. **استمر برسم مساحة الملعب.**", "finish_playground": "يمكنك إنهاء رسم المساحة عن طريق الضغط على مفتاح Enter، أو النقر بالفأرة على أول نقطة أو آخر نقطة في المساحة المرسومة. **قم بإنهاء رسم مساحة الملعب.**", "search_playground": "**ابحث عن '{preset}'.**", @@ -787,26 +827,27 @@ "choose_field": "**اختر {field} من القائمة.**", "retry_add_field": "انت لم تختر حقل {field}. حاول مجددا.", "describe_playground": "**أضِف وصفا، ثم انقر على زرّ {button} لإغلاق محرر العناصر.**", - "play": "عمل رائع! حاول رسم بعض المساحات الأخرى، وانظر ما الأنواع الأخرى التي يمكنك التي يمكنك إضافتها من المساحات في OpenStreetMap. **عندما تكون جاهز للمتابعة إلى الجزء التالي من الجولة انقر '{next}'.**" + "play": "عمل رائع! حاول رسم بعض المساحات الأخرى، وانظر ما الأنواع الأخرى التي يمكنك إضافتها من المساحات في OpenStreetMap. **عندما تكون جاهزا للمتابعة إلى الجزء التالي من الجولة انقر '{next}'.**" }, "lines": { "title": "الخطوط", - "add_line": "تستخدم *الخطوط* لتمثيل الطُرق، وخطوط السكك الحديدية، والأنهار، وغير ذلك. **انقر على زرّ الخط {button} لإضافة خط جديد.**", + "add_line": "تستخدم *الخطوط* لتمثيل الطُرق، وخطوط السكك الحديدية، والأنهار، وغير ذلك. **انقر على زرّ {button} خط لإضافة خط جديد.**", "start_line": "هنا طريق غير موجود في الخرائط. دعنا نضيفه!{br}في OpenStreetMap، ينبغي أن تُرسم الخطوط على منتصف الطريق. يمكنك سحب وتكبير وتصغير الخريطة أثناء الرسم. **ابدأ رسم خط جديد بالنقر على الطرف العلوي للطريق المراد رسمه.**", - "intersect": "انقر بالفأرة أو اضغط مفتاح المسافة لإضافة المزيد من النقاط إلى الخط..{br}الطرق، والعديد من أنواع الخطوط الأخرى، هي جزء من شبكة أكبر. فمن المهم لهذه الخطوط أن تكون متصلة بشكل سليم من أجل أن تعمل تطبيقات الاتجاهات بشكل سليم.\n**انقر على {name} لإنشاء تقاطع يصل كلا الخطين ببعض.**", + "intersect": "انقر بالفأرة أو اضغط مفتاح المسافة لإضافة المزيد من النقاط إلى الخط..{br}الطرق، والعديد من أنواع الخطوط الأخرى، هي جزء من شبكة أكبر. فمن المهم لهذه الخطوط أن تكون متصلة بشكل سليم من أجل أن تعمل تطبيقات الاتجاهات بشكل سليم.\n**انقر على {name} لإنشاء تقاطع يصل كلا الخطين ببعضهما.**", "retry_intersect": "الطريق بحاجة لأن يتقاطع مع {name}. دعنا نحاول مجددا!", - "continue_line": "استمر في رسم الخط للطريق الجديد. وتذكر أنه يمكنك سحب وتكبير وتصغير الخريطة أثناء الرسم عند الحاجة لذلك.{br}عند انتهائك من الرسم، انقر على آخر نقطة مرة آخرى. **أنه رسم الطريق.**", + "continue_line": "استمر في رسم الخط للطريق الجديد. وتذكر أنه يمكنك سحب وتكبير وتصغير الخريطة أثناء الرسم عند الحاجة لذلك.{br}عند انتهائك من الرسم، انقر على آخر نقطة مرة آخرى. **أنهِ رسم الطريق.**", "choose_category_road": "**اختر {category} من القائمة.**", "choose_preset_residential": "هناك العديد من الأنواع المختلفة من الطرق، ولكن هذا الطريق سكني. **اختر {preset}.**", "retry_preset_residential": "انت لم تختر نوع {preset}. **انقر هنا للاختيار مجددا.**", "name_road": "**أعط اسما لهذا الطريق، ثم انقر مفتاح Esc أو Enter أو انقر على زرّ {button} لإغلاق محرر العناصر.**", "did_name_road": "رائع! الآن سوف نتعلم كيفية تحديث شكل الخط.", - "update_line": "في بعض الأحيان سوف تحتاج لتغيير الشكل لخط موجود مسبقا. لدينا هنا طريق لا يبدو أنه يظهر بشكل صحيح.", + "update_line": "في بعض الأحيان سوف تحتاج لتغيير شكل أو مسار خط موجود مسبقا. لدينا هنا طريق لا يبدو أنه يظهر بشكل صحيح.", "add_node": "بإمكاننا إضافة بعض النقاط للخط لتحسين شكله. إحدى الطرق لإضافة نقطة للخط هو النقر المزدوج بالفأرة على الخط في المكان الذي ترغب بإضافة النقطة فيه. **انقر نقرا مزدوجا على الخط لإنشاء نقطة جديدة.**", "start_drag_endpoint": "عند اختيار خط ما، يمكنك سحب أي من نقاطه المكونه له عن طريق النقر بالزر الأيسر مع الاستمرار بالنقر والسحب. **اسحب نقطة النهاية للخط إلى حيث يجب أن تتقاطع هذه الطرق.**", "finish_drag_endpoint": "هذه البقعة تبدو جيدة. **أترك الزرّ الأيسر للفأرة لإنهاء السحب.**", "start_drag_midpoint": "تظهر مثلثات صغيرة عند *نقاط المنتصف* بين كل نقطتين. ومن الطرق الأخرى لإنشاء نقطة جديدة هو سحب هذه المثلثات الصغيرة إلى مكان مختلف. **اسحب مثلث نقطة الوسط لإنشاء نقطة جديدة على طول منحنى الطريق.**", "continue_drag_midpoint": "هذا الخط يبدو أفضل بكثير! استمر بتعديل هذا الخط عن طريق النقر المزدوج عليه أو سحب مثلثات المنتصف لإنشاء نقط جديدة ومطابقة هذه النقط على الطريق ليأخذ المنحنى نفس شكل الطريق. **عند رضائك عن شكل المنحنى ومطابقته لشكل الطريق، انقر \"موافق\".**", + "delete_lines": "لا بأس من حذف الخطوط للطرق الغير موجودة فعلا في العالم الحقيقي.\n{br}هنا مثال على مدينة تم تخطيطها لرصف شارع {street} في تلك المنطقة ولكن لم يتم رصفه.\nيمكنك تحسين هذا الجزء من الخريطة عن طريق حذف الخطوط الإضافية.", "split_intersection": "**انقر على زرّ {button} لفصل {street}.**", "retry_split": "لم تقم بالنقر على زر الفصل. حاول مجددا.", "retry_delete": "أنت لم تضغط على زرّ الحذف. حاول مجددا" @@ -909,18 +950,39 @@ }, "commands": { "title": "الأوامر", + "copy": "نسخ العناصر المُختارة", + "paste": "لصق العناصة المنسوخة", + "undo": "تراجع عن آخر إجراء", + "redo": "إعادة آخر إجراء", "save": "حفظ التغييرات" } }, "tools": { "title": "أدوات", "info": { - "history": "تبديل لوحة السجل", - "location": "تبديل لوحة الموقع", - "measurement": "تبديل لوحة القياس" + "title": "معلومات", + "all": "عرض جميع لوحات المعلومات", + "background": "عرض لوحة الخلفية", + "history": "عرض لوحة السجل", + "location": "عرض لوحة الموقع", + "measurement": "عرض لوحة القياس" } } }, + "units": { + "feet": "{quantity} قدم", + "miles": "{quantity} ميل", + "square_feet": "{quantity} قدم مربع", + "square_miles": "{quantity} ميل مربع", + "meters": "{quantity} متر", + "kilometers": "{quantity} كلم", + "square_meters": "{quantity} م²", + "square_kilometers": "{quantity} كلم²", + "north": "شمال", + "south": "جنوب", + "east": "شرق", + "west": "غرب" + }, "presets": { "categories": { "category-barrier": { @@ -1198,7 +1260,7 @@ "label": "وقت الاستلام" }, "comment": { - "label": "تعليق التغييرات" + "label": "التعليق على التغييرات" }, "communication_multi": { "label": "أنواع الاتصال" @@ -1306,6 +1368,37 @@ "diaper": { "label": "تغيير حفاظات الطفل متاح" }, + "direction": { + "label": "الاتجاه (بالدرجات في اتجاه عقارب الساعة)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "الاتجاه", + "options": { + "E": "الشرق", + "N": "الشمال", + "NE": "الشمال الشرقي", + "NW": "الشمال الغربي", + "S": "الجنوب", + "SE": "الجنوب الشرقي", + "W": "الغرب" + } + }, + "direction_clock": { + "label": "الاتجاه", + "options": { + "anticlockwise": "عكس عقارب الساعة", + "clockwise": "باتجاه عقارب الساعة" + } + }, + "direction_vertex": { + "label": "الاتجاه", + "options": { + "backward": "للوراء", + "both": "كلاهما / الكل", + "forward": "للأمام" + } + }, "display": { "label": "عرض" }, @@ -1376,6 +1469,9 @@ "wall": "جدار" } }, + "fitness_station": { + "label": "نوع المُعدّة" + }, "fixme": { "label": "أصلحني" }, @@ -1428,6 +1524,12 @@ "label": "الهاشتاجات المقترحة", "placeholder": "#مثال" }, + "healthcare": { + "label": "النوع" + }, + "healthcare/speciality": { + "label": "التخصصات" + }, "height": { "label": "الارتفاع (بالأمتار)" }, @@ -2095,6 +2197,10 @@ "name": "محل استئجار قوارب", "terms": "تأجير القوارب، ساحة الزوارق، تأجير زوارق" }, + "amenity/bureau_de_change": { + "name": "تحويل أموال", + "terms": "" + }, "amenity/cafe": { "name": "مقهى", "terms": "مقهى, مطعم, ناد ليلي" @@ -3247,6 +3353,9 @@ "name": "منظمة خيرية", "terms": "منظمة خيرية" }, + "office/company": { + "name": "مكتب شركة" + }, "office/educational_institution": { "name": "مؤسسة تعليمية ", "terms": "مؤسسة تعليمية، جامعة، كلية، مدرسة" diff --git a/dist/locales/ast.json b/dist/locales/ast.json index 0a56d31b5..87e66f121 100644 --- a/dist/locales/ast.json +++ b/dist/locales/ast.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Nun puede partise porque ta coneutao con una carauterística tapecida." }, "restriction": { - "help": { - "select": "Fai click pa seleicionar un segmentu de carretera", - "toggle": "Fai click pa conmutar les torgues de xiru.", - "toggle_on": "Fai click p'amestar una torga «{restriction}».", - "toggle_off": "Fai click pa desaniciar la torga «{restriction}»." - }, "annotation": { "create": "Amestada una torga de xiru", "delete": "Desaniciada una torga de xiru" @@ -3996,9 +3990,6 @@ "shop": { "name": "Tienda" }, - "shop/agrarian": { - "name": "Tienda d'agricultura" - }, "shop/alcohol": { "name": "Llicorería", "terms": "Bodega" diff --git a/dist/locales/bg.json b/dist/locales/bg.json index 4eeee3a6b..c55fe0f1e 100644 --- a/dist/locales/bg.json +++ b/dist/locales/bg.json @@ -1,5 +1,562 @@ { "bg": { + "modes": { + "add_area": { + "title": "Площ", + "description": "Добавяне на паркове, сгради, езера или други площи към картата.", + "tail": "Щракнете върху картата, за да започнете чертането на площен обект като парк, езеро или сграда." + }, + "add_line": { + "title": "Линия", + "description": "Добавяне на пътища, улици, пешеходни алеи, канали или други линейни обекти към картата.", + "tail": "Щракнете върху картата, за да започнете да чертаете път, пътека или маршрут." + }, + "add_point": { + "title": "Точка", + "description": "Добавяне на ресторанти, паметници, пощенски кутии или други точки към картата.", + "tail": "Щракнете върху картата за да добавите точка." + }, + "browse": { + "title": "Разглеждане", + "description": "Движете и увеличете картата." + }, + "draw_area": { + "tail": "Щракнете, за да добавите възли към вашия площен обект. Щракнете върху първия възел, за да завършите площния обект." + }, + "draw_line": { + "tail": "Щракнете, за да добавите още възли към линията. Щракнете върху други линии, за да ги свържете и двойно щракване, за да завършите линията." + }, + "drag_node": { + "connected_to_hidden": "Това не може да се редактира, защото е свързано със скрит обект." + } + }, + "operations": { + "add": { + "annotation": { + "point": "Добавена е точка.", + "vertex": "Добавен е възел към път.", + "relation": "Добавена е връзка" + } + }, + "start": { + "annotation": { + "line": "Започната е линия.", + "area": "Започнат е площен обект." + } + }, + "continue": { + "key": "A", + "title": "Продължи", + "description": "Продължи тази линия.", + "not_eligible": "Линията не може да бъде продължена.", + "multiple": "Няколко линии могат да бъдат продължени тук. За да изберете линия натиснете бутон Shift и кликнете върху линията, за да я изберете.", + "annotation": { + "line": "Продължена е линия.", + "area": "Продължен е площен обект." + } + }, + "cancel_draw": { + "annotation": "Чертането е отказано." + }, + "change_role": { + "annotation": "Сменена е ролята на член на релация." + }, + "change_tags": { + "annotation": "Променени са тагове." + }, + "circularize": { + "title": "Направете окръжност", + "description": { + "line": "Направете тази линия кръг.", + "area": "Превърнете този площен обект в окръжност." + }, + "key": "O", + "annotation": { + "line": "Линията е превърната в окръжност.", + "area": "Площният обект е превърнат в окръжност." + }, + "not_closed": "Този обект не може да стане кръг, защото не е затворен.", + "too_large": "Това не може да бъде направено кръгло, защото не достатъчна част от него е видима към момента.", + "connected_to_hidden": "Това не може да бъде кръгло, защото е свързано със скрит обект." + }, + "orthogonalize": { + "title": "Квадрат", + "description": { + "line": "Изправете ъглите на линията.", + "area": "Изправете ъглите на полигона." + }, + "key": "S", + "annotation": { + "line": "Изправихте ъглите на линия.", + "area": "Изправихте ъглите на площен обект." + }, + "not_squarish": "Това не може да бъде квадрат, защото не е квадратно.", + "too_large": "Това не може да бъде направено квадратно, защото не достатъчна част от него е видима в момента.", + "connected_to_hidden": "Това не може да бъде кръгло, защото е свързано със скрит обект." + }, + "straighten": { + "title": "Изправям", + "description": "Изправи тази линията.", + "key": "S", + "annotation": "Изправи линия.", + "too_bendy": "Това не може да се изправи защото се огъва твърде много.", + "connected_to_hidden": "Тази линия не може да се изправи, защото е свързана със скрит обект." + }, + "delete": { + "title": "Изтриване", + "description": { + "single": "Изтрийте този обект безвъзвратно.", + "multiple": "Изтрийте тези обекти безвъзвратно." + }, + "annotation": { + "point": "Изтрита е точка.", + "vertex": "Изтрит е възел от път.", + "line": "Изтрита е линия.", + "area": "Изтрит е площен обект.", + "relation": "Изтрита е релация.", + "multiple": "Изтрихте {n} обекта." + }, + "too_large": { + "single": "Този обект не може да се изтрие, защото не достатъчна част от него е видима в момента.", + "multiple": "Тези обекти не могат да се изтрият, защото не достатъчна част от тях е видима в момента." + }, + "incomplete_relation": { + "single": "Този обект не може да се изтрие, защото не е изцяло изтеглен.", + "multiple": "Тези обекти не могат да се изтрият, защото не са изцяло изтеглени." + }, + "part_of_relation": { + "single": "Този обект не може да бъде изтрит, защото е част от по-голяма релация. Трябва първо да го премахнете от релацията.", + "multiple": "Тези обекти не могат да бъдат изтрити, защото са част от по-голяма релация. Трябва първо да ги премахнете от релацията." + }, + "connected_to_hidden": { + "single": "Този обект не може да се изтрие, защото е свързан със скрит обкет.", + "multiple": "Тези обекти не могат да се изтрият, защото някои от тях са свързани със скрити обекти." + } + }, + "add_member": { + "annotation": "Добавен член към релация." + }, + "delete_member": { + "annotation": "Премахнат член на релация." + }, + "connect": { + "annotation": { + "point": "Свързан е път с точка.", + "vertex": "Свързан е път с друг път.", + "line": "Свързан е път с линия.", + "area": "Свързан е път с площен обект." + } + }, + "disconnect": { + "title": "Прекъсване", + "description": "Разделете тези линии/площни обекти едни от други.", + "key": "D", + "annotation": "Разделени са линии/площни обекти.", + "not_connected": "Няма достатъчно линии/площни обекти за разделяне тук.", + "connected_to_hidden": "Това не може да бъде", + "relation": "Това не може да се разпадне, защото свързва части от релацията." + }, + "merge": { + "title": "Обединяване", + "description": "Обедини обектите.", + "key": "C", + "annotation": "Обедини {n} обекти.", + "not_eligible": "Тези обекти не могат да бъдат обединени.", + "not_adjacent": "Тези обекти не могат да се обединят, защото крайните им точки не са свързани.", + "restriction": "Тези обекти не могат да се обединят, защото поне единият е част от \"{relation}\" връзка.", + "incomplete_relation": "Тези обекти не могат да се обединят, защото поне единият не е бил напълно изтеглен.", + "conflicting_tags": "Тези обекти не могат да се обединят, защото някои от тях имат противоречиви стойности." + }, + "move": { + "title": "Преместване", + "description": { + "single": "Премести този обект на друго място.", + "multiple": "Премести тези обекти на друго място." + }, + "key": "M", + "annotation": { + "point": "Преместена е точка.", + "vertex": "Преместен е възел от път.", + "line": "Преместена е линия.", + "area": "Преместен е площен обект", + "multiple": "Преместихте множество обекти." + }, + "incomplete_relation": { + "single": "Този обект не може да бъде преместен, защото не е изцяло изтеглен.", + "multiple": "Тези обекти не могат да бъдат преместени, защото не са изцяло изтеглени." + }, + "too_large": { + "single": "Този обект не може да бъде преместен, защото недостатъчна част от него е видима в момента.", + "multiple": "Тези обекти не могат да бъдат преместени, защото недостатъчна част от тях е видима в момента." + }, + "connected_to_hidden": { + "single": "Този обект не може да бъде преместен, защото е свързан със скрит обект.", + "multiple": "Тези обекти не могат да бъдат преместени, защото някои от тях са свързани със скрити обекти." + } + }, + "reflect": { + "title": { + "long": "Огледален образ дълъг", + "short": "Огледален образ къс" + }, + "description": { + "long": { + "single": "Създайте огледален образ на този обект по дългата му ос.", + "multiple": "Създайте огледален образ на тези обекти по дългата им ос." + }, + "short": { + "single": "Създайте огледален образ на този обект по късата му ос.", + "multiple": "Създайте огледален образ на тези обекти по късата им ос." + } + }, + "key": { + "long": "T", + "short": "Y" + }, + "annotation": { + "long": { + "single": "Създадохте огледален образ на обект по дългата му ос.", + "multiple": "Създадохте огледален образ на множество обекти по дългата им ос." + }, + "short": { + "single": "Създадохте огледален образ на обект по късата му ос.", + "multiple": "Създадохте огледален образ на множество обекти по късата им ос." + } + }, + "incomplete_relation": { + "single": "На този обект не може да се направи огледален образ, защото не е изцяло изтеглен.", + "multiple": "На тези обекти не може да се направи огледален образ, защото не са изцяло изтеглени." + }, + "too_large": { + "single": "На този обект не може да се направи огледален образ, защото недостатъчна част от него е видима в момента.", + "multiple": "На тези обекти не може да се направи огледален образ, защото недостатъчна част от тях е видима в момента." + }, + "connected_to_hidden": { + "single": "На този обект не може да се направи огледален образ, защото е свързан със скрит обект.", + "multiple": "На тези обекти не може да се направи огледален образ, защото са свързани със скрит обект." + } + }, + "rotate": { + "title": "Въртене", + "description": { + "single": "Завъртете този обект около централната му точка.", + "multiple": "Завъртете тези обекти около централната им точка." + }, + "key": "R", + "annotation": { + "line": "Завъртяна е линия.", + "area": "Завъртян е площен обект.", + "multiple": "Завъртени са множество обекти." + }, + "incomplete_relation": { + "single": "Този обект не може да бъде завъртян, защото не е изцяло изтеглен.", + "multiple": "Тези обекти не могат да бъдат завъртени, защото не са изцяло изтеглени." + }, + "too_large": { + "single": "Този обект не може да бъде завъртян, защото недостатъчна част от него е видима в момента.", + "multiple": "Тези обекти не могат да бъдат завъртени, защото недостатъчна част от тях е видима в момента." + }, + "connected_to_hidden": { + "single": "Този обект не може да бъде завъртян, защото е свързан със скрит обект.", + "multiple": "Тези обекти не могат да бъдат завъртени, защото някои от тях са свързани със скрити обекти." + } + }, + "reverse": { + "title": "Объръщане", + "description": "Сменете посоката на линията с противоположната.", + "key": "V", + "annotation": "Обърната е посоката на линия." + }, + "split": { + "title": "Разделяне", + "description": { + "line": "Разделете линията на две при този възел.", + "area": "Разделете границата на площния обект на две.", + "multiple": "Разделете на две линиите/границите на площния обект при този възел." + }, + "key": "X", + "annotation": { + "line": "Разделете линия.", + "area": "Разделете границата на площния обект.", + "multiple": "Разделете {n} линии/граници на площни обекти. " + }, + "not_eligible": "Линиите не могат да бъдат разделяни в началото или края им.", + "multiple_ways": "Има твърде много линии за разделяне тук.", + "connected_to_hidden": "Това не може да се разцепи, защото е свързано със скрит обект." + }, + "restriction": { + "annotation": { + "create": "Добавено ограничение в завойте", + "delete": "Изтрийте ограничение за завиване." + } + } + }, + "undo": { + "tooltip": "Назад: {action}", + "nothing": "Нищо за отменяне." + }, + "redo": { + "tooltip": "Отново: {action}", + "nothing": "Нищо за повторение." + }, + "tooltip_keyhint": "Бързи клавиши:", + "browser_notice": "Този редактор се поддържа във Firefox, Chrome, Safari, Opera и Internet Explorer 11 и следващи. Моля обновете своя браузър или използвайте Potlatch 2, за да редактирате картата.", + "translate": { + "translate": "Превод", + "localized_translation_label": "Многоезично име", + "localized_translation_language": "Изберете език", + "localized_translation_name": "Име" + }, + "zoom_in_edit": "Приближете за да редактирате.", + "login": "вход", + "logout": "изход", + "loading_auth": "Свързване с OpenStreetMap...", + "report_a_bug": "Докладвай грешка", + "help_translate": "Помощ за превода", + "feature_info": { + "hidden_warning": "{count} скрити обекти", + "hidden_details": "Следните обекти са скрити: {details}" + }, + "status": { + "error": "Не може да се свърже с API-то.", + "offline": "API-то е офлайн. Моля опитайте да редактирате по-късно.", + "readonly": "API-то е в режим само за четене. Ще трябва да почакате, за да запазите вашите промени.", + "rateLimit": "API-то ограничава анонимните конекции. Може да поправите това, като влезете." + }, + "commit": { + "title": "Качете в OpenStreetMap", + "upload_explanation": "Промените, които качвате ще са видими на всички карти използващи данни от OpenStreetMap.", + "upload_explanation_with_user": "Промените, които качвате като {user} ще са видими на всички карти използващи данни от OpenStreetMap.", + "request_review": "Бих искал някой да прегледа моите редакции.", + "save": "Качи", + "cancel": "Отказ", + "changes": "{count} промени", + "download_changes": "Свалете osmChange файл", + "warnings": "Предупреждения", + "modified": "Променени", + "deleted": "Изтрити", + "created": "Създадени", + "about_changeset_comments": "Относно коментарите на промените", + "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", + "google_warning": "Споменахте Google във вашия коментар - запомнете, че копирането от Google Maps е строго забранено.", + "google_warning_link": "https://www.openstreetmap.org/copyright" + }, + "contributors": { + "list": "Редакции от {users}", + "truncated_list": "Редакции от {users} и още {count} други" + }, + "info_panels": { + "key": "I", + "background": { + "key": "B", + "title": "Изображения", + "zoom": "Приближение", + "vintage": "Дата на заснемане", + "source": "Източник", + "description": "Описание", + "resolution": "Резолюция", + "accuracy": "Точност", + "unknown": "Неизвестно", + "show_tiles": "Покажи тайлове", + "hide_tiles": "Скрий тайлове", + "show_vintage": "Покажи стари", + "hide_vintage": "Скрий стари" + }, + "history": { + "key": "H", + "title": "История" + } + }, + "geometry": { + "point": "точка", + "vertex": "чупка", + "line": "линия", + "area": "площ", + "relation": "връзка" + }, + "geocoder": { + "search": "Търси навсякъде...", + "no_results_visible": "Няма резултати във видимата част на картата", + "no_results_worldwide": "Няма намерени резултати" + }, + "geolocate": { + "title": "Показване на моето местоположение", + "locating": "Зареждане, моля изчакайте..." + }, + "inspector": { + "no_documentation_combination": "Няма налична документация за тази комбинация от тагове", + "no_documentation_key": "Няма налична документация за този ключ", + "show_more": "Покажи още", + "view_on_osm": "Вижте на openstreetmap.org", + "all_fields": "Всички полета", + "all_tags": "Всички тагове", + "all_members": "Всички членове", + "all_relations": "Всички релации", + "new_relation": "Нова връзка...", + "role": "Роля", + "choose": "Изберете вид обект", + "results": "{n} резултата за {search}", + "reference": "Вижте в OpenStreetMap Wiki", + "back_tooltip": "Смяна на обект", + "remove": "Премахнете", + "search": "Търсене", + "unknown": "Неизвестно", + "incomplete": "<не е свалено>", + "feature_list": "Търсене на обекти", + "edit": "Редактиране на обект", + "check": { + "yes": "Да", + "no": "Не" + }, + "none": "Никакъв", + "node": "Възел", + "way": "Начин", + "relation": "Релация", + "location": "Местоположение", + "add_fields": "Добави поле:" + }, + "background": { + "title": "Изображения", + "description": "Изображения настройки", + "none": "Никакъв", + "best_imagery": "Най-известен източник на изображения за това местоположение", + "custom": "Обичаен", + "reset": "презареждане" + }, + "map_data": { + "title": "Картни Данни", + "description": "Картни Данни", + "data_layers": "Слоеве с данни", + "map_features": "Обекти от картата", + "autohidden": "Тези обекти бяха скрити автоматично, защото щяха да са пказани твърде много на екрана. Можете да увеличите, за да ги редактирате." + }, + "feature": { + "points": { + "description": "Точки" + }, + "traffic_roads": { + "tooltip": "Шосета, Улици, и др." + }, + "service_roads": { + "description": "Обслужващи Улици" + }, + "paths": { + "description": "Пътеки", + "tooltip": "Тротоари, Пешеходни Зони, Велосипедни Алеи, и т.н." + }, + "buildings": { + "description": "Сгради", + "tooltip": "Сгради, Заслони, Гаражи, и т.н." + }, + "landuse": { + "description": "Обекти за земеползване", + "tooltip": "Гори, Земеделски Земи, Жилищни зони, Търговски зони, и т.н." + }, + "boundaries": { + "description": "Граници", + "tooltip": "Административни Граници" + }, + "water": { + "description": "Водни Обекти" + }, + "rail": { + "description": "Железопътни Обекти", + "tooltip": "Железопътни линии" + }, + "power": { + "description": "Енергийни обекти", + "tooltip": "Електропроводи , Електроцентрали, Подстанции, и т.н." + }, + "past_future": { + "description": "Минал/Бъдещ" + }, + "others": { + "description": "Други", + "tooltip": "Всичко Друго" + } + }, + "area_fill": { + "partial": { + "description": "Частично Попълнен" + } + }, + "restore": { + "heading": "Имате незапазени промени", + "description": "Искате ли да възстановите незаписаните промени от предишна сесия?" + }, + "save": { + "title": "Запис", + "no_changes": "Няма промени за запис.", + "error": "Грешки настъпили докато се опитваме да запазим", + "status_code": "Сървърът върна статус с код {code}", + "unknown_error_details": "Моля уверете се че сте свързани с интернет.", + "unsaved_changes": "Имате незаписани промени", + "conflict": { + "header": "Решение на несъвместими редакции.", + "count": "Несъвместими {num} от {total}", + "previous": "< Предишен", + "next": "Следващ >", + "keep_remote": "Използвай техните", + "restore": "Възстанови", + "delete": "Остави Изтрито", + "done": "Всички несъответствия са решени!" + } + }, + "merge_remote_changes": { + "conflict": { + "nodelist": "Възлите са били променени и от вас и от {user}. ", + "memberlist": "Части от връзката бяха променени и от вас и от {user}.", + "tags": "Вие променихте {tag} таг на \"{local}\" и {user} се промени на \"{remote}\"." + } + }, + "success": { + "edited_osm": "Редактирахте OSM!", + "just_edited": "Вие редактирахте OpenStreetMap!", + "view_on_osm": "Вижте в OSM", + "facebook": "Споделете във Facebook", + "twitter": "Сподели в Twitter", + "google": "Сподели в Google+", + "help_link_text": "Детайли" + }, + "confirm": { + "cancel": "Отказ" + }, + "splash": { + "welcome": "Добре дошли в iD редактора за OpenStreetMap", + "text": "iD e лесен, но мощен инструмент за попълване на най-добрата свободна карта на света. Това е версия {version}. За повече информация вижте {website} и докладвайте за бъгове в {github}.", + "walkthrough": "Започнете опознавателната обиколка" + }, + "source_switch": { + "live": "live", + "lose_changes": "Имате незапазени промени. Смяната на картния сървър ще ги отхвърли. Сигурни ли сте, че искате да смените сървърите?", + "dev": "dev" + }, + "tag_reference": { + "description": "Описание", + "on_wiki": "{tag} в wiki.osm.org", + "used_with": "използва се с {type}" + }, + "validations": { + "untagged_point": "Точка без тагове.", + "untagged_point_tooltip": "Изберете типът обект който описва каква е тази точка.", + "untagged_line": "Линия без таг", + "untagged_line_tooltip": "Изберете типът обект който описва каква е тази линия.", + "untagged_area": "Площен обект без таг", + "untagged_area_tooltip": "Изберете типът обект който описва каква е тази площ.", + "tag_suggests_area": "Тагът {tag} предполага линията да е площен обект, но тя не е", + "deprecated_tags": "Отхвърлени тагове: {tags}" + }, + "cannot_zoom": "Не можете да намалявате повече в текущия режим.", + "full_screen": "Превключи на Цял Екран", + "mapillary_images": { + "tooltip": "Снимки за ниво на улицата от Mapillary" + }, + "mapillary": { + "view_on_mapillary": "Вижте тази снимка на Mapillary" + }, + "help": { + "title": "Помощ" + }, "intro": { "graph": { "block_number": "", @@ -13,6 +570,2174 @@ "subdistrict": "", "suburb": "", "countrycode": "bg" + }, + "navigation": { + "title": "Навигация" + }, + "points": { + "title": "Точки" + }, + "areas": { + "title": "Площи" + }, + "lines": { + "title": "Линии" + }, + "startediting": { + "title": "Започване на редакция", + "save": "Не забравяйте да записвате редовно промените, които правите!", + "start": "Започнете да картографирате!" + } + }, + "presets": { + "categories": { + "category-rail": { + "name": "Железопътни Обекти" + }, + "category-water-area": { + "name": "Водни Обекти" + }, + "category-water-line": { + "name": "Водни Обекти" + } + }, + "fields": { + "access": { + "label": "Разрешен достъп", + "options": { + "designated": { + "description": "Достъпът позволен според указателни табели или специфични местни разпоредби", + "title": "По предназначение" + }, + "destination": { + "description": "Достъпът разрешен само за достигане до дестинация", + "title": "До дестинация" + }, + "dismount": { + "description": "Достъпът разрешен, но ездачът или колоездачът трябва да е слязъл.", + "title": "Слизане" + }, + "no": { + "description": "Забранен публичният достъп", + "title": "Забранен" + }, + "permissive": { + "description": "Достъпът позволен докато собственика позволява", + "title": "Частичен" + }, + "private": { + "description": "Достъпът разрешен само с позволение на собственика", + "title": "Частен" + }, + "yes": { + "description": "Достъпът позволен с нормативен акт; право на преминаване", + "title": "Разрешен" + } + }, + "placeholder": "Неопределен", + "types": { + "access": "Всички", + "bicycle": "Велосипеди", + "foot": "Пешеходен", + "horse": "Коне", + "motor_vehicle": "МПС" + } + }, + "access_simple": { + "label": "Разрешен достъп" + }, + "address": { + "label": "Адрес", + "placeholders": { + "block_number": "Блок номер", + "block_number!jp": "Блок №", + "city": "Град", + "city!jp": "Град/Град под 100 000/Село/Специален район в Токио", + "city!vn": "Град/Град под 100 000", + "conscriptionnumber": "123", + "country": "Държава", + "county": "Област", + "county!jp": "Община", + "district": "Община", + "district!vn": "Арондисман/Град/Община", + "floor": "Етаж", + "hamlet": "Махала", + "housename": "Къща", + "housenumber": "123", + "housenumber!jp": "Сграда Номер/Имот Номер", + "neighbourhood": "Квартал", + "neighbourhood!jp": "Chōme/Aza/Koaza", + "place": "Място", + "postcode": "Пощенски код", + "province": "Област", + "province!jp": "Перфектура", + "quarter": "Жилищен квартал", + "quarter!jp": "Ōaza/Machi", + "state": "Икономически район NUT2", + "street": "Улица", + "subdistrict": "Землище", + "subdistrict!vn": "Район/Комуна/Град под 10 000", + "suburb": "Квартал", + "suburb!jp": "Район", + "unit": "Административна единица" + } + }, + "admin_level": { + "label": "Административно деление" + }, + "aerialway": { + "label": "Вид" + }, + "aerialway/access": { + "label": "Достъп", + "options": { + "both": "И двете", + "entry": "Качване", + "exit": "Слизане" + } + }, + "aerialway/bubble": { + "label": "Ветробран" + }, + "aerialway/capacity": { + "label": "Капацитет(на час)", + "placeholder": "500, 2500, 5000..." + }, + "aerialway/duration": { + "label": "Продължителност (минути)", + "placeholder": "1, 2, 3..." + }, + "aerialway/heating": { + "label": "Отоплен" + }, + "aerialway/occupancy": { + "label": "Места", + "placeholder": "2, 4, 8..." + }, + "aerialway/summer/access": { + "label": "Достъп (лято)", + "options": { + "both": "И двете", + "entry": "Качване", + "exit": "Слизане" + } + }, + "aeroway": { + "label": "Вид" + }, + "agrarian": { + "label": "Продукция" + }, + "amenity": { + "label": "Вид" + }, + "animal_boarding": { + "label": "За животни" + }, + "animal_breeding": { + "label": "За животни" + }, + "animal_shelter": { + "label": "За животни" + }, + "area/highway": { + "label": "Вид" + }, + "artist": { + "label": "Художник" + }, + "artwork_type": { + "label": "Вид" + }, + "atm": { + "label": "Банкомат" + }, + "backrest": { + "label": "Облегалка за гръб" + }, + "barrier": { + "label": "Вид" + }, + "bath/open_air": { + "label": "Открит" + }, + "bath/sand_bath": { + "label": "Пясъчна баня" + }, + "bath/type": { + "label": "Вид", + "options": { + "foot_bath": "Баня за крака", + "hot_spring": "Горещ минерален извор", + "onsen": "Японски Онсен" + } + }, + "beauty": { + "label": "Магазин вид" + }, + "bench": { + "label": "Пейка" + }, + "bicycle_parking": { + "label": "Вид" + }, + "bin": { + "label": "Кошче за боклук" + }, + "blood_components": { + "label": "Кръвни съставки", + "options": { + "plasma": "плазма", + "platelets": "тромбоцити", + "stemcells": "проби от стволови клетки", + "whole": "Цяла кръв" + } + }, + "board_type": { + "label": "Вид" + }, + "boules": { + "label": "Вид" + }, + "boundary": { + "label": "Вид" + }, + "brand": { + "label": "Търговска марка" + }, + "brewery": { + "label": "Наливни бири" + }, + "bridge": { + "label": "Вид", + "placeholder": "По подразбиране" + }, + "building": { + "label": "Сграда" + }, + "building_area": { + "label": "Сграда" + }, + "bunker_type": { + "label": "Вид" + }, + "cables": { + "label": "Кабели", + "placeholder": "1, 2, 3..." + }, + "camera/direction": { + "label": "Посока (Градуси по посока на часовниковата стрелка)", + "placeholder": "45, 90, 180, 270" + }, + "camera/mount": { + "label": "Монтаж на видеокамера" + }, + "camera/type": { + "label": "Вид видеокамера", + "options": { + "dome": "Куполна", + "fixed": "Фиксирана", + "panning": "Движеща се" + } + }, + "capacity": { + "label": "Капацитет", + "placeholder": "50, 100, 200..." + }, + "castle_type": { + "label": "Вид" + }, + "clothes": { + "label": "Дрехи" + }, + "club": { + "label": "Вид" + }, + "collection_times": { + "label": "График на събиране" + }, + "comment": { + "label": "Коментар на промяната", + "placeholder": "Кратко описание на вашите промени (изисква се)" + }, + "communication_multi": { + "label": "Вид комуникации" + }, + "construction": { + "label": "Вид" + }, + "contact/webcam": { + "label": "Уебкамера URL", + "placeholder": "http://example.com/" + }, + "content": { + "label": "Съдържание" + }, + "country": { + "label": "Държава" + }, + "covered": { + "label": "Покрит" + }, + "craft": { + "label": "Вид" + }, + "crane/type": { + "label": "Вид кран", + "options": { + "floor-mounted_crane": "Конзолен кран", + "portal_crane": "Портален кран", + "travel_lift": "Мобилен кран" + } + }, + "crop": { + "label": "Посев" + }, + "crossing": { + "label": "Вид" + }, + "cuisine": { + "label": "Кухня" + }, + "currency_multi": { + "label": "Валути" + }, + "cutting": { + "label": "Вид", + "placeholder": "По подразбиране" + }, + "cycle_network": { + "label": "Мрежа" + }, + "cycleway": { + "label": "Велоалеи", + "options": { + "lane": { + "description": "Велоалея отделена с маркировка от автомобилния трафик ", + "title": "Стандартна велоалея" + }, + "none": { + "description": "Без велоалея", + "title": "Никакъв" + }, + "opposite": { + "description": "Двупосочна велоалея по еднопосочна улица", + "title": "Велоалея в посока обратна на движението" + }, + "opposite_lane": { + "description": "Велоалея в посока обратна на автомобилния трафик", + "title": "Срещуположна велоалея" + }, + "share_busway": { + "description": "Велоалея споделена с бус лента", + "title": "Велоалея споделена с автобус" + }, + "shared_lane": { + "description": "Велоалея без отделяне от автомобилния трафик", + "title": "Споделена велоалея" + }, + "track": { + "description": "Велоалея отделена от автомобилния трафик чрез преграда", + "title": "Колодрум" + } + }, + "placeholder": "няма", + "types": { + "cycleway:left": "Лява", + "cycleway:right": "Дясна" + } + }, + "date": { + "label": "Дата" + }, + "delivery": { + "label": "Доставка" + }, + "denomination": { + "label": "Вероизповедание" + }, + "denotation": { + "label": "Название" + }, + "description": { + "label": "Описание" + }, + "devices": { + "label": "Устройства", + "placeholder": "1, 2, 3..." + }, + "diaper": { + "label": "Стая за повиване" + }, + "direction": { + "label": "Посока (Градуси по часовниковата стрелка)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "Посока", + "options": { + "E": "Изток", + "ENE": "Изток-североизток", + "ESE": "Изток-югоизток", + "N": "Север", + "NE": "Североизток", + "NNE": "Север-североизток", + "NNW": "Север-северозапад", + "NW": "Северозапад", + "S": "Юг", + "SE": "Югоизток", + "SSE": "Юг-югоизток", + "SSW": "Юг-югозапад", + "SW": "Югозапад", + "W": "Запад", + "WNW": "Запад-северозапад", + "WSW": "Запад-югозапад" + } + }, + "direction_clock": { + "label": "Посока", + "options": { + "anticlockwise": "Обратно на часовниковата стрелка", + "clockwise": "По часовниковата стрелка" + } + }, + "direction_vertex": { + "label": "Посока", + "options": { + "backward": "Назад", + "both": "И двете / Всички", + "forward": "Напред" + } + }, + "dispensing": { + "label": "Изпълнява рецепти" + }, + "display": { + "label": "Дисплей" + }, + "dock": { + "label": "Вид" + }, + "drive_through": { + "label": "Драйв-тру" + }, + "duration": { + "label": "Продължителност", + "placeholder": "00:00" + }, + "electrified": { + "label": "Електрифицикация", + "options": { + "contact_line": "Контактна мрежа", + "no": "Не", + "rail": "Контактна релса", + "yes": "Да (неуточнено)" + }, + "placeholder": "Контактна мрежа, контактна релса" + }, + "elevation": { + "label": "Надморска височина" + }, + "email": { + "label": "Email", + "placeholder": "example@example.com" + }, + "embankment": { + "label": "Вид", + "placeholder": "По подразбиране" + }, + "emergency": { + "label": "Спешни случаи" + }, + "entrance": { + "label": "Вид" + }, + "except": { + "label": "Изключения" + }, + "fax": { + "label": "Факс", + "placeholder": "+31 42 123 4567" + }, + "fee": { + "label": "Такса" + }, + "fence_type": { + "label": "Вид" + }, + "fire_hydrant/position": { + "label": "Местоположение", + "options": { + "green": "В зелени площи", + "lane": "На пътя", + "parking_lot": "В паркинг", + "sidewalk": "На тротоар" + } + }, + "fire_hydrant/type": { + "label": "Вид", + "options": { + "pillar": "Надземен", + "pond": "Резервоар", + "underground": "Подземен", + "wall": "Стенен" + } + }, + "fitness_station": { + "label": "Вид оборудване" + }, + "fixme": { + "label": "Поправи ме" + }, + "ford": { + "label": "Вид", + "placeholder": "По подразбиране" + }, + "frequency": { + "label": "Работна честота" + }, + "fuel": { + "label": "Гориво" + }, + "fuel_multi": { + "label": "Видове гориво" + }, + "gauge": { + "label": "Ширина" + }, + "gender": { + "label": "Пол", + "options": { + "female": "Женски пол", + "male": "Мъжки пол", + "unisex": "Унисекс" + }, + "placeholder": "Неизвестен" + }, + "generator/method": { + "label": "Метод на генерация" + }, + "generator/output/electricity": { + "label": "Изходна мощност", + "placeholder": "50 MW, 100 MW, 200 MW..." + }, + "generator/source": { + "label": "Източник на енергия" + }, + "generator/type": { + "label": "Вид" + }, + "government": { + "label": "Вид" + }, + "grape_variety": { + "label": "Сорт грозде" + }, + "handicap": { + "label": "Увреждане", + "placeholder": "1-18" + }, + "handrail": { + "label": "Парапет" + }, + "hashtags": { + "label": "Препоръчани хаштагове", + "placeholder": "#пример" + }, + "healthcare": { + "label": "Вид" + }, + "healthcare/speciality": { + "label": "Направления" + }, + "height": { + "label": "Височина (Метри)" + }, + "highway": { + "label": "Вид" + }, + "historic": { + "label": "Вид" + }, + "historic/civilization": { + "label": "Историческа цивилизация" + }, + "hoops": { + "label": "Кошове", + "placeholder": "1, 2, 4..." + }, + "iata": { + "label": "IATA" + }, + "icao": { + "label": "ICAO" + }, + "incline": { + "label": "Наклон" + }, + "incline_steps": { + "label": "Наклон", + "options": { + "down": "Надолу", + "up": "Нагоре" + } + }, + "indoor": { + "label": "Вътрешно разпределение" + }, + "information": { + "label": "Вид" + }, + "inscription": { + "label": "Надпис" + }, + "intermittent": { + "label": "Пресъхващ" + }, + "internet_access": { + "label": "Интернет достъп", + "options": { + "no": "Не", + "terminal": "Терминал", + "wired": "Кабелен", + "wlan": "Wifi", + "yes": "Да" + } + }, + "internet_access/fee": { + "label": "Такса за достъп до интернет" + }, + "internet_access/ssid": { + "label": "SSID (Име на мрежа)" + }, + "kerb": { + "label": "Бордюр" + }, + "label": { + "label": "Надпис" + }, + "lamp_type": { + "label": "Тип" + }, + "landuse": { + "label": "Вид" + }, + "lanes": { + "label": "Платна", + "placeholder": "1, 2, 3..." + }, + "layer": { + "label": "Слой", + "placeholder": "0" + }, + "leaf_cycle": { + "label": "Листен цикъл", + "options": { + "deciduous": "Листопаден", + "evergreen": "Вечнозелен ", + "mixed": "Смесен", + "semi_deciduous": "Полу-листопаден", + "semi_evergreen": "Полу-вечнозелен" + } + }, + "leaf_cycle_singular": { + "label": "Листен цикъл", + "options": { + "deciduous": "Листопадно", + "evergreen": "Вечнозелено", + "semi_deciduous": "Полу-листопадно", + "semi_evergreen": "Полу-вечнозелно" + } + }, + "leaf_type": { + "label": "Вид листа", + "options": { + "broadleaved": "Широколистни", + "leafless": "Безлистни", + "mixed": "Смесени", + "needleleaved": "Иглолистни" + } + }, + "leaf_type_singular": { + "label": "Вид листа", + "options": { + "broadleaved": "Широколистно", + "leafless": "Безлистно", + "needleleaved": "Иглолистно" + } + }, + "leisure": { + "label": "Вид" + }, + "length": { + "label": "Дължина (Метри)" + }, + "level": { + "label": "Ниво" + }, + "levels": { + "label": "Нива", + "placeholder": "2, 4, 6..." + }, + "lit": { + "label": "Осветление" + }, + "location": { + "label": "Местоположение" + }, + "man_made": { + "label": "Вид" + }, + "manhole": { + "label": "Вид" + }, + "map_size": { + "label": "Покритие" + }, + "map_type": { + "label": "Вид" + }, + "maxheight": { + "label": "Максимална височина", + "placeholder": "4, 4.5, 5, 14'0\", 14'6\", 15'0\"" + }, + "maxspeed": { + "label": "Ограничение на скоростта", + "placeholder": "40, 50, 60..." + }, + "maxstay": { + "label": "Максимален престой" + }, + "maxweight": { + "label": "Максимално тегло" + }, + "memorial": { + "label": "Вид" + }, + "monitoring_multi": { + "label": "Мониторинг" + }, + "mtb/scale": { + "label": "Трудност на трасе за планинско колоездене", + "options": { + "0": "Валиран чакъл/уплътнена земя, без препятствия, широки криви", + "1": "Малко нестабилна настилка, дребни препятствия, широки криви", + "2": "Много нестабилна настилка, големи препятствия, лесни серпентини", + "3": "Хлъзгава настилка, големи препятствия, тесни серпентини", + "4": "Нестабилна настилка или камъни, опасни серпентини", + "5": "Максимална трудност, големи участъци покрити с камъни, свлачища", + "6": "Невъзможно за каране с изключение на най-добрите планински колоездачи." + }, + "placeholder": "0, 1, 2, 3..." + }, + "mtb/scale/imba": { + "label": "IMBA Трудност на пътеките", + "options": { + "0": "Най-лесна (бял кръг)", + "1": "Лесна (зелен кръг)", + "2": "Средна (син кръг)", + "3": "Трудна (черен диамант)", + "4": "Изключително трудна (двоен черен диамант)" + }, + "placeholder": "Лесна, Средна, Трудна..." + }, + "mtb/scale/uphill": { + "label": "Трудност на изкачване при планинско колоездене", + "options": { + "0": "0: Среден наклон <10%, чакъл/уплътнена зема, без препятствия", + "1": "1: Среден наклон <15%, чакъл/уплътнена зема, малък брой дребни препятствия", + "2": "2: Среден наклон <20%, стабилна повърхност, камъни с големина на юмрук/корени", + "3": "3: Среден наклон <25%, разнообразна повърхност, камъни с големина на юмрук/клони", + "4": "4: Среден наклон <30%, лоши условия, големи скали/клони", + "5": "5: Много стръмни, обикновено е необходимо бутане или носене на колелото" + }, + "placeholder": "0, 1, 2, 3..." + }, + "name": { + "label": "Име", + "placeholder": "Популярно наименование (ако има такова)" + }, + "natural": { + "label": "Природа" + }, + "network": { + "label": "Мрежа" + }, + "network_bicycle": { + "label": "Вид мрежа", + "options": { + "icn": "Международна", + "lcn": "Локална", + "ncn": "Национална", + "rcn": "Регионална" + }, + "placeholder": "Локална, Регионална, Национална, Международна" + }, + "network_foot": { + "label": "Вид мрежа", + "options": { + "iwn": "Международна", + "lwn": "Локална", + "nwn": "Национална", + "rwn": "Регионална" + }, + "placeholder": "Локална, Регионална, Национална, Международна" + }, + "network_horse": { + "label": "Вид мрежа", + "options": { + "ihn": "Международна", + "lhn": "Локална", + "nhn": "Национална", + "rhn": "Регионална" + }, + "placeholder": "Локална, Регионална, Национална, Международна" + }, + "network_road": { + "label": "Мрежа" + }, + "note": { + "label": "Бележка" + }, + "office": { + "label": "Вид" + }, + "oneway": { + "label": "Еднопосочнoст", + "options": { + "alternating": "С изчакване", + "no": "Не", + "reversible": "Обръщаема", + "undefined": "Предполага се че е НЕ Е еднопосочна", + "yes": "Да" + } + }, + "oneway_yes": { + "label": "Еднопосочност", + "options": { + "alternating": "С изчакване", + "no": "Не", + "reversible": "Обръщаема", + "undefined": "Предполага се, че Е еднопосочна", + "yes": "Да" + } + }, + "opening_hours": { + "label": "Работно време" + }, + "operator": { + "label": "Оператор" + }, + "outdoor_seating": { + "label": "Места на открито" + }, + "par": { + "label": "Пар", + "placeholder": "3, 4, 5..." + }, + "park_ride": { + "label": "Буферен паркинг" + }, + "parking": { + "label": "Вид", + "options": { + "carports": "Навеси", + "garage_boxes": "Гаражни клетки", + "lane": "Паркинг лента", + "multi-storey": "Многоетажен", + "sheds": "Паянтов", + "underground": "Подземен" + } + }, + "payment_multi": { + "label": "Начини за плащане" + }, + "phases": { + "label": "Фази", + "placeholder": "1, 2, 3..." + }, + "phone": { + "label": "Телефон", + "placeholder": "+31 42 123 4567" + }, + "piste/difficulty": { + "label": "Трудност", + "options": { + "advanced": "Трудна (черен диамант)", + "easy": "Лесна (зелен кръг)", + "expert": "Експерт (двоен черен диамант)", + "extreme": "Екстремна (небходима катерачна екипировка)", + "freeride": "Фрирайд (извън пистите)", + "intermediate": "Средна (син квадрат)", + "novice": "За начинаещи (учебни)" + }, + "placeholder": "Лесна, Средна, Трудна" + }, + "piste/grooming": { + "label": "Оформяне", + "options": { + "backcountry": "Ски бягане", + "classic": "Класическо", + "classic+skating": "Класическо и пързаляне", + "mogul": "Могул", + "scooter": "Скутер/Моторна шейна", + "skating": "Пързаляне с кънки" + } + }, + "piste/type": { + "label": "Вид писта", + "options": { + "downhill": "Спускане", + "hike": "Ски туризъм", + "ice_skate": "Ледена пързалка", + "nordic": "Северни дисциплини", + "playground": "Детска площадка", + "skitour": "Ски тур", + "sled": "Шейни", + "sleigh": "Теглени шейни", + "snow_park": "Снежен парк" + } + }, + "place": { + "label": "Вид" + }, + "plant": { + "label": "Растение" + }, + "plant/output/electricity": { + "label": "Изходна мощност", + "placeholder": "500 MW, 1000 MW, 2000 MW..." + }, + "playground/baby": { + "label": "Бебешка седалка" + }, + "playground/max_age": { + "label": "Максимална възраст" + }, + "playground/min_age": { + "label": "Минимална възраст" + }, + "population": { + "label": "Население" + }, + "power": { + "label": "Вид" + }, + "power_supply": { + "label": "Ел. захранване" + }, + "produce": { + "label": "Земеделска продукция" + }, + "product": { + "label": "Продукция" + }, + "railway": { + "label": "Вид" + }, + "railway/position": { + "label": "Километричен камък", + "placeholder": "Разстояние до една десета (123.4)" + }, + "railway/signal/direction": { + "label": "Посока", + "options": { + "backward": "Назад", + "both": "В двете посоки", + "forward": "Напред" + } + }, + "recycling_accepts": { + "label": "Приема" + }, + "ref": { + "label": "Референтен код" + }, + "ref/isil": { + "label": "ISIL код" + }, + "ref_aeroway_gate": { + "label": "Гейт номер" + }, + "ref_golf_hole": { + "label": "Дупка номер", + "placeholder": "1-18" + }, + "ref_platform": { + "label": "Перон номер" + }, + "ref_road_number": { + "label": "Път номер" + }, + "ref_route": { + "label": "Маршрут номер" + }, + "ref_runway": { + "label": "Писта номер", + "placeholder": "напр. 01L/19R" + }, + "ref_stop_position": { + "label": "Спирка номер" + }, + "ref_taxiway": { + "label": "Рульожка номер", + "placeholder": "напр. A5" + }, + "relation": { + "label": "Вид" + }, + "religion": { + "label": "Религия" + }, + "restriction": { + "label": "Вид" + }, + "restrictions": { + "label": "Ограничения при завиване" + }, + "rooms": { + "label": "Стаи" + }, + "route": { + "label": "Вид" + }, + "route_master": { + "label": "Вид" + }, + "sac_scale": { + "label": "Трудност на туристически маршрут" + }, + "service": { + "label": "Вид" + }, + "shelter": { + "label": "Навес" + }, + "shop": { + "label": "Вид" + }, + "structure": { + "label": "Структура", + "options": { + "bridge": "Мост", + "cutting": "Изкоп", + "embankment": "Насип", + "tunnel": "Тунел" + }, + "placeholder": "Неизвестен" + }, + "supervised": { + "label": "Под наблюдение" + }, + "surface": { + "label": "Повърхност" + }, + "takeaway": { + "options": { + "no": "Не", + "yes": "Да" + } + }, + "tourism": { + "label": "Вид" + }, + "trail_visibility": { + "label": "Видимост на туристическата пътека" + }, + "water": { + "label": "Вид" + }, + "waterway": { + "label": "Вид" + }, + "website": { + "label": "Уебсайт", + "placeholder": "http://example.com/" + }, + "wetland": { + "label": "Вид" + }, + "wheelchair": { + "label": "Достъп за инвалиди" + }, + "wikipedia": { + "label": "Wikipedia" + } + }, + "presets": { + "address": { + "name": "Адрес" + }, + "aeroway": { + "name": "Въздухоплаване" + }, + "aeroway/aerodrome": { + "name": "Летище" + }, + "aeroway/apron": { + "name": "Стоянка за самолети" + }, + "aeroway/hangar": { + "name": "Хангар" + }, + "aeroway/helipad": { + "name": "Хеликоптерна площадка" + }, + "aeroway/runway": { + "name": "Летателна писта" + }, + "aeroway/taxiway": { + "name": "Рольожка" + }, + "amenity": { + "name": "Услуги" + }, + "amenity/atm": { + "name": "Банкомат" + }, + "amenity/bank": { + "name": "Банка" + }, + "amenity/bar": { + "name": "Бар" + }, + "amenity/bench": { + "name": "Пейка" + }, + "amenity/bicycle_parking": { + "name": "Паркинг за велосипеди" + }, + "amenity/bicycle_rental": { + "name": "Наем на велосипеди" + }, + "amenity/cafe": { + "name": "Кафене" + }, + "amenity/car_rental": { + "name": "Коли под наем" + }, + "amenity/car_sharing": { + "name": "Споделяне на коли" + }, + "amenity/car_wash": { + "name": "Автомивка" + }, + "amenity/cinema": { + "name": "Кино" + }, + "amenity/courthouse": { + "name": "Съд" + }, + "amenity/drinking_water": { + "name": "Чешма" + }, + "amenity/embassy": { + "name": "Посолство" + }, + "amenity/fast_food": { + "name": "Бърза закуска" + }, + "amenity/fire_station": { + "name": "Пожарна" + }, + "amenity/fountain": { + "name": "Фонтан" + }, + "amenity/fuel": { + "name": "Бензиностанция" + }, + "amenity/grave_yard": { + "name": "Гробище" + }, + "amenity/library": { + "name": "Библиотека" + }, + "amenity/marketplace": { + "name": "Пазар" + }, + "amenity/pharmacy": { + "name": "Аптека" + }, + "amenity/place_of_worship": { + "name": "Религиозен храм" + }, + "amenity/place_of_worship/buddhist": { + "name": "Будистки храм" + }, + "amenity/place_of_worship/christian": { + "name": "Църква" + }, + "amenity/place_of_worship/jewish": { + "name": "Синагога" + }, + "amenity/place_of_worship/muslim": { + "name": "Джамия" + }, + "amenity/police": { + "name": "Полиция" + }, + "amenity/post_box": { + "name": "Пощенска кутия" + }, + "amenity/post_office": { + "name": "Поща" + }, + "amenity/pub": { + "name": "Пъб" + }, + "amenity/restaurant": { + "name": "Ресторант" + }, + "amenity/swimming_pool": { + "name": "Плувен басейн" + }, + "amenity/taxi": { + "name": "Такси стоянка" + }, + "amenity/telephone": { + "name": "Телефон" + }, + "amenity/theatre": { + "name": "Театър" + }, + "amenity/toilets": { + "name": "Тоалетна" + }, + "amenity/townhall": { + "name": "Кметство" + }, + "amenity/waste_basket": { + "name": "Кош за боклук" + }, + "area": { + "name": "Площ" + }, + "barrier": { + "name": "Преграда" + }, + "barrier/block": { + "name": "Бетонен блок" + }, + "barrier/bollard": { + "name": "Колче" + }, + "barrier/cattle_grid": { + "name": "Тексаска мрежа" + }, + "barrier/city_wall": { + "name": "Градска стена" + }, + "barrier/cycle_barrier": { + "name": "Велосипедна преграда" + }, + "barrier/entrance": { + "name": "Вход" + }, + "barrier/fence": { + "name": "Ограда" + }, + "barrier/gate": { + "name": "Портал" + }, + "barrier/hedge": { + "name": "Жив плет" + }, + "barrier/kissing_gate": { + "name": "Препятствие за животни" + }, + "barrier/lift_gate": { + "name": "Бариера" + }, + "barrier/retaining_wall": { + "name": "Подпорна стена" + }, + "barrier/stile": { + "name": "Стълби за преминаване през ограда" + }, + "barrier/toll_booth": { + "name": "Будка за тол такса" + }, + "barrier/wall": { + "name": "Стена" + }, + "boundary/administrative": { + "name": "Административна граница" + }, + "building": { + "name": "Сграда" + }, + "building/apartments": { + "name": "Жилищен блок" + }, + "building/house": { + "name": "Къща" + }, + "emergency/phone": { + "name": "Телефон за спешна помощ" + }, + "highway": { + "name": "Път" + }, + "highway/bridleway": { + "name": "Конска пътека" + }, + "highway/cycleway": { + "name": "Велоалея" + }, + "highway/footway": { + "name": "Пешеходна алея" + }, + "highway/living_street": { + "name": "Жилищна улица" + }, + "highway/mini_roundabout": { + "name": "Малко кръгово кръстовище" + }, + "highway/motorway": { + "name": "Автомагистрала" + }, + "highway/motorway_link": { + "name": "Автомагистрална връзка" + }, + "highway/path": { + "name": "Пътека" + }, + "highway/primary": { + "name": "Първокласен път" + }, + "highway/primary_link": { + "name": "Връзка с първокласен път" + }, + "highway/residential": { + "name": "Улица" + }, + "highway/road": { + "name": "Непроучен път" + }, + "highway/secondary": { + "name": "Второкласен път" + }, + "highway/secondary_link": { + "name": "Връзка с второкласен път" + }, + "highway/service": { + "name": "Сервизна улица" + }, + "highway/service/alley": { + "name": "Тясна уличка между имоти" + }, + "highway/service/drive-through": { + "name": "Обслужване без напускане на автомобила" + }, + "highway/service/driveway": { + "name": "Алея за коли към жилище" + }, + "highway/service/emergency_access": { + "name": "За достъп при спешни случаи" + }, + "highway/service/parking_aisle": { + "name": "Път в паркинг" + }, + "highway/steps": { + "name": "Стъпала" + }, + "highway/street_lamp": { + "name": "Улична лампа" + }, + "highway/tertiary": { + "name": "Третокласен път" + }, + "highway/tertiary_link": { + "name": "Връзка с третокласен път" + }, + "highway/traffic_signals": { + "name": "Светофари" + }, + "highway/trunk": { + "name": "Скоростен път" + }, + "highway/trunk_link": { + "name": "Връзка със скоростен път" + }, + "highway/turning_circle": { + "name": "Място за обръщане" + }, + "historic": { + "name": "Място с историческо значение" + }, + "historic/archaeological_site": { + "name": "Археологически обект" + }, + "historic/boundary_stone": { + "name": "Граничен камък" + }, + "historic/castle": { + "name": "Замък" + }, + "historic/memorial": { + "name": "Мемориална плоча" + }, + "historic/monument": { + "name": "Паметник" + }, + "historic/ruins": { + "name": "Руини" + }, + "historic/wayside_cross": { + "name": "Крайпътен кръст" + }, + "historic/wayside_shrine": { + "name": "Крайпътен параклис" + }, + "landuse/basin": { + "name": "Басейн" + }, + "landuse/cemetery": { + "name": "Гробищен парк" + }, + "landuse/construction": { + "name": "Строеж" + }, + "landuse/farmyard": { + "name": "Селскостопански двор" + }, + "landuse/forest": { + "name": "Гора" + }, + "landuse/grass": { + "name": "Трева" + }, + "landuse/meadow": { + "name": "Пасище" + }, + "landuse/orchard": { + "name": "Овощна градина " + }, + "landuse/quarry": { + "name": "Кариера" + }, + "landuse/vineyard": { + "name": "Лозе" + }, + "leisure": { + "name": "Отдих" + }, + "leisure/garden": { + "name": "Градина" + }, + "leisure/golf_course": { + "name": "Голф игрище" + }, + "leisure/marina": { + "name": "Яхт клуб" + }, + "leisure/park": { + "name": "Парк" + }, + "leisure/pitch": { + "name": "Спортно игрище" + }, + "leisure/pitch/american_football": { + "name": "Игрище за американски футбол" + }, + "leisure/pitch/baseball": { + "name": "Игрище за бейзбол" + }, + "leisure/pitch/basketball": { + "name": "Баскетболно игрище" + }, + "leisure/pitch/soccer": { + "name": "Футболно игрище" + }, + "leisure/pitch/tennis": { + "name": "Тенис корт" + }, + "leisure/pitch/volleyball": { + "name": "Волейболно игрище" + }, + "leisure/playground": { + "name": "Детска площадка" + }, + "leisure/slipway": { + "name": "Хелинг" + }, + "leisure/stadium": { + "name": "Стадион" + }, + "leisure/swimming_pool": { + "name": "Плувен басейн" + }, + "line": { + "name": "Линия" + }, + "man_made": { + "name": "Съоръжения" + }, + "man_made/breakwater": { + "name": "Вълнолом" + }, + "man_made/cutline": { + "name": "Просека" + }, + "man_made/lighthouse": { + "name": "Морски фар" + }, + "man_made/pier": { + "name": "Кей" + }, + "man_made/pipeline": { + "name": "Тръбопровод" + }, + "man_made/survey_point": { + "name": "Геодезическа точка" + }, + "man_made/tower": { + "name": "Кула" + }, + "man_made/wastewater_plant": { + "name": "Пречиствателна станция" + }, + "man_made/water_tower": { + "name": "Водна кула" + }, + "man_made/water_works": { + "name": "Помпена станция" + }, + "natural": { + "name": "Природа" + }, + "natural/bay": { + "name": "Залив" + }, + "natural/beach": { + "name": "Плаж" + }, + "natural/cliff": { + "name": "Скала" + }, + "natural/coastline": { + "name": "Брегова линия" + }, + "natural/glacier": { + "name": "Ледник" + }, + "natural/grassland": { + "name": "Степ" + }, + "natural/heath": { + "name": "Малки храсти" + }, + "natural/peak": { + "name": "Връх" + }, + "natural/scrub": { + "name": "Шубрак" + }, + "natural/spring": { + "name": "Извор" + }, + "natural/tree": { + "name": "Дърво" + }, + "natural/water": { + "name": "Водна площ" + }, + "natural/water/lake": { + "name": "Езеро" + }, + "natural/water/pond": { + "name": "Малко езеро" + }, + "natural/water/reservoir": { + "name": "Язовир" + }, + "natural/wetland": { + "name": "Блатиста зона" + }, + "natural/wood": { + "name": "Гора" + }, + "office": { + "name": "Офис" + }, + "place": { + "name": "Населени места" + }, + "place/city": { + "name": "Град над 100 000" + }, + "place/hamlet": { + "name": "Махала" + }, + "place/island": { + "name": "Остров" + }, + "place/isolated_dwelling": { + "name": "Изолирано жилище" + }, + "place/locality": { + "name": "Местност" + }, + "place/town": { + "name": "Град под 100 000" + }, + "place/village": { + "name": "Село" + }, + "point": { + "name": "Точка" + }, + "power": { + "name": "Енергетика" + }, + "power/line": { + "name": "Електропровод" + }, + "power/pole": { + "name": "Електрически стълб" + }, + "power/sub_station": { + "name": "Подстанция" + }, + "power/tower": { + "name": "Жере" + }, + "power/transformer": { + "name": "Трансформатор" + }, + "railway": { + "name": "ЖП транспорт" + }, + "railway/abandoned": { + "name": "Изоставена железопътна линия" + }, + "railway/disused": { + "name": "Закрита железопътна линия" + }, + "railway/monorail": { + "name": "Монорелсов път" + }, + "railway/rail": { + "name": "ЖП линия" + }, + "railway/subway": { + "name": "Метро" + }, + "railway/subway_entrance": { + "name": "Вход на метростанция" + }, + "railway/tram": { + "name": "Трамвайни релси" + }, + "relation": { + "name": "Релация" + }, + "route/ferry": { + "name": "Фериботна връзка" + }, + "shop": { + "name": "Магазин" + }, + "shop/alcohol": { + "name": "Магазин за алкохол" + }, + "shop/bakery": { + "name": "Пекарна" + }, + "shop/beauty": { + "name": "Козметик" + }, + "shop/beverages": { + "name": "Магазин за алкохол и цигари" + }, + "shop/bicycle": { + "name": "Магазин за велосипеди" + }, + "shop/boutique": { + "name": "Бутик" + }, + "shop/butcher": { + "name": "Колбаси" + }, + "shop/car": { + "name": "Автомобили" + }, + "shop/car_parts": { + "name": "Авточасти" + }, + "shop/car_repair": { + "name": "Сервиз автомобили" + }, + "shop/clothes": { + "name": "Магазин за дрехи" + }, + "shop/computer": { + "name": "Компютърен магазин" + }, + "shop/convenience": { + "name": "Магазин за хранителни стоки" + }, + "shop/deli": { + "name": "Магазин за деликатеси" + }, + "shop/department_store": { + "name": "Универсален магазин" + }, + "shop/doityourself": { + "name": "Магазин \"Направи си сам\"" + }, + "shop/electronics": { + "name": "Магазин за електроника" + }, + "shop/farm": { + "name": "Щанд за плодове и зеленчуци" + }, + "shop/fishmonger": { + "name": "Магазин за риба" + }, + "shop/florist": { + "name": "Магазин за цветя" + }, + "shop/furniture": { + "name": "Мебелен магазин" + }, + "shop/garden_centre": { + "name": "Градински център" + }, + "shop/gift": { + "name": "Магазин за подаръци" + }, + "shop/greengrocer": { + "name": "Плод-зеленчук" + }, + "shop/hairdresser": { + "name": "Фризьорски салон" + }, + "shop/hardware": { + "name": "Железария" + }, + "shop/hifi": { + "name": "Магазин за аудиотехника" + }, + "shop/jewelry": { + "name": "Бижутер" + }, + "shop/laundry": { + "name": "Пералня" + }, + "shop/mall": { + "name": "Мол" + }, + "shop/mobile_phone": { + "name": "Магазин за мобилни телефони" + }, + "shop/motorcycle": { + "name": "Магазин за мотоциклети" + }, + "shop/music": { + "name": "Музикален магазин" + }, + "shop/optician": { + "name": "Оптика" + }, + "shop/pet": { + "name": "Зоо магазин" + }, + "shop/shoes": { + "name": "Магазин за обувки" + }, + "shop/sports": { + "name": "Спортен магазин" + }, + "shop/stationery": { + "name": "Магазин за канцеларски стоки" + }, + "shop/supermarket": { + "name": "Супермаркет" + }, + "shop/toys": { + "name": "Магазин за играчки" + }, + "shop/travel_agency": { + "name": "Туристическа агенция" + }, + "shop/tyres": { + "name": "Магазин за автомобилни гуми" + }, + "shop/vacant": { + "name": "Свободна търговска площ" + }, + "shop/variety_store": { + "name": "Смесен магазин" + }, + "shop/video": { + "name": "Видеотека" + }, + "tourism": { + "name": "Туризъм" + }, + "tourism/alpine_hut": { + "name": "Хижа" + }, + "tourism/artwork": { + "name": "Произведение на изкуството" + }, + "tourism/attraction": { + "name": "Туристическа атракция" + }, + "tourism/caravan_site": { + "name": "Паркинг за каравани" + }, + "tourism/guest_house": { + "name": "Къща за гости" + }, + "tourism/hostel": { + "name": "Хостел" + }, + "tourism/hotel": { + "name": "Хотел" + }, + "tourism/information": { + "name": "Информация" + }, + "tourism/motel": { + "name": "Мотел" + }, + "tourism/museum": { + "name": "Музей" + }, + "tourism/picnic_site": { + "name": "Място за пикник" + }, + "tourism/theme_park": { + "name": "Увеселителен парк" + }, + "tourism/viewpoint": { + "name": "Точка с хубава гледка" + }, + "tourism/zoo": { + "name": "Зоологическа градина" + }, + "type/boundary": { + "name": "Граница" + }, + "type/boundary/administrative": { + "name": "Административна граница" + }, + "type/multipolygon": { + "name": "Мултиполигон" + }, + "type/restriction": { + "name": "Ограничение" + }, + "type/restriction/no_right_turn": { + "name": "Без десен завой" + }, + "type/restriction/no_u_turn": { + "name": "Без обратен завой" + }, + "type/restriction/only_left_turn": { + "name": "Завой само на ляво" + }, + "type/restriction/only_right_turn": { + "name": "Завой само на дясно" + }, + "type/restriction/only_straight_on": { + "name": "Без завиване" + }, + "type/route": { + "name": "Маршрут" + }, + "type/route/bicycle": { + "name": "Велосипеден маршрут" + }, + "type/route/bus": { + "name": "Автобусен маршрут" + }, + "type/route/detour": { + "name": "Обходен маршрут" + }, + "type/route/ferry": { + "name": "Фериботна връзка" + }, + "type/route/foot": { + "name": "Пешеходен маршрут" + }, + "type/route/pipeline": { + "name": "Трасе на тръбопровод" + }, + "type/route/power": { + "name": "Трасе на електропровод" + }, + "type/route/road": { + "name": "Път" + }, + "type/route/train": { + "name": "Железопътен маршрут" + }, + "type/route/tram": { + "name": "Трамваен маршрут" + }, + "type/route_master": { + "name": "Маршрутна схема" + }, + "vertex": { + "name": "Друг" + }, + "waterway": { + "name": "Води" + }, + "waterway/canal": { + "name": "Канал" + }, + "waterway/dam": { + "name": "Язовирна стена" + }, + "waterway/ditch": { + "name": "Канавка" + }, + "waterway/drain": { + "name": "Отводнителен канал" + }, + "waterway/river": { + "name": "Река" + }, + "waterway/riverbank": { + "name": "Речен бряг" + }, + "waterway/stream": { + "name": "Поток" + }, + "waterway/weir": { + "name": "Преливник" + } + } + }, + "imagery": { + "Bing": { + "description": "Сателитни и аерофото изображения.", + "name": "Bing аерофото изображения" + }, + "DigitalGlobe-Premium": { + "attribution": { + "text": "Условия & oбратна връзка" + }, + "description": "Премиум DigitalGlobe сателитни изображения", + "name": "DigitalGlobe премиум изображения" + }, + "DigitalGlobe-Premium-vintage": { + "attribution": { + "text": "Условия & oбратна връзка" + }, + "description": "Граници на изображения и дата на заснемане. Надписите се появяват при ниво на увеличение 14 или по-високо.", + "name": "Стари DigitalGlobe Премиум изображения" + }, + "DigitalGlobe-Standard": { + "attribution": { + "text": "Условия & oбратна връзка" + }, + "description": "Стандартни DigitalGlobe сателитни изображения.", + "name": "Стандартни DigitalGlobe изображения" + }, + "DigitalGlobe-Standard-vintage": { + "attribution": { + "text": "Условия & oбратна връзка" + }, + "description": "Граници на изображения и дата на заснемане. Надписите се появяват при ниво на увеличение 14 или по-високо.", + "name": "Стари стандартни DigitalGlobe сателитни изображения." + }, + "EsriWorldImagery": { + "attribution": { + "text": "Условия & oбратна връзка" + }, + "description": "Esri world изображения.", + "name": "Esri World изображения" + }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Условия & oбратна връзка" + }, + "description": "Архивните изображения на Esri могат да бъдат по ясни и точни от изображенията по подразбиране.", + "name": "Esri World изображения (Clarity) Beta" + }, + "MAPNIK": { + "attribution": { + "text": "© OpenStreetMap contributors, CC-BY-SA" + }, + "description": "Стандартният OpenStreetMap слой.", + "name": "OpenStreetMap (Стандартен)" + }, + "Mapbox": { + "attribution": { + "text": "Условия & обратна връзка" + }, + "description": "Сателитни и аерофото изображения.", + "name": "Mapbox Сателит" + }, + "OSM_Inspector-Addresses": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Адреси" + }, + "OSM_Inspector-Geometry": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Геометрия" + }, + "OSM_Inspector-Highways": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Пътища" + }, + "OSM_Inspector-Multipolygon": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Площ" + }, + "OSM_Inspector-Places": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Места" + }, + "OSM_Inspector-Routing": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Упътвания" + }, + "OSM_Inspector-Tagging": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OSM Inspector: Тагове" + }, + "US-TIGER-Roads-2012": { + "name": "TIGER Пътища 2012" + }, + "US-TIGER-Roads-2014": { + "description": "При ниво на увеличение 16+, публично достъпни картографски данни от US Census. При по-ниски нива увеличение само промените от 2006 година насам без тези вече включени в OpenStreetMap", + "name": "TIGER Пътища 2014" + }, + "US-TIGER-Roads-2017": { + "description": "Жълто = Публично достъпни картографски данни от US Census. Червено = Данни, които не са нанесени в OpenStreetMap", + "name": "TIGER Пътища 2017" + }, + "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Колоездене" + }, + "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Туризъм" + }, + "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Планинско колоездене" + }, + "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Каране на ролери" + }, + "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Зимни спортове" + }, + "basemap.at": { + "attribution": { + "text": "basemap.at" + }, + "description": "Базова карта на Австрия, на основата на държавни публични данни.", + "name": "basemap.at" + }, + "basemap.at-orthofoto": { + "attribution": { + "text": "basemap.at" + }, + "description": "Ортофото слой осигурен от basemap.at. \"Приемник\" на geoimage.at изображенията.", + "name": "basemap.at Ортофото" + }, + "hike_n_bike": { + "attribution": { + "text": "© OpenStreetMap contributors" + }, + "name": "Туризъм & Колоездене" + }, + "mapbox_locator_overlay": { + "attribution": { + "text": "Условия & обратна връзка" + }, + "description": "Показва главните обекти, за да ви помогне в ориентацията.", + "name": "Locator Слой" + }, + "openpt_map": { + "attribution": { + "text": "© OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OpenPT Map (слой)" + }, + "osm-gps": { + "attribution": { + "text": "© OpenStreetMap contributors" + }, + "description": "Публични GPS следи качени в OpenStreetMap.", + "name": "OpenStreetMap GPS следи" + }, + "osm-mapnik-black_and_white": { + "attribution": { + "text": "© OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OpenStreetMap (Стандартен черно-бял)" + }, + "osm-mapnik-german_style": { + "attribution": { + "text": "© OpenStreetMap contributors, CC-BY-SA" + }, + "name": "OpenStreetMap (Немски стил)" + }, + "qa_no_address": { + "attribution": { + "text": "Simon Poole, Data ©OpenStreetMap contributors" + }, + "name": "QA Номер Адрес" + }, + "skobbler": { + "attribution": { + "text": "© Тайлове: skobbler Map данни: OpenStreetMap contributors" + }, + "name": "skobbler" + }, + "stamen-terrain-background": { + "attribution": { + "text": "Картни тайлове от Stamen Design, под CC BY 3.0" + }, + "name": "Stamen Топография" + }, + "tf-cycle": { + "attribution": { + "text": "Карти © Thunderforest, Данни © OpenStreetMap contributors" + }, + "name": "Thunderforest OpenCycleMap" + }, + "tf-landscape": { + "attribution": { + "text": "Maps © Thunderforest, Data © OpenStreetMap contributors" + }, + "name": "Thunderforest Ландшафт" } } } diff --git a/dist/locales/ca.json b/dist/locales/ca.json index d21582fac..7fe5032b2 100644 --- a/dist/locales/ca.json +++ b/dist/locales/ca.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Aquest no es pot dividir perquè està connectat a un objecte ocult." }, "restriction": { - "help": { - "select": "Cliqueu per seleccionar un segment de carretera", - "toggle": "Feu clic per canviar les restriccions de gir", - "toggle_on": "Feu clic per afegir una restricció de \"{restriction}\"", - "toggle_off": "Feu clic per eliminar una restricció de \"{restriction}\"" - }, "annotation": { "create": "Heu afegit una restricció de gir", "delete": "Heu eliminat una restricció de gir" @@ -389,6 +383,8 @@ "title": "Mesurament", "selected": "{n} seleccionat", "geometry": "Geometria", + "closed_line": "Línia tancada", + "closed_area": "Àrea tancada", "center": "Center", "perimeter": "Perímetre", "length": "Longitud", @@ -468,8 +464,13 @@ "switch": "Senyals de trànsit ", "custom": "Personalitzar", "custom_button": "Editar el fons personalitzat", + "imagery_source_faq": "Informació d'imatge / Comunicar un problema", "reset": "reiniciar", + "display_options": "Opcions de visualització", + "contrast": "Contrast", + "saturation": "Saturació", "minimap": { + "description": "Mostrar miniatura de mapa", "tooltip": "Mostra un mapa amb menys zoom per ajudar a localitzar l'àrea que es mostra actualment.", "key": "/" }, @@ -571,6 +572,7 @@ "status_code": "El servidor ha expedit el codi d'estat {code}", "unknown_error_details": "Assegureu-vos d'estar connectats a Internet", "uploading": "S'estan pujant els canvis a l'OpenStreetMap...", + "conflict_progress": "Comprovant si hi ha conflictes: {num} de {total}", "unsaved_changes": "Teniu canvis sense desar.", "conflict": { "header": "Resoldre les edicions conflictives", @@ -641,6 +643,7 @@ "untagged_area_tooltip": "Seleccioneu un tipus d'objecte que descrigui el que és aquesta àrea.", "untagged_relation": "Relació sense etiquetar", "untagged_relation_tooltip": "Seleccioneu un tipus d'objecte que descrigui com és aquesta relació.", + "many_deletions": "Estàs eliminant {n} característiques:{n} funcions, {l} línies, {a} àrees, {r} relacions. Segur que ho vols fer? Això les eliminarà del mapa que tothom veu a openstreetmap.org", "tag_suggests_area": "L'etiqueta {tag} suggereix que la línia hauria de ser una àrea, però no és una àrea", "deprecated_tags": "Etiquetes obsoletes : {tags}" }, @@ -679,13 +682,19 @@ "key": "H", "help": { "title": "Ajuda", + "welcome": "Benvingut al editor iD per l'[OpenStreetMap] (https://www.openstreetmap.org/). Amb aquest editor pots actualitzar l'OpenStreeMap des del teu navegador web.", "open_data_h": "Dades Obertes", + "open_data": "Les modificacions que facis a aquest mapa seran visibles per tothom que faci servir l'OpenStreetMap. Les teves modificacions poden basar-se en el teu coneixement personal, en mesures sobre el terreny, imatges aèries o fotografies a nivell de carrer. Copiar de fonts comercials, com el Google Maps, [està estricament prohibit] (https://www.openstreetmap.org/copyright).", "before_start_h": "Abans de començar", - "open_source_h": "Font Oberta" + "before_start": "T'hauries de familiaritzar amb l'OpenStreetMap i amb aquest editor abans de començar a editar. L'iD conté un tutorial per ensenyar-te els conceptes bàsics sobre l'edició de l'OpenStreetMap. Prem \"Comença el Tutorial\" en aquesta pantalla per començar - només et portarà uns 15 minuts.", + "open_source_h": "Font Oberta", + "open_source": "L'editor iD es una projecte col·laboratiu de codi obert, i estàs utilitzant la versió {version}. El codi font està disponible [al GitHub](https://github.com/openstreetmap/iD). ", + "open_source_help": "Pots ajudat a iD [traduint](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) o or [reportant errors](https://github.com/openstreetmap/iD/issues)." }, "overview": { "title": "Visió general", "navigation_h": "Navegació", + "navigation_zoom": "Us podeu acostar o allunyar movent la rodeta del ratolí o del ratolí tàctil o clicant els botons {plus} / {minus} al llarg del costat del mapa. També podeu fer servir les tecles `+`, `-`  del teclat.", "features_h": "Característiques del mapa" }, "editing": { @@ -723,6 +732,7 @@ "title": "Àrees", "point_or_area_h": "Punts o àrees?", "add_area_h": "Afegint àrees", + "add_area_command": "Per afegir una àrea, prem el butó {area} **Area** a la barra d'eines sobre el mapa, o prem la drecera `3`. Això canviarà el cursor del ratolí per una creu.", "square_area_h": "Quadra les cantonades", "modify_area_h": "Modificant àrees", "delete_area_h": "Eliminant àrees" @@ -937,7 +947,9 @@ "zoom": "Apropa't / Allunya't" }, "help": { - "title": "Ajuda" + "title": "Ajuda", + "help": "Mostrar ajuda/documentació", + "keyboard": "Mostrar dreceres del teclat" }, "display_options": { "title": "Opcions de pantalla", @@ -991,6 +1003,25 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "O", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1400,6 +1431,42 @@ "diaper": { "label": "Canviadors per a nadons" }, + "direction_cardinal": { + "label": "Direcció", + "options": { + "E": "Est", + "ENE": "Est-Nordest", + "ESE": "Est-sudest", + "N": "Nord", + "NE": "Nordest", + "NNE": "Nord-nordest", + "NNW": "Nord-nordoest", + "NW": "Nordoest", + "S": "Sud", + "SE": "Sudest", + "SSE": "Sud-sud-est", + "SSW": "Sud-sud-oest", + "SW": "Sud-oest", + "W": "Oest", + "WNW": "Oest-nord-oest", + "WSW": "Oest-sud-oest" + } + }, + "direction_clock": { + "label": "Direcció", + "options": { + "anticlockwise": "en sentit contrari al de les agulles del rellotge", + "clockwise": "en sentit de les agulles del rellotge" + } + }, + "direction_vertex": { + "label": "Direcció", + "options": { + "backward": "Enrere", + "both": "Ambdós / Tots", + "forward": "Endavant" + } + }, "display": { "label": "Pantalla" }, @@ -1917,6 +1984,14 @@ "railway": { "label": "Tipus" }, + "railway/signal/direction": { + "label": "Direcció", + "options": { + "backward": "Enrere", + "both": "Ambdós / Tots", + "forward": "Endavant" + } + }, "recycling_accepts": { "label": "N'accepta" }, @@ -2212,6 +2287,14 @@ "traffic_signals": { "label": "Tipus" }, + "traffic_signals/direction": { + "label": "Direcció", + "options": { + "backward": "Enrere", + "both": "Ambdós / Tots", + "forward": "Endavant" + } + }, "trail_visibility": { "label": "Visibilitat del camí", "options": { @@ -4682,6 +4765,13 @@ "description": "Imatges aèries de Esri", "name": "Imatges aèries de Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Termes & Comentaris" + }, + "description": " L'arxiu Esri pot ser més clar i acotat que la capa per defecte ", + "name": "Imatges aèries de Esri (Claredat) Beta" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap col·laboradors, CC-BY-SA" @@ -4750,18 +4840,33 @@ "name": "Carreteres TIGER 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contribuïdors, CC by-SA 3.0" + }, "name": "Waymarked Trails: Ciclisme" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contribuïdors, CC by-SA 3.0" + }, "name": "Waymarked Trails: Senderisme" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contribuïdors, CC by-SA 3.0" + }, "name": "Waymarked Trails: Ciclisme de Muntanya" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contribuïdors, CC by-SA 3.0" + }, "name": "Waymarked Trails: Patinatge" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contribuïdors, CC by-SA 3.0" + }, "name": "Waymarked Trails: Esports d'hivern" }, "basemap.at": { diff --git a/dist/locales/ckb.json b/dist/locales/ckb.json new file mode 100644 index 000000000..c4e0968d5 --- /dev/null +++ b/dist/locales/ckb.json @@ -0,0 +1,83 @@ +{ + "ckb": { + "modes": { + "add_area": { + "title": "ناوچە" + }, + "add_line": { + "title": "هێڵ" + }, + "add_point": { + "title": "خاڵ" + } + }, + "tooltip_keyhint": "کورتبڕ:", + "translate": { + "translate": "وەرگێڕان", + "localized_translation_language": "هەڵبژاردنی زمان", + "localized_translation_name": "ناو" + }, + "logout": "دەرچوون", + "report_a_bug": "ناردنی هەڵە", + "help_translate": "یارمەتیدان بۆ وەرگێڕان", + "commit": { + "cancel": "پاشگەزبوونەوە", + "deleted": "سڕایەوە", + "created": "دروستکرا" + }, + "geometry": { + "point": "خاڵ", + "line": "هێڵ", + "area": "ناوچە" + }, + "inspector": { + "remove": "لابردن", + "search": "گەڕان", + "check": { + "yes": "بەڵێ", + "no": "نەخێر" + }, + "add": "زیادکردن", + "none": "هیچ" + }, + "background": { + "none": "هیچ" + }, + "feature": { + "points": { + "description": "خاڵەکان" + } + }, + "save": { + "title": "پاشەکەوتکردن", + "conflict": { + "previous": "<پێشتر", + "next": "دواتر>" + } + }, + "success": { + "help_link_text": "وردەکارییەکان" + }, + "help": { + "title": "یارمەتی" + }, + "intro": { + "graph": { + "block_number": "", + "county": "", + "district": "", + "hamlet": "", + "neighbourhood": "", + "province": "", + "quarter": "", + "state": "", + "subdistrict": "", + "suburb": "", + "countrycode": "tr" + }, + "startediting": { + "title": "دەستپێکردنی دەستکاری" + } + } + } +} \ No newline at end of file diff --git a/dist/locales/cs.json b/dist/locales/cs.json index ae938f51c..fa0e7edb5 100644 --- a/dist/locales/cs.json +++ b/dist/locales/cs.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Toto nelze rozdělit, protože je to napojené na skrytý prvek." }, "restriction": { - "help": { - "select": "Kliknutím zvolte část silnice.", - "toggle": "Kliknutím přepněte omezení odbočování.", - "toggle_on": "Kliknutím přidejte omezení typu \"{restriction}\".", - "toggle_off": "Kliknutím odstraníte omezení \"{restriction}\"." - }, "annotation": { "create": "Přidáno omezení odbočování", "delete": "Smazáno omezení odbočování" @@ -354,13 +348,16 @@ "key": "B", "title": "Pozadí", "zoom": "Úroveň přiblížení", + "vintage": "Stáří", "source": "Zdroj", "description": "Popis", "resolution": "Rozlišení", "accuracy": "Přesnost", "unknown": "Neznámé", "show_tiles": "Zobrazit dlaždice", - "hide_tiles": "Skrýt dlaždice" + "hide_tiles": "Skrýt dlaždice", + "show_vintage": "Zobrazit stáří", + "hide_vintage": "Skrýt stáří" }, "history": { "key": "H", @@ -383,6 +380,8 @@ "title": "Měřítko", "selected": "{n} vybráno", "geometry": "Geometrie", + "closed_line": "uzavřená linie", + "closed_area": "uzavřená plocha", "center": "Střed", "perimeter": "Perimetr", "length": "Délka", @@ -390,7 +389,8 @@ "centroid": "Centroid", "location": "Umístění", "metric": "Metrické", - "imperial": "Imperiální" + "imperial": "Imperiální", + "node_count": "Počet uzlů" } }, "geometry": { @@ -456,13 +456,23 @@ "title": "Pozadí", "description": "Nastavení pozadí", "key": "B", + "backgrounds": "Pozadí", "none": "Žádné", "best_imagery": "Nejlepší známý zdroj podkladů pro toto místo", "switch": "Přepnout zpět na toto pozadí", "custom": "Vlastní", "custom_button": "Editovat vlastní pozadí", + "custom_prompt": "Vložte šablonu pro URL dlaždic. Platné proměnné jsou:\n- {zoom} nebo {z}, {x}, {y} u schématu Z/X/Y\n- {-y} nebo {y} u prohozených souřadnic Y typu TMS\n- {u} u schématu hierarchicky čtvrcených dlaždic\n- {switch:a,b,c} u multiplexingu serveru DNS\n\nPříklad:\n{example}", + "overlays": "Překryvné vrstvy", + "imagery_source_faq": "O podkladu / Nahlásit problém", "reset": "vrátit na začátek", + "display_options": "Volby zobrazení", + "brightness": "Jas", + "contrast": "Kontrast", + "saturation": "Sytost", + "sharpness": "Ostrost", "minimap": { + "description": "Zobrazit minimapu", "tooltip": "Zobrazit přehledovou mapku zobrazující aktuální výřez v širším okolí", "key": "I" }, @@ -564,6 +574,7 @@ "status_code": "Server vrátil stavový kód {code}", "unknown_error_details": "Ujistěte se, prosím, že jste připojen k internetu.", "uploading": "Nahrávání změn na OpenStreetMap…", + "conflict_progress": "Ověřují se konflikty: {num} z {total}", "unsaved_changes": "Vaše úpravy nebyly uloženy", "conflict": { "header": "Vyřešit konflikty mezi editacemi", @@ -606,7 +617,8 @@ "splash": { "welcome": "Vítá vás iD, program pro editaci OpenStreetMap", "text": "iD je uživatelsky přátelský, ale silný nástroj pro editaci nejrozsáhlejší svobodné mapy světa. Toto je verze {version}. Více informací na {website}, chybová hlášení na {github}.", - "walkthrough": "Prohlídka editoru" + "walkthrough": "Prohlídka editoru", + "start": "Upravit nyní" }, "source_switch": { "live": "live", @@ -634,6 +646,7 @@ "untagged_area_tooltip": "Zvolte typ vlastnosti popisující, co je tato plocha zač.", "untagged_relation": "Neoznačená relace", "untagged_relation_tooltip": "Vyber typ prvku, který popisuje, čím je tato relace", + "many_deletions": "Pokoušíte se smazat {n} objektů: {p} bodů, {l} linií, {a} ploch, {r} relací. Opravdu to chcete provést? Odstranilo by je to z globální mapy na openstreetmap.org.", "tag_suggests_area": "Vlastnost {tag} obvykle označuje plochu, ale zvolený objekt není plocha", "deprecated_tags": "Zastaralé vlastnosti: {tag}" }, @@ -672,7 +685,10 @@ "key": "H", "help": { "title": "Nápověda", - "before_start_h": "Než začnete" + "welcome": "Vítejte v editoru iD pro [OpenStreetMap](https://www.openstreetmap.org/). Tímto editorem můžete upravovat OpenStreetMap přímo v browseru.", + "open_data_h": "Otevřená data", + "before_start_h": "Než začnete", + "open_source_h": "Otevřený kód" }, "overview": { "title": "Přehled", @@ -682,10 +698,40 @@ "editing": { "title": "Úpravy & ukládání", "select_h": "Výběr", + "multiselect_h": "Vícenásobný výběr", "save_h": "Uložit", "save": "Stiskněte{save} **Uložit** pro ukončení svých úprav a jejich nahrání na OpenStreetMap. Pamatujte na časté ukládání své práce!", "save_validation": "Na obrazovce ukládání budete mít šanci prohlédnout si své úpravy. iD také provede některé základní kontroly ohledně chybějících informací a případně Vám může pomoci návrhy a varováními, pokud se něco nebude zdát v pořádku.", - "upload_h": "Nahrát" + "upload_h": "Nahrát", + "backups_h": "Automatické zálohy", + "keyboard_h": "Klávesové zkratky" + }, + "feature_editor": { + "fields_h": "Pole", + "tags_h": "Štítky" + }, + "points": { + "title": "Body", + "add_point_h": "Přidávání bodů", + "move_point_h": "Přesun bodů", + "delete_point_h": "Odstraňování bodů" + }, + "lines": { + "title": "Čáry", + "add_line_h": "Přidávání čar", + "modify_line_h": "Úprava čar", + "connect_line_h": "Spojování čar", + "disconnect_line_h": "Odpojování čar", + "move_line_h": "Přesun čar", + "delete_line_h": "Odstraňování čar" + }, + "areas": { + "title": "Plochy", + "point_or_area_h": "Body, nebo plochy?", + "add_area_h": "Přidávání ploch", + "square_area_h": "Pravoúhlé rohy", + "modify_area_h": "Úprava ploch", + "delete_area_h": "Odstraňování ploch" } }, "intro": { @@ -1012,6 +1058,14 @@ } } }, + "units": { + "north": "S", + "south": "J", + "east": "V", + "west": "Z", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1181,6 +1235,9 @@ "aeroway": { "label": "Typ" }, + "agrarian": { + "label": "Výrobky" + }, "amenity": { "label": "Typ" }, @@ -1258,6 +1315,9 @@ "brand": { "label": "Obchodní značka" }, + "brewery": { + "label": "Točená piva" + }, "bridge": { "label": "Typ", "placeholder": "Výchozí" @@ -1271,6 +1331,10 @@ "bunker_type": { "label": "Typ" }, + "cables": { + "label": "Kabely", + "placeholder": "1, 2, 3…" + }, "camera/direction": { "label": "Směr (ve stupních po směru hodinových ručiček)", "placeholder": "45, 90, 180, 270" @@ -1303,7 +1367,8 @@ "label": "Čas výběru" }, "comment": { - "label": "Komentář ke změnám" + "label": "Komentář ke změnám", + "placeholder": "Stručný popis vašich úprav (povinné)" }, "communication_multi": { "label": "Druhy komunikace" @@ -1331,7 +1396,8 @@ "label": "Typ jeřábu", "options": { "floor-mounted_crane": "Pozemní jeřáb", - "portal_crane": "Portálový jeřáb" + "portal_crane": "Portálový jeřáb", + "travel_lift": "Přístavní jeřáb - Travel Lift" } }, "crop": { @@ -1407,11 +1473,55 @@ "label": "Popis" }, "devices": { + "label": "Zařízení", "placeholder": "1, 2, 3…" }, "diaper": { "label": "Přizpůsobeno výměně plenek" }, + "direction": { + "label": "Směr (stupně po směru hod. ručiček)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "Směr", + "options": { + "E": "Východ", + "ENE": "Východo-severovýchod", + "ESE": "Východo-jihovýchod", + "N": "Sever", + "NE": "Severovýchod", + "NNE": "Severo-severovýchod", + "NNW": "Severo-severozápad", + "NW": "Severozápad", + "S": "Jih", + "SE": "Jihovýchod", + "SSE": "Jiho-jihovýchod", + "SSW": "Jiho-jihozápad", + "SW": "Jihozápad", + "W": "Západ", + "WNW": "Západo-severozápad", + "WSW": "Západo-jihozápad" + } + }, + "direction_clock": { + "label": "Směr", + "options": { + "anticlockwise": "Proti směru hodinových ručiček", + "clockwise": "Ve směru hodinových ručiček" + } + }, + "direction_vertex": { + "label": "Směr", + "options": { + "backward": "Nazpátek", + "both": "Obojí/vše", + "forward": "Dopředu" + } + }, + "dispensing": { + "label": "Léky na předpis" + }, "display": { "label": "Zobrazení" }, @@ -1483,6 +1593,9 @@ "wall": "Nástěnný" } }, + "fitness_station": { + "label": "Typ zařízení" + }, "fixme": { "label": "Opravit" }, @@ -1524,6 +1637,9 @@ "generator/type": { "label": "Typ" }, + "government": { + "label": "Typ" + }, "grape_variety": { "label": "Odrůda vína" }, @@ -1841,6 +1957,7 @@ "label": "Platební možnosti" }, "phases": { + "label": "Fáze", "placeholder": "1, 2, 3…" }, "phone": { @@ -1922,12 +2039,31 @@ "railway": { "label": "Typ" }, + "railway/position": { + "label": "Pozice milníku", + "placeholder": "Vzdálenost na jedno desetinné místo (123.4)" + }, + "railway/signal/direction": { + "label": "Směr" + }, "recycling_accepts": { "label": "Určení" }, + "ref_aeroway_gate": { + "label": "Číslo brány" + }, + "ref_golf_hole": { + "placeholder": "1-18" + }, "ref_road_number": { "label": "Číslo silnice" }, + "ref_route": { + "label": "Číslo silnice" + }, + "ref_taxiway": { + "placeholder": "např. A5" + }, "relation": { "label": "Typ" }, @@ -2118,6 +2254,15 @@ "surveillance/zone": { "label": "Zabezpečená zóna" }, + "switch": { + "label": "Typ", + "options": { + "circuit_breaker": "Zkratovač", + "disconnector": "Odpojovač", + "earthing": "Zemnění", + "mechanical": "Mechanický" + } + }, "tactile_paving": { "label": "Taktilní povrch pro nevidomé" }, @@ -2178,6 +2323,9 @@ "traffic_signals": { "label": "Typ" }, + "traffic_signals/direction": { + "label": "Směr" + }, "trail_visibility": { "label": "Viditelnost pěšiny", "options": { @@ -2191,9 +2339,12 @@ "placeholder": "Výborná, Dobrá, Špatná..." }, "transformer": { + "label": "Typ", "options": { "auto": "Autotransformátor", - "generator": "Generátor" + "converter": "Převodník", + "generator": "Generátor", + "phase_angle_regulator": "Regulátor fázového úhlu" } }, "trees": { @@ -2228,6 +2379,9 @@ "stratovolcano": "Stratovulkán" } }, + "voltage": { + "label": "Napětí" + }, "voltage/primary": { "label": "Primární napětí" }, @@ -2266,6 +2420,7 @@ "label": "Wikipedia" }, "windings": { + "label": "Vinutí", "placeholder": "1, 2, 3…" }, "windings/configuration": { @@ -2488,6 +2643,7 @@ "terms": "komunitní centrum,kulturní centrum,sociální centrum,komunitní dům,dům dětí,dům mládeže,dům dětí a mládeže,klub" }, "amenity/compressed_air": { + "name": "Stlačený vzduch", "terms": "vzduchová pumpa,pumpa,pumpička,stlačený vzduch,kompresor,hustilka" }, "amenity/courthouse": { @@ -2585,6 +2741,9 @@ "name": "Parkování pro motorky", "terms": "parking,parkování,garáž,motorka,motocykl" }, + "amenity/music_school": { + "name": "Hudební škola" + }, "amenity/nightclub": { "name": "Diskotéka", "terms": "diskotéka,disko,disco,noční klub,klub,taneční klub,dýza,rychta" @@ -2635,6 +2794,9 @@ "name": "Mešita", "terms": "mešita,islám,muslim,muslimský,muslimská,muslimské" }, + "amenity/place_of_worship/sikh": { + "name": "Sikhský chrám" + }, "amenity/place_of_worship/taoist": { "name": "Taoistický chrám" }, @@ -2703,6 +2865,9 @@ "amenity/shower": { "name": "Sprchy" }, + "amenity/smoking_area": { + "name": "Kuřárna" + }, "amenity/social_facility": { "name": "Zařízení sociálních služeb", "terms": "sociální služby,sociální zařízení,sociální pomoc,sociální služba,azylový dům,dům na půl cesty,denní stacionář,nízkoprahové centrum,noclehárna,chudobinec" @@ -3009,6 +3174,10 @@ "name": "Budova školky/jeslí", "terms": "jesle,školka,kindergarten,předškolní,mateřská školka" }, + "building/mosque": { + "name": "Budova mešity", + "terms": "Teroristická buňka" + }, "building/public": { "name": "Veřejná budova", "terms": "veřejná budova,státní budova,federální budova,radnice,policie,soud" @@ -3444,6 +3613,9 @@ "name": "Pěšina", "terms": "cesta" }, + "highway/pedestrian_area": { + "name": "Pěší zóna" + }, "highway/primary": { "name": "Silnice 1. třídy", "terms": "silnice I. třídy" @@ -3669,6 +3841,9 @@ "name": "Průmyslová oblast", "terms": "průmysl,průmyslová,průmyslové,průmyslový,industriální,továrna,továrny,fabrika,fabriky" }, + "landuse/industrial/scrap_yard": { + "name": "Vrakoviště" + }, "landuse/landfill": { "name": "Skládka", "terms": "skládka,skládka odpadu,smetiště" @@ -4058,6 +4233,9 @@ "name": "Vodní mlýn", "terms": "Větrný mlýn" }, + "man_made/windmill": { + "name": "Větrný mlýn" + }, "man_made/works": { "name": "Továrna", "terms": "montáž,výroba,pivovar,auto,závod,továrna,zpracování,rafinerie" @@ -4264,6 +4442,9 @@ "name": "Ostrov", "terms": "ostrov,ostrůvek,souostroví,archipel,atol,útes" }, + "place/islet": { + "name": "Ostrůvek" + }, "place/isolated_dwelling": { "name": "Samota", "terms": "samota,vesnička,obec" @@ -5196,6 +5377,11 @@ "description": "Prémiové satelitní snímky DigitalGlobe", "name": "Prémiové snímky DigitalGlobe" }, + "DigitalGlobe-Premium-vintage": { + "attribution": { + "text": "Podmínky použití a zpětná vazba" + } + }, "DigitalGlobe-Standard": { "attribution": { "text": "Podmínky použití & zpětná vazba" @@ -5203,11 +5389,21 @@ "description": "Standardní satelitní snímky DigitalGlobe", "name": "Standardní snímky DigitalGlobe" }, + "DigitalGlobe-Standard-vintage": { + "attribution": { + "text": "Podmínky použití a zpětná vazba" + } + }, "EsriWorldImagery": { "attribution": { "text": "Podmínky použití & zpětná vazba" } }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Podmínky použití a zpětná vazba" + } + }, "MAPNIK": { "attribution": { "text": "© Přispěvatelé OpenStreetMap, CC-BY-SA" @@ -5264,6 +5460,45 @@ }, "name": "OSM Inspektor: Štítkování" }, + "US-TIGER-Roads-2012": { + "name": "TIGER Roads 2012" + }, + "US-TIGER-Roads-2014": { + "name": "TIGER Roads 2014" + }, + "US-TIGER-Roads-2017": { + "name": "TIGER Roads 2017" + }, + "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, přispěvatelé OpenStreetMap, CC BY-SA 3.0" + }, + "name": "Vyznačené cesty: Cyklistika" + }, + "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, přispěvatelé OpenStreetMap, CC BY-SA 3.0" + }, + "name": "Vyznačené cesty: Turistika" + }, + "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, přispěvatelé OpenStreetMap, CC BY-SA 3.0" + }, + "name": "Vyznačené cesty: Horská kola" + }, + "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, přispěvatelé OpenStreetMap, CC BY-SA 3.0" + }, + "name": "Vyznačené cesty: Bruslení" + }, + "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, přispěvatelé OpenStreetMap, CC BY-SA 3.0" + }, + "name": "Vyznačené cesty: Zimní sporty" + }, "basemap.at": { "attribution": { "text": "basemap.at" @@ -5279,17 +5514,26 @@ "hike_n_bike": { "attribution": { "text": "© Přispěvatelé OpenStreetMap" - } + }, + "name": "Turistika & cyklistika" }, "mapbox_locator_overlay": { "attribution": { "text": "Podmínky použití & zpětná vazba" - } + }, + "name": "Překryv lokátoru" + }, + "openpt_map": { + "attribution": { + "text": "© přispěvatelé OpenStreetMap, CC-BY-SA" + }, + "name": "OpenPT Map (překryv)" }, "osm-gps": { "attribution": { "text": "© Přispěvatelé OpenStreetMap" }, + "description": "Veřejné GPS trasy odeslané na OpenStreetMap.", "name": "GPS stopy OpenStreetMap" }, "osm-mapnik-black_and_white": { @@ -5311,6 +5555,16 @@ }, "stamen-terrain-background": { "name": "Terén Stamen" + }, + "tf-cycle": { + "attribution": { + "text": "Mapy © Thunderforest, data © přispěvatelé OpenStreetMap" + } + }, + "tf-landscape": { + "attribution": { + "text": "Mapy © Thunderforest, data © přispěvatelé OpenStreetMap" + } } } } diff --git a/dist/locales/cy.json b/dist/locales/cy.json index 037275e91..c8e3c485b 100644 --- a/dist/locales/cy.json +++ b/dist/locales/cy.json @@ -121,6 +121,9 @@ "category-road": { "name": "Nodweddion Ffordd" }, + "category-route": { + "name": "Nodweddion Llwybr" + }, "category-water-area": { "name": "Nodweddion Dŵr" }, @@ -144,6 +147,205 @@ "description": "Dim caniatad mynediad i'r cyhoedd" } } + }, + "address": { + "label": "Cyfeiriad", + "placeholders": { + "city": "Dinas" + } + }, + "country": { + "label": "Gwlad" + }, + "craft": { + "label": "Math" + }, + "crane/type": { + "label": "Math o Graen" + }, + "crop": { + "label": "Cnydau" + }, + "crossing": { + "label": "Math" + }, + "cuisine": { + "label": "Bwydydd" + }, + "cycleway": { + "options": { + "none": { + "title": "Dim" + } + }, + "types": { + "cycleway:left": "Ochr chwith", + "cycleway:right": "Ochr dde" + } + }, + "date": { + "label": "Dyddiad" + }, + "description": { + "label": "Disgrifiad" + }, + "devices": { + "label": "Dyfeisiau", + "placeholder": "1, 2, 3..." + }, + "direction": { + "label": "Cyfeiriad (Gradd Clocwedd)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "Cyfeiriad", + "options": { + "E": "Dwyrain", + "N": "Gogledd", + "S": "De", + "W": "Gorllewin" + } + }, + "direction_clock": { + "label": "Cyfeiriad", + "options": { + "anticlockwise": "Gwrthglocwedd", + "clockwise": "Clocwedd" + } + }, + "direction_vertex": { + "label": "Cyfeiriad", + "options": { + "backward": "Yn ôl", + "forward": "Ymlaen" + } + }, + "display": { + "label": "Arddangos" + }, + "dock": { + "label": "Math" + }, + "duration": { + "label": "Hyd", + "placeholder": "00:00" + }, + "electrified": { + "options": { + "contact_line": "Llinell Cyswllt", + "no": "Na" + } + }, + "incline_steps": { + "options": { + "down": "Lawr", + "up": "Lan/fyny" + } + }, + "information": { + "label": "Math" + }, + "inscription": { + "label": "Arysgrif" + }, + "internet_access": { + "label": "Mynediad Rhyngrwyd", + "options": { + "no": "Na", + "yes": "Ia" + } + }, + "internet_access/fee": { + "label": "Tâl Mynediad Rhyngrwyd" + }, + "internet_access/ssid": { + "label": "SSID (Enw Rwydwaith)" + }, + "label": { + "label": "Label" + }, + "lamp_type": { + "label": "Math" + }, + "landuse": { + "label": "Math" + }, + "lanes": { + "label": "Lonydd", + "placeholder": "1, 2, 3..." + }, + "layer": { + "label": "Haen", + "placeholder": "0" + }, + "leaf_cycle": { + "options": { + "deciduous": "Collddail", + "evergreen": "Bytholwyrdd", + "mixed": "Cymysg", + "semi_deciduous": "Lled-collddail", + "semi_evergreen": "Lled-bytholwyrdd" + } + }, + "leaf_cycle_singular": { + "label": "Cylchred Dail", + "options": { + "deciduous": "Collddail", + "evergreen": "Bytholwyrdd", + "semi_deciduous": "Lled-collddail", + "semi_evergreen": "Lled-bytholwyrdd" + } + }, + "leaf_type": { + "label": "Math o Ddail", + "options": { + "broadleaved": "Llydanddail", + "leafless": "Di-ddail", + "mixed": "Cymysg" + } + }, + "leaf_type_singular": { + "label": "Math o Ddail", + "options": { + "broadleaved": "Llydanddail", + "leafless": "Di-ddail" + } + }, + "leisure": { + "label": "Math" + }, + "length": { + "label": "Hyd (metr)" + }, + "level": { + "label": "Lefel" + }, + "levels": { + "label": "Lefelau", + "placeholder": "2, 4, 6..." + }, + "location": { + "label": "Lleoliad" + }, + "man_made": { + "label": "Math" + }, + "manhole": { + "label": "Math" + }, + "mtb/scale/imba": { + "options": { + "1": "Hawdd (cylch gwyrdd)", + "2": "Canolig (sgwâr glas)", + "3": "Anodd (diemwnt du)", + "4": "Anodd Iawn (diemwnt du dwbl)" + }, + "placeholder": "Hawdd, Canolig, Anodd..." + } + }, + "presets": { + "waterway/waterfall": { + "name": "Rheadr" } } } diff --git a/dist/locales/da.json b/dist/locales/da.json index e444b3a41..bec733df3 100644 --- a/dist/locales/da.json +++ b/dist/locales/da.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Dette kan ikke opdeles, da det er forbundet med et skjult objekt." }, "restriction": { - "help": { - "select": "Klik for at vælge et vejsegment.", - "toggle": "Klik for at slå svingbegrænsninger til.", - "toggle_on": "Klik for tilføje en \"{restriction}\"-begrænsning.", - "toggle_off": "Klik for at fjerne \"{restriction}\"-begrænsningen." - }, "annotation": { "create": "Tilføjede en svingbegrænsning", "delete": "Slettede en svingbegrænsning" @@ -473,7 +467,7 @@ "custom_button": "Rediger brugerdefineret baggrund", "custom_prompt": "Indtast en URL-skabelon for kort-fliser. Gyldige formater er:\n - {zoom} eller {z}, {x}, {y} for Z/X/Y flise-skemaer\n - {-y} eller {ty} for omvendte Y-koordinater i TMS-stil\n - {u} for quad-flise-skemaer\n - {switch:a,b,c} for multipleksning af DNS-opslag\n\nEksempel:\n{example}", "overlays": "Overlægninger", - "imagery_source_faq": "Information / rapportér problem angående luftfoto", + "imagery_source_faq": "Luftfoto-information / anmeld problem", "reset": "nulstil", "display_options": "Visningsindstillinger", "brightness": "Lysstyrke", @@ -486,7 +480,7 @@ "key": "/" }, "fix_misalignment": "Juster luftfoto-offset", - "offset": "Træk et vilkårligt i det grå område nedenfor for at justere luftfotoets offset eller indtast offset-værdien i meter." + "offset": "Træk et vilkårligt sted i det grå område nedenfor for at justere luftfotoets offset, eller indtast offset-værdien i meter." }, "map_data": { "title": "Kortdata", @@ -655,6 +649,7 @@ "untagged_area_tooltip": "Vælg en objekttype der beskriver hvad slags område dette er.", "untagged_relation": "Ej tagget relation", "untagged_relation_tooltip": "Vælg en objekttype der beskriver hvad slags relation dette er.", + "many_deletions": "Du sletter {n} kortobjekter: {p} noder, {l} linjer, {a} områder, {r} relationer. Er du sikker på at du vil gøre dette? Dette vil slette dem fra kortet som alle andre ser på openstreetmap.org.", "tag_suggests_area": "Tagget {tag} antyder at linjen skulle være et område, men den er ikke et område", "deprecated_tags": "Frarådede tags: {tags}" }, @@ -705,6 +700,8 @@ "overview": { "title": "Overblik", "navigation_h": "Navigation", + "navigation_drag": "Du kan ændre området af kortet der er synligt, ved at trykke og holde {leftclick} venstre-musetast nedtrykket og flytte musen. Du kan også bruge `↓`, `↑`, `←`, `→` piletasterne på dit tastatur.", + "navigation_zoom": "Du kan zoome ind og ud ved brug af musens rullehjul eller tilsvarende på et trackpad, eller ved at klikke på knapperne {plus} / {minus} i kanten af kortet. Du kan også bruge `+`, `-` tasterne på dit tastatur.", "features_h": "Kortobjekter", "features": "Vi bruger ordet *kortobjekt* til at beskrive ting der optræder på kortet såsom veje, bygninger, eller interessepunkter. Enhver fysisk ting i den virkelige verden kan indtegnes som et kortobjekt på OpenStreetMap. Kortobjekter repræsenteres på kortet som *punkter*, *linjer* eller *områder*.", "nodes_ways": "I OpenStreetMap kaldes punkter sommetider *noder*, og linjer og områder sommetider *veje*." @@ -712,8 +709,29 @@ "editing": { "title": "Rediger & gem", "select_h": "Vælg", + "select_left_click": "{leftclick} Venstre-klik på et kortobjekt for at markere det. Dette vil fremhæve det med en pulserende glød, og i kanten af kortet vises detaljer om objektet, såsom navn og adresse.", + "select_right_click": "{rightclick} Højreklik på et kortobjekt for at vise redigeringsmenuen, som viser de mulige værktøjer der kan anvendes, såsom rotation, flytning og sletning.", + "multiselect_h": "Multi-markering", "save_h": "Gem" }, + "feature_editor": { + "title": "Redigeringsværktøj til kortobjekter", + "intro": "*Redigeringsværktøjet til kortobjekter* kommer frem i kanten af kortet, og gør det muligt at se og redigere alle informationer om det markerede kortobjekt.", + "definitions": "I toppen vises kortobjektets type. I midten et antal *felter* som viser kortobjektets attributter, såsom dets navn eller adresse.", + "type_h": "Kortobjekt-type", + "type": "Du kan klikke på objekttypen for at ændre et kortobjekts type. Alt hvad der eksisterer i den virkelige verden kan tilføjes til OpenStreetMap, så der er tusindvis af typer at vælge imellem.", + "type_picker": "Typevælgeren viser de mest almindeligt forekommende, såsom parker, hospitaler, restauranter, veje og bygninger. Du kan søge ved at skrive hvad du leder efter i søgeboksen. Du kan også klikke på {inspect} **Info**-ikonet ved siden af objekttypen for at lære mere om denne.", + "fields_h": "Felter", + "fields_all_fields": "Sektionen \"Alle felter\" indeholder alle de felter objektet kan indeholde, og som du kan redigere. I OpenStreetMap er alle felter valgfri, og det er helt OK at efterlade et felt tomt hvis du er usikker.", + "fields_example": "Hver objekttype vil vise forskellige felter. Eksempelvis kan der for en vej vises felter for dens belægning og hastighedsgrænse, mens der for en restaurant kan vises felter for hvilken mad der serveres og dens åbningstider. ", + "fields_add_field": "Du kan også klikke på \"Tilføj felt\"-boksen for at tilføje yderligere felter, såsom beskrivelse, Wikipedia-link, kørestolsegnethed og meget mere.", + "tags_h": "Tags (attributter)", + "tags_all_tags": "Under sektionen med felter kan du udvide \"Alle tags\"-sektionen for at redigere alle OpenStreetMap-*tags* for det markerede kortobjekt. Hvert tag består af en *nøgle* og en *værdi*, dette er dataelementer som definer samtlige de egenskaber som er gemt i OpenStreetMap.", + "tags_resources": "Redigering af et kortobjekts tags kræver et vist kendskab til OpenStreetMap. Du bør studere ressourcer som [OpenStreetMap-wikien](https://wiki.openstreetmap.org/wiki/Main_Page) eller [Taginfo](https://taginfo.openstreetmap.org/) for at lære mere om den gængse praksis for OpenStreetMap-tagging." + }, + "points": { + "title": "Punkter" + }, "imagery": { "title": "Luftfoto i baggrunden", "intro": "Luftfotoet der vises i baggrunden bagved kortet er en vigtig ressource under redigering af kortet. Dette kan bestå af ortografiske fotos opsamlet fra satellitter, fly eller droner, eller det kan være indskannede historiske kort eller andre frit tilgængelige kildedata.", @@ -1283,6 +1301,9 @@ "aeroway": { "label": "Type" }, + "agrarian": { + "label": "Produkter" + }, "amenity": { "label": "Type" }, @@ -1351,12 +1372,18 @@ "board_type": { "label": "Type" }, + "boules": { + "label": "Type" + }, "boundary": { "label": "Type" }, "brand": { "label": "Mærke" }, + "brewery": { + "label": "Fadøl" + }, "bridge": { "label": "Type", "placeholder": "Standard" @@ -1435,7 +1462,8 @@ "label": "Krantype", "options": { "floor-mounted_crane": "Gulvmonteret kran", - "portal_crane": "Portalkran" + "portal_crane": "Portalkran", + "travel_lift": "Skibskran" } }, "crop": { @@ -1511,11 +1539,16 @@ "label": "Beskrivelse" }, "devices": { + "label": "Enheder", "placeholder": "1, 2, 3..." }, "diaper": { "label": "Babybleskifte" }, + "direction": { + "label": "Retning (grader med uret)", + "placeholder": "45, 90, 180, 270" + }, "direction_cardinal": { "label": "Retning", "options": { @@ -1548,6 +1581,7 @@ "label": "Retning", "options": { "backward": "Baglæns", + "both": "Begge / alle", "forward": "Forlæns" } }, @@ -1940,7 +1974,9 @@ "oneway": { "label": "Ensrettet", "options": { + "alternating": "Skiftende", "no": "Nej", + "reversible": "Reversibel", "undefined": "Antages at være Nej", "yes": "Ja" } @@ -1948,7 +1984,9 @@ "oneway_yes": { "label": "Ensrettet", "options": { + "alternating": "Skiftende", "no": "Nej", + "reversible": "Reversibel", "undefined": "Antages at være Ja", "yes": "Ja" } @@ -1960,7 +1998,7 @@ "label": "Operatør" }, "outdoor_seating": { - "label": "Udendørssidepladser" + "label": "Udendørssiddepladser" }, "par": { "label": "Par", @@ -1982,7 +2020,11 @@ } }, "payment_multi": { - "label": "Betallingstyper" + "label": "Betalingstyper" + }, + "phases": { + "label": "Faser", + "placeholder": "1, 2, 3..." }, "phone": { "label": "Telefon", @@ -2036,6 +2078,15 @@ "label": "Udgangseffekt", "placeholder": "500 MW, 1000 MW, 2000 MW..." }, + "playground/baby": { + "label": "Baby-siddeplads" + }, + "playground/max_age": { + "label": "Maksimal alder" + }, + "playground/min_age": { + "label": "Minimal alder" + }, "population": { "label": "Befolkning" }, @@ -2054,6 +2105,14 @@ "railway": { "label": "Type" }, + "railway/signal/direction": { + "label": "Retning", + "options": { + "backward": "Baglæns", + "both": "Begge / alle", + "forward": "Forlæns" + } + }, "recycling_accepts": { "label": "Accepterer" }, @@ -2245,9 +2304,19 @@ }, "placeholder": "Ukendt" }, + "structure_waterway": { + "label": "Struktur", + "options": { + "tunnel": "Tunnel" + }, + "placeholder": "Ukendt" + }, "studio": { "label": "Type" }, + "substance": { + "label": "Væske" + }, "substation": { "label": "Type" }, @@ -2274,6 +2343,14 @@ "surveillance/zone": { "label": "Overvågningszone" }, + "switch": { + "options": { + "circuit_breaker": "Kredsløbskontakt", + "disconnector": "Afkobler", + "earthing": "Jording", + "mechanical": "Mekanisk" + } + }, "tactile_paving": { "label": "Følbar belægning for blinde" }, @@ -2304,6 +2381,9 @@ "tourism": { "label": "Type" }, + "tourism_attraction": { + "label": "Turisme" + }, "tower/construction": { "label": "Konstruktion", "placeholder": "Udbarduneret, Lattice, Fastspændt, ..." @@ -2322,12 +2402,23 @@ }, "placeholder": "Fast, overvejende fast, blød …" }, + "trade": { + "label": "Type" + }, "traffic_calming": { "label": "Type" }, "traffic_signals": { "label": "Type" }, + "traffic_signals/direction": { + "label": "Retning", + "options": { + "backward": "Baglæns", + "both": "Begge / alle", + "forward": "Forlæns" + } + }, "trail_visibility": { "label": "Synlighed af spor", "options": { @@ -2340,6 +2431,16 @@ }, "placeholder": "Fremragende, god, dårlig..." }, + "transformer": { + "label": "Type", + "options": { + "converter": "Konverter", + "generator": "Generator", + "phase_angle_regulator": "Fasevinkelregulator", + "traction": "Fremdrift", + "yes": "Ukendt" + } + }, "trees": { "label": "Træer" }, @@ -2358,6 +2459,29 @@ "street": "5 til 20m (16 til 65ft)" } }, + "volcano/status": { + "label": "Vulkan-status", + "options": { + "active": "Aktiv", + "dormant": "I dvale", + "extinct": "Udslukket" + } + }, + "volcano/type": { + "label": "Vulkan-type" + }, + "voltage": { + "label": "Spænding" + }, + "voltage/primary": { + "label": "Primærspænding" + }, + "voltage/secondary": { + "label": "Sekundærspænding" + }, + "voltage/tertiary": { + "label": "Tertiærspænding" + }, "wall": { "label": "Type" }, @@ -2385,6 +2509,13 @@ }, "wikipedia": { "label": "Wikipedia" + }, + "windings": { + "label": "Vindinger", + "placeholder": "1, 2, 3..." + }, + "windings/configuration": { + "label": "Vindings-konfiguration" } }, "presets": { @@ -3522,15 +3653,39 @@ "healthcare/alternative/chiropractic": { "name": "Kiropraktor" }, + "healthcare/audiologist": { + "name": "Audiolog", + "terms": "audiolog,høreapparat" + }, + "healthcare/birthing_center": { + "name": "Fødselscenter", + "terms": "fødsel,føde,gravid,baby" + }, "healthcare/blood_donation": { "name": "Blodbank", "terms": "Blodbank, Donorblodbank" }, + "healthcare/hospice": { + "terms": "terminal,død,sygdom" + }, "healthcare/midwife": { "name": "Jordemoder" }, + "healthcare/optometrist": { + "name": "Optiker", + "terms": "briller,øjne,optik,linser,syn" + }, "healthcare/physiotherapist": { - "name": "Fysioterapeut" + "name": "Fysioterapeut", + "terms": "psyke,terapi," + }, + "healthcare/podiatrist": { + "name": "Fodterapeut", + "terms": "fod,fødder,negle" + }, + "healthcare/psychotherapist": { + "name": "Psykoterapeut", + "terms": "psyke,angst,depression,mental,sind,selvmord" }, "highway": { "name": "Vej" @@ -3756,8 +3911,8 @@ "terms": "Vejsidemindesmærker" }, "historic/wayside_shrine": { - "name": "Vejsideskrin", - "terms": "Vejsideskrin" + "name": "Vejsidehelligdom", + "terms": "Vejsidehelligdom" }, "junction": { "name": "Vejfletning", diff --git a/dist/locales/de.json b/dist/locales/de.json index 5100b22c5..d7631a5e3 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -27,7 +27,7 @@ "tail": "Klicke, um weitere Knoten zur Linie hinzuzufügen. Klicke auf eine andere Linie, um die Linien zu verbinden und klicke doppelt, um die Linie fertigzustellen." }, "drag_node": { - "connected_to_hidden": "Dieses Objekt kann nicht bearbeitet werden, da es mit einem versteckten Objekt verbunden ist." + "connected_to_hidden": "Dieses Objekt kann nicht bearbeitet werden, weil es mit einem versteckten Objekt verbunden ist." } }, "operations": { @@ -75,9 +75,9 @@ "line": "Eine Linie kreisförmig gemacht.", "area": "Eine Fläche kreisförmig gemacht." }, - "not_closed": "Dieses Objekt kann nicht kreisförmig gemacht werden, da es nicht geschlossen ist.", - "too_large": "Dieses Objekt kann nicht kreisförmig gemacht werden, da zu wenig davon sichtbar ist.", - "connected_to_hidden": "Dieses Objekt kann nicht kreisförmig gemacht werden, da es mit einem versteckten Objekt verbunden ist." + "not_closed": "Dieses Objekt kann nicht kreisförmig gemacht werden, weil es nicht geschlossen ist.", + "too_large": "Dieses Objekt kann nicht kreisförmig gemacht werden, weil zu wenig davon sichtbar ist.", + "connected_to_hidden": "Dieses Objekt kann nicht kreisförmig gemacht werden, weil es mit einem versteckten Objekt verbunden ist." }, "orthogonalize": { "title": "Rechtwinklig machen", @@ -90,8 +90,8 @@ "line": "Ecken der Linie rechtwinklig gemacht.", "area": "Ecken der Fläche rechtwinklig gemacht." }, - "not_squarish": "Dieses Objekt kann nicht rechtwinklig gemacht werden, da es nicht annähernd rechtwinklig ist.", - "too_large": "Dieses Objekt kann nicht quadratisch werden, da zu wenig davon sichtbar ist.", + "not_squarish": "Dieses Objekt kann nicht rechtwinklig gemacht werden, weil es nicht annähernd rechtwinklig ist.", + "too_large": "Dieses Objekt kann nicht quadratisch werden, weil zu wenig davon sichtbar ist.", "connected_to_hidden": "Dieses Objekt kann nicht rechtwinklig gemacht werden, weil es mit einem versteckten Objekt verbunden ist." }, "straighten": { @@ -99,8 +99,8 @@ "description": "Diese Linie begradigen.", "key": "S", "annotation": "Linie begradigt.", - "too_bendy": "Dieses Objekt kann nicht begradigt werden, da es zu kurvig ist.", - "connected_to_hidden": "Dieses Objekt kann nicht begradigt werden, da es mit einem versteckten Objekt verbunden ist." + "too_bendy": "Dieses Objekt kann nicht begradigt werden, weil es zu kurvig ist.", + "connected_to_hidden": "Dieses Objekt kann nicht begradigt werden, weil es mit einem versteckten Objekt verbunden ist." }, "delete": { "title": "Löschen", @@ -117,20 +117,20 @@ "multiple": "{n} Objekte gelöscht." }, "too_large": { - "single": "Dieses Objekt kann nicht gelöscht werden, da zu wenig davon sichtbar ist.", - "multiple": "Diese Objekte können nicht gelöscht werden, da momentan nicht genug davon sichtbar ist." + "single": "Dieses Objekt kann nicht gelöscht werden, weil zu wenig davon sichtbar ist.", + "multiple": "Diese Objekte können nicht gelöscht werden, weil zu wenig davon sichtbar ist." }, "incomplete_relation": { - "single": "Dieses Objekt kann nicht gelöscht werden, da es nicht vollständig heruntergeladen wurde.", - "multiple": "Diese Objekte können nicht gelöscht werden, da sie nicht vollständig heruntergeladen wurden." + "single": "Dieses Objekt kann nicht gelöscht werden, weil es nicht vollständig heruntergeladen wurde.", + "multiple": "Diese Objekte können nicht gelöscht werden, weil sie nicht vollständig heruntergeladen wurden." }, "part_of_relation": { - "single": "Dieses Objekt kann nicht gelöscht werden, da es Mitglied einer größeren Relation ist. Du musst es zuerst aus der Relation entfernen.", - "multiple": "Diese Objekte können nicht gelöscht werden, da sie Mitglied einer größeren Relation sind. Du musst sie zuerst aus der Relation entfernen." + "single": "Dieses Objekt kann nicht gelöscht werden, weil es Mitglied einer größeren Relation ist. Du musst es zuerst aus der Relation entfernen.", + "multiple": "Diese Objekte können nicht gelöscht werden, weil sie Mitglieder einer größeren Relation sind. Du musst sie zuerst aus der Relation entfernen." }, "connected_to_hidden": { - "single": "Dieses Objekt kann nicht gelöscht werden, da es mit einem versteckten Objekt verbunden ist.", - "multiple": "Diese Objekte können nicht gelöscht werden, da sie mit versteckten Objekten verbunden sind." + "single": "Dieses Objekt kann nicht gelöscht werden, weil es mit einem versteckten Objekt verbunden ist.", + "multiple": "Diese Objekte können nicht gelöscht werden, weil sie mit versteckten Objekten verbunden sind." } }, "add_member": { @@ -153,8 +153,8 @@ "key": "D", "annotation": "Linien/Flächen getrennt.", "not_connected": "Es gibt hier nicht genug Linien/Flächen, um diese zu trennen.", - "connected_to_hidden": "Dieses Objekt kann nicht getrennt werden, da es mit einem versteckten Objekt verbunden ist.", - "relation": "Dies kann nicht getrennt werden, da es Mitglieder einer Relation verbindet." + "connected_to_hidden": "Dieses Objekt kann nicht getrennt werden, weil es mit einem versteckten Objekt verbunden ist.", + "relation": "Dies kann nicht getrennt werden, weil es Mitglieder einer Relation verbindet." }, "merge": { "title": "Vereinigen", @@ -162,9 +162,9 @@ "key": "C", "annotation": "{n} Objekte wurden vereinigt.", "not_eligible": "Diese Objekte können nicht vereinigt werden.", - "not_adjacent": "Diese Objekte können nicht vereinigt werden, da ihre Endpunkte nicht verbunden sind.", + "not_adjacent": "Diese Objekte können nicht vereinigt werden, weil ihre Endpunkte nicht verbunden sind.", "restriction": "Diese Objekte können nicht vereinigt werden, weil zumindest ein Objekt Mitglied der '{relation}' Relation ist.", - "incomplete_relation": "Diese Objekte können nicht zusammengefügt werden, da mindestens eines noch nicht vollständig heruntergeladen wurde.", + "incomplete_relation": "Diese Objekte können nicht zusammengefügt werden, weil mindestens eines noch nicht vollständig heruntergeladen wurde.", "conflicting_tags": "Diese Objekte können nicht vereinigt werden, weil es Eigenschaften mit widersprechenden Werten gibt." }, "move": { @@ -182,16 +182,16 @@ "multiple": "Mehrere Objekte verschoben." }, "incomplete_relation": { - "single": "Dieses Objekt kann nicht verschoben werden, da es nicht vollständig heruntergeladen wurde.", - "multiple": "Diese Objekte können nicht verschoben werden, da sie nicht vollständig heruntergeladen wurden." + "single": "Dieses Objekt kann nicht verschoben werden, weil es nicht vollständig heruntergeladen wurde.", + "multiple": "Diese Objekte können nicht verschoben werden, weil sie nicht vollständig heruntergeladen wurden." }, "too_large": { - "single": "Dieses Objekt kann nicht bewegt werden, da momentan nicht genug davon sichtbar ist.", - "multiple": "Diese Objekte können nicht bewegt werden, da momentan nicht genug davon sichtbar ist." + "single": "Dieses Objekt kann nicht bewegt werden, weil momentan nicht genug davon sichtbar ist.", + "multiple": "Diese Objekte können nicht bewegt werden, weil momentan nicht genug davon sichtbar ist." }, "connected_to_hidden": { - "single": "Dieses Objekt kann nicht verschoben werden, da es mit einem versteckten Objekt verbunden ist.", - "multiple": "Diese Objekte können nicht verschoben werden, da sie mit einem versteckten Objekt verbunden sind." + "single": "Dieses Objekt kann nicht verschoben werden, weil es mit einem versteckten Objekt verbunden ist.", + "multiple": "Diese Objekte können nicht verschoben werden, weil sie mit einem versteckten Objekt verbunden sind." } }, "reflect": { @@ -224,16 +224,16 @@ } }, "incomplete_relation": { - "single": "Dieses Objekt kann nicht gespiegelt werden, da es nicht vollständig heruntergeladen wurde.", - "multiple": "Diese Objekte können nicht gespiegelt werden, da sie nicht vollständig heruntergeladen wurden." + "single": "Dieses Objekt kann nicht gespiegelt werden, weil es nicht vollständig heruntergeladen wurde.", + "multiple": "Diese Objekte können nicht gespiegelt werden, weil sie nicht vollständig heruntergeladen wurden." }, "too_large": { - "single": "Dieses Objekt kann nicht gespiegelt werden, da momentan nicht genug davon sichtbar ist.", - "multiple": "Diese Objekte können nicht gespiegelt werden, da momentan nicht genug davon sichtbar sind." + "single": "Dieses Objekt kann nicht gespiegelt werden, weil momentan nicht genug davon sichtbar ist.", + "multiple": "Diese Objekte können nicht gespiegelt werden, weil momentan nicht genug davon sichtbar ist." }, "connected_to_hidden": { - "single": "Dieses Objekt kann nicht gespiegelt werden, da es mit einem versteckten Objekt verbunden ist.", - "multiple": "Diese Objekte können nicht gespiegelt werden, da sie mit versteckten Objekten verbunden sind." + "single": "Dieses Objekt kann nicht gespiegelt werden, weil es mit einem versteckten Objekt verbunden ist.", + "multiple": "Diese Objekte können nicht gespiegelt werden, weil sie mit versteckten Objekten verbunden sind." } }, "rotate": { @@ -249,16 +249,16 @@ "multiple": "Mehrere Objekte gedreht." }, "incomplete_relation": { - "single": "Dieses Objekt kann nicht gedreht werden, da es nicht vollständig heruntergeladen wurde.", - "multiple": "Diese Objekte können nicht gedreht werden, da sie nicht vollständig heruntergeladen wurden." + "single": "Dieses Objekt kann nicht gedreht werden, weil es nicht vollständig heruntergeladen wurde.", + "multiple": "Diese Objekte können nicht gedreht werden, weil sie nicht vollständig heruntergeladen wurden." }, "too_large": { - "single": "Dieses Objekt kann nicht gedreht werden, da momentan nicht genug davon sichtbar ist.", - "multiple": "Diese Objekte können nicht gedreht werden, da momentan nicht genug davon sichtbar sind." + "single": "Dieses Objekt kann nicht gedreht werden, weil momentan nicht genug davon sichtbar ist.", + "multiple": "Diese Objekte können nicht gedreht werden, weil momentan nicht genug davon sichtbar ist." }, "connected_to_hidden": { - "single": "Dieses Objekt kann nicht gedreht werden, da es mit einem versteckten Objekt verbunden ist.", - "multiple": "Diese Objekte können nicht gedreht werden, da sie mit einem versteckten Objekt verbunden sind." + "single": "Dieses Objekt kann nicht gedreht werden, weil es mit einem versteckten Objekt verbunden ist.", + "multiple": "Diese Objekte können nicht gedreht werden, weil sie mit einem versteckten Objekt verbunden sind." } }, "reverse": { @@ -282,21 +282,51 @@ }, "not_eligible": "Linien können nicht am Anfang oder Ende geteilt werden.", "multiple_ways": "Es gibt hier zu viele Linien, um diese teilen zu können.", - "connected_to_hidden": "Dieses Objekt kann nicht geteilt werden, da es mit einem versteckten Objekt verbunden ist." + "connected_to_hidden": "Dieses Objekt kann nicht geteilt werden, weil es mit einem versteckten Objekt verbunden ist." }, "restriction": { - "help": { - "select": "Klicke, um ein Wegsegment auszuwählen.", - "toggle": "Klicke, um die Abbiegebeschränkung umzudrehen.", - "toggle_on": "Klicke, um eine „{restriction}“-Einschränkung hinzuzufügen.", - "toggle_off": "Klicke, um die „{restriction}“-Einschränkung zu löschen." - }, "annotation": { "create": "Abbiegebeschränkung hinzugefügt", "delete": "Abbiegebeschränkung gelöscht" } } }, + "restriction": { + "controls": { + "distance": "Entfernung", + "distance_up_to": "Bis zu {distance}", + "via": "Über", + "via_node_only": "Nur ein Knoten", + "via_up_to_one": "Nur ein Weg", + "via_up_to_two": "maximal zwei Wege" + }, + "help": { + "indirect": "(indirekt)", + "turn": { + "no_left_turn": "KEIN Linksabbiegen {indirect}", + "no_right_turn": "KEIN Rechtsabbiegen {indirect}", + "no_u_turn": "Keine Kehrtwende {indirect}", + "no_straight_on": "Nicht Geradeaus {indirect}", + "only_left_turn": "NUR Linksabbiegen {indirect}", + "only_right_turn": "NUR Rechtsabbiegen {indirect}", + "only_u_turn": "NUR Kehrtwende {indirect}", + "only_straight_on": "NUR Geradeaus {indirect}", + "allowed_left_turn": "Linksabbiegen erlaubt {indirect}", + "allowed_right_turn": "Rechtsabbiegen erlaubt {indirect}", + "allowed_u_turn": "Kehrtwende erlaubt {indirect}", + "allowed_straight_on": "Geradeaus erlaubt {indirect}" + }, + "from": "VON", + "via": "ÜBER", + "to": "NACH", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Klicke zur Auswahl einer {from} Straße", + "select_from_name": "Klicke zur Auswahl {from} {fromName}", + "toggle": "Klicke für \"{turn}\"" + } + }, "undo": { "tooltip": "Rückgängig: {action}", "nothing": "Nichts zum Rückgängigmachen." @@ -501,7 +531,7 @@ }, "fill_area": "Flächenfüllung", "map_features": "Karten-Objekte", - "autohidden": "Diese Objekte wurden automatisch versteckt, da zu viele auf dem Bildschirm angezeigt würden. Du kannst zum Bearbeiten hinein zoomen.", + "autohidden": "Diese Objekte wurden automatisch versteckt, weil zu viele auf dem Bildschirm angezeigt würden. Du kannst zum Bearbeiten hinein zoomen.", "osmhidden": "Diese Objekte wurden automatisch versteckt, weil die OpenStreetMap Ebene versteckt ist." }, "feature": { @@ -562,7 +592,7 @@ }, "partial": { "description": "Teilweise Füllung", - "tooltip": "Flächen werden nur am Rand innen gefüllt (Empfohlen für Anfänger)" + "tooltip": "Flächen werden nur am Rand innen gefüllt (Empfohlen für Anfänger)." }, "full": { "description": "Volle Füllung", @@ -655,7 +685,7 @@ "untagged_area_tooltip": "Wähle einen Objekttyp aus, der diese Fläche beschreibt.", "untagged_relation": "Relation ohne Eigenschaft", "untagged_relation_tooltip": "Wähle einen Objekttyp aus, der diese Relation beschreibt.", - "many_deletions": "Du willst {n} Objekte löschen: {p} Knoten, {l} Linien, {a} Fächen und {r} Relationen. Bist du sicher, dass du das möchtest? Damit werden alle diese Objekte aus der Karte entfernt, die alle anderen auf openstreetmap.org sehen.", + "many_deletions": "Du willst {n} Objekte löschen: {p} Knoten, {l} Linien, {a} Flächen und {r} Relationen. Bist du sicher, dass du das möchtest? Damit werden alle diese Objekte aus der Karte entfernt, die alle Anderen auf openstreetmap.org sehen.", "tag_suggests_area": "Die Eigenschaft {tag} legt nahe, dass die Linie eine Fläche sein sollte, es ist aber keine Fläche", "deprecated_tags": "Veraltete Eigenschaften: {tags}" }, @@ -667,7 +697,7 @@ "full_screen": "Vollbildmodus ein-/ausschalten", "gpx": { "local_layer": "Lokale Datei", - "drag_drop": "Zieh eine .gpx, .geojson, oder .kml Datei per Drag & Drop auf die Seite oder klicke den Knopf rechts, um nach Dateien zu suchen", + "drag_drop": "Zieh eine .gpx, .geojson oder .kml Datei per Drag & Drop auf die Seite oder klicke den Knopf rechts, um nach Dateien zu suchen", "zoom": "GPS-Track anzeigen", "browse": "Eine Datei laden" }, @@ -698,7 +728,7 @@ "open_data_h": "Open Data", "open_data": "Deine Änderungen auf dieser Karte werden für alle Nutzer von OpenStreetMap sichtbar. Du kannst Ortskenntnis, Vor-Ort-Erhebung oder Bildmaterial von Luftaufnahmen und Straßenfotos als Grundlage für deine Bearbeitungen verwenden. Kopieren von kommerziellen Quellen wie Google [ist streng verboten](https://www.openstreetmap.org/copyright).", "before_start_h": "Bevor du anfängst", - "before_start": "Du solltest mit OpenStreetMap und diesem Editor vertraut sein, bevor du mit dem Bearbeiten anfängst. iD hat einen Rundgang mit dem du die Grundlagen des OpenStreetMap-Bearbeiten lernen kannst. Klicke \"Rundgang starten\" um das Lernprogramm zu starten - es dauert nur etwa 15 Minuten.", + "before_start": "Du solltest mit OpenStreetMap und diesem Editor vertraut sein, bevor du mit dem Bearbeiten anfängst. iD hat einen Rundgang mit dem du die Grundlagen des OpenStreetMap-Bearbeitens lernen kannst. Klicke \"Rundgang starten\" um das Lernprogramm zu starten - es dauert nur etwa 15 Minuten.", "open_source_h": "Open Source", "open_source": "Der iD Editor ist ein quelloffenes Gemeinschaftsprojekt und du benutzt gerade Version {version}. Der Quellcode ist [auf GitHub](https://github.com/openstreetmap/iD) verfügbar.", "open_source_help": "Du kannst iD durch [Übersetzungen](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) oder [Fehlermeldungen](https://github.com/openstreetmap/iD/issues) unterstützen." @@ -707,7 +737,7 @@ "title": "Überblick", "navigation_h": "Navigation", "navigation_drag": "Du kannst die Karte durch Drücken und Halten der {leftclick} linken Maustaste und Bewegen der Maus verschieben. Du kannst auch die `↓`, `↑`, `←`, `→` Pfeiltasten auf deiner Tastatur benutzen.", - "navigation_zoom": "Du kannst durch Drehen am Mausrad oder am Trackpad oder durch Klicken der {plus} / {minus} Knöpfe rechts oben neben der Karte hinein oder heraus zoomen. Du kannst auch die `+`, `-` Tasten auf der Tastatur benutzen.", + "navigation_zoom": "Du kannst durch Scrollen am Mausrad oder am Touchpad oder durch Klicken der {plus} / {minus} Knöpfe rechts oben neben der Karte hinein oder heraus zoomen. Du kannst auch die `+`, `-` Tasten auf der Tastatur benutzen.", "features_h": "Karten-Objekte", "features": "Wir benutzen das Wort *Objekte* um die Dinge zu beschreiben die auf der Karte erscheinen, beispielsweise Straßen, Gebäude oder Sehenswürdigkeiten. Alles in der echten Welt kann als ein Objekt in OpenStreetMap abgebildet werden. Objekte werden auf der Karte als *Punkte*, *Linien* oder *Flächen* dargestellt.", "nodes_ways": "In OpenStreetMap werden Punkte manchmal *Knoten* genannt, Linien und Flächen werden manchmal *Wege* genannt." @@ -718,13 +748,13 @@ "select_left_click": "{leftclick} Linksklicke ein Objekt um es auszuwählen. Dadurch wird es mit einem pulsierenden Schimmer hervorgehoben und links im *Objekteditor* werden Details des Objekts wie Name oder Adresse angezeigt.", "select_right_click": "{rightclick} Rechtsklicke ein Objekt um das *Bearbeitungs-Menü* zu sehen, welches dir die verfügbaren Befehle wie Drehen, Bewegen oder Löschen zeigt.", "multiselect_h": "Mehrfachauswahl", - "multiselect_shift_click": "`{shift}`+{leftclick} Linksklick kann mehrere Objekte gemeinsam auswählen. Damit können diese leicht gemeinsam verschoben, gefreht oder gelöscht werden.", + "multiselect_shift_click": "`{shift}`+{leftclick} Linksklick kann mehrere Objekte gemeinsam auswählen. Damit können diese leicht gemeinsam verschoben, gedreht oder gelöscht werden.", "multiselect_lasso": "Eine andere Möglichkeit mehrere Objekte gemeinsam auszuwählen ist die `{shift}` Taste zu halten, dann den {leftclick} linken Mausknopf festzuhalten und mit der Maus ein Auswahl-Lasso um die Objekte zu ziehen. Alle Punkte innerhalb des Auswahl-Lasso werden ausgewählt.", "undo_redo_h": "Rückgängig & Wiederherstellen", "undo_redo": "Deine Bearbeitungen werden lokal in deinem Web Browser gespeichert bis du diese auf dem OpenStreetMap Server speicherst. Du kannst Bearbeitungen durch Klicken des {undo} **Rückgängig** Knopf rückgängig machen und durch Klicken des {redo} **Wiederherstellen** Knopf wiederherstellen.", "save_h": "Speichern", "save": "Klicke {save} **Speichern** um deine Bearbeitungen zu beenden und auf dem OpenStreetMap Server zu speichern. Bitte denk daran, deine Arbeit häufig zu speichern!", - "save_validation": "Beim Speichern kannst du überprüfen, was du gerade bearbeitet hast. iD macht einfache Prüfungen auf fehlende Daten und kann hilfreiche Vorschäge und Warnungen anzeigen, wenn etwas nicht richtig erscheint.", + "save_validation": "Beim Speichern kannst du überprüfen, was du gerade bearbeitet hast. iD macht einfache Prüfungen auf fehlende Daten und kann hilfreiche Vorschläge und Warnungen anzeigen, wenn etwas nicht richtig erscheint.", "upload_h": "Hochladen", "upload": "Vor dem Hochladen deiner Änderungen musst du einen [Änderungssatz-Kommentar](https://wiki.openstreetmap.org/wiki/DE:Good_changeset_comments) eingeben. Dann klickst du **Upload** um deine Änderungen an OpenStreetMap zu schicken, wo sie in die Karte aufgenommen und öffentlich für alle sichtbar werden.", "backups_h": "Automatische Sicherungen", @@ -767,12 +797,12 @@ "add_line_draw": "Dann bewege den Mauszeiger dorthin, wo die Linie beginnen soll und {leftclick} linksklicke oder drücke die `Leertaste` um den ersten Knoten der Linie zu platzieren. Zeichne weitere Knoten durch Klicken oder Drücken der `Leertaste`. Während des Zeichnens kannst du die Karte verschieben oder hinein zoomen, um mehr Details hinzuzufügen.", "add_line_finish": "Um eine Linie zu beenden drücke `{return}` oder klicke nochmals auf den letzten Knoten.", "modify_line_h": "Linien verändern", - "modify_line_dragnode": "Häufig siehst du Linien die nicht genau gezeichnet sind, beispielweise eine Straße, die nicht mit dem Hintergrund-Bildmaterial zusammenpasst. Um die Form der Linie azupassen wählst du sie mit {leftclick} linksklick aus. Alle Knoten der Linie werden als kleine Kreise gezeichnet. Du kannst die Knoten an die richtigen Stellen verschieben.", + "modify_line_dragnode": "Häufig siehst du Linien die nicht genau gezeichnet sind, beispielweise eine Straße, die nicht mit dem Hintergrund-Bildmaterial zusammenpasst. Um die Form der Linie anzupassen wählst du sie mit {leftclick} linksklick aus. Alle Knoten der Linie werden als kleine Kreise gezeichnet. Du kannst die Knoten an die richtigen Stellen verschieben.", "modify_line_addnode": "Du kannst neue Knoten in einer Linie auch durch {leftclick}**x2** Doppelklicken auf die Linie oder durch Ziehen der kleinen Dreiecke in der Mitte zwischen zwei Knoten erzeugen.", "connect_line_h": "Linien verbinden", "connect_line": "Die Verbindung von Straßen ist wichtig für die Karte und notwendig für die Navigation.", "connect_line_display": "Die Verbindungen von Straßen werden mit kleinen grauen Kreisen gezeichnet. Die Endpunkte von Linien werden mit größeren weisen Kreise gezeichnet, wenn sie nicht mit anderen Objekten verbunden sind.", - "connect_line_drag": "Um eine Linie mit einem anderen Objekt zu verbinden, ziehe einen Knoten der Linie auf das andere Objekt bis beide Objekte verbunden sind. Tip: Du kannst verhindern, dass Knoten mit anderen Objekten verbunden werden, indem du die `{alt}` Taste beim Verschieben gedrückt hältst.", + "connect_line_drag": "Um eine Linie mit einem anderen Objekt zu verbinden, ziehe einen Knoten der Linie auf das andere Objekt bis beide Objekte verbunden sind. Tipp: Du kannst verhindern, dass Knoten mit anderen Objekten verbunden werden, indem du die `{alt}` Taste beim Verschieben gedrückt hältst.", "connect_line_tag": "Wenn du weißt, dass die Kreuzung eine Ampel oder einen Zebrastreifen hat, kannst du diese erfassen, indem du den Knoten an der Kreuzung auswählst und dann im Objekteditor den richtigen Objekttyp auswählst.", "disconnect_line_h": "Linien trennen", "disconnect_line_command": "Um eine Straße von einem anderen Objekt zu trennen {rightclick} rechtsklicke auf den Verbindungsknoten und benutze den {disconnect} **Trennen** Befehl aus dem Bearbeitungsmenü.", @@ -795,7 +825,7 @@ "square_area_h": "Ecken rechtwinklig machen", "square_area_command": "Viele Gebäude und andere Flächen haben rechtwinklige Ecken. Um die Ecken rechtwinklig zu machen, {rightclick} rechtsklicke auf den Rand der Fläche um sie auszuwählen und das Bearbeitungsmenü anzuzeigen und benutze den {orthogonalize} **Rechtwinklig machen** Befehl.", "modify_area_h": "Flächen verändern", - "modify_area_dragnode": "Häufig siehst du Flächen die nicht genau gezeichnet sind, beispielweise ein Gebäude, das nicht mit dem Hintergrund-Bildmaterial zusammenpasst. Um die Form der Fläche azupassen wählst du sie mit {leftclick} linksklick aus. Alle Knoten der Fläche werden als kleine Kreise gezeichnet. Du kannst die Knoten an die richtigen Stellen verschieben.", + "modify_area_dragnode": "Häufig siehst du Flächen die nicht genau gezeichnet sind, beispielweise ein Gebäude, das nicht mit dem Hintergrund-Bildmaterial zusammenpasst. Um die Form der Fläche anzupassen wählst du sie mit {leftclick} linksklick aus. Alle Knoten der Fläche werden als kleine Kreise gezeichnet. Du kannst die Knoten an die richtigen Stellen verschieben.", "modify_area_addnode": "Du kannst neue Knoten in einer Fläche auch durch {leftclick}**x2** Doppelklicken am Rand der Fläche oder durch Ziehen der kleinen Dreiecke in der Mitte zwischen zwei Knoten erzeugen.", "delete_area_h": "Flächen löschen", "delete_area": "Wenn eine Fläche als Ganzes unrichtig ist, beispielsweise ein Gebäude in der echten Welt nicht existiert, kannst du es löschen. Sei beim Löschen von Objekten vorsichtig: Das von dir benutzte Hintergrund-Bildmaterial kann veraltet sein und das Gebäude, welches falsch aussieht, könnte einfach neu gebaut sein.", @@ -809,7 +839,7 @@ "edit_relation_add": "Um ein Objekt zu einer Relation hinzuzufügen wählst du das Objekt aus, dann klickst du den {plus} Knopf im Bereich \"Alle Relationen\" im Objekteditor. Du kannst in der Liste eine Relation in der Nähe oder \"Neue Relation ...\" auswählen.", "edit_relation_delete": "Du kannst auch den {delete} **Löschen** Knopf klicken, um das ausgewählte Objekt aus der Relationen zu entfernen. Wenn du alle Mitglieder einer Relation entfernst, wird die Relation automatisch gelöscht.", "maintain_relation_h": "Relationen erhalten", - "maintain_relation": "Normalerweise kümmert sich iD während der Bearbeitung automatisch um die Pflege der Relationen. Du solltest aufpassen, wenn du Objekte austauscht, die Mitglieder von Relationen sein können. Wenn du beispielsweise einen Straßenabschnitt löschst und einen neuen Straßenabschnitt zeichnest, um ihn zu ersetzen, solltest du den neuen Straßenabschnitt denselben Relationen (Routen, Abbiegebeschränkungen usw.) zuweisen, in denen der gelöschte Straßenabschnitt war.", + "maintain_relation": "Normalerweise kümmert sich iD während der Bearbeitung automatisch um die Pflege der Relationen. Du solltest aufpassen, wenn du Objekte austauschst, die Mitglieder von Relationen sein können. Wenn du beispielsweise einen Straßenabschnitt löschst und einen neuen Straßenabschnitt zeichnest, um ihn zu ersetzen, solltest du den neuen Straßenabschnitt denselben Relationen (Routen, Abbiegebeschränkungen usw.) zuweisen, in denen der gelöschte Straßenabschnitt war.", "relation_types_h": "Typen von Relationen", "multipolygon_h": "Multipolygone", "multipolygon": "Eine Relation vom Typ *Multipolygon* ist eine Gruppe von einem oder mehreren *äußeren* Objekten und einem oder mehreren *inneren* Objekten. Die äußeren Objekte beschreiben den äußeren Rand des Multipolygons, die inneren Objekte beschreiben Teilflächen oder Löcher, die aus dem Multipolygon herausgeschnitten sind.", @@ -821,10 +851,10 @@ "turn_restriction_editing": "Im Feld \"Abbiegebeschränkungen\" wähle eine \"von\" Straße durch Klicken aus, dann siehst du ob Abbiegen zu allen \"nach\" Straßen erlaubt oder verboten ist. Du kannst das Abbiege-Symbol anklicken um zwischen erlaubt und verboten umzuschalten. iD wird die Relationen automatisch erzeugen und die Rollen \"von\", \"via\" und \"nach\" entsprechend deiner Auswahl vergeben.", "route_h": "Routen", "route": "Eine Relation des Typ *Route* fasst eine oder mehrere Linien zusammen, die gemeinsam ein Streckennetz wie eine Busstrecke, eine Zugstrecke oder eine Autobahnstrecke bilden.", - "route_add": "Um ein Objekt zu einer Route hinzuzufügen, wähle das Objekt aus und gehe im Objekteditor nach unten zum Bereich \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen.", + "route_add": "Um ein Objekt zu einer Route hinzuzufügen, wähle das Objekt aus und scrolle im Objekteditor nach unten zum Bereich \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen.", "boundary_h": "Grenzen", "boundary": "Eine Relation vom Typ *Grenze* fasst eine oder mehrere Linien zusammen, die gemeinsam eine Verwaltungsgrenze bilden.", - "boundary_add": "Um ein Objekt zu einer Grenze hinzuzufügen, wähle das Objekt aus und gehe im Objekteditor nach unten zum Bereich \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen." + "boundary_add": "Um ein Objekt zu einer Grenze hinzuzufügen, wähle das Objekt aus und scrolle im Objekteditor nach unten zum Bereich \"Alle Relationen\", klicke den {plus} Knopf um dieses Objekt einer nahe gelegenen Relation oder einer neuen Relation hinzuzufügen." }, "imagery": { "title": "Hintergrund-Bildmaterial", @@ -842,16 +872,54 @@ "using_h": "Straßenfotos benutzen", "using": "Um Straßenfotos beim Bearbeiten zu benutzen klicke den {data} **Kartendaten** Knopf auf der rechten Seite der Karte zum Einschalten oder Ausschalten der verfügbaren Bildquellen.", "photos": "Wenn die Straßenfotos eingeschaltet sind, wird eine Linie entlang der Fotosequenz angezeigt. Bei höheren Zoomstufen zeigt ein Kreis jede Fotoposition an und bei noch höheren Zoomstufen zeigt ein Kegel die Richtung der Kamera während der Aufnahme an.", - "viewer": "Wenn du auf eine Fotoposition klickst erscheint die Fotoanzeige in der linken unteren Ecke der Karte. Die Fotoanzeige enthalt Kontroll-Knöpfe um vorwärts und rückwärts springen zu können. Es zeigt auch den Benutzernanen der Person, die das Foto erstellt hat, wann das Foto erstellt wurde und einen Link, um das Foto auf der Originalseite zu sehen." + "viewer": "Wenn du auf eine Fotoposition klickst erscheint die Fotoanzeige in der linken unteren Ecke der Karte. Die Fotoanzeige enthalt Kontroll-Knöpfe um vorwärts und rückwärts springen zu können. Es zeigt auch den Benutzernamen der Person, die das Foto erstellt hat, wann das Foto erstellt wurde und einen Link, um das Foto auf der Originalseite zu sehen." }, "gps": { "title": "GPS Tracks", - "intro": "GPS Tracks sind eine wertvolle Datenquelle für OpenStreetMap. Dieser Editor unterstützt lokale *.gpx*, *.geojson*, and *.kml* Dateien auf deinem Computer. Du kannst GPS Tracks mit einem Smartphone, einer Sportuhr oder mit anderen GPS-Geräten aufnehmen.", + "intro": "GPS Tracks sind eine wertvolle Datenquelle für OpenStreetMap. Dieser Editor unterstützt lokale *.gpx*, *.geojson* und *.kml* Dateien auf deinem Computer. Du kannst GPS Tracks mit einem Smartphone, einer Sportuhr oder mit anderen GPS-Geräten aufnehmen.", "survey": "Für Informationen über das Aufzeichnen von GPS-Daten kannst du dir folgende Anleitung zur [Kartierung mit Smartphone, GPS oder Field Paper](http://learnosm.org/de/mobile-mapping/) durchlesen.", "using_h": "GPS Tracks verwenden", "using": "Um einen GPS Track zum Bearbeiten zu verwenden, ziehe ihn einfach auf die Karte. Wenn er erkannt wurde, wird er als helle lila Linie auf der Karte dargestellt. Klicke auf den {data} **Kartendaten** Knopf rechts, um die neue Ebene mit dem Track zu aktivieren/deaktivieren oder den GPS-Track auf der Karte anzuzeigen.", "tracing": "Der GPS Track wird nicht zu OpenStreetMap hochgeladen. Am besten verwendest du ihn als Orientierung um neue Objekte zu zeichnen.", "upload": "Du kannst auch [deine GPS Tracks zu OpenStreetMap hochladen](https://www.openstreetmap.org/trace/create) damit sie von anderen Benutzern verwendet werden können." + }, + "field": { + "restrictions": { + "title": "Abbiegebeschränkungen Hilfe", + "about": { + "title": "Informationen", + "about": "Dieses Feld erlaubt es Abbiegebeschränkungen zu prüfen und zu ändern. Es zeigt ein Model der ausgewählten Kreuzung, inklusive angrenzender Straßen.", + "from_via_to": "Eine Abbiegebeschränkung beinhaltet immer: einen **VON Weg**, einen **Nach Weg** und entweder einen **VIA Knoten** oder einen oder mehrere **VIA Wege**.", + "maxdist": "Die \"{distField}\" Schieberegler bestimmen, wie weit nach angrenzenden Straßen gesucht wird.", + "maxvia": "Die \"{viaField}\" Schieberegler bestimmen, wie viele Zwischenwege in die Suche einbezogen werden. (Tipp: Einfacher ist besser)" + }, + "inspecting": { + "title": "Überprüfen", + "about": "Bewege die Maus über eine **VON** Straße, um zu sehen, ob sie irgendweche Abbiegebeschränkungen hat. Jede mögliche **NACH** Straße wird mit einem farbigen Schatten dargestellt, der anzeigt, ob eine Beschränkung existiert.", + "from_shadow": "{fromShadow} **VON Straße**", + "allow_shadow": "{allowShadow} **NACH erlaubt**", + "restrict_shadow": "{restrictShadow} **NACH verboten**", + "only_shadow": "{onlyShadow} **nur NACH**", + "restricted": "\"Verboten\" bedeutet, dass eine Abbiegebeschränkung exisiert, z.B. \"Kein Linksabbiegen\".", + "only": "\"Nur\" bedeutet, dass ein Fahrzeug auf diesem Weg nur diese Wahl hat, z.B. \"Nur Geradeaus\"." + }, + "modifying": { + "title": "Verändern", + "about": "Um Abbiegebeschränkungen zu ändern, klicke zuerst auf eine **VON** Straße, um sie auszuwählen. Die ausgewählte Straße wird pulsieren und alle möglichen **NACH** Straßen werden als Abbiegesymbole erscheinen.", + "indicators": "Dann klickt man auf ein Abbiegesymbol, um es zwischen \"Erlaubt\", \"Verboten\" und \"Nur\" zu ändern.", + "allow_turn": "{allowTurn} **NACH erlaubt**", + "restrict_turn": "{restrictTurn} **NACH beschränkt**", + "only_turn": "{onlyTurn} **nur NACH**" + }, + "tips": { + "title": "Tipps", + "simple": "**Bevorzuge einfache anstatt komplexe Beschränkungen.**", + "simple_example": "Zum Beispiel vermeidet man Beschränkungen \"über Wege\", wenn es eine einfache \"über Knoten\" Abbiegebeschränkung auch tut.", + "indirect": "**Einige Beschränkungen zeigen den Text \"(indirekt)\" an und sind heller gezeichnet.**", + "indirect_example": "Diese Beschränkungen existieren wegen einer anderen Beschränkung in der Nähe. Zum Beispiel werden durch eine \"Nur Geradeaus\" Beschränkung indirekt ür alle anderen Wege über die Kreuzung \"Keine Kehrtwende\" Beschränkungen erstellt.", + "indirect_noedit": "Indirekte Beschränkungen sollte man nicht ändern. Stattdessen sollte man die angrenzende, direkte Beschränkung ändern." + } + } } }, "intro": { @@ -988,14 +1056,14 @@ "practice": "Alle Daten in diesem Rundgang sind nur zum Üben, deine Bearbeitungen können nicht gespeichert werden.", "words": "Dieser Rundgang wird neue Worte und Konzepte vorstellen. Zur Vorstellung eines neuen Wortes wird *kursiv* benutzt.", "mouse": "Du kannst diese Karte mit jedem Eingabegerät bearbeiten, aber dieser Rundgang nimmt an, dass du eine Maus mit linker und rechter Taste hast. **Wenn du eine Maus anschließen willst, mach das jetzt und klicke dann OK.**", - "leftclick": "In diesem Rundgang ist mit Klicken oder Doppelklicken die linke Maustaste gemeint. Auf einem Touchpad ist das ein einfacher Klick oder ein Ein-Finger-Tip. **Klicke {num} mal.**", - "rightclick": "Manchmal wird nach einem Rechtsklick gefragt. Das kann dasselbe sein wie Strg-Klick oder einem Zwei-Finger-Tip auf einem Touchpad. Deine Tastatur kann auch eine Menü-Taste haben die wie ein Rechtsklick wirkt. **Rechtsklicke {num} mal.**", + "leftclick": "In diesem Rundgang ist mit Klicken oder Doppelklicken die linke Maustaste gemeint. Auf einem Touchpad ist das ein einfacher Klick oder ein Ein-Finger-Tipp. **Klicke {num} mal.**", + "rightclick": "Manchmal wird nach einem Rechtsklick gefragt. Das kann dasselbe sein wie Strg-Klick oder einem Zwei-Finger-Tipp auf einem Touchpad. Deine Tastatur kann auch eine Menü-Taste haben die wie ein Rechtsklick wirkt. **Rechtsklicke {num} mal.**", "chapters": "So weit so gut! Du kannst die Knöpfe unten benutzen um Kapitel zu überspringen oder wieder zu beginnen, wenn du nicht weiterkommst. **Klicke '{next}' zum Weitermachen.**" }, "navigation": { "title": "Navigation", "drag": "Der Kartenbereich zeigt die OpenStreetMap Daten über einem Hintergrund.{br}Du kannst die Karte verschieben, drücke und halte dazu die linke Maustaste, während du die Maus verschiebst. Du kannst auch die Pfeiltasten auf der Tastatur benutzen. **Verschiebe die Karte!**", - "zoom": "Du kannst durch Drehen am Mausrad oder am Trackpad hinein oder heraus zoomen, du kannst dazu auch die {plus} / {minus} Knöpfe klicken. **Zoome die Karte!**", + "zoom": "Du kannst durch Scrollen am Mausrad oder am Touchpad hinein oder heraus zoomen, du kannst dazu auch die {plus} / {minus} Knöpfe klicken. **Zoome die Karte!**", "features": "Wir benutzen das Wort *Objekte* um die Dinge zu beschreiben die auf der Karte angezeigt werden. Alles in der echten Welt kann als ein Objekt in OpenStreetMap abgebildet werden.", "points_lines_areas": "Objekte werden auf der Karte als Punkte, Linien oder Flächen dargestellt.", "nodes_ways": "In OpenStreetMap werden Punkte manchmal *Knoten* genannt, Linien und Flächen werden manchmal *Wege* genannt.", @@ -1003,7 +1071,7 @@ "selected_townhall": "Super! Der Punkt ist jetzt ausgewählt. Ausgewählte Objekte werden mit einem pulsierenden Schimmer gezeichnet.", "editor_townhall": "Wenn ein Objekt ausgewählt ist wird der *Objekteditor* neben der Karte angezeigt.", "preset_townhall": "Der obere Teil des Objekteditors zeigt den Typ des Objekts. Dieser Punkt ist ein {preset}.", - "fields_townhall": "Der mittlere Bereich des Objekteditors enthält *Felder* mit den Merkmalen des Objektes wie Name oder Adresse", + "fields_townhall": "Der mittlere Bereich des Objekteditors enthält *Felder* mit den Merkmalen des Objektes wie Name oder Adresse.", "close_townhall": "**Schließe den Objekteditor durch Drücken von Escape oder durch Klicken auf {button} Knopf in der oberen Ecke.**", "search_street": "Du kannst Objekte in der aktuellen Kartenansicht oder weltweit suchen. **Suche nach '{name}'.**", "choose_street": "**Wähle {name} aus der Liste.**", @@ -1032,11 +1100,11 @@ "title": "Flächen", "add_playground": "*Flächen* werden benutzt um die Grenzen von Objekten wie Seen, Gebäuden oder Wohngebieten darzustellen.{br}Sie können auch benutzt werden um Objekte, die normalerweise als Punkte gezeichnet werden, genauer darzustellen. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", "start_playground": "Zeichne diesen Spielplatz als Fläche auf der Karte ein. Flächen werden gezeichnet indem *Knoten* entlang des äußeren Randes des Objekte gezeichnet werden. **Klicke oder drücke die Leertaste um den ersten Knoten an einer Ecke des Spielplatzes zu zeichnen.**", - "continue_playground": "Setze das Zeichnen der Fläche fort, indem du Knoten entlang des Randes des Spielplatzes setzt. Es ist okay, wenn du die Fläche mit bestehenden Fußwegen verbindest.{br}Tip: Wenn du die '{alt}' Taste gedrückt hältst, kannst du verhindern, dass die Knoten sich mit anderen Objekten verbinden. **Setze das Zeichnen der Fläche für den Spielplatz fort.**", + "continue_playground": "Setze das Zeichnen der Fläche fort, indem du Knoten entlang des Randes des Spielplatzes setzt. Es ist okay, wenn du die Fläche mit bestehenden Fußwegen verbindest.{br}Tipp: Wenn du die '{alt}' Taste gedrückt hältst, kannst du verhindern, dass die Knoten sich mit anderen Objekten verbinden. **Setze das Zeichnen der Fläche für den Spielplatz fort.**", "finish_playground": "Beende die Fläche durch Drücken von Enter oder nochmal Klicken auf den ersten oder letzten Knoten. **Beende das Zeichnen der Fläche für den Spielplatz.**", "search_playground": "**Suche nach '{preset}'.**", "choose_playground": "**Wähle {preset} aus der Liste.**", - "add_field": "Dieser Spielplatz hat keinen offiziellen Namen, daher lassen wir das Namens-Feld frei.{br}Schreibe zusätzliche Details über den Spielplatz in das Beschreibungs-Feld. **Öffne die Liste Feld hinzufügen.**", + "add_field": "Dieser Spielplatz hat keinen offiziellen Namen, daher lassen wir das Namensfeld frei.{br}Schreibe zusätzliche Details über den Spielplatz in das Beschreibungs-Feld. **Öffne die Liste Feld hinzufügen.**", "choose_field": "**Wähle {field} aus der Liste.**", "retry_add_field": "Du hast das Feld {field} nicht ausgewählt. Versuche es nochmals.", "describe_playground": "**Füge eine Beschreibung ein, dann klicke auf {button} Knopf um den Objekteditor zu schließen.**", @@ -1045,7 +1113,7 @@ "lines": { "title": "Linien", "add_line": "*Linien* werden benutzt um Objekt wie Straßen, Eisenbahnschienen oder Flüsse darzustellen. **Klicke auf {button} Linie um eine neue Linie zu zeichnen.**", - "start_line": "Hier gibt es eine Straße die in OpenStreetMap fehlt.{br}Zeichne sie ein! In OpenStreetMap soll die Linie in der Mitte der Straße gezeichnet werden. Du kannst die Karte während des Zeichnen verschieben, wenn das notwendig ist. **Beginne die neue Linie durch Klicken auf das obere Ende der fehlenden Straße.**", + "start_line": "Hier gibt es eine Straße die in OpenStreetMap fehlt.{br}Zeichne sie ein! In OpenStreetMap soll die Linie in der Mitte der Straße gezeichnet werden. Du kannst die Karte während des Zeichnens verschieben, wenn das notwendig ist. **Beginne die neue Linie durch Klicken auf das obere Ende der fehlenden Straße.**", "intersect": "Du kannst neue Knoten durch Klicken oder Drücken der Leertaste erzeugen.{br} Straßen und viele andere Typen von Linien sind Teil eines größeren Netzwerks. Es ist wichtig dass diese Linien verbunden sind, damit Routing-Anwendungen funktionieren. **Klicke auf {name} um eine Verbindung zwischen den beiden Linien zu erzeugen.**", "retry_intersect": "Diese Straße soll {name} kreuzen. Versuch es nochmals!", "continue_line": "Setze das Zeichnen der Linie für die neue Straße fort. Du kannst die Karte verschieben, wenn das notwendig ist.{br}Wenn du fertig gezeichnet hast klicke nochmals auf den letzten Knoten. **Beende das Zeichnen der Straße.**", @@ -1056,16 +1124,16 @@ "did_name_road": "Sieht gut aus! Jetzt wirst du lernen, wie die den Zustand einer Linie verbessern kannst.", "update_line": "Manchmal musst du den Zustand einer bestehenden Linie ändern. Hier ist eine Straße die nicht ganz richtig aussieht.", "add_node": "Du kannst weitere Knoten zu einer Linie hinzufügen, um den Zustand einer Linie zu verbessern. Eine Möglichkeit um neue Knoten zu zeichnen ist ein Doppelklick auf die Stelle der Linie, wo der neue Knoten entstehen soll. **Doppelklicke auf die Linie um einen neuen Knoten zu erzeugen.**", - "start_drag_endpoint": "Wenn eine Linie ausgewählt ist, kannst du jeden Knoten dieser Linie durch Klicken und Festhalten des linken Mausknopfs verschieben. **Schieb den letzen Knoten der Linie dorthinm wo sich diese Straßen kreuzen sollen.**", - "finish_drag_endpoint": "Hier sieht es gut aus. **Lass den Mausknopf aus um das Verschieben zu beenden.**", + "start_drag_endpoint": "Wenn eine Linie ausgewählt ist, kannst du jeden Knoten dieser Linie durch Klicken und Festhalten des linken Mausknopfs verschieben. **Schieb den letzten Knoten der Linie dorthin, wo sich diese Straßen kreuzen sollen.**", + "finish_drag_endpoint": "Hier sieht es gut aus. **Lass den Mausknopf aus, um das Verschieben zu beenden.**", "start_drag_midpoint": "Kleine Dreiecke werden am *Mittelpunkt* zwischen zwei Knoten angezeigt. Eine weitere Möglichkeit um einen neuen Knoten zu erzeugen ist das Verschieben dieses Mittelpunkts zu einer neuen Lage. **Schiebe den Mittelpunkt und erzeuge damit einen neuen Knoten in der Straßenkurve.**", "continue_drag_midpoint": "Diese Linie sieht viel besser aus! Setze das Anpassen der Linie durch Doppelklicken oder Verschieben von Mittelpunkten fort, bis die Kurve dem Straßenverlauf folgt. **Wenn Dir die Linie gefällt, klicke OK.**", "delete_lines": "Wenn es Straßen in der echten Welt nicht gibt, kannst du die zugehörigen Linien löschen.{br}Hier hat die Stadt eine {street} geplant, aber nie gebaut. Du kannst diesen Teil der Karte verbessern, wenn du die zusätzlichen Linien löschst.", - "rightclick_intersection": "Die letzte bestehende Straße ist {street1}, daher wirst du die {street2} an dieser Kreuzung teilen und alles darüber löschen. **Rechtsklicke auf den Kreuzungs-Knoten:**", + "rightclick_intersection": "Die letzte bestehende Straße ist {street1}, daher wirst du die {street2} an dieser Kreuzung teilen und alles darüber löschen. **Rechtsklicke auf den Kreuzungs-Knoten.**", "split_intersection": "**Klicke auf {button} Knopf um die {street} zu teilen.**", "retry_split": "Du hast den Teilen-Knopf nicht gedrückt. Versuch es nochmals.", "did_split_multi": "Gut gemacht! Die {street1} ist jetzt in zwei Teile geteilt, der obere Teil kann gelöscht werden. **Klicke den oberen Teil der {street2} zum Auswählen an.**", - "did_split_single": "**Klicke den oberen Teil von {street2} zum auswählen.**", + "did_split_single": "**Klicke den oberen Teil von {street2} zum Auswählen.**", "multi_select": "Die {selected} ist jetzt ausgewählt. Wähle zusätzlich die {other1} aus. Du kannst Shift-Klicken um mehrere Objekte zu wählen. **Shift-Klicke auf die {other2}.**", "multi_rightclick": "Gut! Beide zu löschenden Linien sind jetzt ausgewählt. **Rechtsklicke auf eine der beiden Linien um das Bearbeitungs-Menü zu zeigen.**", "multi_delete": "**Klicke auf {button} Knopf um die zusätzlichen Linien zu löschen.**", @@ -1084,7 +1152,7 @@ "rightclick_building": "**Rechtsklicke das gerade erzeugte Gebäude um es auszuwählen und zeige das Bearbeitungs-Menü.**", "square_building": "Das gerade gezeichnete Haus sieht besser aus, wenn es perfekt rechtwinklige Ecken hat. **Klicke auf {button} Knopf um die Gebäudeecken rechtwinklig zu machen.**", "retry_square": "Du hast nicht den Rechtwinklig-Machen-Knopf geklickt. Versuch es noch einmal.", - "done_square": "Siehst du wie die Ecken des Gebäude auf die richtige Stelle rücken? Lass uns einen weiteren nützlichen Trick lernen.", + "done_square": "Siehst du wie die Ecken des Gebäudes auf die richtige Stelle rücken? Lass uns einen weiteren nützlichen Trick lernen.", "add_tank": "Als Nächstes wirst du einen kreisrunden Tank zeichnen. **Klicke auf {button} Fläche um eine neue Fläche zu zeichnen.**", "start_tank": "Du musst keinen perfekten Kreis zeichnen. Zeichne einfach eine Fläche innerhalb des Tanks die seinen Rand berührt. **Klicke oder drücke die Leertaste um den ersten Knoten an Rand des Tanks zu zeichnen.**", "continue_tank": "Zeichne noch zwei weitere Knoten am Rand. Der Kreis wird außerhalb der gezeichneten Knoten erzeugt.{br}Beende die Fläche durch Drücken von Enter oder nochmal Klicken auf den ersten oder letzten Knoten.**Zeichne den Tank fertig.**", @@ -1105,7 +1173,7 @@ }, "shortcuts": { "title": "Tastenkürzel", - "tooltip": "Tastenkürzel-Bildschirm anzeigen", + "tooltip": "Tastenkürzel-Bildschirm anzeigen.", "toggle": { "key": "?" }, @@ -1274,7 +1342,7 @@ "name": "Eisenbahnanlagen" }, "category-restriction": { - "name": "Abbiege-Beschränkungen" + "name": "Abbiegebeschränkungen" }, "category-road": { "name": "Straßen" @@ -1514,7 +1582,7 @@ "placeholder": "1, 2, 3..." }, "camera/direction": { - "label": "Ausrichtung (Winkel Im Uhrzeigersinn) ", + "label": "Blickrichtung (Grad im Uhrzeigersinn) ", "placeholder": "45, 90, 180, 270" }, "camera/mount": { @@ -1658,11 +1726,11 @@ "label": "Windelwechseln möglich" }, "direction": { - "label": "Drehrichtung (Grad im Uhrzeigersinn)", + "label": "Blickrichtung (Grad im Uhrzeigersinn)", "placeholder": "45, 90, 180, 270" }, "direction_cardinal": { - "label": "Drehrichtung", + "label": "Blickrichtung", "options": { "E": "Ost", "ENE": "Ostnordost", @@ -1683,20 +1751,23 @@ } }, "direction_clock": { - "label": "Drehrichtung", + "label": "Blickrichtung", "options": { "anticlockwise": "gegen den Uhrzeigersinn", "clockwise": "im Uhrzeigersinn" } }, "direction_vertex": { - "label": "Drehrichtung", + "label": "Blickrichtung", "options": { "backward": "Rückwärts", "both": "Beide / Alle", "forward": "Vorwärts" } }, + "dispensing": { + "label": "Gibt rezeptpflichtige Medikamente aus" + }, "display": { "label": "Anzeige" }, @@ -2226,7 +2297,7 @@ "placeholder": "Entfernung in Kilometer mit einer Nachkommastelle (123.4)" }, "railway/signal/direction": { - "label": "Drehrichtung", + "label": "Blickrichtung", "options": { "backward": "Rückwärts", "both": "Beide / Alle", @@ -2425,7 +2496,7 @@ "bridge": "Brücke", "cutting": "Einschnitt", "embankment": "Dammlage", - "ford": "Furt", + "ford": "Furt (Gewässerquerung)", "tunnel": "Tunnel" }, "placeholder": "Unbekannt" @@ -2539,7 +2610,7 @@ "label": "Typ" }, "traffic_signals/direction": { - "label": "Drehrichtung", + "label": "Blickrichtung", "options": { "backward": "Rückwärts", "both": "Beide / Alle", @@ -2639,6 +2710,9 @@ "wheelchair": { "label": "Rollstuhlzugang" }, + "wholesale": { + "label": "Großhandel" + }, "width": { "label": "Breite (Meter)" }, @@ -2820,7 +2894,7 @@ "terms": "Wechselstube, Geldwechselgeschäft, Währungsumtauschgeschäft, Bargeldumtauschgeschäft" }, "amenity/bus_station": { - "name": "Busbahnhof" + "name": "Busbahnhof / Busterminal" }, "amenity/cafe": { "name": "Café", @@ -3462,7 +3536,11 @@ }, "building/farm": { "name": "Bauernhaus", - "terms": "Bauernhaus" + "terms": "Bauernhof, Farm, Landwirtschaft" + }, + "building/farm_auxiliary": { + "name": "Bauernhaus", + "terms": "Bauernhaus, Landwirtschaftliches Gebäude, Stall" }, "building/garage": { "name": "Einzelgarage", @@ -3628,7 +3706,7 @@ }, "craft/chimney_sweeper": { "name": "Kaminkehrer", - "terms": "Kaminkehrer,Schornsteinfeger" + "terms": "Kaminkehrer,Schornsteinfeger,Rauchfangkehrer" }, "craft/clockmaker": { "name": "Uhrmacher", @@ -3849,8 +3927,8 @@ "terms": "Bürgersteig,Gehsteig,Fußgängerweg,Gehweg,Gangsteig,Trottoir" }, "ford": { - "name": "Furt", - "terms": "Furt" + "name": "Furt (Gewässerquerung)", + "terms": "Furt (Gewässerquerung)" }, "golf/bunker": { "name": "Bunker (Golf)", @@ -3885,11 +3963,11 @@ "terms": "Abschlag" }, "golf/water_hazard_area": { - "name": "frontales Wasserhindernissfläche, frontales Seehinderniss, frontales Teichhinderniss", - "terms": "frontale Wasserhindernissfläche" + "name": "frontale Wasserhindernissfläche", + "terms": "frontale Wasserhindernissfläche, frontales Seehinderniss, frontales Teichhinderniss" }, "golf/water_hazard_line": { - "name": "frontales Wasserhinderniss, frontales Bachhinderniss", + "name": "frontales Wasserhinderniss", "terms": "frontales Wasserhinderniss, frontales Seehinderniss, frontales Teichhinderniss" }, "healthcare": { @@ -3964,7 +4042,7 @@ "terms": "Spurbusstraße" }, "highway/bus_stop": { - "name": "Bushaltestelle" + "name": "Bushaltestelle (Wartebereich)" }, "highway/corridor": { "name": "Gang/Korridor im Innenraum", @@ -4377,6 +4455,10 @@ "name": "Spielothek für Erwachsene", "terms": "Erwachsenenspielzentrum, Spielhölle, Spielothek, Spielautomat, Spielcasino, Spielsalon" }, + "leisure/amusement_arcade": { + "name": "Spielhalle", + "terms": "Spielhalle" + }, "leisure/bird_hide": { "name": "Vogelbeobachtungsturm", "terms": "Vogelbeobachtungsturm, Vogelbeobachtungshütte" @@ -5189,128 +5271,128 @@ "terms": "Transformator, Umspannwerk" }, "public_transport/linear_platform": { - "name": "Haltestelle", - "terms": "Haltestelle" + "name": "Haltestelle (Wartebereich)", + "terms": "Haltestelle (Wartebereich), Wartebereich einer Haltestelle" }, "public_transport/linear_platform_aerialway": { - "name": "Seilbahn-Haltestelle", - "terms": "Seilbahn-Haltestelle" + "name": "Seilbahn-Haltestelle (Wartebereich)", + "terms": "Seilbahn-Haltestelle (Wartebereich), Wartebereich einer Seilbahn-Haltestelle" }, "public_transport/linear_platform_bus": { - "name": "Bus-Haltestelle", - "terms": "Bus-Haltestelle" + "name": "Bushaltestelle (Wartebereich)", + "terms": "Bushaltestelle (Wartebereich), Wartebereich einer Bushaltestelle" }, "public_transport/linear_platform_ferry": { - "name": "Fähren-Haltestelle", - "terms": "Fähren-Haltestelle" + "name": "Fähranleger (Wartebereich)", + "terms": "Fähranleger (Wartebereich), Wartebereich eines Fähranlegers" }, "public_transport/linear_platform_light_rail": { - "name": "Stadtbahnhaltestelle", - "terms": "Stadtbahnhaltestelle" + "name": "Stadtbahnhaltestelle (Wartebereich)", + "terms": "Stadtbahnhaltestelle (Wartebereich), Wartebereich einer Stadtbahnhaltestelle" }, "public_transport/linear_platform_monorail": { - "name": "Einschienenbahnhaltestelle", - "terms": "Einschienenbahnhaltestelle" + "name": "Einschienenbahnhaltestelle (Wartebereich)", + "terms": "Einschienenbahnhaltestelle (Wartebereich), Wartebereich einer Einschienenbahnhaltestelle" }, "public_transport/linear_platform_subway": { - "name": "U-Bahnhaltestelle", - "terms": "U-Bahnhaltestelle" + "name": "U-Bahnhaltestelle (Wartebereich)", + "terms": "U-Bahnhaltestelle (Wartebereich), Wartebereich einer U-Bahnhaltestelle" }, "public_transport/linear_platform_train": { - "name": "Eisenbahnhaltestelle", - "terms": "Eisenbahnhaltestelle" + "name": "Eisenbahnhaltestelle (Wartebereich)", + "terms": "Eisenbahnhaltestelle (Wartebereich), Wartebereich einer Eisenbahnhaltestelle" }, "public_transport/linear_platform_tram": { - "name": "Straßenbahnhaltestelle", - "terms": "Straßenbahnhaltestelle" + "name": "Straßenbahnhaltestelle (Wartebereich)", + "terms": "Straßenbahnhaltestelle (Wartebereich), Trambahnhaltestelle (Wartebereich), Wartebereich einer Straßenbahnhaltestelle, Wartebereich einer Trambahnhaltestelle" }, "public_transport/linear_platform_trolleybus": { - "name": "Oberleitungsbus-Haltestelle", - "terms": "Oberleitungsbus-Haltestelle" + "name": "Oberleitungsbushaltestelle (Wartebereich)", + "terms": "Oberleitungsbushaltestelle (Wartebereich), Wartebereich einer Oberleitungsbushaltestelle" }, "public_transport/platform": { - "name": "Haltestelle", - "terms": "Haltestelle" + "name": "Haltestelle (Wartebereich)", + "terms": "Haltestelle (Wartebereich), Wartebereich einer Haltestelle" }, "public_transport/platform_aerialway": { - "name": "Seilbahn-Haltestelle", - "terms": "Seilbahn-Haltestelle" + "name": "Lift-/Seilbahn-Haltestelle (Wartebereich)", + "terms": "Lift-/Seilbahn-Haltestelle (Wartebereich), Wartebereich einer Lift-/Seilbahn-Haltestelle" }, "public_transport/platform_bus": { - "name": "Bushaltestelle", - "terms": "Bushaltestelle" + "name": "Bushaltestelle (Wartebereich)", + "terms": "Bushaltestelle (Wartebereich), Wartebereich einer Bushaltestelle" }, "public_transport/platform_ferry": { - "name": "Fähranleger", - "terms": "Fähranleger" + "name": "Fähranleger (Wartebereich)", + "terms": "Fähranleger (Wartebereich), Wartebereich eines Fähranlegers" }, "public_transport/platform_light_rail": { - "name": "Stadtbahnhaltestelle", - "terms": "Stadtbahnhaltestelle" + "name": "Stadtbahnhaltestelle (Wartebereich)", + "terms": "Stadtbahnhaltestelle (Wartebereich), Wartebereich einer Stadtbahnhaltestelle" }, "public_transport/platform_monorail": { - "name": "Einschienenbahnhaltestelle", - "terms": "Einschienenbahnhaltestelle" + "name": "Einschienenbahnhaltestelle (Wartebereich)", + "terms": "Einschienenbahnhaltestelle (Wartebereich), Wartebereich einer Einschienenbahnhaltestelle" }, "public_transport/platform_subway": { - "name": "U-Bahnhaltestelle", - "terms": "U-Bahnhaltestelle" + "name": "U-Bahnhaltestelle (Wartebereich)", + "terms": "U-Bahnhaltestelle (Wartebereich), Wartebereich einer U-Bahnhaltestelle" }, "public_transport/platform_train": { - "name": "Eisenbahnhaltestelle", - "terms": "Eisenbahnhaltestelle" + "name": "Eisenbahnhaltestelle (Wartebereich)", + "terms": "Eisenbahnhaltestelle (Wartebereich), Wartebereich einer Eisenbahnhaltestelle" }, "public_transport/platform_tram": { - "name": "Straßenbahnhaltestelle", - "terms": "Straßenbahnhaltestelle" + "name": "Straßenbahnhaltestelle (Wartebereich)", + "terms": "Straßenbahnhaltestelle (Wartebereich), Trambahnhaltestelle (Wartebereich), Wartebereich einer Straßenbahnhaltestelle, Wartebereich einer Trambahnhaltestelle" }, "public_transport/platform_trolleybus": { - "name": "Oberleitungsbus-Haltestelle", - "terms": "Oberleitungsbus-Haltestelle" + "name": "Oberleitungsbushaltestelle (Wartebereich)", + "terms": "Oberleitungsbushaltestelle (Wartebereich), Wartebereich einer Oberleitungsbushaltestelle" }, "public_transport/station": { - "name": "Haltestelle", - "terms": "Haltestelle" + "name": "Station", + "terms": "Station" }, "public_transport/station_aerialway": { - "name": "Lift-/Seilbahn-Haltestelle", - "terms": "Lift-/Seilbahn-Haltestelle" + "name": "Lift-/Seilbahn-Station", + "terms": "Lift-/Seilbahn-Station" }, "public_transport/station_bus": { - "name": "Busbahnhof", - "terms": "Busbahnhof, Busterminal, Bushaltestelle" + "name": "Busbahnhof / Busterminal", + "terms": "Bustattsion, Busbahnhof, Busterminal, Bushaltestelle" }, "public_transport/station_ferry": { - "name": "Fähranleger", - "terms": "Fähranleger" + "name": "Fähranleger / Fährterminal", + "terms": "Fähranleger, Fährterminal" }, "public_transport/station_light_rail": { - "name": "Stadtbahnhaltestelle", - "terms": "Stadtbahnhaltestelle" + "name": "Stadtbahn-Station", + "terms": "Stadtbahn-Station" }, "public_transport/station_monorail": { - "name": "Einschienenbahnhaltestelle", - "terms": "Einschienenbahnhaltestelle" + "name": "Einschienenbahn-Station", + "terms": "Einschienenbahn-Station" }, "public_transport/station_subway": { - "name": "U-Bahnhaltestelle", - "terms": "U-Bahnhaltestelle" + "name": "U-Bahn-Station", + "terms": "U-Bahn-Station" }, "public_transport/station_train": { - "name": "Eisenbahnhaltestelle", - "terms": "Eisenbahnhaltestelle" + "name": "Eisenbahn-Station", + "terms": "Eisenbahn-Station" }, "public_transport/station_train_halt": { - "name": "Eisenbahn-Bedarfshaltestelle", - "terms": "Eisenbahn-Bedarfshaltestelle" + "name": "Eisenbahn-Bedarfsstation", + "terms": "Eisenbahn-Bedarfsstation" }, "public_transport/station_tram": { - "name": "Straßenbahnhaltestelle", - "terms": "Straßenbahnhaltestelle" + "name": "Straßenbahnstation", + "terms": "Straßenbahnstation, Trambahnstation" }, "public_transport/station_trolleybus": { - "name": "Oberleitungsbus-Haltestelle", - "terms": "Oberleitungsbus-Haltestelle" + "name": "Oberleitungsbusstation / Oberleitungsbusterminal", + "terms": "Oberleitungsbusstation, Oberleitungsbusterminal" }, "public_transport/stop_area": { "name": "Haltestellen-Relation", @@ -5350,7 +5432,7 @@ }, "public_transport/stop_position_tram": { "name": "Straßenbahn-Halteplatz", - "terms": "Straßenbahn-Halteplatz" + "terms": "Straßenbahn-Halteplatz, Trambahn-Halteplatz" }, "public_transport/stop_position_trolleybus": { "name": "Oberleitungsbus-Halteplatz", @@ -5411,7 +5493,7 @@ "terms": "Schmalspureisenbahn, Schmalspurbahn, schmalspurige Eisenbahn" }, "railway/platform": { - "name": "Eisenbahnhaltestelle" + "name": "Eisenbahnhaltestelle (Wartebereich)" }, "railway/rail": { "name": "Eisenbahnschienen", @@ -5442,7 +5524,7 @@ }, "railway/tram": { "name": "Straßenbahngleise", - "terms": "Straßenbahngleise, Straßenbahn, Bim, Tramway, Stadtbahn, Trambahn" + "terms": "Straßenbahngleise, Trambahngleise, Tramgleise, Bimgleis, Tramwaygleise, Stadtbahngleise" }, "railway/tram_stop": { "name": "Straßenbahn-Halteplatz" @@ -5463,8 +5545,8 @@ "terms": "Geschäft, Ladenlokal" }, "shop/agrarian": { - "name": "Geschäft für landwirtschaftliche Produktion", - "terms": "Geschäft für landwirtschaftliche Produktion" + "name": "Agrarmarkt", + "terms": "Agrarmarkt,Landwirtschaftsbedarfsgeschäft" }, "shop/alcohol": { "name": "Spirituosenladen", @@ -5608,7 +5690,7 @@ }, "shop/craft": { "name": "Kunsthandwerkgeschäft", - "terms": "Kunsthandwerkgeschäft" + "terms": "Kunsthandwerkgeschäft,Bastelbedarf,Künstlerbedarf" }, "shop/curtain": { "name": "Vorhanggeschäft", @@ -5704,6 +5786,10 @@ "name": "Eisenwarenhandel", "terms": "Baustoffmarkt, Baustoff-Handlung" }, + "shop/health_food": { + "name": "Reformhaus", + "terms": "Reformhaus" + }, "shop/hearing_aids": { "name": "Hörgerätegeschäft", "terms": "Hörgerätegeschäft, Hörhilfengeschäft, Akustiker" @@ -5943,6 +6029,10 @@ "name": "Waffengeschäft", "terms": "Waffengeschäft,Waffenhändler" }, + "shop/wholesale": { + "name": "Großhandelsgeschäft", + "terms": "Großhandelsgeschäft" + }, "shop/window_blind": { "name": "Fensterladengeschäft", "terms": "Fensterladengeschäft,Rolladengeschäft" @@ -6195,8 +6285,8 @@ "terms": "Eisenbahn-Linie" }, "type/route/tram": { - "name": "Tramlinie", - "terms": "Straßenbahn-Linie" + "name": "Straßenbahn-Linie", + "terms": "Straßenbahn-Linie, Trambahn-Linie" }, "type/route_master": { "name": "Hauptroute", diff --git a/dist/locales/el.json b/dist/locales/el.json index 91f7458a1..c5ffd6800 100644 --- a/dist/locales/el.json +++ b/dist/locales/el.json @@ -246,12 +246,6 @@ "connected_to_hidden": "Αυτό δεν μπορεί να χωριστεί επειδή είναι συνδεδεμένο με ένα κρυφό χαρακτηριστικό." }, "restriction": { - "help": { - "select": "Πατήστε για να επιλέξετε ένα τμήμα δρόμου.", - "toggle": "Πατήστε για να αλλάξετε τις απαγορεύσεις στροφών.", - "toggle_on": "Πατήστε για να προσθέσετε μια \"{restriction}\" απαγόρευση.", - "toggle_off": "Πατήστε για να αφαιρέσετε μια \"{restriction}\" απαγόρευση." - }, "annotation": { "create": "Προστέθηκε μια απαγόρευση στροφής", "delete": "Διαγράφηκε μια απαγόρευση στροφής" diff --git a/dist/locales/en-GB.json b/dist/locales/en-GB.json index 0a5dc286f..b84f61a17 100644 --- a/dist/locales/en-GB.json +++ b/dist/locales/en-GB.json @@ -282,12 +282,6 @@ "connected_to_hidden": "This can't be split because it is connected to a hidden feature." }, "restriction": { - "help": { - "select": "Click to select a road segment.", - "toggle": "Click to toggle turn restrictions.", - "toggle_on": "Click to add a \"{restriction}\" restriction.", - "toggle_off": "Click to remove the \"{restriction}\" restriction." - }, "annotation": { "create": "Added a turn restriction", "delete": "Deleted a turn restriction" @@ -4470,9 +4464,6 @@ "shop": { "name": "Shop" }, - "shop/agrarian": { - "name": "Agriculture Shop" - }, "shop/alcohol": { "name": "Off licence (Alcohol shop)" }, diff --git a/dist/locales/eo.json b/dist/locales/eo.json index 53a605605..bb11b9fe1 100644 --- a/dist/locales/eo.json +++ b/dist/locales/eo.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Ĉi tiu ne povas esti dividita, ĉar ĝi estas kunigita al kaŝita objekto." }, "restriction": { - "help": { - "select": "Klaku por elekti segmenton de vojo.", - "toggle": "Klaku por baskuligi turnaj limigojn.", - "toggle_on": "Klaku por aldoni limigon \"{restriction}\".", - "toggle_off": "Klaku por forigi limigon \"{restriction}\"." - }, "annotation": { "create": "Aldonis turnan limigon.", "delete": "Forigis turnan limigon." @@ -1695,6 +1689,9 @@ "forward": "Antaŭen" } }, + "dispensing": { + "label": "Medikamentoj je recepto" + }, "display": { "label": "Vidigilo" }, @@ -2637,6 +2634,9 @@ "wheelchair": { "label": "Rulseĝa alirebleco" }, + "wholesale": { + "label": "Pogranda komerco" + }, "width": { "label": "Larĝo (metroj)" }, @@ -3458,10 +3458,6 @@ "building/entrance": { "name": "Enirejo/elirejo" }, - "building/farm": { - "name": "Ĉefarma domo", - "terms": "kampodomo,kampara domo,somerdomo,farmo,farmodomo" - }, "building/garage": { "name": "Garaĝo", "terms": "garagho,garagxo,aŭtejo,autejo,auxtejo,aŭtomobilejo" @@ -4375,6 +4371,10 @@ "name": "Hazardludejo", "terms": "kazino,vetludejo,monludejo,vetaŭtomato" }, + "leisure/amusement_arcade": { + "name": "Salono de ludoj", + "terms": "ludejo,amuzaparatoj,videoludoj,paĉinko,flipero,bilardo" + }, "leisure/bird_hide": { "name": "Bird-observejo", "terms": "birdobservejo" @@ -5702,6 +5702,10 @@ "name": "Laborila vendejo", "terms": "iloj,ilovendejo,il-vendejo,memfaradiloj" }, + "shop/health_food": { + "name": "Sanig-manĝaĵa vendejo", + "terms": "saniga manĝaĵo,sana manĝaĵo,ekologia manĝaĵo,vegetarisma manĝaĵo" + }, "shop/hearing_aids": { "name": "Aŭd-helpila vendejo", "terms": "aŭdhelpiloj,audhelpiloj,auxdhelpiloj,aŭdiloj,aŭskultiloj,orelhelpiloj" @@ -5941,6 +5945,10 @@ "name": "Armila vendejo", "terms": "armiloj,pafiloj,pistoloj,armea,milita" }, + "shop/wholesale": { + "name": "Pogranda vendejo", + "terms": "magazeno, staplo" + }, "shop/window_blind": { "name": "Fenestr-kovrila vendejo", "terms": "fenestrkovriloj,fenestrokovriloj,latkurtenoj,rulkurtenoj,ĵaluzioj" diff --git a/dist/locales/es.json b/dist/locales/es.json index 21f5dfbb9..28d5444a7 100644 --- a/dist/locales/es.json +++ b/dist/locales/es.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Esto no se puede dividir porque está conectado a un elemento oculto." }, "restriction": { - "help": { - "select": "Haga clic para seleccionar un segmento de la vía.", - "toggle": "Haga clic para activar o desactivar las restricciones de giro.", - "toggle_on": "Haga clic para añadir una restricción de \"{restriction}\"", - "toggle_off": "Haga clic para quitar la restricción «{restriction}»" - }, "annotation": { "create": "Restricción de giro añadida", "delete": "Restricción de giro eliminada" @@ -389,6 +383,8 @@ "title": "Medición", "selected": "{n} seleccionado", "geometry": "Geometría", + "closed_line": "línea cerrada", + "closed_area": "área cerrada", "center": "Centro", "perimeter": "Perímetro", "length": "Longitud", @@ -469,6 +465,7 @@ "switch": "Volver a este fondo", "custom": "Personalizado", "custom_button": "Editar fondo personalizado", + "custom_prompt": "Ingrese una plantilla de URL de tesela. Los tokens válidos son:\n  - {zoom} o {z}, {x}, {y} para el esquema de tesela Z/X/Y\n  - {-y} o {ty} para las coordenadas Y invertidas estilo TMS\n  - {u} para el esquema quadtile\n  - {switch: a, b, c} para la multiplexación del servidor DNS\n\nEjemplo:\n{example}", "overlays": "Superposiciones", "imagery_source_faq": "Información de imágenes / Informar un problema", "reset": "reiniciar", @@ -652,6 +649,7 @@ "untagged_area_tooltip": "Seleccione un tipo de elemento que describa lo que es esta área.", "untagged_relation": "Relación no etiquetada", "untagged_relation_tooltip": "Seleccione un tipo de elemento que describa qué es esta relación.", + "many_deletions": "Está eliminando {n} elementos: {p} nodos, {l} líneas, {a} áreas, {r} relaciones. ¿Seguro que quiere hacer esto? Esto los borrará del mapa que todos los demás ven en openstreetmap.org.", "tag_suggests_area": "La etiqueta {tag} sugiere que esta línea debería ser una área, pero no es un área", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, @@ -672,8 +670,8 @@ "title": "Capa de fotos (Mapillary)" }, "mapillary_signs": { - "tooltip": "Señales de tráfico Mapillary (debe habilitar Capa de fotos)", - "title": "Capa de señales de tráfico (Mapillary)" + "tooltip": "Señales viales de Mapillary (debe habilitar capa de fotos)", + "title": "Capa de señales viales (Mapillary)" }, "mapillary": { "view_on_mapillary": "Ver esta imagen en Mapillary" @@ -1218,6 +1216,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} ft²", + "square_miles": "{quantity} mi²", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "O", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1671,6 +1691,9 @@ "forward": "Adelante" } }, + "dispensing": { + "label": "Prepara recetas" + }, "display": { "label": "Monitor" }, @@ -2216,6 +2239,9 @@ "ref": { "label": "Código de referencia" }, + "ref/isil": { + "label": "Código ISIL" + }, "ref_aeroway_gate": { "label": "Número de puerta" }, @@ -2610,6 +2636,9 @@ "wheelchair": { "label": "Acceso en silla de ruedas" }, + "wholesale": { + "label": "Venta al por mayor" + }, "width": { "label": "Ancho (metros)" }, @@ -3096,6 +3125,10 @@ "name": "Ducha", "terms": "ducha, regadera, cuarto de aseo" }, + "amenity/smoking_area": { + "name": "Área de fumadores", + "terms": "Área de fumadores, area de fumadores, zona de fumadores, cigarrillo, humo" + }, "amenity/social_facility": { "name": "Instalación social", "terms": "Servicios sociales, Asistencia social, " @@ -3329,6 +3362,10 @@ "name": "Seto", "terms": "cobertura, seto vivo, seto verde, defensa" }, + "barrier/kerb": { + "name": "Bordillo / Cordón", + "terms": "bordillo, borde de la banqueta, cuneta, sardinel, cordón de la vereda" + }, "barrier/kissing_gate": { "name": "Puerta de ganado", "terms": "puerta, seguridad, ganado, animales, control" @@ -3369,6 +3406,10 @@ "name": "Granero", "terms": "Granero, hórreo, silo, depósito de cereal, troj" }, + "building/boathouse": { + "name": "Cobertizo para botes", + "terms": "cobertizo, botes " + }, "building/bungalow": { "name": "Bungalow", "terms": "bungalow, bungaló, búngalo, cabaña" @@ -3419,10 +3460,6 @@ "building/entrance": { "name": "Entrada/Salida" }, - "building/farm": { - "name": "Edificio agrícola", - "terms": "edificio agrícola, edificio agricola, agrícola, agricola, granja" - }, "building/garage": { "name": "Garaje privado", "terms": "garaje,cochera" @@ -3776,6 +3813,10 @@ "emergency/private": { "name": "Acceso de emergencia privado" }, + "emergency/water_tank": { + "name": "Depósito de agua de emergencia", + "terms": "tanque de agua, cisterna, depósito, deposito" + }, "emergency/yes": { "name": "Acceso de emergencia permitido" }, @@ -3914,6 +3955,10 @@ "name": "Camino de herradura", "terms": "camino de herradura, senda ecuestre, camino para caballos, pista ecuestre, ruta a caballo, caballo" }, + "highway/bus_guideway": { + "name": "Bus guiado", + "terms": "Autobús, autobus, bus, colectivo, guiado" + }, "highway/bus_stop": { "name": "Parada / Plataforma de bus" }, @@ -4139,7 +4184,7 @@ }, "historic/wayside_shrine": { "name": "Santuario al borde del camino", - "terms": "santuario, sagrario, Ermita, Proskynetarion, proskynetaria, oratorio, lugar de culto, icono, figura, humilladero" + "terms": "santuario, sagrario, Ermita, Proskynetarion, proskynetaria, oratorio, lugar de culto, icono, figura, humilladero, virgen, virgencita" }, "junction": { "name": "Intersección vial", @@ -4196,6 +4241,10 @@ "name": "Plantación forestal", "terms": "bosque, plantación, pinar, cultivo, plantío, sembrado, eucaliptal, explotación, árbol" }, + "landuse/garages": { + "name": "Terreno de garajes privados", + "terms": "terreno, garaje, almacenamiento" + }, "landuse/grass": { "name": "Césped", "terms": "pasto, hierba, césped, grama, zacate, franjas de separación, césped de parque" @@ -4324,6 +4373,10 @@ "name": "Centro de juegos para adultos", "terms": "juego, videojuegos, azar, juegos de azar, máquinas de juego, salón de juegos" }, + "leisure/amusement_arcade": { + "name": "Sala de juegos recreativos", + "terms": "juegos, videojuegos, simuladores, máquinas, maquinas, pinball, fichines" + }, "leisure/bird_hide": { "name": "Observatorio de aves", "terms": "observatorio, refugio, ave, pájaro, vida silvestre, naturaleza" @@ -4437,7 +4490,7 @@ "terms": "reserva natural, reserva ecológica, área protegida, conservación, preservación, natural" }, "leisure/park": { - "name": "Parque / Plaza", + "name": "Parque", "terms": "parque, plaza, plazuela, parque ecoturístico, área de recreación" }, "leisure/picnic_table": { @@ -5410,8 +5463,8 @@ "terms": "negocio, tienda, bazar, bodega, comercio, local" }, "shop/agrarian": { - "name": "Tienda de agricultura", - "terms": "agricultura, agrícola, cultivo, invernadero, granja, insumos, máquinas, semillas, pesticidas, control plagas, fertilizantes, herramientas, maquinaria, tierra, huerto" + "name": "Tienda de suministros agrícolas", + "terms": "Tienda de suministros agrícolas, insumos agrícolas, máquinas agrícolas, semillas, pesticidas, fertilizantes, herramientas agrícolas, agrícola, agricola" }, "shop/alcohol": { "name": "Licorería", @@ -5651,6 +5704,10 @@ "name": "Ferretería", "terms": "ferretería, herramientas" }, + "shop/health_food": { + "name": "Tienda de comida saludable", + "terms": "Tienda de comida saludable, alimentos integrales, vitaminas, vegetariano, vegano" + }, "shop/hearing_aids": { "name": "Tienda de audífonos", "terms": "audífono, oído, sordo, prótesis auditivas, aparatos auditivos, ayudas auditivas, centro auditivo" @@ -5890,6 +5947,10 @@ "name": "Tienda de armas", "terms": "armería, munición, tienda de armas, caza, pesca, cuchillos, navajas" }, + "shop/wholesale": { + "name": "Almacén al por mayor", + "terms": "Almacén al por mayor, por mayor" + }, "shop/window_blind": { "name": "Tienda de persianas", "terms": "ventana, persiana" @@ -6266,6 +6327,13 @@ "description": "Imágenes mundiales Esri.", "name": "Imágenes mundiales Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Términos y comentarios" + }, + "description": "Las imágenes de archivo de Esri pueden ser más claras y precisas que la capa predeterminada.", + "name": "Esri World Imagery (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© contribuidores OpenStreetMap, CC-BY-SA" @@ -6334,18 +6402,33 @@ "name": "Carreteras TIGER 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, colaboradores de OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Ciclismo" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, colaboradores de OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Senderismo" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, colaboradores de OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: BTT" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, colaboradores de OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Patinaje" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, colaboradores de OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Deportes de invierno" }, "basemap.at": { diff --git a/dist/locales/et.json b/dist/locales/et.json index 138909328..a737a8c0b 100644 --- a/dist/locales/et.json +++ b/dist/locales/et.json @@ -262,11 +262,6 @@ "connected_to_hidden": "Seda ei saa tükeldada, kuna see on ühendatud peidetud objektiga." }, "restriction": { - "help": { - "toggle": "Klõpsa, et vahetada pöörde piiranguid.", - "toggle_on": "Klõpsa, et lisada piirang \"{restriction}\".", - "toggle_off": "Klõpsa, et eemaldada piirang \"{restriction}\"." - }, "annotation": { "create": "Lisatud pöörde piirang", "delete": "Kustutatud pöörde piirang" @@ -396,14 +391,25 @@ "background": { "title": "Taust", "description": "Tausta seaded", + "backgrounds": "Taustad", "none": "Puudub", + "switch": "Vaheta tagasi selle tausta vastu", "custom": "Kohandatud", "custom_button": "Muuda kohandatud tausta", + "custom_prompt": "Sisesta paanide internetiaadressi vormel. Sobivad järgmised sõned:\n - {zoom} või {z}, {x}, {y}, kui kasutad paaniskeemi Z/X/Y\n - {-y} või {ty}, kui kasutad TMS-skeemi ümberpööratud Y-koordinaate\n - {u}, kui kasutad ruutpaani skeemi (quadtile)\n - {switch:a,b,c}, kui kasutad DNS-serveri multipleksimist\n\nNäide:\n{example}", + "overlays": "Ülekatted", + "imagery_source_faq": "Pildimaterjali teave / teata probleemist", "reset": "lähtesta", + "display_options": "Kuvasuvandid", + "brightness": "Heledus", + "contrast": "Kontrast", + "saturation": "Küllastus", + "sharpness": "Teravus", "minimap": { + "description": "Näita pisikaarti", "tooltip": "Näita väljasuumitud kaarti, et aidata tuvastada kuvatud ala." }, - "fix_misalignment": "Korrigeeri kattekaardi nihet", + "fix_misalignment": "Korrigeeri pildimaterjali nihet", "offset": "Lohista alumist halli kasti, et sättida kattekaardi nihet või siseta nihe meetrites." }, "map_data": { @@ -575,18 +581,25 @@ "browse": "Sirvi faili" }, "mapillary_images": { - "tooltip": "Tänava-tasandi fotod Mapillary'st", - "title": "Foto-kate (Mapillary)" + "tooltip": "Tänavatasandi fotod Mapillaryst", + "title": "Fotokate (Mapillary)" }, "mapillary_signs": { - "tooltip": "Liiklusmärgid Mapillary'st (Foto-kate peab olema lubatud)", - "title": "Liiklusmärgi-kate (Mapillary)" + "tooltip": "Liiklusmärgid Mapillaryst (fotokate peab olema lubatud)", + "title": "Liiklusmärkide kate (Mapillary)" }, "mapillary": { - "view_on_mapillary": "Vaata seda fotot Mapillary's" + "view_on_mapillary": "Vaata seda fotot Mapillarys" + }, + "openstreetcam_images": { + "tooltip": "Tänavatasandi fotod OpenStreetCamist", + "title": "Fotokate (OpenStreetCam)" }, "help": { - "title": "Abi" + "title": "Abi", + "editing": { + "keyboard_h": "Kiirklahvid" + } }, "intro": { "graph": { @@ -620,6 +633,15 @@ "start": "Alusta kaardistamist!" } }, + "shortcuts": { + "title": "Kiirklahvid", + "browsing": { + "display_options": { + "background_switch": "Vaheta tagasi viimase tausta vastu", + "minimap": "Lülita pisikaart sisse või välja" + } + } + }, "presets": { "categories": { "category-barrier": { @@ -1546,8 +1568,12 @@ "name": "Looduskeskus", "terms": "külastuskeskus" }, + "amenity/recycling": { + "name": "Jäätmekonteiner", + "terms": "taaskasutus,konteiner,prügi,jäätmed,ohtlikud" + }, "amenity/recycling_centre": { - "name": "Jäätmejaam", + "name": "Ümbertöötluskeskus", "terms": "Taaskasutuskeskus" }, "amenity/register_office": { @@ -3434,7 +3460,7 @@ "name": "Kanal" }, "waterway/dam": { - "name": "Tamm" + "name": "Pais" }, "waterway/ditch": { "name": "Kraav" @@ -3476,10 +3502,54 @@ "name": "Kosk" }, "waterway/weir": { - "name": "Pais", + "name": "Ülevoolupais", "terms": "tamm" } } + }, + "imagery": { + "Bing": { + "description": "Satelliidi- ja aerofotod.", + "name": "Bingi aerofotod" + }, + "DigitalGlobe-Premium": { + "description": "DigitalGlobe'i satelliidifotod (premium)", + "name": "DigitalGlobe'i pildimaterjal (premium)" + }, + "DigitalGlobe-Standard": { + "description": "DigitalGlobe'i satelliidifotod (standard)", + "name": "DigitalGlobe'i pildimaterjal (standard)" + }, + "EsriWorldImagery": { + "description": "Esri Worldi pildimaterjal.", + "name": "Esri Worldi pildimaterjal" + }, + "EsriWorldImageryClarity": { + "description": "Esri arhiivimaterjal, mis võib olla tavakihi piltidest selgem ja täpsem.", + "name": "Esri Worldi pildimaterjal (selgem, beeta)" + }, + "MAPNIK": { + "description": "OpenStreetMapi vaikekiht.", + "name": "OpenStreetMap (standard)" + }, + "Mapbox": { + "description": "Satelliidi- ja aerofotod.", + "name": "Mapboxi satelliidifotod" + }, + "mapbox_locator_overlay": { + "description": "Näita tähtsamaid objekte, et aidata orienteeruda.", + "name": "Asukoha ülekate" + }, + "osm-gps": { + "description": "Avalikud GPS-rajad, mis on OpenStreetMapi üles laaditud.", + "name": "OpenStreetMapi GPS-rajad" + }, + "stamen-terrain-background": { + "name": "Stameni reljeefikaart" + }, + "tf-landscape": { + "name": "Thunderforesti maastikukaart" + } } } } \ No newline at end of file diff --git a/dist/locales/fa.json b/dist/locales/fa.json index c538a7b84..c5eda2251 100644 --- a/dist/locales/fa.json +++ b/dist/locales/fa.json @@ -283,12 +283,6 @@ "connected_to_hidden": "امکان جدا کردن به دلیل اتصال به یک عنصر پنهان وجود ندارد." }, "restriction": { - "help": { - "select": "کلیک برای انتخاب یک بخش جاده", - "toggle": "برای روشن کردن محدودیت‌های پیچ، کلیک کنید.", - "toggle_on": "برای اضافه کردن محدودیت \"{restriction}\" کلیک کنید.", - "toggle_off": "برای حذف محدودیت \"{restriction}\" کلیک کنید." - }, "annotation": { "create": "محدودیت پیچ اضافه شد.", "delete": "محدودیت پیچ حذف شد." @@ -1206,6 +1200,46 @@ "diaper": { "label": "امکان تعویض پوشک" }, + "direction": { + "label": "جهت (خلاف عقربه های ساعت)", + "placeholder": "45، 90، 180، 270" + }, + "direction_cardinal": { + "label": "جهت", + "options": { + "E": "شرق", + "ENE": "شرق-شمال‌شرق", + "ESE": " شرق-جنوب‌شرق ", + "N": "شمال", + "NE": "شمال شرق", + "NNE": " شمال-شمال‌شرق ", + "NNW": " شمال-شمال‌غرب ", + "NW": "شمال‌غرب", + "S": "جنوب", + "SE": "جنوب شرق", + "SSE": " جنوب- جنوب‌شرق ", + "SSW": " جنوب-جنوب‌غربی ", + "SW": "جنوب غربی", + "W": "غرب", + "WNW": " غرب-شمال‌غرب ", + "WSW": " غرب-جنوب‌غربی " + } + }, + "direction_clock": { + "label": "جهت", + "options": { + "anticlockwise": "خلاف عقربه های ساعت", + "clockwise": "جهت عقربه های ساعت" + } + }, + "direction_vertex": { + "label": "جهت", + "options": { + "backward": "به عقب", + "both": "هردو/همه", + "forward": " به جلو " + } + }, "display": { "label": "نمایش" }, @@ -1599,7 +1633,9 @@ "oneway": { "label": "يک طرفه", "options": { + "alternating": "متناوب", "no": "خیر", + "reversible": "وارونه", "undefined": "خیر فرض شده", "yes": "بلی" } @@ -1607,7 +1643,9 @@ "oneway_yes": { "label": "یک طرفه", "options": { + "alternating": "متناوب", "no": "خیر", + "reversible": "وارونه", "undefined": "بلی فرض شده", "yes": "بلی" } @@ -1726,6 +1764,18 @@ "railway": { "label": "نوع" }, + "railway/position": { + "label": " تابلو کیلومترشمار ", + "placeholder": " فاصله تا یک رقم اعشار(123.4) " + }, + "railway/signal/direction": { + "label": "جهت", + "options": { + "backward": " به عقب ", + "both": "هردو/همه", + "forward": " به جلو " + } + }, "rating": { "label": "درجه قدرت" }, @@ -1735,6 +1785,9 @@ "ref": { "label": "کد مرجع" }, + "ref/isil": { + "label": "کد ISIL" + }, "ref_aeroway_gate": { "label": "شماره ورودی" }, @@ -2028,6 +2081,14 @@ "traffic_signals": { "label": "نوع" }, + "traffic_signals/direction": { + "label": "جهت", + "options": { + "backward": " به عقب ", + "both": "هردو/همه", + "forward": " به جلو " + } + }, "trail_visibility": { "label": "مسیر پیاده روی", "options": { @@ -2121,6 +2182,9 @@ "wheelchair": { "label": "دسترسی ویلچر" }, + "wholesale": { + "label": "عمده فروشی" + }, "width": { "label": "عرض (متر)" }, @@ -2165,21 +2229,24 @@ "terms": "تله‌اسکی,تله سی یژ" }, "aerialway/drag_lift": { - "name": "آسانسور" + "name": "آسانسور", + "terms": "" }, "aerialway/gondola": { "name": "تله کابین", "terms": "بلم, قایق" }, "aerialway/goods": { - "name": "محموله هوایی" + "name": "محموله هوایی", + "terms": "" }, "aerialway/magic_carpet": { "name": "آسانسور اسکی", "terms": "<ترجمه با مترادف یا اصطلاحات مشابه برای 'سطح شیب‌دار بالابر'، با کاما جدا می‌شوند>" }, "aerialway/mixed_lift": { - "name": "بالابر چند منظوره" + "name": "بالابر چند منظوره", + "terms": "" }, "aerialway/platter": { "name": "بالابر بشقابی", @@ -2211,6 +2278,9 @@ "name": "صحن", "terms": "<ترجمه با مترادف یا اصطلاحات مشابه برای 'صحن'، با کاما جدا می‌شوند>" }, + "aeroway/gate": { + "name": " دروازه فرودگاه " + }, "aeroway/hangar": { "name": "آشیانه هواپیما", "terms": "<ترجمه با مترادف یا اصطلاحات مشابه برای 'آشیانه هواپیما'، با کاما جدا می‌شوند>" @@ -4825,6 +4895,13 @@ "description": "نقشه های Esri world ", "name": "نقشه های Esri world " }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "فید بک" + }, + "description": "تصاویر بایگانی Esri که ممکن است واضح تر و دقیق تر از لایه پیش فرض باشد.", + "name": "Esri World Imagery (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "©همکاران OSM و CC-BY-SA" @@ -4893,18 +4970,33 @@ "name": "جاده های TIGER 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, "name": "مسیرهای مشخص شده: دوچرخه سواری" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, "name": "مسیرهای مشخص شده: پیاده روی" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, "name": "مسیرهای مشخص شده: MTB" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, "name": "مسیرهای مشخص شده: اسکیت" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, "name": "مسیرهای مشخص شده: ورزشهای زمستانی" }, "basemap.at": { @@ -4962,7 +5054,8 @@ "qa_no_address": { "attribution": { "text": "Simon Poole, Data ©OpenStreetMap contributors" - } + }, + "name": "س/ج بدون آدرس" }, "skobbler": { "attribution": { diff --git a/dist/locales/fi.json b/dist/locales/fi.json index eff72a35e..a8bef8e0a 100644 --- a/dist/locales/fi.json +++ b/dist/locales/fi.json @@ -21,10 +21,13 @@ "description": "Loitonna, lähennä ja panoroi karttaa." }, "draw_area": { - "tail": "Klikkaa pisteen lisäämiseksi alueeseen. Klikkaa ensimmäistä pistettä alueen täydentämiseksi." + "tail": "Lisää viivapisteitä alueeseen napsauttamalla karttaa. Lopeta alueen piirtäminen napsauttamalla aloituspistettä." }, "draw_line": { "tail": "Lisää pisteitä viivaan napsauttamalla. Yhdistä toiseen viivaan napsauttamalla sitä, ja lopeta viivan piirtäminen kaksoisnapsauttamalla." + }, + "drag_node": { + "connected_to_hidden": "Kohdetta ei voi muokata, sillä se on yhdistetty piilotettuun karttakohteeseen." } }, "operations": { @@ -56,7 +59,7 @@ "annotation": "Piirtäminen keskeytetty." }, "change_role": { - "annotation": "Relaation osapuolen rooli muutettiin." + "annotation": "Relaatiojäsenen rooli muutettiin." }, "change_tags": { "annotation": "Ominaisuustietoja vaihdettu." @@ -122,19 +125,19 @@ "multiple": "Näitä karttakohteita ei voi poistaa, sillä sen tietoja ei ole täysin ladattu." }, "part_of_relation": { - "single": "Tätä ominaisuutta ei voi poistaa koska se on osa suurempaa kokonaisuutta. Sinun täytyy poistaa sen relaatio.", + "single": "Tätä kohdetta ei voi poistaa, koska se on osa suurempaa relaatiota. Poista ensin relaatiojäsenyys.", "multiple": "Näitä ominaisuuksia ei voi poistaa sillä ne ovat osa suurempaa relaatiota. Sinun täytyy ensin poistaa kohde relaatiosta." }, "connected_to_hidden": { - "single": "Tätä ominaisuutta ei voi poistaa koska se liitetty piilotettuun ominaisuuteen.", - "multiple": "Näitä ominaisuuksia ei voida poistaa koska jotkut niistä on liitetty piilotettuihin ominaisuuksiin." + "single": "Kohdetta ei voi poistaa, koska se on liitetty yhdistetty karttakohteeseen.", + "multiple": "Kohteita ei voida poistaa, koska osa niistä on yhdistetty piilotettuihin karttakohteisiin." } }, "add_member": { - "annotation": "Osapuoli lisättiin relatioon." + "annotation": "Jäsen lisättiin relaatioon." }, "delete_member": { - "annotation": "Osapuoli poistettiin relaatiosta." + "annotation": "Jäsen poistettiin relaatiosta." }, "connect": { "annotation": { @@ -157,14 +160,18 @@ "title": "Sulauta yhteen", "description": "Yhdistä nämä ominaisuudet.", "key": "C", - "annotation": "Yhdistetyt ominaisuudet.", + "annotation": "Yhdistetty {n} kohdetta.", "not_eligible": "Näitä ominaisuuksia ei voi sulauttaa yhteen.", - "incomplete_relation": "Näitä karttakohteita ei voi yhdistää, sillä ainakin yhden tietoja ei ole täysin ladattu." + "not_adjacent": "Näitä karttapisteitä ei voi yhdistää, sillä niiden päätepisteitä ei ole yhdistetty toisiinsa.", + "restriction": "Näitä kohteita ei voi yhdistää, koska ainakin yksi on on liitettynä relaatioon \"{relation}\" .", + "incomplete_relation": "Näitä karttakohteita ei voi yhdistää, sillä ainakin yhden tietoja ei ole täysin ladattu.", + "conflicting_tags": "Näitä kohteita ei voi yhdistää, koska joidenkin niiden ominaisuustiedoissa on ristiriitaisia arvoja. " }, "move": { "title": "Siirrä", "description": { - "single": "Siirrä tämä kohde toiseen paikkaan." + "single": "Siirrä tämä kohde toiseen paikkaan.", + "multiple": "Siirrä nämä kohteet toiseen paikkaan" }, "key": "M", "annotation": { @@ -183,7 +190,8 @@ "multiple": "Näitä kohteita ei voi siirtää, sillä ne eivät ole kokonaan näkyvissä." }, "connected_to_hidden": { - "single": "Tätä kohdetta ei voi siirtää, sillä se on yhdistetty piilotettuun karttakohteeseen." + "single": "Tätä kohdetta ei voi siirtää, sillä se on yhdistetty piilotettuun karttakohteeseen.", + "multiple": "Näitä kohteita ei voi siirtää, koska osa niistä on yhdistetty piilotettuihin ominaisuuksiin" } }, "reflect": { @@ -222,14 +230,23 @@ "too_large": { "single": "Tätä kohdetta ei voi peilata, sillä se ei ole kokonaan näkyvissä.", "multiple": "Näitä kohteita ei voi peilata, sillä ne eivät ole kokonaan näkyvissä." + }, + "connected_to_hidden": { + "single": "Tätä kohdetta ei voi poistaa, koska se on yhdistetty piilotettuun karttakohteeseen.", + "multiple": "Näitä kohteita ei voi peilata, koska osa niistä on yhdistetty piilotettuihin kohteisiin." } }, "rotate": { "title": "Kierrä", + "description": { + "single": "Pyöritä tätä kohdetta sen keskipisteen ympäri.", + "multiple": "Pyöritä näitä kohteita niiden keskipisteiden ympäri." + }, "key": "R", "annotation": { "line": "Viivaa kierretty.", - "area": "Aluetta kierretty." + "area": "Aluetta kierretty.", + "multiple": "Pyöritä useita kohteita." }, "incomplete_relation": { "single": "Tätä kohdetta ei voi kiertää, sillä sen tietoja ei ole täysin ladattu.", @@ -238,6 +255,10 @@ "too_large": { "single": "Tätä kohdetta ei voi kiertää, sillä se ei ole kokonaan näkyvissä.", "multiple": "Näitä kohteita ei voi kiertää, sillä ne eivät ole kokonaan näkyvissä." + }, + "connected_to_hidden": { + "single": "Tätä kohdetta ei voi pyörittää, sillä se on yhdistetty piilotettuun karttakohteeseen.", + "multiple": "Näitä kohteita ei voi pyörittää, koska osa niistä on yhdistetty piilotettuihin karttakohteisiin." } }, "reverse": { @@ -264,12 +285,6 @@ "connected_to_hidden": "Tätä kohdetta ei voi jakaa, sillä se on yhdistetty piilotettuun karttakohteeseen." }, "restriction": { - "help": { - "select": "Valitse tienpätkä napsauttamalla.", - "toggle": "Muuta kääntymiskieltoja napsauttamalla.", - "toggle_on": "Lisää kääntymisrajoitus \"{restriction}\" napsauttamalla.", - "toggle_off": "Poista kääntymisrajoitus \"{restriction}\" napsauttamalla." - }, "annotation": { "create": "Kääntymisrajoitus lisätty.", "delete": "Kääntymisrajoitus poistettu." @@ -292,6 +307,7 @@ "localized_translation_language": "Valitse kieli", "localized_translation_name": "Nimi" }, + "zoom_in_edit": "Aloita muokkaaminen lähentämällä karttaa", "login": "kirjaudu", "logout": "kirjaudu ulos", "loading_auth": "Yhdistetään OpenStreetMap-palveluun...", @@ -315,27 +331,37 @@ "save": "Tallenna", "cancel": "Takaisin muokkaamaan", "changes": "{count} muutosta", + "download_changes": "Lataa osmChange-tiedosto", "warnings": "Varoitukset", "modified": "Muokattu", "deleted": "Poistettu", "created": "Luotu", "about_changeset_comments": "Tietoja muutoskokoelman kommenteista", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", - "google_warning": "Huomaathan, että karttatietojen kopioiminen Google-kartoista on ehdottomasti kielletty." + "google_warning": "Huomaathan, että karttatietojen kopioiminen Google-kartoista on ehdottomasti kielletty.", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "Muokkaajat {users}", "truncated_list": "Muokkaajat {users} ja {count} muuta" }, "info_panels": { + "key": "I", "background": { + "key": "B", "title": "Tausta", "zoom": "Suurennostaso", "vintage": "Päivämäärä", + "source": "Lähde", + "description": "Kuvaus", + "resolution": "Resoluutio", + "accuracy": "Täsmällisyys", "unknown": "Ei tiedossa", - "show_tiles": "Näytä kuvausruutujen rajat" + "show_tiles": "Näytä kuvausruutujen rajat", + "hide_tiles": "Piilota karttakuvat" }, "history": { + "key": "H", "title": "Historia", "selected": "{n} valittu", "version": "Versio", @@ -346,19 +372,26 @@ "link_text": "Muutoshistoria openstreetmap.org-sivustolla" }, "location": { + "key": "L", "title": "Sijainti", "unknown_location": "Sijainti ei tiedossa" }, "measurement": { + "key": "M", "title": "Mittaus", "selected": "{n} valittu", "geometry": "Muoto", + "closed_line": "Yhtenäinen viiva", + "closed_area": "Suljettu alue", + "center": "Keskipiste", "perimeter": "Piiri", "length": "Pituus", "area": "Pinta-ala", "centroid": "Keskipiste", + "location": "Sijainti", "metric": "Metrijärjestelmä", - "imperial": "Brittiläinen järjestelmä" + "imperial": "Brittiläinen järjestelmä", + "node_count": "Pisteiden määrä" } }, "geometry": { @@ -391,7 +424,7 @@ "role": "Rooli", "choose": "Valitse ominaisuustyyppi", "results": "{n} hakutulosta haulle {search}", - "reference": "Näytä OpenStreetMap Wikissä.", + "reference": "Näytä OpenStreetMapin Wikissä", "back_tooltip": "Vaihda ominaisuustyyppi", "remove": "Poista", "search": "Hae", @@ -414,8 +447,8 @@ }, "add": "Valitse", "none": "Ei kohteita", - "node": "Noodi", - "way": "Tie", + "node": "Piste", + "way": "Viiva", "relation": "Relaatio", "location": "Sijainti", "add_fields": "Lisää kenttä:" @@ -423,25 +456,44 @@ "background": { "title": "Tausta", "description": "Taustan asetukset", + "key": "B", + "backgrounds": "Tausta", "none": "Ei taustaa", "best_imagery": "Paras ilmakuvalähde tälle sijainnille", "switch": "Vaihda takaisin tähän taustaan", "custom": "Mukautettu", "custom_button": "Muokkaa omaa taustaa", - "reset": "palauta", + "overlays": "Lisänäkymät", + "imagery_source_faq": "Tietoja aineistosta / Ilmoita ongelmasta", + "reset": "Palauta", + "display_options": "Näyttöasetukset", + "brightness": "Kirkkaus", + "contrast": "Kontrasti", + "saturation": "Saturaatio", + "sharpness": "Terävyys", "minimap": { - "tooltip": "Näytä pienoiskartta laajemmalta alueelta nykyisen muokkausnäkymän sijainnin havainnollistamiseksi." + "description": "Näytä pienoiskartta", + "tooltip": "Näytä pienoiskartta laajemmalta alueelta nykyisen muokkausnäkymän sijainnin havainnollistamiseksi.", + "key": "/" }, "fix_misalignment": "Korjaa ilmakuvavirhe", "offset": "Korjaa ilmakuvan asemointivirhettä vetämällä hiiren osoitinta harmaan laatikon sisällä tai syöttämällä korjausluvut metreinä" }, "map_data": { - "title": "Karttatiedot", - "description": "Karttatiedot", + "title": "Kartta-aineisto", + "description": "Kartta-aineisto", + "key": "F", "data_layers": "Tietokerrokset", + "layers": { + "osm": { + "tooltip": "Näytä OpenStreetMapin kartta-aineisto", + "title": "OpenStreetMapin kartta-aineisto" + } + }, "fill_area": "Alueen taustatäyttö", "map_features": "Karttaominaisuudet", - "autohidden": "Nämä kohteet on piilotettu automaattisesti, sillä ne sekoittaisivat karttanäkymää liikaa. Saat ne näkyviin suurentamalla karttaa." + "autohidden": "Nämä kohteet on piilotettu automaattisesti, sillä ne sekoittaisivat karttanäkymää liikaa. Saat ne näkyviin suurentamalla karttaa.", + "osmhidden": "Nämä kohteet ovat piilotettu automaattisesti, koska OpenStreetMap taso on piilotettu" }, "feature": { "points": { @@ -496,7 +548,8 @@ "area_fill": { "wireframe": { "description": "Ei täyttöä (viivakehys)", - "tooltip": "Viivakehystäyttö helpottaa taustalla olevan ilmakuvan näkemistä." + "tooltip": "Viivakehystäyttö helpottaa taustalla olevan ilmakuvan näkemistä.", + "key": "W" }, "partial": { "description": "Osittainen täyttö", @@ -521,6 +574,7 @@ "status_code": "Palvelimen virhekoodi {code}", "unknown_error_details": "Varmista, että Internet-yhteys on käytössä.", "uploading": "Tallennetaan muutoksia OpenStreetMapiin...", + "conflict_progress": "Tarkista ristiriita: {num}/{total}", "unsaved_changes": "Kaikkia muutoksia ei ole tallennettu", "conflict": { "header": "Ratkaise muokkausristiriidat", @@ -531,6 +585,7 @@ "keep_remote": "Käytä muiden", "restore": "Palauta", "delete": "Poista pysyvästi", + "download_changes": "tai lataa osmChange-tiedosto", "done": "Kaikki ristiriidat on ratkaistu!", "help": "Joku muu käyttäjä on muuttanut samaa karttakohdetta kuin sinä.\nNapsauta jokaista alapuolella olevan listan kohdetta, ja valitse jokaisen ristiriidan kohdalla\nhaluatko säilyttää omat vai toisen käyttäjän muutokset.\n" } @@ -562,7 +617,8 @@ "splash": { "welcome": "Tervetuloa iD-kartanmuokkausohjelmaan", "text": "iD on tehokas ja helppokäyttöinen kartanmuokkausohjelma, jolla luodaan maailman tasokkain kartta. Tämä on versio {version}. Lisätietoja ohjelmasta on osoitteessa {website}, ja ohjelmistovirheistä voi ilmoittaa osoitteessa {github}.", - "walkthrough": "Aloitusopas" + "walkthrough": "Aloitusopas", + "start": "Muokkaa heti" }, "source_switch": { "live": "suora lähetys", @@ -578,6 +634,10 @@ "used_with": "käytetään tyypin {type} kanssa" }, "validations": { + "disconnected_highway": "Erota valtatie", + "disconnected_highway_tooltip": "Tie tulisi yhdistää toiseen tiehen tai rakennuksen sisäänkäyntiin", + "old_multipolygon": "Monikulmioiden ominaisuustiedot ulkoviivalla", + "old_multipolygon_tooltip": "Tämänkaltainen monikulmiotyyppi on vanhentunut. Merkitse ominaisuustiedot päämonikulmioon ulkoviivan sijasta.", "untagged_point": "Ominaisuustiedoton piste", "untagged_point_tooltip": "Valitse ominaisuustyyppi, joka kuvaa tämän pisteen tarkoitusta.", "untagged_line": "Ominaisuustiedoton viiva", @@ -585,14 +645,21 @@ "untagged_area": "Ominaisuustiedoton alue", "untagged_area_tooltip": "Valitse ominaisuustyyppi, joka kuvaa tämän alueen tarkoitusta.", "untagged_relation": "Ominaisuustiedoton relaatio", + "untagged_relation_tooltip": "Valitse relaation mukainen karttakohde", + "many_deletions": "Olet poistamassa {n} karttakohdetta: {p} pistettä, {l} viivaa, {a} aluetta ja {r} relaatiota. Haluatko varmasti poistaa ne kaikkien julkisesti käyttämältä OpenStreetMap.org-kartalta?", "tag_suggests_area": "Ominaisuustiedon {tag} mukaan viiva on alue, vaikka se ei sitä ole.", "deprecated_tags": "Vanhentuneet ominaisuustiedot: {tags}" }, + "zoom": { + "in": "Lähennä", + "out": "Loitonna" + }, "cannot_zoom": "Nykyisessä tilassa ei voi loitontaa enempää.", "full_screen": "Koko näytön tila", "gpx": { "local_layer": "Paikallinen tiedosto", "drag_drop": "Vedä ja pudota gpx-, geojson- tai kml-tiedosto tälle sivulle tai selaa tiedostoja napsauttamalla painiketta oikealla.", + "zoom": "Sovita tasoon", "browse": "Selaa tiedostoja" }, "mapillary_images": { @@ -606,8 +673,65 @@ "mapillary": { "view_on_mapillary": "Näytä tämä kuva Mapillary-palvelussa" }, + "openstreetcam_images": { + "tooltip": "OpenStreetCam-katutasokuvat", + "title": "Kuvakerros (OpenStreetCam)" + }, + "openstreetcam": { + "view_on_openstreetcam": "Näytä tämä kuva OpenStreetCam-palvelussa" + }, "help": { - "title": "Ohje" + "title": "Ohje", + "key": "H", + "help": { + "title": "Ohje", + "welcome": "Tervetuloa [OpenStreetMapin](https://www.openstreetmap.org/) iD-kartanmuokkausohjelmaan, jolla OpenStreetMap-aineistoa voi muokata suoraan selaimessa.", + "open_data_h": "Avoin data", + "open_data": "Tekemäsi muokkaukset näkyvät kaikille käyttäjille. Muokkauksesi voi perustua paikallistuntemukseen, paikan päällä tehtyihin havaintoihin tai ilmakuva- ja katutasokuvamateriaaleihin. Tietojen kopiointi kaupallisista lähteistä, kuten Google-kartoista [on ehdottomasti kielletty] (https://www.openstreetmap.org/copyright).", + "before_start_h": "Ennen aloittamista", + "before_start": "Tutustu OpenStreetMapiin ja tähän muokkausohjelmaan ennen muokkaamisen aloittamista. iD-ohjelmassa on aloitusopas, jonka avulla voit harjoitella interaktiivisesti OpenStreetMapin muokkaamista. Aloita harjoittelu napsauttamalla Aloita aloitusopas - se vie vain 15 minuuttia.", + "open_source_h": "Avoin lähdekoodi", + "open_source": "Tämä avoimen lähdekoodin iD-ohjelman versio {version} perustuu vapaaehtoisten käyttäjien työhön. Lähdekoodi on saatavilla [GitHub-palvelusta](https://github.com/openstreetmap/iD).", + "open_source_help": "Voit osallistua projektiin auttamalla ohjelman [kääntämisessä](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) tai [raportoida ongelmista](https://github.com/openstreetmap/iD/issues)." + }, + "overview": { + "title": "Perusteet", + "navigation_h": "Liikkuminen", + "navigation_drag": "Liiku kartalla painamalla ja pitämällä pohjassa {leftclick} hiiren vasenta painiketta ja liikuttelemalla hiirtä. Voit myös käyttää näppäimistön nuolinäppäimiä `↓`, `↑`, `←`, `→` .", + "navigation_zoom": "Loitonna tai lähennä hiiren rullalla, kosketuslevyllä tai napsauttamalla {plus} ja {minus} -painikkeita karttaikkunan oikeassa laidassa. Voit myös käyttää näppäimistön `+`, `-` -näppäimiä. ", + "features_h": "Karttaominaisuudet", + "features": "Kartalla näkyviä teitä, rakennuksia ja muita paikkoja kutsutaan *karttakohteiksi* tai lyhyemmin *kohteiksi*. Kaikki maailmassa olemassa olevat kohteet voidaan lisätä OpenStreetMapiin. Karttakohteet jaetaan *pisteisiin*, *viivoihin* ja *alueisiin*.", + "nodes_ways": "OpenstreetMapissa pisteet jaetaan vielä *viivapisteiksi* ja *paikkapisteiksi* riippuen siitä, onko se viivan osana vai itsenäinen paikkaa kuvaava piste." + }, + "editing": { + "title": "Muokkaaminen ja tallentaminen", + "select_h": "Yhden kohteen valitseminen", + "select_left_click": "Valitse kohde napsauttamalla sitä hiiren {leftclick} vasemmalla painikkeella. Kohde korostetaan sykkivällä hehkulla, ja vasempaan reunaan ilmestyy lisätietoja kohteesta, kuten nimi ja osoite.", + "select_right_click": "Avaa toimintovalikko napsauttamalla kohdetta hiiren {rightclick} oikealla painikkeella. Valikon kautta voi esimerkiksi kääntää, siirtää ja poistaa kohteen.", + "multiselect_h": "Usean kohteen valitseminen", + "multiselect_shift_click": "Valitse useita karttakohteita painamalla `{shift}`+{leftclick} hiiren vasenta painiketta. Useiden kohteiden poistaminen tai siirtäminen helpottuu.", + "multiselect_lasso": "Vaihtoehtoisesti pidä `{shift}`-näppäin pohjassa ja samanaikaisesti pidä {leftclick} hiiren vasen painike pohjassa ja vedä alue haluttujen kohteiden yli.", + "undo_redo_h": "Kumoa ja tee uudelleen", + "undo_redo": "Muokkaukset tallennetaan väliaikaisesti tietokoneellesi, kunnes tallennat ne OpenStreetMapin palvelimelle. Kumoa yksittäisiä muokkauksia napsauttamalla {undo} **Kumoa**-painiketta ja kumoa toiminnon kumoaminen napsauttamalla {redo} **Tee uudelleen** -painiketta.", + "save_h": "Tallentaminen", + "save": "Lähetä ja tallenna muutokset muokkaukset OpenStreetMapin palvelimelle napsauttamalla {save} **Tallenna** . Muista tallentaa muokkaukset säännöllisesti!", + "save_validation": "Tallennettaessa iD käy läpi muokkaukset ja etsii perustasoisia virheitä, jolloin voit tarkistaa ja korjata puutteet ja virheet.", + "upload_h": "Lähettäminen", + "upload": "Ennen muutosten lähettämistä sinun pitää kuvailla [karttaan tehtyjä muutoksia](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Lopulta voit lähettää muutokset OpenStreetMapiin napsauttamalla **Tallenna**. Tällöin ne ovat julkisesti kaikkien nähtävissä perinteisessä karttanäkymässä muutaman minuutin kuluttua.", + "backups_h": "Automaattinen varmuuskopiointi", + "backups": "Jos et voi viimeistellä muokkauksia samalla kerralla esimerkiksi tietokoneesi hajottua tai suljettuasi selaimen välilehden, on muokkaukset kuitenkin tallennettu selaimen muistiin. Voit palata myöhemmin samalla selaimella ja tietokoneella ja palauttaa tallentamattomat muutokset.", + "keyboard_h": "Pikanäppäimet", + "keyboard": "Avaa lista kaikista pikanäppäimistä painamalla `?`-näppäintä" + }, + "feature_editor": { + "title": "Kohdemuokkain", + "intro": "*Kohdemuokkain* näkyy muokkausnäkymän vasemmassa laidassa. Sitä käytetään karttakohteen ominaisuuksien tarkasteluun ja muokkaamiseen.", + "type_h": "Ominisuustyyppi", + "tags_resources": "Karttakohteiden muokkaaminen edellyttää perustason osaamista OpenStreetMapin ominaisuuksista. Lisätietoa erilaisista ominaisuuksista ja karttakohteista on saatavilla esimerkiksi [OpenStreetMapin Wikistä](https://wiki.openstreetmap.org/wiki/Fi:Main_Page) tai [Taginfo-sivustolla](https://taginfo.openstreetmap.org/)." + }, + "relations": { + "relation_types_h": "Relaatiot" + } }, "intro": { "done": "valmis", @@ -637,6 +761,7 @@ }, "navigation": { "title": "Käyttöliittymä", + "drag": "Kartalla näkyy OpenStreetMapiin piirretyt kohteet taustakuvan päällä.{br}Liiku kartalla pitämällä hiiren vasen painike pohjassa ja liikuta hiirtä. Voit myös käyttää näppäimistön nuolinäppäimiä. **Vedä karttaa!**", "features": "Kartalla näkyviä paikkoja ja kohteita kutsutaan *karttakohteiksi*. Mikä tahansa todellisuudessa olemassa oleva kohde voidaan merkitä OpenStreetMapiin karttakohteena.", "points_lines_areas": "Karttakohde voidaan merkitä *pisteenä, viivana tai alueena*.", "nodes_ways": "Pisteet jaetaan vielä *viivapisteiksi* ja *paikkapisteiksi* riippuen siitä, onko se viivan osana vai itsenäinen paikkaa kuvaava piste.", @@ -924,16 +1049,16 @@ "label": "Osoite", "placeholders": { "block_number": "Korttelinumero", - "block_number!jp": "Kortteli No.", + "block_number!jp": "Korttelinro", "city": "Paikkakunta", - "city!jp": "Kaupunki/Kunta/Kylä/Tokion erityinen osasto", + "city!jp": "Kaupunki/kunta/kylä/Tokion erityinen osasto", "city!vn": "Kaupunki/kunta", "conscriptionnumber": "123", "country": "Valtio", "county": "Maakunta", "county!jp": "Kaupunginosa", "district": "Seutu", - "district!vn": "Kaupunginosa/Kunta/Vyöhyke", + "district!vn": "Kaupunginosa/kunta/vyöhyke", "floor": "Lattia", "hamlet": "Pikkukylä", "housename": "Talon nimi", @@ -950,7 +1075,8 @@ "subdistrict": "Aliseutu", "subdistrict!vn": "Osasto/yhteisö/kylä", "suburb": "Lähiö", - "suburb!jp": "Osasto" + "suburb!jp": "Osasto", + "unit": "Yksikkö" } }, "admin_level": { @@ -996,6 +1122,9 @@ "aeroway": { "label": "Tyyppi" }, + "agrarian": { + "label": "Tuotteet" + }, "amenity": { "label": "Tyyppi" }, @@ -1064,12 +1193,19 @@ "board_type": { "label": "Tyyppi" }, + "boules": { + "label": "Tyyppi" + }, "boundary": { "label": "Tyyppi" }, "brand": { "label": "Brändi" }, + "bridge": { + "label": "Tyyppi", + "placeholder": "Oletus" + }, "building": { "label": "Rakennus" }, @@ -1079,6 +1215,10 @@ "bunker_type": { "label": "Tyyppi" }, + "cables": { + "label": "Kaapelit", + "placeholder": "1, 2, 3..." + }, "camera/direction": { "label": "Suunta (asteina myötäpäivään)", "placeholder": "45, 90, 180, 270..." @@ -1101,6 +1241,9 @@ "castle_type": { "label": "Tyyppi" }, + "clothes": { + "label": "Vaatteet" + }, "club": { "label": "Tyyppi" }, @@ -1121,6 +1264,9 @@ "label": "Kameran verkko-osoite", "placeholder": "http://www.esimerkki.fi/" }, + "content": { + "label": "Sisältö" + }, "country": { "label": "Maa" }, @@ -1130,6 +1276,16 @@ "craft": { "label": "Tyyppi" }, + "crane/type": { + "label": "Nosturityyppi", + "options": { + "floor-mounted_crane": "Torninosturi", + "portal_crane": "Konttinosturi" + } + }, + "crop": { + "label": "Viljelykasvi" + }, "crossing": { "label": "Tyyppi" }, @@ -1139,6 +1295,10 @@ "currency_multi": { "label": "Valuutat" }, + "cutting": { + "label": "Tyyppi", + "placeholder": "Oletus" + }, "cycle_network": { "label": "Verkko" }, @@ -1195,9 +1355,53 @@ "description": { "label": "Kuvaus" }, + "devices": { + "label": "Laitteet", + "placeholder": "1, 2, 3..." + }, "diaper": { "label": "Vaipanvaihtomahdollisuus" }, + "direction": { + "label": "Suunta (asteina myötäpäivään)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "Suunta", + "options": { + "E": "Itä", + "ENE": "Itä-koillinen", + "ESE": "Itä-kaakko", + "N": "Pohjoinen", + "NE": "Koillinen", + "NNE": "Pohjois-koillinen", + "NNW": "Pohjois-luode", + "NW": "Luode", + "S": "Etelä", + "SE": "Kaakko", + "SSE": "Etelä-kaakko", + "SSW": "Etelä-lounas", + "SW": "Lounas", + "W": "Länsi", + "WNW": "Länsiluode", + "WSW": "Länsilounas" + } + }, + "direction_clock": { + "label": "Suunta", + "options": { + "anticlockwise": "Vastapäivään", + "clockwise": "Myötäpäivään" + } + }, + "direction_vertex": { + "label": "Suunta", + "options": { + "backward": "Taaksepäin", + "both": "Molemmat/kaikki", + "forward": "Eteenpäin" + } + }, "display": { "label": "Näyttö" }, @@ -1207,6 +1411,10 @@ "drive_through": { "label": "Autokaista" }, + "duration": { + "label": "Kesto", + "placeholder": "00:00" + }, "electrified": { "label": "Sähköistys", "options": { @@ -1222,7 +1430,11 @@ }, "email": { "label": "Sähköpostiosoite", - "placeholder": "esimerkki@esimerkki.com" + "placeholder": "esimerkki@esimerkki.fi" + }, + "embankment": { + "label": "Tyyppi", + "placeholder": "Oletus" }, "emergency": { "label": "Ensiapupäivystys" @@ -1261,9 +1473,19 @@ "wall": "Seinä" } }, + "fitness_station": { + "label": "Välineiden tyypit" + }, "fixme": { "label": "Virheenkorjauspyyntö" }, + "ford": { + "label": "Tyyppi", + "placeholder": "Oletus" + }, + "frequency": { + "label": "Operoinnin taajuus" + }, "fuel": { "label": "Polttoaine" }, @@ -1283,7 +1505,11 @@ "placeholder": "Ei tiedossa" }, "generator/method": { - "label": "Metodi" + "label": "Menetelmä" + }, + "generator/output/electricity": { + "label": "Voiman ulostulo", + "placeholder": "50 MW, 100 MW, 200 MW..." }, "generator/source": { "label": "Lähde" @@ -1291,6 +1517,9 @@ "generator/type": { "label": "Tyyppi" }, + "government": { + "label": "Tyyppi" + }, "handicap": { "label": "Tasoitussuositus (HCP)", "placeholder": "1-18" @@ -1298,6 +1527,12 @@ "handrail": { "label": "Käsikaide" }, + "hashtags": { + "label": "Aihetunnisteet ja hashtagit" + }, + "healthcare": { + "label": "Tyyppi" + }, "height": { "label": "Korkeus (metreinä)" }, @@ -1446,6 +1681,9 @@ "maxweight": { "label": "Painorajoitus" }, + "memorial": { + "label": "Tyyppi" + }, "mtb/scale": { "label": "Maastopyöräilyn haastavuus", "options": { @@ -1510,7 +1748,7 @@ "nwn": "Valtakunnallinen", "rwn": "Alueellinen" }, - "placeholder": "Paikallinen, Alueellinen, Valtakunnallinen, Kansainvälinen" + "placeholder": "Paikallinen, alueellinen, valtakunnallinen, kansainvälinen" }, "network_horse": { "label": "Verkon tyyppi", @@ -1520,7 +1758,7 @@ "nhn": "Valtakunnallinen", "rhn": "Alueellinen" }, - "placeholder": "Paikallinen, Alueellinen, Valtakunnallinen, Kansainvälinen" + "placeholder": "Paikallinen, alueellinen, valtakunnallinen, kansainvälinen" }, "network_road": { "label": "Verkko" @@ -1626,6 +1864,12 @@ "plant": { "label": "Kasvi" }, + "playground/max_age": { + "label": "Yläikäraja" + }, + "playground/min_age": { + "label": "Alaikäraja" + }, "population": { "label": "Asukasmäärä" }, @@ -1644,15 +1888,50 @@ "railway": { "label": "Tyyppi" }, + "railway/signal/direction": { + "label": "Vaikuttaa kulkusuunnassa", + "options": { + "backward": "Taaksepäin", + "both": "Molemmat/kaikki", + "forward": "Eteenpäin" + } + }, + "rating": { + "label": "Teholuokitus" + }, "recycling_accepts": { "label": "Keräys" }, + "ref_aeroway_gate": { + "label": "Porttinumero" + }, + "ref_golf_hole": { + "label": "Väylänumero", + "placeholder": "1-18" + }, + "ref_highway_junction": { + "label": "Risteysnumero" + }, + "ref_platform": { + "label": "Laiturinumero" + }, "ref_road_number": { "label": "Tienumero" }, "ref_route": { "label": "Reittinumero" }, + "ref_runway": { + "label": "Kiitoratanumero", + "placeholder": "esim. 01L/19R" + }, + "ref_stop_position": { + "label": "Pysäkkinumero" + }, + "ref_taxiway": { + "label": "Rullaustien nimi", + "placeholder": "esim. A5" + }, "relation": { "label": "Tyyppi" }, @@ -1795,6 +2074,13 @@ }, "placeholder": "Tuntematon" }, + "structure_waterway": { + "label": "Rakenne", + "options": { + "tunnel": "Tunneli" + }, + "placeholder": "Ei tiedossa" + }, "studio": { "label": "Tyyppi" }, @@ -1821,6 +2107,9 @@ "surveillance/zone": { "label": "Valvontavyöhyke" }, + "switch": { + "label": "Tyyppi" + }, "tactile_paving": { "label": "Huomioreuna näkövammaisille" }, @@ -1844,18 +2133,35 @@ "toll": { "label": "Tulli" }, + "tomb": { + "label": "Tyyppi" + }, "tourism": { "label": "Tyyppi" }, "tower/type": { "label": "Tyyppi" }, + "tracktype": { + "label": "Raidetyyppi" + }, + "trade": { + "label": "Tyyppi" + }, "traffic_calming": { "label": "Tyyppi" }, "traffic_signals": { "label": "Tyyppi" }, + "traffic_signals/direction": { + "label": "Vaikuttaa kulkusuunnassa", + "options": { + "backward": "Taaksepäin", + "both": "Molemmat/kaikki", + "forward": "Eteenpäin" + } + }, "trail_visibility": { "label": "Havaittavuus", "options": { @@ -1868,9 +2174,18 @@ }, "placeholder": "Erinomainen, hyvä, huono..." }, + "transformer": { + "label": "Tyyppi" + }, "trees": { "label": "Puut" }, + "tunnel": { + "label": "Tyyppi" + }, + "vending": { + "label": "Tavaroiden tyyppi" + }, "visibility": { "label": "Näkyvyys", "options": { @@ -1879,6 +2194,33 @@ "street": "5-20 metriä" } }, + "volcano/status": { + "label": "Tila", + "options": { + "active": "Aktiivinen", + "dormant": "Uinuva", + "extinct": "Sammunut" + } + }, + "volcano/type": { + "label": "Tulivuorilaji", + "options": { + "shield": "Kilpitulivuori", + "stratovolcano": "Kerrostulivuori" + } + }, + "voltage": { + "label": "Jännite" + }, + "voltage/primary": { + "label": "Ensisijainen jännite" + }, + "voltage/secondary": { + "label": "Toissijainen jännite" + }, + "voltage/tertiary": { + "label": "Tertiäärinen jännite" + }, "wall": { "label": "Tyyppi" }, @@ -1901,11 +2243,21 @@ "wheelchair": { "label": "Esteettömyys" }, + "wholesale": { + "label": "Tukkukauppa" + }, "width": { "label": "Leveys (metreinä)" }, "wikipedia": { "label": "Wikipedia" + }, + "windings": { + "label": "Käämit", + "placeholder": "1, 2, 3..." + }, + "windings/configuration": { + "label": "Käämien kokoonpano" } }, "presets": { @@ -1934,6 +2286,10 @@ "name": "Gondolihissi", "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, gondoli, koppi, koppihissi" }, + "aerialway/goods": { + "name": "Rahti-ilmarata", + "terms": "tavara, rahti, hissi, gondoli, ilmarata, köysirata, rata" + }, "aerialway/magic_carpet": { "name": "Mattohissi", "terms": "hissi, hiihtohissi, lasketteluhissi, laskettelu, liukuhihna, hihna, hihnahissi, liukuhihnahissi" @@ -2001,6 +2357,9 @@ "name": "Lemmikkihoitola", "terms": "lemmikki, eläin, hoitola, päiväkoti, hoitopaikka" }, + "amenity/animal_breeding": { + "name": "Eläinten ruokintapaikka" + }, "amenity/animal_shelter": { "name": "Eläinkatos" }, @@ -2050,10 +2409,17 @@ "name": "Valuutanvaihtopiste", "terms": "valuutta, raha, vaihto, vaihtaminen, valuutanvaihto, valuutanvaihtaminen, rahanvaihto, rahanvaihtaminen, Forex" }, + "amenity/bus_station": { + "name": "Linja-autoasema/-terminaali" + }, "amenity/cafe": { "name": "Kahvila", "terms": "Kahvila, Kahvitupa, Teehuone" }, + "amenity/car_pooling": { + "name": "Yhteiskäyttöauton noutopiste", + "terms": "yhteiskäyttö, jako, jakaminen, jakamis, auto, jakoauto, yhteisauto, vuokra, vuokra-auto, vuokraaminen, vuokraus, ajoneuvo" + }, "amenity/car_rental": { "name": "Autonvuokraus", "terms": "autovuokraamo, autonvuokraus, auton vuokraus, auto, vuokra-auto, auton vuokraaminen, vuokraaminen" @@ -2084,6 +2450,10 @@ "name": "Klinikka", "terms": "lääkäriasema, lääkärikeskus, klinikka" }, + "amenity/clinic/abortion": { + "name": "Raskaudenkeskeytysklinikka", + "terms": "abortti, raskaus, raskauden, keskeytys, raskaudenkesketys, sairaala, terveyskeskus, klinikka" + }, "amenity/clock": { "name": "Kello" }, @@ -2133,6 +2503,9 @@ "name": "Pikaruokaravintola", "terms": "Hesburger, mäkkäri, McDonald's, McDonalds, subi, subway, hamppari, hampurilainen, hampurilais, hampurilaisravintola, roska, roskaruoka, ruoka, ravintola, mättö, ranskalaiset, ranskikset" }, + "amenity/ferry_terminal": { + "name": "Laivaterminaali" + }, "amenity/fire_station": { "name": "Paloasema", "terms": "paloasema, palokeskus, vpk, vapaapalokunta" @@ -2177,12 +2550,19 @@ "name": "Kirjasto", "terms": "kirjasto, kirjalainaamo, kirjanlainaus, kirjan lainaus, kirja, kirjan lainaaminen" }, + "amenity/love_hotel": { + "name": "Tuntihotelli", + "terms": "ilotalo, seksi, prostituutio" + }, "amenity/marketplace": { "name": "Tori" }, "amenity/motorcycle_parking": { "name": "Moottoripyöräpysäköinti" }, + "amenity/music_school": { + "name": "Musiikkikoulu" + }, "amenity/nightclub": { "name": "Yökerho" }, @@ -2224,7 +2604,7 @@ }, "amenity/place_of_worship/jewish": { "name": "Synagoga", - "terms": "Synagooga" + "terms": "synagooga" }, "amenity/place_of_worship/muslim": { "name": "Moskeija", @@ -2264,6 +2644,9 @@ "amenity/ranger_station": { "name": "Metsävartiosto" }, + "amenity/recycling": { + "name": "Kierrätysastia" + }, "amenity/recycling_centre": { "name": "Kierrätyskeskus" }, @@ -2281,9 +2664,18 @@ "name": "Koulualue", "terms": "koulu, koulutus, ala-aste, koulualue, alue, koulupiha, piha, välitunti, välituntialue" }, + "amenity/scrapyard": { + "name": "Autonromuttamo" + }, "amenity/shelter": { "name": "Katos" }, + "amenity/shower": { + "name": "Suihku" + }, + "amenity/smoking_area": { + "name": "Tupakointialue" + }, "amenity/social_facility": { "name": "Sosiaalipalvelu" }, @@ -2305,7 +2697,7 @@ "name": "Studio" }, "amenity/swimming_pool": { - "name": "Uimahalli tai -allas" + "name": "Uima-allas" }, "amenity/taxi": { "name": "Taksitolppa", @@ -2348,6 +2740,10 @@ "name": "Koirankakkapussiautomaatti", "terms": "koira, koirat, koiran, kakka, uloste, koirankakka, koiranuloste, pussi, muovipussi" }, + "amenity/vending_machine/feminine_hygiene": { + "name": "Naishygienia-automaatti", + "terms": "tamponi, tamppooni, kuukautissuoja, pikkuhousunsuoja, terveysside" + }, "amenity/vending_machine/news_papers": { "name": "Lehtiautomaatti" }, @@ -2373,6 +2769,10 @@ "amenity/veterinary": { "name": "Eläinlääkäri" }, + "amenity/waste/dog_excrement": { + "name": "Koiranjätösastia", + "terms": "koira, koirankakka, kakka, kakkaroskis, roskis" + }, "amenity/waste_basket": { "name": "Roskakori", "terms": "roska-astia, roskis, roskapönttö, jäte-astia, kierrätyspiste, kierrätyslaatikko, roska, kierrätys, jäte, jätteet" @@ -2412,6 +2812,9 @@ "name": "Törmäilyautot", "terms": "huvipuisto, elämyspuisto, laite, härveli, vimpain, vitkutin, huvilaite, törmäilyauto, rata, autorata, törmätä, törmäily" }, + "attraction/bungee_jumping": { + "name": "Benji-hyppypaikka" + }, "attraction/carousel": { "name": "Karuselli", "terms": "huvipuisto, elämyspuisto, laite, härveli, karuselli, vimpain, vitkutin, huvilaite" @@ -2483,6 +2886,10 @@ "barrier/hedge": { "name": "Pensasaita" }, + "barrier/kerb": { + "name": "Reunakivi", + "terms": "kantti, rotvalli, reunus, reuna, katukivi, kivi" + }, "barrier/kissing_gate": { "name": "Karjarajoitin" }, @@ -2514,6 +2921,9 @@ "building/barn": { "name": "Lato" }, + "building/bungalow": { + "name": "Bungalow" + }, "building/bunker": { "name": "Bunkkeri" }, @@ -2577,6 +2987,9 @@ "building/kindergarten": { "name": "Esikoulurakennus" }, + "building/mosque": { + "name": "Moskeijarakennus" + }, "building/public": { "name": "Julkinen rakennus" }, @@ -2590,6 +3003,9 @@ "name": "Seinätön rakennus", "terms": "katos, katettu, seinätön, rakennus" }, + "building/ruins": { + "name": "Rakennuksen rauniot" + }, "building/school": { "name": "Koulurakennus" }, @@ -2604,6 +3020,12 @@ "name": "Talli", "terms": "hevonen, hevostalli, hevoset, ratsastus, ratsastaminen, hevoskoti" }, + "building/stadium": { + "name": "Stadionrakennus" + }, + "building/temple": { + "name": "Temppelirakennus" + }, "building/terrace": { "name": "Rivitalo" }, @@ -2617,6 +3039,9 @@ "building/warehouse": { "name": "Varasto" }, + "circular": { + "name": "Liikenneympyrä" + }, "club": { "name": "Klubi" }, @@ -2653,9 +3078,19 @@ "craft/caterer": { "name": "Pitopalvelu" }, + "craft/chimney_sweeper": { + "name": "Nuohooja" + }, "craft/clockmaker": { "name": "Kelloseppä" }, + "craft/confectionery": { + "name": "Makeiskonditoria" + }, + "craft/distillery": { + "name": "Tislaam", + "terms": "viina, viini, alkoholi, polttaa, poltto, polttamo, tynnyri, juoma" + }, "craft/dressmaker": { "name": "ompelija" }, @@ -2735,6 +3170,10 @@ "craft/scaffolder": { "name": "Rakennustelineliike" }, + "craft/sculptor": { + "name": "Veistämö", + "terms": "veistäjä, kuvanveistäjä, taide" + }, "craft/shoemaker": { "name": "Suutari" }, @@ -2802,6 +3241,9 @@ "emergency/private": { "name": "Yksityinen pelastustie" }, + "emergency/water_tank": { + "name": "Varavesisäiliö" + }, "emergency/yes": { "name": "Pelastusajo sallittu" }, @@ -2812,9 +3254,15 @@ "footway/crossing": { "name": "Suojatieväylä" }, + "footway/crossing-raised": { + "name": "Korotettu ylityspaikka" + }, "footway/crosswalk": { "name": "Jalankulkijoiden suojatieväylä" }, + "footway/crosswalk-raised": { + "name": "Korotettu jalankulkijoiden suojatie" + }, "footway/sidewalk": { "name": "Jalkakäytävä", "terms": "jalkakäytävä, jalankulku, kävellä, jalkaisin, kadunreuna, kadussa, katuun, katu" @@ -2857,16 +3305,63 @@ "golf/water_hazard_line": { "name": "Vesieste" }, + "healthcare": { + "name": "Terveyspalvelu" + }, + "healthcare/alternative": { + "name": "Vaihtoehtolääketiede" + }, + "healthcare/alternative/chiropractic": { + "name": "Kiropraktikko" + }, + "healthcare/audiologist": { + "name": "Audiologisti" + }, + "healthcare/birthing_center": { + "name": "Synnytysklinikka", + "terms": "synnytys, synnyttää, raskaus, raskaana, sairaala" + }, "healthcare/blood_donation": { "name": "Verenluovutus", "terms": "veri, veripalvelu, verenluovutus, luovuttaa, luovutus, luovuttaminen, verta, veritoimisto" }, + "healthcare/hospice": { + "name": "Saattokoti", + "terms": "saattohoito, terminaalihoito, hoito, sairaala, kuolema, eutanasia" + }, + "healthcare/midwife": { + "name": "Kätilö" + }, + "healthcare/occupational_therapist": { + "name": "Toimintaterapeutti" + }, + "healthcare/optometrist": { + "name": "Optometri" + }, + "healthcare/physiotherapist": { + "name": "Fysioterapeutti" + }, + "healthcare/podiatrist": { + "name": "Jalkaterapeutti" + }, + "healthcare/psychotherapist": { + "name": "Psykoterapeutti" + }, + "healthcare/rehabilitation": { + "name": "Kuntoutusklinikka" + }, + "healthcare/speech_therapist": { + "name": "Puheterapeutti" + }, "highway": { "name": "Tie" }, "highway/bridleway": { "name": "Ratsastuspolku" }, + "highway/bus_stop": { + "name": "Linja-autopysäkki/-laituri" + }, "highway/corridor": { "name": "Sisäkäytävä", "terms": "katettu, katos, käytävä, sisällä, sisätila, sisätiloissa" @@ -2874,9 +3369,15 @@ "highway/crossing": { "name": "Suojatie" }, + "highway/crossing-raised": { + "name": "Korotettu ylityspaikka" + }, "highway/crosswalk": { "name": "Jalankulkijoiden suojatie" }, + "highway/crosswalk-raised": { + "name": "Korotettu jalankulkijoiden suojatie" + }, "highway/cycleway": { "name": "Pyörätie" }, @@ -2911,6 +3412,14 @@ "highway/path": { "name": "Polku" }, + "highway/pedestrian_area": { + "name": "Kävelyvyöhyke", + "terms": "kävelykatu, jalankulku, kävely, katu, tori, aukio" + }, + "highway/pedestrian_line": { + "name": "Kävelykatu", + "terms": "jalankulku, kävely, katu, tori, aukio" + }, "highway/primary": { "name": "Kantatie" }, @@ -3086,6 +3595,13 @@ "landuse/industrial": { "name": "Teollisuusalue" }, + "landuse/industrial/scrap_yard": { + "name": "Romuttamoalue", + "terms": "romuttaa, romutus, romuttua, romuttamo" + }, + "landuse/industrial/slaughterhouse": { + "name": "Teurastamo" + }, "landuse/landfill": { "name": "Kaatopaikka" }, @@ -3151,6 +3667,9 @@ "name": "Virkistysalue", "terms": "ulkoilu, virkistys, ulkoileminen, virkistyminen, puisto, metsä, rentoutuminen" }, + "landuse/religious": { + "name": "Uskonnollinen alue" + }, "landuse/residential": { "name": "Asuinalue" }, @@ -3206,6 +3725,9 @@ "leisure/golf_course": { "name": "Golfkenttä" }, + "leisure/hackerspace": { + "name": "Koodausnurkkaus" + }, "leisure/horse_riding": { "name": "Ratsastusalue", "terms": "hevonen, hevoset, ratsastus, kenttä, alue, harjoittelu" @@ -3292,12 +3814,15 @@ "leisure/running_track": { "name": "Juoksukilparata" }, + "leisure/sauna": { + "name": "Sauna" + }, "leisure/slipway": { "name": "Veneramppi", "terms": "veneramppi, vesillelaskupaikka, veneenlaskupaikka, vene, järveenlaskupaikka, järviramppi" }, "leisure/sports_centre/swimming": { - "name": "Uimahalli tai -allas", + "name": "Uimahalli", "terms": "uimahalli, kylpylä, uima-allas, uintikeskus, uinti, uiminen, vesi, vesiurheilu, urheilu, vesiurheilukeskus, vesiurheiluhalli" }, "leisure/stadium": { @@ -3331,6 +3856,9 @@ "man_made/chimney": { "name": "Savupiippu" }, + "man_made/crane": { + "name": "Nosturi" + }, "man_made/cutline": { "name": "Metsänraja" }, @@ -3401,9 +3929,22 @@ "man_made/water_works": { "name": "Vesilaitos" }, + "man_made/watermill": { + "name": "Vesimylly" + }, + "man_made/windmill": { + "name": "Tuulimylly" + }, "man_made/works": { "name": "Tehdas" }, + "manhole": { + "name": "Katukaivo", + "terms": "viemäri, katu, katuviemäri, kaivo" + }, + "manhole/drain": { + "name": "Sadevesikaivo" + }, "natural": { "name": "Luonto" }, @@ -3497,9 +4038,34 @@ "office": { "name": "Toimisto" }, + "office/accountant": { + "name": "Tilintarkastustoimisto", + "terms": "kirjanpito, kirjanpitäjä, talous, toimisto, tilintarkastus, tilintarkastaja, tili, tilit, talous, raha" + }, "office/administrative": { "name": "Kunnallishallinnon toimisto" }, + "office/adoption_agency": { + "name": "Adoptiotoimisto", + "terms": "lapsi, lapsen, lasten, adoptio, adoptointi, toimisto, konttori, viranomainen" + }, + "office/advertising_agency": { + "name": "Mainostoimisto", + "terms": "markkinointi, mainonta, mainos, toimisto, konttori" + }, + "office/architect": { + "name": "Arkkitehtitoimisto", + "terms": "arkkitehti, arkkitehtuuri, toimisto, konttori" + }, + "office/association": { + "name": "Voittoa tavoittelematon järjestö" + }, + "office/charity": { + "name": "Hyväntekeväisyysjärjestö" + }, + "office/company": { + "name": "Yritystoimisto" + }, "office/coworking": { "name": "Yhteistyöskentelytila" }, @@ -3511,6 +4077,9 @@ "name": "Työnvälitystoimisto", "terms": "työ, työvoimatoimisto, työnvälitys, työnvälittäjä, työpaikka, työpaikat" }, + "office/energy_supplier": { + "name": "Energiayhtiö" + }, "office/estate_agent": { "name": "Kiinteistönvälitystoimisto", "terms": "kiinteistö, kiinteistönvälittäjä, välittäjä, välittäminen, välitys, asunto, asuminen, talo, talokauppa, myynti, vuokraus, vuokrata, vuokraaminen, toimisto" @@ -3518,6 +4087,12 @@ "office/financial": { "name": "Taloustoimisto" }, + "office/forestry": { + "name": "Metsätalousvirasto" + }, + "office/foundation": { + "name": "Säätiö" + }, "office/government": { "name": "Valtionhallinnon toimisto", "terms": "valtio, valtion, osavaltio, osavaltion, lääni, läänin, seutu, seudullinen, valtiollinen, läänillinen, kunnan, toimisto, hallinto, hallitus" @@ -3525,10 +4100,19 @@ "office/government/register_office": { "name": "Maistraatti" }, + "office/government/tax": { + "name": "Verovirasto" + }, + "office/guide": { + "name": "Turistiopastoimisto" + }, "office/insurance": { "name": "Vakuutustoimisto", "terms": "vakuutus, vakuutusyhtiö, vakuutukset, vakuutuksia" }, + "office/it": { + "name": "Informaatioteknologian toimisto" + }, "office/lawyer": { "name": "Lakitoimisto", "terms": "asianajotoimisto, asianajajatoimisto, asianajo, asianajaja, lakimies, juristi, toimisto, lakiasia, lakiasiaintoimisto" @@ -3536,6 +4120,13 @@ "office/lawyer/notary": { "name": "Asianajotoimisto" }, + "office/moving_company": { + "name": "Muuttoyhtiö", + "terms": "muutto, muuttaa, muuttofirma, firma, yhtiö, yritys" + }, + "office/newspaper": { + "name": "Toimitus" + }, "office/ngo": { "name": "Kansalaisjärjestö", "terms": "kansalaisjärjestö, järjestö, kansanliike, kansanjärjestö, kansalaisjärjestötoimisto, toimisto" @@ -3547,12 +4138,24 @@ "name": "Puoluetoimisto", "terms": "politiikka, politiikko, poliittinen, puolue, hallinto, toimisto" }, + "office/private_investigator": { + "name": "Yksityisetsivä" + }, "office/research": { "name": "Tutkimustoimisto" }, + "office/surveyor": { + "name": "Maanmittaustoimisto" + }, + "office/tax_advisor": { + "name": "Veroneuvonta" + }, "office/telecommunication": { "name": "Tietoliikennetoimisto" }, + "office/therapist": { + "name": "Terapia" + }, "office/travel_agent": { "name": "Matkatoimisto" }, @@ -3577,6 +4180,10 @@ "name": "Saari", "terms": "Saari, Saareke, Luoto" }, + "place/islet": { + "name": "Luoto", + "terms": "pieni, saari, pieni saari, kari" + }, "place/isolated_dwelling": { "name": "Yksittäinen asunto" }, @@ -3602,6 +4209,12 @@ "place/village": { "name": "Kylä" }, + "playground/sandpit": { + "name": "Hiekkalaatikko" + }, + "playground/slide": { + "name": "Liukumäki" + }, "point": { "name": "Paikkapiste" }, @@ -3611,6 +4224,12 @@ "power/generator": { "name": "Generaattori" }, + "power/generator/source_nuclear": { + "name": "Ydinreaktori" + }, + "power/generator/source_wind": { + "name": "Tuulivoimala" + }, "power/line": { "name": "Voimalinja" }, @@ -3636,12 +4255,135 @@ "power/transformer": { "name": "Muuntaja" }, + "public_transport/linear_platform_aerialway": { + "name": "Ilmaradan pysäkki/laituri", + "terms": "ilmarata, köysirata, gondoli, hissi, laituri, pysäkki, alue" + }, + "public_transport/linear_platform_bus": { + "name": "Linja-autopysäkki/-laituri" + }, + "public_transport/linear_platform_ferry": { + "name": "Laivapaikka/-matkustajalaituri" + }, + "public_transport/linear_platform_light_rail": { + "name": "Pikaraitiotiepysäkki/-laituri" + }, + "public_transport/linear_platform_monorail": { + "name": "Monorailpysäkki/-laituri" + }, + "public_transport/linear_platform_subway": { + "name": "Metrolaituri" + }, + "public_transport/linear_platform_train": { + "name": "Rautatielaituri", + "terms": "juna, rautatie, laituri, rata, raide, asema, pysäkki" + }, + "public_transport/linear_platform_tram": { + "name": "Katuraitiotiepysäkki/-laituri" + }, + "public_transport/linear_platform_trolleybus": { + "name": "Johdinautopysäkki/-laituri" + }, + "public_transport/platform_aerialway": { + "name": "Ilmaradan pysäkki/laituri", + "terms": "ilmarata, gondoli, hissi, laituri, pysäkki, alue" + }, + "public_transport/platform_bus": { + "name": "Linja-autopysäkki/-laituri" + }, + "public_transport/platform_ferry": { + "name": "Laivapaikka/-matkustajalaituri" + }, + "public_transport/platform_light_rail": { + "name": "Pikaraitiotiepysäkki/-laituri" + }, + "public_transport/platform_monorail": { + "name": "Monorailpysäkki/-laituri" + }, + "public_transport/platform_subway": { + "name": "Metrolaituri" + }, + "public_transport/platform_train": { + "name": "Rautatielaituri", + "terms": "juna, rautatie, laituri, rata, raide, asema, pysäkki" + }, + "public_transport/platform_tram": { + "name": "Katuraitiotiepysäkki/-laituri" + }, + "public_transport/platform_trolleybus": { + "name": "Johdinautopysäkki/-laituri" + }, + "public_transport/station_aerialway": { + "name": "Ilmaradan asema", + "terms": "ilmarata, köysirata, gondoli, hissi, asema, pysäkki, yläasema, ala-asema" + }, + "public_transport/station_bus": { + "name": "Linja-autoasema/-terminaali" + }, + "public_transport/station_ferry": { + "name": "Laivaterminaali" + }, + "public_transport/station_light_rail": { + "name": "Pikaraitiotieasema" + }, + "public_transport/station_monorail": { + "name": "Monorailasema" + }, + "public_transport/station_subway": { + "name": "Metroasema" + }, + "public_transport/station_train": { + "name": "Rautatieasema", + "terms": "juna, rautatie, rata, raide, asema, pysäkki" + }, + "public_transport/station_train_halt": { + "name": "Pieni rautatieseisake (pysähtyy pyynnöstä)", + "terms": "juna, rautatie, rata, raide, asema, pysäkki" + }, + "public_transport/station_tram": { + "name": "Katuraitiotieasema" + }, + "public_transport/station_trolleybus": { + "name": "Johdinautoasema/-terminaali" + }, + "public_transport/stop_position_aerialway": { + "name": "Ilmaradan vaunun pysähtymiskohta", + "terms": "ilmarata, köysirata, gondoli, hissi, asema, pysäkki, yläasema, ala-asema" + }, + "public_transport/stop_position_bus": { + "name": "Linja-auton pysähtymiskohta" + }, + "public_transport/stop_position_ferry": { + "name": "Laivan pysähtymiskohta" + }, + "public_transport/stop_position_light_rail": { + "name": "Pikaraitiovaunun pysähtymiskohta" + }, + "public_transport/stop_position_monorail": { + "name": "Monorailin pysähtymiskohta" + }, + "public_transport/stop_position_subway": { + "name": "Metrojunan pysähtymiskohta" + }, + "public_transport/stop_position_train": { + "name": "Junan pysähtymiskohta", + "terms": "juna, rautatie, rata, raide, asema, pysäkki" + }, + "public_transport/stop_position_tram": { + "name": "Katuraitiovaunun pysähtymiskohta" + }, + "public_transport/stop_position_trolleybus": { + "name": "Johdinauton pysähtymiskohta" + }, "railway": { "name": "Rautatie" }, "railway/abandoned": { "name": "Hylätty rautatie" }, + "railway/buffer_stop": { + "name": "Pysäytyspuskuri" + }, "railway/crossing": { "name": "Kevyenliikenteen tasoristeys", "terms": "tasoristeys, ylityspaikka, rautatie, radanylitys, jalankulku, pyöräily, jalan, pyörällä, pyörä, polkupyörä, polkupyörien, polkupyörän, pyörien, pyörän, suojatie" @@ -3653,16 +4395,28 @@ "name": "Kiskoköysirata", "terms": "funikulaari, köysihissi, gondoli, gondolihissi, hissi, rata, hissirata, köysirata" }, + "railway/halt": { + "name": "Pieni rautatieseisake (pysähtyy pyynnöstä)" + }, "railway/level_crossing": { "name": "Moottoriajoneuvoliikenteen tasoristeys", "terms": "tasoristeys, ylityspaikka, rautatie, radanylitys, ajoneuvo, tie, katu, moottoriajoneuvo, ajoneuvo, auto" }, + "railway/light_rail": { + "name": "Pikaraitiotie" + }, + "railway/miniature": { + "name": "Pienoisrautatie" + }, "railway/monorail": { "name": "Monorail" }, "railway/narrow_gauge": { "name": "Kapearaiteinen rautatie" }, + "railway/platform": { + "name": "Rautatielaituri" + }, "railway/rail": { "name": "Rata" }, @@ -3670,14 +4424,27 @@ "name": "Rautatieopastin", "terms": "rautatie, juna, opastin, liikennevalo, signaali" }, + "railway/station": { + "name": "Rautatieasema" + }, "railway/subway": { "name": "Metrorata" }, "railway/subway_entrance": { "name": "Metron sisäänkäynti" }, + "railway/switch": { + "name": "Rautatievaihde" + }, + "railway/train_wash": { + "name": "Junapesula", + "terms": "veturi, vaunu, juna, pesu, pesukone, pesula" + }, "railway/tram": { - "name": "Raitiotie" + "name": "Katuraitiotie" + }, + "railway/tram_stop": { + "name": "Katuraitiovaunun pysähtymiskohta" }, "relation": { "name": "Relaatio" @@ -3701,6 +4468,10 @@ "shop/antiques": { "name": "Antiikkiliike" }, + "shop/appliance": { + "name": "Kodinkonemyymälä", + "terms": "jääkaappi, pesukone, keittiö, liesi, pakastin, kuivausrumpu, kodinkone, kodinkoneet, myymälä, kauppa, liike" + }, "shop/art": { "name": "Taideliike" }, @@ -3741,6 +4512,9 @@ "name": "Pyöräliike", "terms": "pyöräkauppa, pyöräliike, pyörän varaosa, pyörämyymälä, polkupyöräkauppa, polkupyöräliike, polkupyörän varaosa, polkupyörämyymälä, polkupyörä, pyörä" }, + "shop/bookmaker": { + "name": "Kirjapaino" + }, "shop/books": { "name": "Kirjakauppa" }, @@ -3783,6 +4557,9 @@ "name": "Vaatekauppa", "terms": "vaate, muoti, vaatetus, vaatteet, pukeutuminen, pukea, pukeutua, hm, h&m, hennes, mauritz, dressmann, lindex, kappahl, carlings, bikbok, bik bok, seppälä, aleksi13, aleksi 13, cubus, ginatricot, gina, tricot, halonen, mango, zara, kauppa, liike, yritys, putiikki, myymälä, vaateliike, vaateyritys, vaatemyymälä" }, + "shop/coffee": { + "name": "Kahvikauppa" + }, "shop/computer": { "name": "Tietokoneliike" }, @@ -3884,6 +4661,9 @@ "shop/hardware": { "name": "Rautakauppa" }, + "shop/health_food": { + "name": "Terveysravinnemyymälä" + }, "shop/hearing_aids": { "name": "Kuuloapumyymälä", "terms": "kuulo, kuuleminen, kuulovamma, kuulovammaisuus, vamma, vammaisuus, kuulokoje, huono kuulo" @@ -3900,6 +4680,9 @@ "shop/jewelry": { "name": "Jalokiviliike" }, + "shop/kiosk": { + "name": "Kioski" + }, "shop/kitchen": { "name": "Keittiöliike" }, @@ -4086,6 +4869,9 @@ "name": "Alppimaja", "terms": "alppimaja, alppimökki, alppitalo, vuorimaja, vuoritalo, vuorimökki, vuoristomaja, vuoristomökki, vuoristotalo" }, + "tourism/apartment": { + "name": "Vierasmajoitus" + }, "tourism/aquarium": { "name": "Akvaario" }, @@ -4102,6 +4888,10 @@ "tourism/caravan_site": { "name": "Asuntoautopysäköinti" }, + "tourism/chalet": { + "name": "Loma-asunto", + "terms": "kesämökki, lomamökki, mökki, asunto, talo, kesä, vapaa-ajan, vapaa-aika" + }, "tourism/gallery": { "name": "Taidegalleria" }, @@ -4177,6 +4967,9 @@ "traffic_calming/rumble_strip": { "name": "Väristysviivahidaste" }, + "traffic_calming/table": { + "name": "Korotettu risteys" + }, "type/boundary": { "name": "Raja" }, @@ -4235,24 +5028,36 @@ "type/route/horse": { "name": "Ratsastusreitti" }, + "type/route/light_rail": { + "name": "Pikaraitiotielinja" + }, "type/route/pipeline": { "name": "Putkilinja" }, + "type/route/piste": { + "name": "Hiihtoreitti" + }, "type/route/power": { "name": "Voimalinja" }, "type/route/road": { "name": "Tiereitti" }, + "type/route/subway": { + "name": "Metroreitti" + }, "type/route/train": { "name": "Junareitti" }, "type/route/tram": { - "name": "Raitiovaunulinja" + "name": "Katuraitiolinja" }, "type/route_master": { "name": "Pääreitti" }, + "type/waterway": { + "name": "Vesireitti" + }, "vertex": { "name": "Muu" }, @@ -4295,6 +5100,9 @@ "waterway/stream": { "name": "Puro" }, + "waterway/stream_intermittent": { + "name": "Ajoittainen virta" + }, "waterway/water_point": { "name": "Veneen vesipiste", "terms": "vesi, vettä, veden, vedentäyttö, täyttö, täyttäminen, vene, laiva, veneily, purjevene, moottorivene" @@ -4315,12 +5123,41 @@ "DigitalGlobe-Premium": { "attribution": { "text": "Käyttöehdot ja palaute" - } + }, + "description": "Premium DigitalGlobe -satelliittikuvat", + "name": "DigitalGlobe Premium -sateliittikuvat" + }, + "DigitalGlobe-Premium-vintage": { + "attribution": { + "text": "Käyttöehdot ja palaute" + }, + "description": "Kuva-alueet ja kuvauspäivämäärät. Aineisto on käytettävissä suurennostasolla 14 ja lähempänä." }, "DigitalGlobe-Standard": { "attribution": { "text": "Käyttöehdot ja palaute" - } + }, + "description": "Standard DigitalGlobe -satelliittikuvat", + "name": "DigitalGlobe standardit -satelliittikuvat" + }, + "DigitalGlobe-Standard-vintage": { + "attribution": { + "text": "Käyttöehdot ja palaute" + }, + "description": "Kuvien rajat ja kuvauspäivät. Merkit näkyvät zoomaus tasolla 14 tai isommalla. " + }, + "EsriWorldImagery": { + "attribution": { + "text": "Käyttöehdot ja palaute" + }, + "description": "Kansainväliset Esri-sateliittikuvat", + "name": "Kansainväliset Esri-sateliittikuvat" + }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Käyttöehdot ja palaute" + }, + "description": "Esrin arkistokuvat voivat olle selkeämpiä ja tarkempia kuin oletustaustakuva." }, "MAPNIK": { "attribution": { @@ -4336,35 +5173,158 @@ "description": "Satelliitti- ja ilmakuvat.", "name": "Mapbox-satelliittikuvat" }, + "OSM_Inspector-Addresses": { + "attribution": { + "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM-tarkastaja: Osoitteet" + }, + "OSM_Inspector-Geometry": { + "attribution": { + "text": "© Geofabrik GmbH, OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM tarkastaja: Geometria" + }, + "OSM_Inspector-Highways": { + "attribution": { + "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM Tarkastajat: Valtatiet" + }, + "OSM_Inspector-Multipolygon": { + "attribution": { + "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM Tarkastajat: Alueet" + }, + "OSM_Inspector-Places": { + "attribution": { + "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM Tarkastajat: Paikat" + }, + "OSM_Inspector-Routing": { + "attribution": { + "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM Tarkastajat: Reitit" + }, + "OSM_Inspector-Tagging": { + "attribution": { + "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OSM Tarkastajat: Tagit" + }, + "US-TIGER-Roads-2012": { + "name": "TIGER Roads 2012" + }, + "US-TIGER-Roads-2014": { + "description": "Suurennostasolla 16 ja sitä lähempänä käytetään Yhdysvaltain väestönlaskentaviranomaisen kartta-aineistoa. Kauempana näytetään vain muutokset vuodelta 2006 pois lukien jo OpenStreetMapiin yhdistetyt muutokset.", + "name": "TIGER Roads 2014" + }, + "US-TIGER-Roads-2017": { + "description": "Keltainen = Tekijänoikeudeton kartta-aineisto Yhdysvaltain väestönlaskentaviranomaiselta. Punainen = Aineisto ei löydy OpenStreetMapista", + "name": "TIGER Roads 2017" + }, + "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMapin tekijät, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Pyöräily" + }, + "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMapin tekijät, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Vaellus" + }, + "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMapin tekijät, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Maastopyöräily" + }, + "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMapin tekijät, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Luistelu" + }, + "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMapin tekijät, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Talviurheilu" + }, + "basemap.at": { + "attribution": { + "text": "basemap.at" + }, + "description": "Taustakartta perustuu Itävallan hallinnon julkaisemaan aineistoon.", + "name": "basemap.at" + }, + "basemap.at-orthofoto": { + "attribution": { + "text": "basemap.at" + }, + "name": "basemap.at Orthofoto" + }, "hike_n_bike": { "attribution": { "text": "© OpenStreetMapin tekijät" - } + }, + "name": "Vaellus ja pyöräily" }, "mapbox_locator_overlay": { "attribution": { "text": "Käyttöehdot ja palaute" - } + }, + "description": "Korostaa tärkeimpiä kohteita." }, "openpt_map": { "attribution": { "text": "© OpenStreetMapin tekijät, CC-BY-SA" - } + }, + "name": "OpenPT-kartta (lisäkartta)" }, "osm-gps": { "attribution": { "text": "© OpenStreetMapin tekijät" - } + }, + "description": "OpenStreetMapiin tallennetut julkiset GPS-jäljet", + "name": "OpenStreetMapin GPS-jäljet" }, "osm-mapnik-black_and_white": { "attribution": { "text": "© OpenStreetMapin tekijät, CC-BY-SA" - } + }, + "name": "OpenStreetMap (oletusnäkymä mustavalkoisena)" }, "osm-mapnik-german_style": { "attribution": { "text": "© OpenStreetMapin tekijät, CC-BY-SA" + }, + "name": "OpenStreetMap (saksalainen tyyli)" + }, + "qa_no_address": { + "attribution": { + "text": "Simon Poole, aineisto ©OpenStreetMapin tekijät" + }, + "name": "QA Ei osoitetta" + }, + "skobbler": { + "attribution": { + "text": "© Karttakuvat: skobbler Kartta-aineisto: OpenStreetMapin tekijät" } + }, + "tf-cycle": { + "name": "Thunderforest OpenCycleMap" + }, + "tf-landscape": { + "attribution": { + "text": "Kartat © Thunderforest, Aineisto © OpenStreetMapin tekijät" + }, + "name": "Thunderforest-maisema" } } } diff --git a/dist/locales/fr.json b/dist/locales/fr.json index 7e702e613..ea9983c48 100644 --- a/dist/locales/fr.json +++ b/dist/locales/fr.json @@ -285,18 +285,48 @@ "connected_to_hidden": "Ceci ne peut être scindé parce que c'est connecté à un élément caché." }, "restriction": { - "help": { - "select": "Cliquez pour sélectionner un segment de route", - "toggle": "Cliquez pour faire alterner les interdictions de tourner", - "toggle_on": "Cliquez pour ajouter une restriction \"{restriction}\".", - "toggle_off": "Cliquez pour supprimer la restriction \"{restriction}\"." - }, "annotation": { "create": "interdiction de tourner ajoutée.", "delete": "interdiction de tourner supprimée." } } }, + "restriction": { + "controls": { + "distance": "Distance", + "distance_up_to": "Jusqu'à {distance}", + "via": "Via", + "via_node_only": "Nœud uniquement", + "via_up_to_one": "Jusqu'à 1 voie", + "via_up_to_two": "Jusqu'à 2 voies" + }, + "help": { + "indirect": "(indirect)", + "turn": { + "no_left_turn": "Interdiction de tourner à gauche {indirect}", + "no_right_turn": "Interdiction de tourner à droite {indirect}", + "no_u_turn": "Interdiction de faire demi-tour {indirect}", + "no_straight_on": "Interdiction d'aller tout droit {indirect}", + "only_left_turn": "Obligation de tourner à gauche {indirect}", + "only_right_turn": "Obligation de tourner à droit {indirect}", + "only_u_turn": "Obligation de faire demi-tour {indirect}", + "only_straight_on": "Obligation d'aller tout droit {indirect}", + "allowed_left_turn": "Permission de tourner à gauche {indirect}", + "allowed_right_turn": "Permission de tourner à droite {indirect}", + "allowed_u_turn": "Permission de faire demi-tour {indirect}", + "allowed_straight_on": "Permission d'aller tout droit {indirect}" + }, + "from": "DEPUIS", + "via": "VIA", + "to": "VERS", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Cliquez pour sélectionner un segment {from}", + "select_from_name": "Cliquez pour sélectionner {from} {fromName}", + "toggle": "Cliquez pour « {turn} »" + } + }, "undo": { "tooltip": "Annuler : {action}", "nothing": "Rien à annuler." @@ -389,6 +419,8 @@ "title": "Mesures", "selected": "{n} dans la sélection", "geometry": "Geométrie", + "closed_line": "ligne fermée", + "closed_area": "polygone fermé", "center": "Centre", "perimeter": "Périmètre", "length": "Longueur", @@ -469,6 +501,7 @@ "switch": "Revenir à cet arrière-plan", "custom": "Personnalisé", "custom_button": "Modifier le fond personnalisé", + "custom_prompt": "Entrez un modèle URL de tuile. Les symboles valide sont : \n - {zoom} ou {z}, {x}, {y} pour schéma de tuile Z/X/Y\n- {-y} ou {ty} pour basculer vers le style de coordonées TMS Y\n- {u} pour le schéma quadri-tuiles\n- {switch:a,b,c} pour le multiplexage de serveur DNS\n\nExemple:\n{example}", "overlays": "Calques", "imagery_source_faq": "Info imagerie / Signaler un problème", "reset": "réinitialiser", @@ -652,6 +685,7 @@ "untagged_area_tooltip": "Sélectionnez un type d'élément pour décrire cette surface.", "untagged_relation": "Relation sans attributs", "untagged_relation_tooltip": "Sélectionnez un type d’entité décrivant ce qu’est cette relation.", + "many_deletions": "Vous êtes en train de supprimer {n} éléments : {p} nœuds, {l} lignes, {a} polygones et {r} relations. En êtes-vous sûr ? Ils seront supprimés de la carte que tout le monde voit sur openstreetmap.org.", "tag_suggests_area": "Cet attribut {tag} suppose que cette ligne devrait être un polygone, or ce n'est pas le cas", "deprecated_tags": "Attributs obsolètes : {tags}" }, @@ -715,11 +749,14 @@ "select_right_click": "{rightclick} Le click droit sur un élément affiche le menu d'édition, qui permet d'effectuer certaines opérations sur cet élément comme le tourner, le déplacer ou le supprimer.", "multiselect_h": "Sélection multiple", "multiselect_shift_click": "`{shift}`+{leftclick} permet de sélectionner plusieurs éléments en même temps. Cela permet de déplacer ou de supprimer plusieurs objets d'un coup.", + "multiselect_lasso": "Pour sélectionner plusieurs éléments vous pouvez aussi maintenir la touche `{shift}` pressée, rester appuyé avec le {leftclick} bouton gauche de la souris et glisser la souris pour dessiner un lasso de sélection. Tous les points dans le lasso seront sélectionnés.", "undo_redo_h": "Annuler & Rétablir", "undo_redo": "Vos modifications sont enregistrées localement dans votre navigateur tant que vous ne les envoyez pas sur les serveurs d'OpenStreetMap. Vous pouvez annuler vos action en appuyant sur le bouton {undo} **Annuler** et les refaire en appuyant sur le bouton {redo} **Refaire**.", "save_h": "Sauvegarder", "save": "Cliquez sur {save} **Enregistrer** pour envoyer vos modifications à OpenStreetMap. Enregistrez fréquemment !", + "save_validation": "Sur l'écran de sauvegarde vous pourrez revoir ce que vous avez fait. iD effectuera aussi des vérifications de base pour chercher des informations manquantes et peut vous faire des suggestions ou vous avertir si quelque chose n'a pas l'air correct.", "upload_h": "Téléverser", + "upload": "Avant d'envoyer vous changements vous devez entrer un [commentaire sur l'ensemble de changements](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Ensuite cliquez sur **Envoyer** pour envoyer vous changements à OpenStreetMap où ils seront ajoutés à la carte et deviendront visibles pour tout le monde.", "backups_h": "Sauvegarde automatique", "backups": "Si vous ne pouvez pas terminer vos modifications tout de suite, par exemple si votre ordinateur s’éteint ou si vous fermez votre navigateur, votre travail est enregistré. Vous pouvez revenir plus tard (avec le même navigateur, sur la même ordinateur) et iD vous proposera de reprendre là où vous vous étiez arrêté.", "keyboard_h": "Raccourcis clavier", @@ -734,8 +771,11 @@ "type_picker": "Le sélectionneur de type affiche les types d'éléments les plus fréquents, tels que les parcs, hôpitaux, restaurants, routes et bâtiments. Vous pouvez tout cherchez en tapant ce que vous voulez dans le champs de recherche. Vous pouvez aussi cliquer sur l'icône {inspect} **Info** à côté du type de l'élément pour en apprendre plus.", "fields_h": "Champs", "fields_all_fields": "La section *Tous les champs* contient toutes les informations qui peuvent être éditées. Dans OpenStreetMap, tous les champs sont facultatifs. Vous pouvez toujours les laisser vides en cas de doute.", + "fields_example": "Chaque type d’élément affichera des champs différents. Par exemple, une route peut afficher des champs pour le type de surface et la limitation de vitesse et un restaurant peut afficher des champs pour le type de nourriture servie et ses horaires d'ouverture.", "fields_add_field": "Vous pouvez aussi cliquer sur le menu déroulant \"Ajouter un champ\" pour ajouter plus d'informations, comme une description, un lien Wikipédia, un accès handicapé, et cetera...", - "tags_h": "Tags" + "tags_h": "Tags", + "tags_all_tags": "En dessous de la partie avec les champs, vous pouvez développer la section « Tous les tags » pour modifier les *tags* OpenStreetMap de l’élément sélectionné. Chaque tag consiste en une *clef* et une *valeur*, des données qui définissent tous les éléments enregistrés dans OpenStreetMap.", + "tags_resources": "Vous aurez besoin d'un niveau de connaissance intermédiaire sur OpenStreetMap pour modifier les tags d'un élément. Vous devriez consulter des ressources comme le [Wiki d’OpenStreetMap](https://wiki.openstreetmap.org/wiki/Main_Page) ou [Taginfo](https://taginfo.openstreetmap.org/) pour en apprendre plus sur les pratiques de tagging acceptées dans OpenStreetMap." }, "points": { "title": "Points", @@ -1148,6 +1188,28 @@ } } }, + "units": { + "feet": "{quantity} pieds", + "miles": "{quantity} miles", + "square_feet": "{quantity} pieds carrés", + "square_miles": "{quantity} miles carrés", + "acres": "{quantity} acres", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "O", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1561,6 +1623,10 @@ "diaper": { "label": "Table à langer" }, + "direction": { + "label": "Direction (en degrés dans le sens horaire)", + "placeholder": "45, 90, 180, 270" + }, "direction_cardinal": { "label": "Direction", "options": { @@ -1597,6 +1663,9 @@ "forward": "Vers l'avant" } }, + "dispensing": { + "label": "Peut délivrer des médicaments sous ordonnance" + }, "display": { "label": "Affichage" }, @@ -2539,6 +2608,9 @@ "wheelchair": { "label": "Accès en fauteuil roulant" }, + "wholesale": { + "label": "Type de commerce de gros" + }, "width": { "label": "Largeur (mètres)" }, @@ -2727,7 +2799,8 @@ "terms": "Café, bar, salon de thé, pub, brasserie, restaurant, cafe" }, "amenity/car_pooling": { - "name": "Covoiturage" + "name": "Covoiturage", + "terms": "" }, "amenity/car_rental": { "name": "Location de voiture", @@ -2876,7 +2949,8 @@ "terms": "Bibliothèque, Médiathèque" }, "amenity/love_hotel": { - "name": "Love hôtel" + "name": "Love hôtel", + "terms": "" }, "amenity/marketplace": { "name": "Marché", @@ -2994,7 +3068,7 @@ "terms": "bulle à verre,bulles à verre,container de recyclage,benne de recyclage,point de collecte" }, "amenity/recycling_centre": { - "name": "Déchetterie", + "name": "Déchèterie / Parc à conteneurs / Écocentre", "terms": "centre de recyclage,déchèterie,déchetterie,recyparc,parc à conteneurs,écocentre" }, "amenity/register_office": { @@ -3023,6 +3097,10 @@ "name": "Douche", "terms": "" }, + "amenity/smoking_area": { + "name": "Zone fumeur", + "terms": "" + }, "amenity/social_facility": { "name": "Établissement de services sociaux", "terms": "Assistance sociale, Services sociaux" @@ -3256,6 +3334,10 @@ "name": "Haie", "terms": "haie, arbustes, arbres, plantes, buisson, clôture, brise-vent, rangée, broussaille, bordure, cloture, buis, ifs, barrier hedge, hedge" }, + "barrier/kerb": { + "name": "Bordure", + "terms": "" + }, "barrier/kissing_gate": { "name": "Portillon à chicane mobile", "terms": "portillon à chicanes, chicane battante, portail à bétail, portail à sas, portillon, passage, bétail, piétons, randonneurs, animaux, animal, vache, cheval, enclos, barrier kissing gate, kissing gate" @@ -3297,10 +3379,12 @@ "terms": "grange, hangar agricole, bâtiment agricole, stockage, grenier, abri, remise, étable, ferme, barn" }, "building/boathouse": { - "name": "Hangar à bateaux" + "name": "Hangar à bateaux", + "terms": "" }, "building/bungalow": { - "name": "Bungalow" + "name": "Bungalow", + "terms": "" }, "building/bunker": { "name": "Bunker" @@ -3321,6 +3405,10 @@ "name": "Église - bâtiment", "terms": "Église, église, eglise, bâtiment religieux, lieu de culte, édifice religieux,\néglise catholique, église primatiale, basilique, église basilique, collégiale, église collégiale, église décanale, paroisses, église paroissiale, abbatiale, église abbatiale, église priorale,\néglise orthodoxe, métropole, catholicon, katholikon, kyriakon,\nchristianisme, catholicisme, orthodoxie, chrétienne, chrétiens, catholique, orthodoxe, prêtre, religion, clergé, prière, messe, church" }, + "building/civic": { + "name": "Équipement public", + "terms": "" + }, "building/college": { "name": "Enseignement supérieur (non universitaire) - bâtiment", "terms": "enseignement supérieur non universitaire, enseignement supérieur, non universitaire, école supérieure, grande école, établissement d'enseignement supérieur, post-bac, post bac, institut, haute école, cegep, cégep, etablissement d'enseignement superieur, enseignement superieur, ecole superieure, grande ecole, école, ecole" @@ -3345,7 +3433,12 @@ "name": "Entrée/Sortie" }, "building/farm": { - "name": "Corps de ferme" + "name": "Corps de ferme", + "terms": "" + }, + "building/farm_auxiliary": { + "name": "Bâtiment de ferme", + "terms": "" }, "building/garage": { "name": "Garage privé", @@ -3384,7 +3477,8 @@ "terms": "école maternelle, école enfantine, jardin d'enfants, école primaire, école, écoliers, petite section, moyenne section, grande section, PS-MS-GS, kindergarten, crèche, halte-garderie" }, "building/mosque": { - "name": "Mosquée" + "name": "Mosquée - Bâtiment", + "terms": "" }, "building/public": { "name": "Bâtiment public", @@ -3403,7 +3497,8 @@ "terms": "Voûte, Toit ouvert, Marché couvert" }, "building/ruins": { - "name": "Ruines" + "name": "Bâtiment en ruine", + "terms": "" }, "building/school": { "name": "Bâtiment scolaire - élémentaire ou secondaire", @@ -3413,6 +3508,10 @@ "name": "Maison jumelée", "terms": "maison jumelée, maison jumelle, maison mitoyenne, maison avec mur mitoyen, pavillon mitoyen, maisons jumelées, maisons jumelles, maisons mitoyennes, maisons avec mur mitoyen, pavillons mitoyens, building semidetached house, semidetached house, semi detached house" }, + "building/service": { + "name": "Bâtiment de services", + "terms": "" + }, "building/shed": { "name": "Cabanon", "terms": "Petit hangar, cabanon, resserre" @@ -3422,14 +3521,16 @@ "terms": "Étable" }, "building/stadium": { - "name": "Stade" + "name": "Bâtiment du stade", + "terms": "" }, "building/static_caravan": { "name": "Mobil home fixe", "terms": "Mobil home statique" }, "building/temple": { - "name": "Temple" + "name": "Temple", + "terms": "" }, "building/terrace": { "name": "Rangée de maisons", @@ -3438,6 +3539,10 @@ "building/train_station": { "name": "Gare ferroviaire" }, + "building/transportation": { + "name": "Bâtiment pour transports publics", + "terms": "" + }, "building/university": { "name": "Université - bâtiment universitaire", "terms": "bâtiment universitaire, bâtiment d'université, batiment universite, université, enseignement supérieur universitaire, enseignement supérieur, universitaire, établissement d'enseignement supérieur, post-bac, post bac, institut, etablissement d'enseignement superieur, campus universitaire, campus, école, ecole, university, building university, college, école supérieure, grande école, haute école, ecole superieure, grande ecole" @@ -3688,6 +3793,10 @@ "emergency/private": { "name": "Accès d'urgence privé" }, + "emergency/water_tank": { + "name": "Réservoir d'eau de secours", + "terms": "" + }, "emergency/yes": { "name": "Accessible aux services d'urgences" }, @@ -3826,6 +3935,10 @@ "name": "Sentier équestre", "terms": "Piste cavalière, Sentier à chevaux, Sentier pour chevaux" }, + "highway/bus_guideway": { + "name": "Voie de bus guidés", + "terms": "" + }, "highway/bus_stop": { "name": "Arrêt de bus" }, @@ -4108,6 +4221,10 @@ "name": "Forêt", "terms": "Forêt" }, + "landuse/garages": { + "name": "Terrain pour garages", + "terms": "" + }, "landuse/grass": { "name": "Herbe", "terms": "Herbe" @@ -4117,11 +4234,12 @@ "terms": "Terrain vierge" }, "landuse/greenhouse_horticulture": { - "name": "Serre d'horticulture" + "name": "Serre d'horticulture", + "terms": "" }, "landuse/harbour": { - "name": "Havre", - "terms": "beateau,navire,port,baie" + "name": "Port / Havre", + "terms": "Bateau, navire, port, baie" }, "landuse/industrial": { "name": "Zone industrielle", @@ -4235,6 +4353,10 @@ "name": "Jeux pour adultes", "terms": "Jeux pour adultes" }, + "leisure/amusement_arcade": { + "name": "Salle de jeux", + "terms": "" + }, "leisure/bird_hide": { "name": "Observatoire ornithologique", "terms": "Observatoire d'oiseaux" @@ -4749,6 +4871,10 @@ "name": "Organisation de bienfaisance/charité", "terms": "Organisation de bienfaisance, Organisation de charité" }, + "office/company": { + "name": "Bureau d'entreprise", + "terms": "" + }, "office/coworking": { "name": "Espace de coworking", "terms": "Espace de bureau partagé, Espace de coworking." @@ -5042,71 +5168,173 @@ "name": "Transformateur", "terms": "Transformateur" }, + "public_transport/linear_platform": { + "name": "Quai", + "terms": "" + }, + "public_transport/linear_platform_aerialway": { + "name": "Quai pour remontée mécanique", + "terms": "" + }, "public_transport/linear_platform_bus": { - "name": "Arrêt de bus" + "name": "Arrêt de bus", + "terms": "" }, "public_transport/linear_platform_ferry": { - "name": "Quai pour ferry" + "name": "Quai pour ferry", + "terms": "" }, "public_transport/linear_platform_light_rail": { - "name": "Station de tramway" + "name": "Station de tramway", + "terms": "" }, "public_transport/linear_platform_monorail": { - "name": "Station de monorail" + "name": "Station de monorail", + "terms": "" }, "public_transport/linear_platform_subway": { - "name": "Station de métro" + "name": "Station de métro", + "terms": "" }, "public_transport/linear_platform_train": { - "name": "Gare ferroviaire" + "name": "Gare ferroviaire", + "terms": "" }, "public_transport/linear_platform_tram": { - "name": "Station de tramway" + "name": "Station de tramway", + "terms": "" + }, + "public_transport/linear_platform_trolleybus": { + "name": "Quai pour trolleys", + "terms": "" + }, + "public_transport/platform": { + "name": "Quai", + "terms": "" + }, + "public_transport/platform_aerialway": { + "name": "Quai pour remontée mécanique", + "terms": "" }, "public_transport/platform_bus": { - "name": "Arrêt de bus" + "name": "Arrêt de bus", + "terms": "" }, "public_transport/platform_ferry": { - "name": "Quai pour ferry" + "name": "Quai pour ferry", + "terms": "" }, "public_transport/platform_light_rail": { - "name": "Station de tramway" + "name": "Station de tramway", + "terms": "" }, "public_transport/platform_monorail": { - "name": "Station de monorail" + "name": "Station de monorail", + "terms": "" }, "public_transport/platform_subway": { - "name": "Station de métro" + "name": "Station de métro", + "terms": "" }, "public_transport/platform_train": { - "name": "Gare ferroviaire" + "name": "Gare ferroviaire", + "terms": "" }, "public_transport/platform_tram": { - "name": "Station de tramway" + "name": "Station de tramway", + "terms": "" + }, + "public_transport/platform_trolleybus": { + "name": "Quai pour trolleys", + "terms": "" + }, + "public_transport/station": { + "name": "Station", + "terms": "" + }, + "public_transport/station_aerialway": { + "name": "Gare de remontée mécanique", + "terms": "" }, "public_transport/station_bus": { - "name": "Gare routière" + "name": "Gare routière", + "terms": "" }, "public_transport/station_ferry": { - "name": "Terminal ferry" + "name": "Terminal ferry", + "terms": "" }, "public_transport/station_light_rail": { - "name": "Station de tramway" + "name": "Station de tramway", + "terms": "" }, "public_transport/station_monorail": { - "name": "Station de monorail" + "name": "Station de monorail", + "terms": "" }, "public_transport/station_subway": { - "name": "Station de métro" + "name": "Station de métro", + "terms": "" }, "public_transport/station_train": { - "name": "Gare ferroviaire" + "name": "Gare ferroviaire", + "terms": "" }, "public_transport/station_train_halt": { - "name": "Gare ferroviaire (arrêt à la demande)" + "name": "Gare ferroviaire (arrêt à la demande)", + "terms": "" }, "public_transport/station_tram": { - "name": "Station de tramway" + "name": "Station de tramway", + "terms": "" + }, + "public_transport/station_trolleybus": { + "name": "Gare de trolleys", + "terms": "" + }, + "public_transport/stop_area": { + "name": "Zone d'arrêt", + "terms": "" + }, + "public_transport/stop_position": { + "name": "Emplacement d'arrêt", + "terms": "" + }, + "public_transport/stop_position_aerialway": { + "name": "Emplacement où s'arrête la remontée mécanique", + "terms": "" + }, + "public_transport/stop_position_bus": { + "name": "Emplacement où s'arrête le bus", + "terms": "" + }, + "public_transport/stop_position_ferry": { + "name": "Emplacement où s'arrête le ferry", + "terms": "" + }, + "public_transport/stop_position_light_rail": { + "name": "Emplacement où s'arrête le train-tram", + "terms": "" + }, + "public_transport/stop_position_monorail": { + "name": "Emplacement où s'arrête le monorail", + "terms": "" + }, + "public_transport/stop_position_subway": { + "name": "Emplacement où s'arrête le métro", + "terms": "" + }, + "public_transport/stop_position_train": { + "name": "Emplacement où s'arrête le train", + "terms": "" + }, + "public_transport/stop_position_tram": { + "name": "Emplacement où s'arrête le tramway", + "terms": "" + }, + "public_transport/stop_position_trolleybus": { + "name": "Emplacement où s'arrête le trolley", + "terms": "" }, "railway": { "name": "Ferroviaire" @@ -5150,6 +5378,10 @@ "name": "Borne kilométrique ferroviaire", "terms": "" }, + "railway/miniature": { + "name": "Train miniature à passagers", + "terms": "" + }, "railway/monorail": { "name": "Monorail", "terms": "Monorail" @@ -5192,6 +5424,9 @@ "name": "Tramway", "terms": "Tram, Tramway" }, + "railway/tram_stop": { + "name": "Emplacement où s'arrête le tram" + }, "relation": { "name": "Relation", "terms": "Relation" @@ -5208,8 +5443,8 @@ "terms": "Magasin,Boutique" }, "shop/agrarian": { - "name": "Magasin d'agriculture", - "terms": "Magasin d'agriculture" + "name": "Magasin de produits de la ferme", + "terms": "" }, "shop/alcohol": { "name": "Magasin de vente d'alcool", @@ -5449,6 +5684,10 @@ "name": "Quincaillerie", "terms": "Quincaillerie" }, + "shop/health_food": { + "name": "Magasin d'alimentation de santé", + "terms": "" + }, "shop/hearing_aids": { "name": "Audioprothésiste", "terms": "Vente de prothèses auditives" @@ -5688,6 +5927,10 @@ "name": "Armurerie", "terms": "Armurerie" }, + "shop/wholesale": { + "name": "Commerce de gros", + "terms": "" + }, "shop/window_blind": { "name": "Magasin de vente de stores", "terms": "Magasin de vente de stores" @@ -6064,6 +6307,13 @@ "description": "Images mondiales Esri", "name": "Images mondiales Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Termes & commentaires" + }, + "description": "Images Esri archivées qui peut être plus propre et plus précise que la couche par défaut", + "name": "Images Esri mondiales (clarifiées) bêta" + }, "MAPNIK": { "attribution": { "text": "© contributeurs OpenStreetMap, CC-BY-SA" @@ -6132,18 +6382,33 @@ "name": "Données géographiques et topologiques intégrées et encodées 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, contributeurs OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Vélo" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, contributeurs OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Randonnée" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, contributeurs OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: MTB" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, contributeurs OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Patinage" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, contributeurs OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Sports d'hiver" }, "basemap.at": { diff --git a/dist/locales/gl.json b/dist/locales/gl.json index 6d78ff894..ce3d70b3a 100644 --- a/dist/locales/gl.json +++ b/dist/locales/gl.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Isto non se pode partir xa que está conectado cun elemento oculto." }, "restriction": { - "help": { - "select": "Fai clic para seleccionar un segmento de estrada.", - "toggle": "Fai clic para alternar as restricións de xiro.", - "toggle_on": "Fai clic para engadir unha restrición \"{restriction}\".", - "toggle_off": "Fai clic para eliminar a restrición \"{restriction}\"." - }, "annotation": { "create": "Engadida unha restrición de xiro.", "delete": "Eliminada unha restrición de xiro." @@ -471,6 +465,7 @@ "switch": "Voltar a este fondo", "custom": "Personalizado", "custom_button": "Editar fondo personalizado", + "custom_prompt": "Introducir unha plantilla URL de mosaico. Os tokens válidos son:\n - {zoom}/{z}, {x}, {y} para o esquema de mosaico Z/X/Y\n - {-y} ou {ty} para coordenadas Y invertidas estilo TMS\n - {u} para o esquema quadtile\n - {switch:a,b,c} para multiplexado de servidores DNS\n\nExemplo:\n{example}", "overlays": "Superposicións", "imagery_source_faq": "Información das imaxes/Informar dun problema", "reset": "reiniciar", @@ -654,9 +649,14 @@ "untagged_area_tooltip": "Escolle un tipo de elemento que describa o que é esta área.", "untagged_relation": "Relación sen etiquetar", "untagged_relation_tooltip": "Escolle un tipo de elemento que describa o que é esta relación.", + "many_deletions": "Estás borrando {n} elementos: {p} nodos, {l} liñas, {a} áreas e {r} relacións. Estás seguro de querer facelo? Esta acción eliminaraos do mapa e ninguén os verá en openstreetmap.org.", "tag_suggests_area": "A etiqueta {tag} suxire que a liña debería ser unha área, pero non é unha área.", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, + "zoom": { + "in": "Ampliar", + "out": "Reducir" + }, "cannot_zoom": "Non se pode reducir máis no modo actual.", "full_screen": "Pasar a pantalla completa", "gpx": { @@ -687,7 +687,8 @@ "title": "Axuda", "key": "H", "help": { - "title": "Axuda" + "title": "Axuda", + "welcome": "Benvido ao editor iD para [OpenStreetMap] (https://www.openstreetmap.org/). Con este editor podes actualizar OpenStreetMap directamente desde o teu navegador." } }, "intro": { @@ -995,7 +996,8 @@ "title": "Seleccionar elementos", "select_one": "Seleccionar un só elemento", "select_multi": "Seleccionar múltiples elementos", - "lasso": "Debuxar un lazo de selección arredor dos elementos" + "lasso": "Debuxar un lazo de selección arredor dos elementos", + "search": "Buscar elementos que coincidan cun texto de busca" }, "with_selected": { "title": "Con elementos selecionados", @@ -1057,6 +1059,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "O", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -3301,7 +3325,10 @@ }, "footway/crosswalk": { "name": "Paso de peóns", - "terms": "paso de peóns, paso de cebra" + "terms": "paso de peóns, paso de cebra, cruamento peonil, cruzamento de peóns" + }, + "footway/crosswalk-raised": { + "name": "Paso de peóns elevado" }, "footway/sidewalk": { "name": "Beirarrúa", @@ -3359,7 +3386,11 @@ "terms": "paso peonil, paso peatonal, paso de cebra" }, "highway/crosswalk": { - "name": "Cruce peonil" + "name": "Paso de peóns", + "terms": "paso de peóns, paso de cebra, cruamento peonil, cruzamento de peóns" + }, + "highway/crosswalk-raised": { + "name": "Paso de peóns elevado" }, "highway/cycleway": { "name": "Senda ciclista" @@ -3372,7 +3403,7 @@ "name": "Senda peonil" }, "highway/give_way": { - "name": "Ceda o oaso" + "name": "Ceda o paso" }, "highway/living_street": { "name": "Rúa residencial" @@ -3395,6 +3426,13 @@ "highway/path": { "name": "Camiño" }, + "highway/pedestrian_area": { + "name": "Área peonil" + }, + "highway/pedestrian_line": { + "name": "Rúa peonil", + "terms": "rúa peonil, rúa de peóns, calle peatonal" + }, "highway/primary": { "name": "Estrada primaria", "terms": "estrada, primaria, primaria básica" diff --git a/dist/locales/he.json b/dist/locales/he.json index 35a7df336..7a086aad0 100644 --- a/dist/locales/he.json +++ b/dist/locales/he.json @@ -17,7 +17,8 @@ "tail": "יש ללחוץ על המפה כדי להוסיף נקודה." }, "browse": { - "title": "עיון" + "title": "עיון", + "description": "הזז את המפה והתמקד בה." }, "draw_area": { "tail": "יש ללחוץ כדי להוסיף קודקודים לאזור שלך. יש ללחוץ שוב על הקודקוד הראשון כדי לסיים את ציור האיזור." @@ -44,6 +45,7 @@ } }, "continue": { + "key": "A", "title": "להמשיך", "description": "להמשיך את הקו הזה.", "not_eligible": "אי אפשר להמשיך מכאן עם קו.", @@ -192,6 +194,26 @@ "multiple": "אי אפשר להזיז את התכונות האלה כיוון שחלקן מחוברות לתכונות נסתרות." } }, + "reflect": { + "title": { + "long": "שקף לאורך", + "short": "שקף לרוחב" + }, + "description": { + "long": { + "single": "שקף את הצורה לאורך ציר האורך שלה.", + "multiple": "שקף את הצורות לאורך ציר האורך שלהן." + }, + "short": { + "single": "שקף את הצורה לאורך הציר הקצר שלה.", + "multiple": "שקף את הצורות לאורך הציר הקצר שלהן." + } + }, + "key": { + "long": "T", + "short": "Y" + } + }, "rotate": { "title": "הטייה", "description": { @@ -241,18 +263,44 @@ "connected_to_hidden": "אי אפשר לפצל את זה כי זה מחובר לתכונה נסתרת." }, "restriction": { - "help": { - "select": "יש ללחוץ כדי לבחור במקטע דרך.", - "toggle": "יש ללחוץ כדי להפעיל/להשבית הגבלות פנייה.", - "toggle_on": "יש ללחוץ כדי להוסיף הגבלה מסוג „{restriction}”.", - "toggle_off": "יש ללחוץ כדי להסיר הגבלה מסוג „{restriction}”." - }, "annotation": { "create": "נוספה הגבלת פנייה", "delete": "נמחקה הגבלת פנייה" } } }, + "restriction": { + "controls": { + "distance": "מרחק", + "distance_up_to": "עד {distance}", + "via": "דרך", + "via_node_only": "מפרק בלבד", + "via_up_to_one": "עד דרך אחת", + "via_up_to_two": "עד 2 דרכים" + }, + "help": { + "indirect": "(עקיף)", + "turn": { + "no_left_turn": "אין פנייה שמאלה {indirect}", + "no_right_turn": "אין פנייה ימינה {indirect}", + "no_u_turn": "אין פניית פרסה {indirect}", + "no_straight_on": "לא ניתן להמשיך ישר {indirect}", + "only_left_turn": "פנייה שמאלה בלבד {indirect}", + "only_right_turn": "פנייה ימינה בלבד {indirect}", + "only_u_turn": "פרסה בלבד {indirect}", + "only_straight_on": "להמשיך ישר בלבד {indirect}", + "allowed_left_turn": "מותר לפנות שמאלה {indirect}", + "allowed_right_turn": "מותר לפנות ימינה {indirect}", + "allowed_u_turn": "מותר לבצע פניית פרסה {indirect}", + "allowed_straight_on": "מותר להמשיך ישר {indirect}" + }, + "from": "מכיוון", + "via": "דרך", + "to": "אל", + "select_from": "יש ללחוץ כדי לבחור מקטע {from}", + "toggle": "יש ללחוץ לטובת „{turn}”" + } + }, "undo": { "tooltip": "ביטול: {action}", "nothing": "אין מה לבטל." @@ -300,7 +348,8 @@ "created": "נוצר", "about_changeset_comments": "על הערות לערכות שינויים", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", - "google_warning": "ציינת את Google בהערה הזאת: כדאי לזכור כי העתקה ממפות Google אסורה בתכלית האיסור." + "google_warning": "ציינת את Google בהערה הזאת: כדאי לזכור כי העתקה ממפות Google אסורה בתכלית האיסור.", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "עריכות מאת {users}", @@ -344,6 +393,8 @@ "title": "מדידה", "selected": "{n} נבחרו", "geometry": "צורה", + "closed_line": "קו סגור", + "closed_area": "שטח סגור", "center": "מרכז", "perimeter": "היקף", "length": "אורך", @@ -425,6 +476,7 @@ "custom": "התאמה אישית", "custom_button": "עריכת רקע בהתאמה אישית", "overlays": "שכבות על", + "imagery_source_faq": "פרטי צילום / דיווח על תקלה", "reset": "איפוס", "display_options": "אפשרויות תצוגה", "brightness": "בהירות", @@ -663,6 +715,7 @@ "editing": { "title": "עריכה ושמירה", "select_h": "בחירה", + "select_left_click": "יש ללחוץ {leftclick} לחיצה שמאלית על תכונה כדי לבחור אותה. הלחיצה תאיר אותה בהדגשה מהבהבת וסרגל הצד יציג פרטים על התכונה הזו, כגון שם או הכתובת.", "multiselect_h": "בחירה במגוון", "multiselect_shift_click": "`{shift}`+{leftclick} לחיצה שמאלית כדי לבחור כמה תכונות יחדיו. אפשרות זו מקלה על העברה או מחיקה של מגוון פריטים.", "undo_redo_h": "ביטול ושחזור ביטול", @@ -684,23 +737,33 @@ "fields_all_fields": "האגף „כל השדות” מכיל את כל פרטי התכונה שבאפשרותך לערוך. ב־OpenStreetMap כל השדות הם בגדר רשות וזה בסדר להשאיר שדה ריק במקרה של ספק.", "fields_example": "כל סוג תכונה מייצג שדה אחר. למשל, דרך יכולה להציג שדות על פני השטח והגבלת המהירות אך במסעדה עשויים להופיע שדות על סוג האוכל המוגש ושעות הפתיחה.", "fields_add_field": "ניתן גם ללחוץ על התיבה הנגללת „הוספת שדה” כדי להוסיף שדות נוספים כגון: תיאור, קישור ויקיפדיה, גישה לכסאות גלגלים ועוד.", - "tags_h": "תגיות" + "tags_h": "תגיות", + "tags_all_tags": "מתחת למקטע של השדות, ניתן להרחיב את המקטע „כל התגיות” כדי לערוך את כל אחת מה*תגיות* של OpenStreetMap עבור התכונה הנבחרת. כל תגית מכילה *מפתח* ו*ערך*, רכיבי נתונים שמגדירים את כל אחת מהתכונות מאוחסנים ב־OpenStreetMap.", + "tags_resources": "עריכת תגיות של תכונה דורשות ידע מתקדם ב־OpenStreetMap. עליך להתייעץ מול גורמים כגון [הוויקי OpenStreetMap](https://wiki.openstreetmap.org/wiki/Main_Page) או [Taginfo](https://taginfo.openstreetmap.org/) כדי ללמוד עוד על מדיניות התיוג המקובלת ב־OpenStreetMap." }, "points": { "title": "נקודות", "intro": "ניתן להשתמש ב*נקודות* לייצוג תכונות כגון חנויות, מסעדות ואתרי מורשת. אלה מסמנות מיקום מסוים ומתארות מה יש באותו המיקום.", "add_point_h": "הוספת נקודות", "add_point": "כדי להוסיף נקודה, יש ללחוץ על הכפתור {point} **נקודה** בסרגל הכלים שמעל למפה או ללחוץ על מקש הקיצור ‚1’, פעולה זו תחליף את סמן העכבר בצלב. ", + "add_point_finish": "כדי להציב נקודה חדשה על המפה, יש להציב את סמן העכבר על המיקום בו אמורה להיות הנקודה ואז {leftclick} ללחוץ לחיצה שמאלית או להקיש על `רווח`.", "move_point_h": "העברת נקודות", - "delete_point_h": "מחיקת נקודות" + "move_point": "כדי להזיז נקודה, יש להציב את סמן העכבר על הנקודה ואז ללחוץ ולהחזיק את {leftclick} כפתור העכבר השמאלי בעת גרירת הנקודה למיקום החדש שלה.", + "delete_point_h": "מחיקת נקודות", + "delete_point": "זה בסדר למחוק תכונות שאינן קיימות בעולם האמתי. מחיקת תכונה מ־OpenStreetMap מסירה אותה מהמפה לכל המשתמשים כך שמוטב לוודא שתכונה אכן לא נמצאת בטרם מחיקתה.", + "delete_point_command": "כדי למחוק נקודה, יש ללחוץ {rightclick} עם הכפתור הימני על הנקודה כדי לבחור אותה ולהציג את תפריט העריכה, לאחר מכן להשתמש בפקודה {delete} **מחיקה**." }, "lines": { "title": "קווים", + "intro": "*קווים* משמשים לייצוג תכונות כגון דרכים, מסילות רכבת ונהרות. יש לצייר קווים במרכז התכונה שאותה הם מייצגים.", "add_line_h": "הוספת קווים", + "add_line": "כדי להוסיף קו, יש ללחוץ על הכפתור {line} **קו** בסרגל הכלים שמעל למפה או ללחוץ על מקש הקיצור `2`. פעולה זו תשנה את סמן העכבר לסמל של צלב.", "add_line_draw": "עכשיו, עליך להציב את סמן העכבר על מיקום תחילת הקו המיועד {leftclick} וללחוץ עם המקש השמאלי או ללחוץ על המקש ‚רווח’ כדי להתחיל להציב מפרקים לאורך הקו. ניתן להמשיך ולהוסיף עוד מפרקים על ידי לחיצה עם העכבר או על מקש ה‚רווח’. בעת הציור, ניתן להתקרב או לגרור את המפה כדי להוסיף עוד פרטים.", "add_line_finish": "כדי לסיים ציור קו, יש ללחוץ על `{return}` או ללחוץ שוב על המפרק האחרון.", "modify_line_h": "עריכת קווים", "connect_line_h": "חיבור קווים", + "connect_line": "חיבור כבישים כראוי חשוב לתפעול המפה וגם כדי לספק הנחיות לנהיגה בעזרת המפה.", + "connect_line_display": "החיבורים בין כבישים מסומנים בעיגול אפור. נקודות הקצה של הקווים מסומנים בעיגולים לבנים גדולים יותר אם הם לא מחוברים לשום דבר.", "disconnect_line_h": "ניתוק קווים", "move_line_h": "הזזת קווים", "delete_line_h": "מחיקת קווים" @@ -708,13 +771,20 @@ "areas": { "title": "שטחים", "point_or_area_h": "נקודות או שטחים?", + "point_or_area": "תכונות רבות ניתנות לייצוג כנקודות או שטחים. עליך למפות מבנים וקווי מתאר של נכסים כשטחים ככל הניתן. יש להציב נקודות בתוך שטח בניין כדי לייצג עסקים, שירותים ותכונות נוספות שנמצאות בתוך הבניין.", "add_area_h": "הוספת שטחים", "add_area_command": "כדי להוסיף שטח, יש ללחוץ על הכפתור {area} **שטח** בסרגל הכלים שמעל למפה או ללחוץ על מקש הקיצור ‚3’, פעולה זו תחליף את סמן העכבר בצלב.", "add_area_draw": "עכשיו, עליך להציב את סמן העכבר על אחת מהפינות של התכונה {leftclick} וללחוץ עם המקש השמאלי או ללחוץ על המקש ‚רווח’ כדי להתחיל להציב מפרקים מסביב למסגרת החיצונית של האזור. ניתן להמשיך ולהוסיף עוד מפרקים על ידי לחיצה עם העכבר או על מקש ה‚רווח’. בעת הציור, ניתן להתקרב או לגרור את המפה כדי להוסיף עוד פרטים.", "add_area_finish": "כדי לסיים ציור שטח, יש ללחוץ על `{return}` או ללחוץ שוב על המפרק הראשון או האחרון.", - "square_area_h": "ריבוע פינות" + "square_area_h": "ריבוע פינות", + "modify_area_h": "שינוי שטחים", + "delete_area_h": "מחיקת שטחים" }, "relations": { + "title": "יחסים", + "intro": "*יחס* הוא סוג מיוחד של תכונה ב־OpenStreetMap המקבצת תחתיה תכונות אחרות. התכונות ששייכות ליחס נקראות *חברות* ולכל חברה יכול להיות *תפקיד* ביחס.", + "edit_relation_h": "עריכת יחסים", + "maintain_relation_h": "שימור יחסים", "relation_types_h": "סוגי יחסים", "turn_restriction_h": "הגבלות פנייה", "route_h": "נתיבים", @@ -723,6 +793,7 @@ "imagery": { "title": "תמונות רקע", "sources_h": "מקורות תמונה", + "choosing": "כדי לראות אילו מקורות מפות זמינים לעריכה, יש ללחוץ על הכפתור {layers} **הגדרות רקע** לצד המפה.", "offsets_h": "שינוי היסט תמונה", "offset_change": "יש ללחוץ על המשולשים הקטנים כדי להתאים את היסט תמונת הרקע בצעדים קטנים, לחלופין להחזיק את סמן העכבר השמאלי ולגרור עם הריבוע האפור כדי לגלול להתאמת תמונת הרקע." }, @@ -733,9 +804,22 @@ }, "gps": { "title": "עקבות GPS", + "survey": "למידע על כיצד לבצע סקר GPS, יש לקרוא את [מיפוי עם טלפון חכם, GPS או דף](http://learnosm.org/en/mobile-mapping/).", "using_h": "שימוש בעקבות GPS", "tracing": "מסלול ה־GPS לא נשלח אל OpenStreetMap - הדרך הטובה ביותר להשתמש בו היא לצייר על המפה, תוך שימוש במסלול כהנחיה להוספת תכונות חדשות.", "upload": "באפשרותך [להעלות את נתוני ה־GPS שלך ל־OpenStreetMap](https://www.openstreetmap.org/trace/create) לטובת משתמשים אחרים." + }, + "field": { + "restrictions": { + "about": { + "title": "על אודות", + "about": "שדה זה מאפשר לך לחקור ולשנות את מגבלות הפנייה. השדה מציג את דגם הצומת הנבחר לרבות דרכים קרובות שמחוברות אליו." + }, + "inspecting": { + "restricted": "משמעות הביטוי „מוגבלת” היא שיש מגבלת פנייה, למשל: „אסור לפנות שמאלה”.", + "only": "משמעות הביטוי „בלבד” היא שרכב שנוסע בנתיב הזה יכול לבצע בחירה אחת בלבד, למשל „להמשיך ישר בלבד”." + } + } } }, "intro": { @@ -772,19 +856,32 @@ "adams-street": "רח׳ המלך ג׳ורג׳", "andrews-elementary-school": "בית ספר יסודי קינג ג׳ורג׳", "andrews-street": "רח׳ יהודה המכבי", + "armitage-street": "רחוב הארמונות", + "barrows-school": "בית ספר ברוש", "battle-street": "רח׳ הקרב", + "bennett-street": "רב בנטל", + "bowman-park": "פארק באום", + "collins-drive": "דרך קוליץ", + "conrail-railroad": "מסילת רכבת", "conservation-park": "פארק שימור", + "constantine-street": "רחוב קונדר", + "cushman-street": "רחוב קושניר", "dollar-tree": "הכול בחמישה שקלים", + "douglas-avenue": "סמטת הדגל", + "east-street": "רחוב מזרחי", "elm-street": "רח׳ אלם", "flower-street": "רח׳ הפרח", + "foster-street": "רחוב פוסטר", "french-street": "רח׳ צרפת", "garden-street": "רח׳ גן השקמים", "gem-pawnbroker": "מינרלה", "golden-finch-framing": "יש מסגרת", + "grant-avenue": "סמטת אגרנט", "hoffman-pond": "מעיין אלרואי", "hoffman-street": "רח׳ בר הופמן", "hook-avenue": "רח׳ גובר רבקה", "jefferson-street": "רח׳ גולדה מאיר", + "kelsey-street": "רחוב שהרבני", "lafayette-park": "פארק רוטשילד", "las-coffee-cafe": "קפה אילת", "lincoln-avenue": "סמטת אשכול", @@ -859,6 +956,7 @@ "practice": "כל המידע במדריך הזה מיועד לתרגול בלבד וכל העריכות שתתבצענה במדריך לא תישמרנה.", "words": "המדריך הזה יציג מספר מילים ורעיונות חדשים. בעת הצגת מילה חדשה נשתמש בכתב *נטוי*.", "mouse": "ניתן להשתמש בכל התקן קלט כדי לערוך את המפה אך מדריך זה יוצא מנקודת הנחה שיש לך עכבר עם שני כפתורים. **אם ברצונך לחבר עכבר כדאי לעשות זאת ואז ללחוץ על אישור.**", + "leftclick": "כשהמדריך הזה מבקש ממך ללחוץ לחיצה כפולה, כוונתנו היא לכפתור השמאלי. במשטח מגע יכול להיות שמדובר בלחיצה בודדת או בהקשה באצבע אחת. **יש ללחוץ לחיצה שמאלית {num} פעמים.**", "chapters": "צלחנו את זה! ניתן להשתמש בכפתורים שלהלן כדי לדלג על פרקים בכל עת או כדי להתחיל פרק מחדש אם נתקעת. בואו נתחיל! **יש ללחוץ על ‚{next}’ כדי להמשיך.**" }, "navigation": { @@ -881,15 +979,23 @@ }, "points": { "title": "נקודות", + "add_point": "*נקודות* יכולות לציין תכונות כגון חנויות, מסעדות ואנדרטות.{br}הן מסמנות מיקום מסוים ומציינות מה יש באותו המיקום. **יש ללחוץ על הכפתור {button} נקודה כדי להוסיף נקודה חדשה.**", "search_cafe": "ישנן מגוון תכונות שניתן לייצג בנקודות. הנקודה שהרגע הוספת היא בית קפה. **חיפוש אחר ‚{preset}’.**", "choose_cafe": "**יש לבחור {preset} מהרשימה.**", + "feature_editor": "הנקודה מסומנת כעת כבית קפה. באמצעות עורך התכונות, ניתן להוסיף מידע נוסף על בית הקפה.", + "add_name": "ב־OpenStreetMap כל השדות הם בגדר רשות וזה בסדר להשאיר שדה ריק במקרה של חוסר ודאות.{br}בוא נניח שיש לך ידע מקומי על בית הקפה הזה והשם שלו ידוע לך. **נא להוסיף שם לבית הקפה.**", "add_close": "עורך התכונות יזכור את כל השינויים שלך אוטומטית. **בעת סיום הוספת השם, יש ללחוץ על escape או על הכפתור {button} כדי לסגור את עורך התכונות.**", + "reselect": "בדרך כלל נקודות כבר תהיינה קיימות אך בחלקן יהיו טעויות ובחלקן חסר מידע. אנחנו יכולים לערוך נקודות קיימות. **יש ללחוץ כדי לבחור את בית הקפה שהרגע יצרת.**", "update": "הבה נמלא פרטים נוספים על בית הקפה הזה. ניתן לשנות את השם, להוסיף סוג מטבח או להוסיף כתובת. **נא לשנות את פרטי בית הקפה.**", "update_close": "**לאחר סיום עדכון בית הקפה, יש ללחוץ על escape,‏ enter או ללחוץ על הכפתור {button} כדי לסגור את עורך התמונות.**", + "rightclick": "ניתן ללחוץ במקש ימני על כל תכונה שהיא כדי להציג את *תפריט העריכה*, שמציג רשימת פעולות עריכה שניתן לבצע. **ניתן ללחוץ עם מקש ימני כדי לבחור את הנקודה שנוצרה ולהציג את תפריט העריכה.**", + "delete": "מותר למחוק פריטים שאינם נמצאים בעולם האמתי.{br}מחיקת תכונה מ־OpenStreetMap מסירה אותה מהמפה בה כולם משתמשים, כך שעליך לוודא שהתכונה הזאת אכן לא נמצאת בטרם מחיקתה. **יש ללחוץ על {button} הכפתור כדי למחוק את הנקודה.**", + "undo": "תמיד ניתן לבטל כל שינויים שהם עד לשמירת העריכות שלך ב־OpenStreetMap. **יש ללחוץ על הכפתור {button} כדי לבטל את המחיקה ולהחזיר את הנקודות.**", "play": "כעת שידוע לך איך להוסיף ולערוך נקודות, ניתן לנסות ליצור כמה נקודות נוספות לתרגול! **כשסיימת ואפשר להמשיך לפרק הבא, יש ללחוץ על ‚{next}’.**" }, "areas": { "title": "אזורים", + "add_playground": "*שטחים* משמשים להצגת הגבולות של מאפיינים כגון אגמים, בניינים ושטחי מגורים.{br}ניתן גם להשתמש בהם לטובת מיפוי מפורט יותר של תכונות רבות שבדרך כלל ימופו כנקודות. **יש ללחוץ על הכפתור {button} שטח כדי להוסיף שטח חדש.**", "finish_playground": "יש לסיים את ציור השטח על ידי לחיצה על enter, או על ידי לחיצה על המפרק הראשון או האחרון. **יש לסיים ציור שטח למגרש המשחקים.**", "search_playground": "**חיפוש אחר ‚{preset}’.**", "choose_playground": "**יש לבחור {preset} מהרשימה.**", @@ -903,6 +1009,7 @@ "title": "קווים", "add_line": "*קווים* משמשים לייצוג תכונות כגון דרכים, מסילות רכבת ונהרות. **יש ללחוץ על כפתור הקו {button} כדי לצייר קו חדש.**", "start_line": "כאן יש דרך חסרה. קדימה, להוסיף אותה!{br}ב־OpenStreetMap, יש לצייר קווים במרכז הדרך. ניתן לגרור ולהתקרב למפה בזמן הציור אם יש בכך צורך. **יש להתחיל ציור של קו חדש על ידי לחיצה על הקצה העליון של הדרך החסרה הזאת.**", + "intersect": "יש ללחוץ עם העכבר או על מקש הרווח כדי להוסיף מפרקים נוספים לקו.{br}כבישים וסוגים נוספים של קווים הם חלק מרשת גדולה יותר. חשוב מאוד לחבר את הקווים האלה כראוי כדי שתכניות הניווט תוכלנה לפעול ללא קושי. **יש ללחוץ על {name} כדי ליצור צומת לחיבור של שני קווים.**", "retry_intersect": "הדרך צריכה להשתלב עם {name}. נא לנסות שוב!", "continue_line": "יש להמשיך לצייר את הקו לדרך החדשה. לתשומת לבך: ניתן לגרור ולהתקרב למפה במקרה הצורך.{br}לאחר סיום הציור, יש ללחוץ שוב על המפרק האחרון. **יש לסיים את ציור הדרך.**", "choose_category_road": "**יש לבחור {category} מהרשימה.**", @@ -914,6 +1021,7 @@ "add_node": "נוכל להוסיף עוד מפרקים לקו זה כדי לשפר את הצורה שלו. אחת הדרכים להוסיף מפרק היא ללחוץ לחיצה כפולה על הקו במקום בו ברצונך להוסיף מפרק. **יש ללחוץ לחיצה כפולה על הקו כדי ליצור מפרק חדש.**", "start_drag_endpoint": "עם בחירת קו, ניתן לגרור כל אחד מהמפרקים שלו על ידי לחיצה והחזקה של כפתור העכבר השמאלי בעת הגרירה. **יש לגרור את נקודת הסיום למיקום בו הדרכים האלו מצטלבות.**", "finish_drag_endpoint": "המיקום הזה נראה נהדר. **יש לשחרר את הכפתור השמאלי בעכבר כדי לסיים את הגרירה.**", + "start_drag_midpoint": "משולשים קטנים מצוירים ב*נקודת האמצע* בין המפרקים. דרך נוספת ליצור מפרק חדש היא לגרור נקודת אמצע למיקום חדש. **יש לגרור את המשולש בנקודת האמצע כדי ליצור מפרק חדש לאורך פיתולי הדרך.**", "continue_drag_midpoint": "הקו הזה נראה הרבה יותר טוב! ניתן להמשיך ולהתאים את הקו הזה על ידי לחיצה כפולה או גרירת נקודות האמצע עד שהעיקול תואם לצורת הכביש. **כשהקו נראה לטעמך, עליך פשוט ללחוץ על אישור.**", "delete_lines": "זה בסדר למחוק קווים של דרכים שאינן קיימות במציאות.{br}להלן דוגמה בה העיר תכננה לבנות {street} אך מעולם לא עשתה זאת. נוכל לשפר את החלק הזה במפה על ידי מחיקת הקווים המיותרים.", "rightclick_intersection": "הרחוב האמתי האחרון הוא {street1}, כך שאנחנו *נפצל* את {street2} בצומת הזה ונסיר את כל מה שמעליו. **יש ללחוץ עם הכפתור הימני בעכבר על מפרק הצומת.**", @@ -1116,15 +1224,53 @@ }, "category-rail": { "name": "מאפייני מסילות" + }, + "category-restriction": { + "name": "מאפייני הגבלה" + }, + "category-road": { + "name": "מאפייני כביש" + }, + "category-route": { + "name": "מאפפיני שביל" + }, + "category-water-area": { + "name": "מאפייני מים" + }, + "category-water-line": { + "name": "מאפייני מים" } }, "fields": { "access": { + "label": "הכניסה מותרת", "options": { + "designated": { + "title": "מיועד" + }, "destination": { "title": "יעד" + }, + "dismount": { + "title": "ירידה מסוס\\אופניים" + }, + "no": { + "description": "הכניסה אסורה לקהל הרחב", + "title": "הכניסה אסורה" + }, + "permissive": { + "title": "מתירני" + }, + "private": { + "description": "הכניסה מותרת רק עם אישור מבעל המקום", + "title": "פרטי" + }, + "yes": { + "description": "הכניסה מותרת לפי חוק", + "title": "מותר" } }, + "placeholder": "לא מוגדר", "types": { "access": "הכול", "bicycle": "אופניים", @@ -1133,36 +1279,65 @@ "motor_vehicle": "כלי רכב ממונעים" } }, + "access_simple": { + "label": "הכניסה מותרת" + }, "address": { "label": "כתובת", "placeholders": { + "block_number": "מספר שכונה", + "block_number!jp": "מספר שכונה", "city": "עיר", + "city!jp": "עיר\\עירה\\ישוב", + "city!vn": "עיר\\יעיריה", + "conscriptionnumber": "123", "country": "מדינה", "county": "נפה", "county!jp": "מחוז", "district": "מחוז", + "district!vn": "עיר\\עירה\\ישוב", "floor": "קומה", + "hamlet": "כפר", "housename": "שם הבית", + "housenumber": "123", + "housenumber!jp": "מספר דירה", "neighbourhood": "שכונה", + "neighbourhood!jp": "כתובת יפנית", "place": "מקום", "postcode": "מיקוד", + "province": "מחוז", + "province!jp": " תחום שיפוטו של מושל\\משטרה", "quarter": "רובע", + "quarter!jp": "כתובת יפנית", + "state": "מדינה", "street": "רחוב", + "subdistrict": "תת-מחוז", + "subdistrict!vn": "כפר", + "suburb": "פרוור", + "suburb!jp": "כפר", "unit": "יחידה" } }, + "admin_level": { + "label": "רמת מנהל" + }, "aerialway": { "label": "סוג" }, "aerialway/access": { "label": "גישה", "options": { + "both": "שניהם", "entry": "כניסה", "exit": "יציאה" } }, + "aerialway/bubble": { + "label": "בועה" + }, "aerialway/capacity": { - "label": "קיבולת (לשעה)" + "label": "קיבולת (לשעה)", + "placeholder": "500, 2500, 5000..." }, "aerialway/duration": { "label": "משך (דקות)", @@ -1171,9 +1346,15 @@ "aerialway/heating": { "label": "מחומם" }, + "aerialway/occupancy": { + "label": "תפוסה", + "placeholder": "2, 4, 8..." + }, "aerialway/summer/access": { "label": "גישה (קיץ)", "options": { + "both": "שניהם", + "entry": "כניסה", "exit": "יציאה" } }, @@ -1207,6 +1388,9 @@ "atm": { "label": "כספומט" }, + "backrest": { + "label": "מסעד" + }, "barrier": { "label": "סוג" }, @@ -1254,6 +1438,12 @@ "boundary": { "label": "סוג" }, + "brand": { + "label": "מותג" + }, + "brewery": { + "label": "בירה מהחבית" + }, "bridge": { "label": "סוג", "placeholder": "בררת מחדל" @@ -1268,10 +1458,12 @@ "label": "סוג" }, "cables": { - "label": "כבלים" + "label": "כבלים", + "placeholder": "1, 2, 3..." }, "camera/direction": { - "label": "כיוון (מעלות עם כיוון השעון)" + "label": "כיוון (מעלות עם כיוון השעון)", + "placeholder": "45, 90, 180, 270" }, "camera/mount": { "label": "חצובה" @@ -1279,11 +1471,14 @@ "camera/type": { "label": "סוג המצלמה", "options": { - "dome": "כיפה" + "dome": "כיפה", + "fixed": "מתוקן", + "panning": "צילום פנוראמי" } }, "capacity": { - "label": "קיבולת" + "label": "קיבולת", + "placeholder": "50, 100, 200" }, "castle_type": { "label": "סוג" @@ -1322,6 +1517,9 @@ "crane/type": { "label": "סוג עגורן" }, + "crop": { + "label": "יבול" + }, "crossing": { "label": "סוג" }, @@ -1348,8 +1546,29 @@ "none": { "description": "אין שביל אופניים", "title": "אין" + }, + "opposite": { + "description": "נתיב אופניים דו סיטרי בכביש חד-סיטירי", + "title": "נתיב אופניים נגד כיוון התנועה" + }, + "opposite_lane": { + "description": "נתיב אופניים נגד כיוון התנועה", + "title": "נתיב אופניים נגד כיוון התנועה" + }, + "share_busway": { + "description": "נתיב אוופניים שמשותף עם אוטובוסים", + "title": "נתיב אוופניים שמשותף עם אוטובוסים" + }, + "shared_lane": { + "description": "נתיב אופניים בלי הפרדה מתחבורה", + "title": "נתיב אופניים משותף" + }, + "track": { + "description": "נתיב אופניים עם מחסום", + "title": "שביל אופניים" } }, + "placeholder": "בכלל לא", "types": { "cycleway:left": "צד שמאל", "cycleway:right": "צד ימין" @@ -1365,19 +1584,63 @@ "label": "תיאור" }, "devices": { - "label": "התקנים" + "label": "התקנים", + "placeholder": "1, 2, 3" }, "diaper": { "label": "יש החלפת חיתולים" }, + "direction": { + "label": "כיוון (מעלות עם כיוון השעון", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "כיוון", + "options": { + "E": "מזרח", + "ENE": " מזרח-צפון מזרח ", + "ESE": "מזרח-דרום מזרח", + "N": "צפון", + "NE": "צפון מזרח", + "NNE": "צפון-צפון מזרח", + "NNW": "צפון-צפון מערב", + "NW": "צפון מערב", + "S": "דרום", + "SE": "דרום מזרח", + "SSE": "דרום-דרום מזרח", + "SSW": "דרום-דרום מערב", + "SW": "דרום מערב", + "W": "מערב", + "WNW": "מערב-צפון מערב", + "WSW": "מערב-דרום מערב" + } + }, + "direction_clock": { + "label": "כיוון", + "options": { + "anticlockwise": "נגד כיוון השעון", + "clockwise": "עם כיוון השעון" + } + }, + "direction_vertex": { + "label": "כיוון", + "options": { + "backward": "אחורה", + "forward": "קדימה" + } + }, "display": { "label": "הצגה" }, "dock": { "label": "סוג" }, + "drive_through": { + "label": "נסיעת-דרך של מסעדה\\בנק" + }, "duration": { - "label": "משך" + "label": "משך", + "placeholder": "00:00" }, "electrified": { "label": "חישמול", @@ -1389,7 +1652,8 @@ } }, "email": { - "label": "דוא״ל" + "label": "דוא״ל", + "placeholder": "example@example.com" }, "embankment": { "label": "סוג", @@ -1426,6 +1690,7 @@ "fire_hydrant/type": { "label": "סוג", "options": { + "pond": "בריכת דגים\\נוי", "underground": "תת־קרקעי", "wall": "קיר" } @@ -1461,6 +1726,10 @@ "generator/method": { "label": "שיטה" }, + "generator/output/electricity": { + "label": "הספק", + "placeholder": "50 MW, 100 MW, 200 MW" + }, "generator/source": { "label": "מקור" }, @@ -1470,8 +1739,15 @@ "government": { "label": "סוג" }, + "grape_variety": { + "label": "סוגי ענבים" + }, "handicap": { - "label": "נכות" + "label": "נכות", + "placeholder": "1-18" + }, + "handrail": { + "label": "מעקה" }, "healthcare": { "label": "סוג" @@ -1488,12 +1764,32 @@ "historic": { "label": "סוג" }, + "historic/civilization": { + "label": "תרבות היסטורית" + }, + "hoops": { + "label": "סלים", + "placeholder": "1, 2, 4" + }, "iata": { "label": "IATA" }, "icao": { "label": "ICAO" }, + "incline": { + "label": "שיפוע" + }, + "incline_steps": { + "label": "שיפוע", + "options": { + "down": "למטה", + "up": "למעלה" + } + }, + "indoor": { + "label": "בפנים" + }, "information": { "label": "סוג" }, @@ -1523,10 +1819,23 @@ "label": "סוג" }, "lanes": { - "label": "נתיבים" + "label": "נתיבים", + "placeholder": "1, 2, 3..." }, "layer": { - "label": "שכבה" + "label": "שכבה", + "placeholder": "0" + }, + "leaf_cycle_singular": { + "options": { + "evergreen": "ירוק-עד", + "semi_evergreen": "חצי ירוק-עד" + } + }, + "leaf_type": { + "options": { + "leafless": "ללא עלים" + } }, "leaf_type_singular": { "label": "סוג עלה", @@ -1540,6 +1849,13 @@ "length": { "label": "אורך (מטרים)" }, + "level": { + "label": "רמה" + }, + "levels": { + "label": "רמות", + "placeholder": "2, 4, 6" + }, "location": { "label": "מיקום" }, @@ -1556,18 +1872,40 @@ "label": "סוג" }, "maxheight": { - "label": "גובה מרבי" + "label": "גובה מרבי", + "placeholder": "4, 4.5, 5, 14'0\", 14'6\", 15'0\"" }, "maxspeed": { - "label": "מגבלת מהירות" + "label": "מגבלת מהירות", + "placeholder": "40, 50, 60" + }, + "maxstay": { + "label": "זמן המותר להישאר" + }, + "maxweight": { + "label": "משקל מרבי" }, "memorial": { "label": "סוג" }, + "mtb/scale": { + "label": "רמת קושי באופניים", + "options": { + "5": "5: קושי מירבי, שדות סלעים, מפולות", + "6": "6: לא ניתן לרכוב עם אופניים מלבד מקצוענים" + }, + "placeholder": "0, 1, 2, 3..." + }, + "mtb/scale/uphill": { + "placeholder": "0, 1, 2, 3..." + }, "name": { "label": "שם", "placeholder": "שם נפוץ (אם בכלל)" }, + "natural": { + "label": "טבעי" + }, "network": { "label": "רשת" }, @@ -1605,6 +1943,7 @@ "label": "סוג" }, "oneway": { + "label": "חד־סטרי", "options": { "no": "אין", "yes": "יש" @@ -1626,6 +1965,9 @@ "outdoor_seating": { "label": "ישיבה בחוץ" }, + "par": { + "placeholder": "3, 4, 5..." + }, "park_ride": { "label": "חנה וסע" }, @@ -1635,6 +1977,9 @@ "payment_multi": { "label": "צורות תשלום" }, + "phases": { + "placeholder": "1, 2, 3..." + }, "phone": { "label": "טלפון", "placeholder": "‎+972 3 777 777" @@ -1648,12 +1993,29 @@ "place": { "label": "סוג" }, + "plant/output/electricity": { + "placeholder": "500 MW, 1000 MW, 2000 MW..." + }, + "playground/max_age": { + "label": "גיל מרבי" + }, + "playground/min_age": { + "label": "גיל מינימלי" + }, "power": { "label": "סוג" }, "railway": { "label": "סוג" }, + "railway/signal/direction": { + "options": { + "forward": "קדימה" + } + }, + "ref_golf_hole": { + "placeholder": "1-18" + }, "ref_highway_junction": { "label": "מספר צומת" }, @@ -1723,6 +2085,14 @@ "label": "סוג" }, "smoking": { + "label": "העישון מותר", + "options": { + "dedicated": "מיועד למעשנים", + "isolated": "מותר לעשן באזור עישון", + "no": "אסור לעשן", + "outside": "מותר לעשן בחוץ", + "yes": "מותר לעשן בכל המתחם" + }, "placeholder": "אין, הפרדה, יש…" }, "social_facility": { @@ -1896,6 +2266,9 @@ }, "wikipedia": { "label": "ויקיפדיה" + }, + "windings": { + "placeholder": "1, 2, 3..." } }, "presets": { @@ -2064,14 +2437,36 @@ "amenity/place_of_worship/christian": { "name": "כנסייה" }, + "amenity/place_of_worship/hindu": { + "terms": "מקדש הודי" + }, "amenity/place_of_worship/jewish": { - "name": "בית כנסת" + "name": "בית כנסת", + "terms": "בית כנסת" }, "amenity/place_of_worship/muslim": { - "name": "מסגד" + "name": "מסגד", + "terms": "מסגד" + }, + "amenity/place_of_worship/shinto": { + "name": "מקדש שינטו", + "terms": "מקדש שינטו" + }, + "amenity/place_of_worship/sikh": { + "name": "מקדש סיקי", + "terms": "מקדש סיקי" + }, + "amenity/place_of_worship/taoist": { + "name": "מקדש טאויסטי", + "terms": "מקדש טאויסטי" + }, + "amenity/planetarium": { + "name": "מצפה כוכבים", + "terms": "מצפה כוכבים" }, "amenity/police": { - "name": "משטרה" + "name": "משטרה", + "terms": "תחנת משטרה" }, "amenity/post_box": { "name": "תיבת דואר", @@ -2081,21 +2476,63 @@ "name": "סניף דואר", "terms": "משרד דואר, רשות הדואר" }, + "amenity/prison": { + "name": "מגרש כלא", + "terms": "מגרש כלא" + }, "amenity/pub": { "name": "פאב", "terms": "מסבאה, בר" }, "amenity/public_bath": { - "name": "מרחצאות ציבוריות" + "name": "מרחצאות ציבוריות", + "terms": "בית מרחץ" + }, + "amenity/public_bookcase": { + "name": "ספריה", + "terms": "ספריה" + }, + "amenity/ranger_station": { + "name": "תחנת הפקחים", + "terms": "תחנת הפקחים" + }, + "amenity/recycling": { + "name": "סל מחזור", + "terms": "סל מחזור" }, "amenity/recycling_centre": { - "name": "מרכז מיחזור" + "name": "מרכז מיחזור", + "terms": "מרכז מחזור" + }, + "amenity/register_office": { + "name": "משרד רישום" + }, + "amenity/restaurant": { + "name": "מסעדה", + "terms": "מסעדה" + }, + "amenity/sanitary_dump_station": { + "name": "תחנת סילוק RV", + "terms": "תחנת סילוק RV" + }, + "amenity/school": { + "name": "מגרש בית ספר", + "terms": "מגרש בית ספר" }, "amenity/scrapyard": { "name": "מגרש גרוטאות" }, + "amenity/shelter": { + "name": "מקלט", + "terms": "מקלט" + }, "amenity/shower": { - "name": "מקלחת" + "name": "מקלחת", + "terms": "מקלחט" + }, + "amenity/smoking_area": { + "name": "אזור עישון", + "terms": "אזור עישון" }, "amenity/social_facility/food_bank": { "name": "בנק אוכל" @@ -2125,9 +2562,16 @@ "amenity/toilets": { "name": "בתי שימוש" }, + "amenity/veterinary": { + "name": "וטרינר" + }, "area": { "name": "שטח" }, + "attraction/animal": { + "name": "חיה", + "terms": "חיה" + }, "attraction/big_wheel": { "name": "גלגל ענק" }, @@ -2166,6 +2610,9 @@ "name": "מעבר בקר", "terms": "מעבר פרות" }, + "barrier/city_wall": { + "name": "חומת עיר" + }, "barrier/entrance": { "name": "כניסה" }, @@ -2176,13 +2623,24 @@ "name": "שער" }, "building/garage": { - "name": "מוסך" + "name": "מוסך", + "terms": "מוסך" }, "building/garages": { - "name": "מוסכים" + "name": "מוסכים", + "terms": "מוסך" }, "building/greenhouse": { - "name": "חממה" + "name": "חממה", + "terms": "חממה" + }, + "building/hospital": { + "name": "בית חולים", + "terms": "בית חולים" + }, + "building/hotel": { + "name": "מלון", + "terms": "מלון" }, "building/house": { "name": "בית" @@ -2193,6 +2651,10 @@ "building/industrial": { "name": "בניין תעשייתי" }, + "building/mosque": { + "name": "מסגד", + "terms": "מסגד" + }, "building/public": { "name": "מבנה ציבור", "terms": "בניין ציבורי" @@ -2207,68 +2669,1382 @@ "building/stable": { "name": "אורווה" }, + "building/stadium": { + "name": "אצטדיון", + "terms": "אצטדיון" + }, "building/train_station": { "name": "תחנת רכבת" }, + "building/university": { + "name": "בניין אוניברסיטה", + "terms": "בניין אוניברסיטה" + }, + "circular": { + "name": "מעגל תנועה" + }, "club": { - "name": "מועדון" + "name": "מועדון", + "terms": "מעגל תנועה" + }, + "craft/basket_maker": { + "name": "מייצר סלים", + "terms": "מייצר סלים" + }, + "craft/beekeeper": { + "name": "כוורן", + "terms": "כוורן" + }, + "healthcare/midwife": { + "name": "מיילדת", + "terms": "מיילדת" + }, + "healthcare/physiotherapist": { + "name": "פזיווטרפיה", + "terms": "פזיווטרפיה" + }, + "healthcare/psychotherapist": { + "name": "ב", + "terms": "Psychotherapist" + }, + "healthcare/rehabilitation": { + "name": "מוסד שיקומי", + "terms": "מוסד שיקומי" + }, + "highway": { + "name": "כביש בין-עירוני" }, "landuse/allotments": { "name": "גינה קהילתית" }, + "leisure/dog_park": { + "name": "פארק כלבים" + }, + "leisure/fitness_centre": { + "name": "מכון כושר" + }, + "leisure/fitness_centre/yoga": { + "name": "מכון יוגה" + }, + "leisure/garden": { + "name": "גן" + }, + "leisure/golf_course": { + "name": "מגרש גולף" + }, + "leisure/hackerspace": { + "name": "משרד משותף היי טק", + "terms": "משרד משותף היי טק" + }, + "leisure/horse_riding": { + "name": "מתקן רכיבה על סוסים", + "terms": "משרד משותף היי טק" + }, + "leisure/ice_rink": { + "name": "החלקה על הקרח", + "terms": "משרד משותף היי טק" + }, + "leisure/marina": { + "name": "מרינה", + "terms": "מרינה" + }, + "leisure/miniature_golf": { + "name": "מיני-גולף", + "terms": "מיני-גולף" + }, + "leisure/picnic_table": { + "name": "שולחן פיקניק", + "terms": "שולחן פיקניק" + }, + "leisure/pitch/american_football": { + "name": "מגרש פוטבול", + "terms": "מגרש פוטבול" + }, + "leisure/pitch/baseball": { + "name": "מגרש בייסבול", + "terms": "מגרש בייסבול" + }, + "leisure/pitch/basketball": { + "name": "מגרש כדורסל", + "terms": "מגרש כדורסל" + }, + "leisure/pitch/beachvolleyball": { + "name": "מגרש כדור-עף חוף" + }, + "leisure/pitch/cricket": { + "name": "מגרש קריקט", + "terms": "מגרש קריקט" + }, + "leisure/playground": { + "name": "גן שעשועים", + "terms": "גן שעשועים" + }, + "leisure/sauna": { + "name": "סאונה", + "terms": "סאונה" + }, + "leisure/sports_centre": { + "name": "מרכז ספורט", + "terms": "מרכז ספורט" + }, + "leisure/sports_centre/swimming": { + "name": "בריכות שחייה", + "terms": "בריכות שחייה" + }, + "leisure/stadium": { + "name": "אצטדיון", + "terms": "אצטדיון" + }, + "leisure/swimming_pool": { + "name": "בריכת שחייה", + "terms": "בריכת שחייה" + }, + "leisure/water_park": { + "name": "פארק מים", + "terms": "פארק מים" + }, + "man_made/bridge": { + "name": "גשר", + "terms": "גשר" + }, + "man_made/chimney": { + "name": "ארובה", + "terms": "ארובה" + }, + "man_made/crane": { + "name": "מנוף", + "terms": "מנוף" + }, + "man_made/lighthouse": { + "name": "מגדלור", + "terms": "מגדלור" + }, + "man_made/pumping_station": { + "name": "תחנת שאיבה", + "terms": "תחנת שאיבה" + }, + "man_made/tower": { + "name": "מגדל", + "terms": "מגדל" + }, + "man_made/wastewater_plant": { + "name": "מפעל טיפול במי ביוב", + "terms": "מפעל טיפול במי ביוב" + }, + "man_made/water_tower": { + "name": "מגדל מים", + "terms": "מגדל מים" + }, + "man_made/water_well": { + "name": "באר", + "terms": "באר" + }, + "man_made/water_works": { + "name": "מזרקה", + "terms": "מזרקה" + }, + "man_made/watermill": { + "name": "תחנת מים", + "terms": "תחנת מים" + }, + "man_made/windmill": { + "name": "טחנת רוח", + "terms": "טחנת רוח" + }, + "man_made/works": { + "name": "מפעל", + "terms": "מפעל" + }, + "manhole": { + "name": "פתח ביוב", + "terms": "פתח ביוב" + }, + "manhole/drain": { + "name": "צינור לניקוז מי גשמים", + "terms": "צינור לניקוז מי גשמים" + }, + "manhole/telecom": { + "name": "בור טלקום", + "terms": "בור טלקום" + }, + "natural": { + "name": "מאפייני טבע", + "terms": "מאפייני טבע" + }, + "natural/bay": { + "name": "מפרץ", + "terms": "מפרץ" + }, + "natural/beach": { + "name": "חוף", + "terms": "חוף" + }, + "natural/coastline": { + "name": "מישור חוף", + "terms": "מישור חוף" + }, + "natural/glacier": { + "name": "קרחון", + "terms": "קרחון" + }, + "natural/peak": { + "name": "פסגה", + "terms": "פסגה" + }, + "natural/sand": { + "name": "חול", + "terms": "חול" + }, + "natural/tree": { + "name": "עץ", + "terms": "עץ" + }, + "natural/tree_row": { + "name": "שורת עצים", + "terms": "שורת עצים" + }, + "natural/volcano": { + "name": "הר געש", + "terms": "הר געש" + }, + "natural/water": { + "name": "מים", + "terms": "מים" + }, + "natural/water/lake": { + "name": "אגם", + "terms": "אגם" + }, + "natural/water/pond": { + "name": "בריכת דגים\\נוי", + "terms": "בריכת דגים\\נוי" + }, + "noexit/yes": { + "name": "אין יציאה", + "terms": "אין יציאה" + }, + "office": { + "name": "משרד", + "terms": "משרד" + }, + "office/accountant": { + "name": "משרד רואה חשבון", + "terms": "משרד רואה חשבון" + }, + "office/adoption_agency": { + "name": "סוכנות אימוץ", + "terms": "סוכנות אימוץ" + }, + "office/advertising_agency": { + "name": "סוכנות פרסום", + "terms": "סוכנות פרסום" + }, + "office/architect": { + "name": "משרד אדריכלים", + "terms": "משרד אדריכלים" + }, + "office/association": { + "name": "ארגון ללא מטרת רווח (משרדים)", + "terms": "ארגון ללא מטרת רווח" + }, + "office/charity": { + "name": "משרד צדקה", + "terms": "משרד צדקה" + }, + "office/coworking": { + "name": "משרדים משותפים", + "terms": "משרדים משותפים" + }, + "office/educational_institution": { + "name": "מוסד חינוכי", + "terms": "מוסד חינוכי" + }, + "office/employment_agency": { + "name": "סוכנות כוח אדם", + "terms": "סוכנות כוח אדם" + }, + "office/energy_supplier": { + "name": "משרדת ספק חשמל", + "terms": "משרדת ספק חשמל" + }, + "office/estate_agent": { + "name": "משרד נדל\"ן", + "terms": "משרד נדל\"ן" + }, + "office/financial": { + "name": "משרד פיננסי", + "terms": "משרד פיננסי" + }, + "office/government": { + "name": "משרד ממשלתי", + "terms": "משרד ממשלתי" + }, + "office/government/tax": { + "name": "משרד עריכת מס", + "terms": "משרד עריכת מס" + }, + "office/insurance": { + "name": "משרד ביטוח", + "terms": "משרד ביטוח" + }, + "office/lawyer": { + "name": "משרד עורכי דין", + "terms": "משרד עורכי דין" + }, + "office/lawyer/notary": { + "name": "משרד נוטריון" + }, + "office/moving_company": { + "name": "משרד מעבירי רכוש", + "terms": "משרד מעבירי רכוש" + }, + "office/ngo": { + "name": "משרד ארגון לא ממשלתי", + "terms": "משרד ארגון לא ממשלתי" + }, + "office/notary": { + "name": "משרד נוטריון", + "terms": "משרד נוטריון" + }, + "office/political_party": { + "name": "משרד מפלגה פוליטית", + "terms": "משרד מפלגה פוליטית" + }, + "office/private_investigator": { + "name": "משרד חוקר פרטי", + "terms": "משרד חוקר פרטי" + }, + "office/quango": { + "name": "משרד ארגון חצי לא ממשלתי", + "terms": "משרד ארגון חצי לא ממשלתי" + }, + "office/research": { + "name": "משרד מחקר", + "terms": "משרד מחקר" + }, + "office/surveyor": { + "name": "משרד מודד", + "terms": "משרד מודד" + }, + "office/tax_advisor": { + "name": "משרד יועץ מס", + "terms": "משרד יועץ מס" + }, + "office/telecommunication": { + "name": "משרד לשירות ציבורי - טלפוניה", + "terms": "משרד לשירות ציבורי - טלפוניה" + }, + "office/therapist": { + "name": "משרד מטפל", + "terms": "משרד מטפל" + }, + "office/travel_agent": { + "name": "סוכנות נסיעות" + }, + "office/water_utility": { + "name": "משרד לשירות ציבורי - מים", + "terms": "משרד לשירות ציבורי - מים" + }, + "place": { + "name": "מקום" + }, + "place/city": { + "name": "עיר", + "terms": "עיר" + }, + "place/farm": { + "name": "חוה" + }, + "place/hamlet": { + "name": "כפר", + "terms": "כפר" + }, + "place/island": { + "name": "אי", + "terms": "אי" + }, + "place/islet": { + "name": "איון", + "terms": "איון" + }, + "place/isolated_dwelling": { + "name": "מבנה מבודד", + "terms": "מבנה מבודד" + }, + "place/locality": { + "name": "שכונה", + "terms": "שכונה" + }, + "place/neighbourhood": { + "name": "שכונה", + "terms": "שכונה" + }, + "place/plot": { + "name": "חלקה", + "terms": "חלקה" + }, + "place/quarter": { + "name": "רובע", + "terms": "רובע" + }, + "place/square": { + "name": "כיכר", + "terms": "כיכר" + }, + "place/suburb": { + "name": "פרוור", + "terms": "פרוור" + }, + "place/town": { + "name": "עיריה", + "terms": "עיריה" + }, + "place/village": { + "name": "כפר", + "terms": "כפר" + }, + "playground/balance_beam": { + "name": "לשחק את קורה", + "terms": "לשחק את קורה" + }, + "playground/basket_spinner": { + "name": "סל טווה", + "terms": "סל טווה" + }, + "playground/basket_swing": { + "name": "סל הנדנדה", + "terms": "סל הנדנדה" + }, + "playground/sandpit": { + "name": "ארגז חול", + "terms": "ארגז חול" + }, + "playground/seesaw": { + "name": "נדנדה", + "terms": "נדנדה" + }, + "playground/slide": { + "name": "מגלשה", + "terms": "מגלשה" + }, + "playground/swing": { + "name": "נדנדות", + "terms": "נדנדות" + }, + "playground/zipwire": { + "name": "אומגה", + "terms": "אומגה" + }, + "power/generator/source_nuclear": { + "name": "תחנת כוח גרעינית", + "terms": "תחנת כוח גרעינית" + }, + "power/generator/source_wind": { + "name": "טורבינת רוח", + "terms": "טורבינת רוח" + }, + "power/switch": { + "name": "מתג חשמל", + "terms": "מתג חשמל" + }, + "public_transport/linear_platform_subway": { + "name": "תחנת רכבת תחתית \\ רציף", + "terms": "תחנת רכבת תחתית \\ רציף" + }, + "public_transport/platform_bus": { + "name": "תחנת אוטובוס \\ רציף", + "terms": "תחנת אוטובוס \\ רציף" + }, + "public_transport/platform_ferry": { + "name": "תחנת מעבורת \\ רציף", + "terms": "תחנת מעבורת \\ רציף" + }, + "public_transport/platform_light_rail": { + "name": "תחנת רכבת קלה \\ רציף", + "terms": "תחנת רכבת קלה \\ רציף" + }, + "public_transport/platform_monorail": { + "name": "תחנת מונורייל \\ רציף", + "terms": "תחנת מונורייל \\ רציף" + }, + "public_transport/platform_subway": { + "name": "תחנת רכבת תחתית \\ רציף", + "terms": "תחנת רכבת תחתית \\ רציף" + }, + "public_transport/platform_train": { + "name": "תחנת רכבת \\ רציף", + "terms": "תחנת רכבת \\ רציף" + }, + "public_transport/platform_tram": { + "name": "תחנת חשמלית \\ רציף", + "terms": "תחנת חשמלית \\ רציף" + }, + "public_transport/station_bus": { + "name": "תחנת אוטובוס", + "terms": "תחנת אוטובוס" + }, + "public_transport/station_ferry": { + "name": "מסוף מעבורת", + "terms": "מסוף מעבורת" + }, + "public_transport/station_light_rail": { + "name": "תחנת רכבת קלה", + "terms": "תחנת רכבת קלה" + }, + "public_transport/station_monorail": { + "name": "תחנת מונורייל", + "terms": "תחנת מונורייל" + }, + "public_transport/station_subway": { + "name": "תחנת רכבת תחתית", + "terms": "תחנת רכבת תחתית" + }, + "public_transport/station_train": { + "name": "תחנת רכבת", + "terms": "תחנת רכבת" + }, + "public_transport/stop_position_bus": { + "name": "תחנת אוטובוס", + "terms": "תחנת אוטובוס" + }, + "public_transport/stop_position_ferry": { + "name": "תחנת מעבורת", + "terms": "תחנת מעבורת" + }, + "public_transport/stop_position_light_rail": { + "name": "תחנת רכבת קלה", + "terms": "תחנת רכבת קלה" + }, + "public_transport/stop_position_monorail": { + "name": "תחנת מונורייל", + "terms": "תחנת מונורייל" + }, + "public_transport/stop_position_subway": { + "name": "תחנת רכבת תחתית", + "terms": "תחנת רכבת תחתית" + }, + "public_transport/stop_position_train": { + "name": "תחנת רכבת", + "terms": "תחנת רכבת" + }, + "railway/disused": { + "name": "מסילת רכבת לא בשימוש", + "terms": "מסילת רכבת לא בשימוש" + }, + "railway/light_rail": { + "name": "רכבת קלה", + "terms": "רכבת קלה" + }, + "railway/monorail": { + "name": "מונורייל", + "terms": "מונורייל" + }, + "railway/platform": { + "name": "תחנת רכבת \\ רציף" + }, + "railway/rail": { + "name": "מסילת רכבת", + "terms": "מסילת רכבת" + }, + "railway/station": { + "name": "תחנת רכבת" + }, + "railway/subway": { + "name": "רכבת תחתית", + "terms": "רכבת תחתית" + }, + "railway/subway_entrance": { + "name": "כניסה לרכבת תחתית", + "terms": "כניסה לרכבת תחתית" + }, + "railway/switch": { + "name": "שינוי נתיב רכבת", + "terms": "שינוי נתיב רכבת" + }, + "railway/train_wash": { + "name": "שטיפת רכבת", + "terms": "שטיפת רכבת" + }, + "railway/tram": { + "name": "חשמלית", + "terms": "חשמלית" + }, + "railway/tram_stop": { + "name": "תחנת חשמלית" + }, + "roundabout": { + "name": "מעגל תנועה" + }, + "shop": { + "name": "חנות", + "terms": "חנות" + }, + "shop/agrarian": { + "name": "חנות אביזרי חקלאות", + "terms": "חנות אביזרי חקלאות" + }, + "shop/alcohol": { + "name": "חנות משקעות חריפים", + "terms": "חנות משקעות חריפים" + }, + "shop/anime": { + "name": "חנות סרטים מצוירים יפנים", + "terms": "חנות סרטים מצוירים יפנים" + }, + "shop/antiques": { + "name": "חנות עתיקות", + "terms": "חנות עתיקות" + }, + "shop/appliance": { + "name": "חנות כלים חשמלים", + "terms": "חנות כלים חשמלים" + }, + "shop/art": { + "name": "חנות למוצרי אומנות", + "terms": "חנות למוצרי אומנות" + }, + "shop/baby_goods": { + "name": "חנות לדברי תינוקות", + "terms": "חנות לדברי תינוקות" + }, + "shop/bag": { + "name": "חנות מזודות", + "terms": "חנות מזודות" + }, + "shop/bakery": { + "name": "מאפייה", + "terms": "מאפייה" + }, + "shop/bathroom_furnishing": { + "name": "חנות רהיטי שירותים\\מקלחת", + "terms": "חנות רהיטי שירותים\\מקלחת" + }, + "shop/beauty": { + "name": "חנות מוצרי יופי\\טיפוח", + "terms": "חנות מוצרי יופי\\טיפוח" + }, + "shop/beauty/tanning": { + "name": "מכון שיזוף", + "terms": "מכון שיזוף" + }, + "shop/bed": { + "name": "חנות מזרונים", + "terms": "חנות מזרונים" + }, + "shop/beverages": { + "name": "חנות משקעות", + "terms": "חנות משקעות" + }, + "shop/bicycle": { + "name": "חנות אופניים", + "terms": "חנות אופניים" + }, + "shop/car_parts": { + "name": "חנות חלקי מכוניות", + "terms": "חנות חלקי מכוניות" + }, + "shop/car_repair": { + "name": "מוסך", + "terms": "מוסך" + }, + "shop/carpet": { + "name": "חנות שטיחים", + "terms": "חנות שטיחים" + }, + "shop/charity": { + "name": "חנות צדקה", + "terms": "חנות צדקה" + }, + "shop/cheese": { + "name": "חנות צדקה", + "terms": "חנות צדקה" + }, + "shop/chemist": { + "name": "בית מרקחת", + "terms": "בית מרקחת" + }, + "shop/chocolate": { + "name": "חנות שוקולד", + "terms": "חנות שוקולד" + }, + "shop/clothes": { + "name": "חנות בגדים", + "terms": "חנות בגדים" + }, + "shop/coffee": { + "name": "בית קפה", + "terms": "בית קפה" + }, + "shop/computer": { + "name": "חנות מחשבים", + "terms": "חנות מחשבים" + }, + "shop/confectionery": { + "name": "חנות ממתקים", + "terms": "חנות ממתקים" + }, + "shop/convenience": { + "name": "חנות כולבו", + "terms": "חנות כולבו" + }, + "shop/copyshop": { + "name": "חנות עותקים", + "terms": "חנות עותקים" + }, + "shop/cosmetics": { + "name": "חנות קוסמטיקה", + "terms": "חנות קוסמטיקה" + }, + "shop/craft": { + "name": "חנות דברי אומנות", + "terms": "חנות דברי אומנות" + }, + "shop/curtain": { + "name": "חנות וילונות", + "terms": "חנות וילונות" + }, + "shop/dairy": { + "name": "חנות דברי חלב", + "terms": "חנות דברי חלב" + }, + "shop/deli": { + "name": "מעדניה", + "terms": "מעדניה" + }, + "shop/department_store": { + "name": "חנות כולבו", + "terms": "חנות כולבו" + }, + "shop/doityourself": { + "name": "חנות עשה זאת בעצמך", + "terms": "חנות עשה זאת בעצמך" + }, + "shop/dry_cleaning": { + "name": "ניקוי יבש", + "terms": "ניקוי יבש" + }, + "shop/e-cigarette": { + "name": "חנות דברי עישון", + "terms": "חנות דברי עישון" + }, + "shop/electronics": { + "name": "חנות אלקטרוניקה", + "terms": "חנות אלקטרוניקה" + }, + "shop/erotic": { + "name": "חנות סקס", + "terms": "חנות סקס" + }, + "shop/fabric": { + "name": "חנות אריגה", + "terms": "חנות אריגה" + }, + "shop/farm": { + "name": "ירקן", + "terms": "ירקן" + }, + "shop/fashion": { + "name": "חנות אופנה", + "terms": "חנות אופנה" + }, + "shop/fishmonger": { + "name": "חנות דגים" + }, + "shop/florist": { + "name": "חנות פרחים", + "terms": "חנות פרחים" + }, + "shop/frame": { + "name": "חנות חלקאות", + "terms": "חנות חלקאות" + }, + "shop/funeral_directors": { + "name": "קברן", + "terms": "קברן" + }, + "shop/furnace": { + "name": "חנות כבשנים" + }, + "shop/furniture": { + "name": "חנות רההיטים", + "terms": "חנות רההיטים" + }, + "shop/garden_centre": { + "name": "חנות גננות", + "terms": "חנות גננות" + }, + "shop/gas": { + "name": "חנות גז", + "terms": "חנות גז" + }, + "shop/gift": { + "name": "חנות מתנות", + "terms": "חנות מתנות" + }, + "shop/greengrocer": { + "name": "ירקן", + "terms": "ירקן" + }, + "shop/hairdresser": { + "name": "מעצב שער", + "terms": "מעצב שער" + }, + "shop/hardware": { + "name": "חנות כלי חומרה", + "terms": "חנות כלי חומרה" + }, + "shop/health_food": { + "name": "חנות מאכלי בריאות", + "terms": "חנות מאכלי בריאות" + }, + "shop/hearing_aids": { + "name": "חנות מכשירי שמיעה", + "terms": "חנות מכשירי שמיעה" + }, + "shop/kiosk": { + "name": "קיוסק", + "terms": "קיוסק" + }, + "shop/kitchen": { + "name": "חנות עיצוב מטבח", + "terms": "חנות עיצוב מטבח" + }, + "shop/laundry": { + "name": "כביסה", + "terms": "כביסה" + }, + "shop/leather": { + "name": "חנות עור", + "terms": "חנות עור" + }, + "shop/locksmith": { + "name": "מנעולן", + "terms": "מנעולן" + }, + "shop/lottery": { + "name": "חנות לוטו", + "terms": "חנות לוטו" + }, + "shop/mall": { + "name": "קניון", + "terms": "קניון" + }, + "shop/massage": { + "name": "מכון מסג'", + "terms": "מכון מסג'" + }, + "shop/mobile_phone": { + "name": "חנות טלפונים ניידים", + "terms": "חנות טלפונים ניידים" + }, + "shop/money_lender": { + "name": "מלווה בריבית", + "terms": "מלווה בריבית" + }, + "shop/motorcycle": { + "name": "חנות אופנועים", + "terms": "חנות אופנועים" + }, + "shop/music": { + "name": "חנות מוזיקה", + "terms": "חנות מוזיקה" + }, + "shop/musical_instrument": { + "name": "חנות כלי נגינה", + "terms": "חנות כלי נגינה" + }, + "shop/newsagent": { + "name": "חנות עיתונים", + "terms": "חנות עיתונים" + }, + "shop/nutrition_supplements": { + "name": "חנות ויטמינים", + "terms": "חנות ויטמינים" + }, + "shop/optician": { + "name": "אופטיקאי", + "terms": "אופטיקאי" + }, + "shop/organic": { + "name": "חנות אורגני", + "terms": "חנות אורגני" + }, + "shop/outdoor": { + "name": "חנות רהיטי גינה", + "terms": "חנות רהיטי גינה" + }, + "shop/paint": { + "name": "חנות צבע", + "terms": "חנות צבע" + }, + "shop/pastry": { + "name": "מאפייה", + "terms": "מאפייה" + }, + "shop/pawnbroker": { + "name": "חנות יד שניה", + "terms": "חנות יד שניה" + }, + "shop/perfumery": { + "name": "חנות בשמים", + "terms": "חנות בשמים" + }, + "shop/pet": { + "name": "חנות לחיות מחמד", + "terms": "חנות לחיות מחמד" + }, + "shop/photo": { + "name": "חנות צילום", + "terms": "חנות צילום" + }, + "shop/pyrotechnics": { + "name": "חנות זיקוקים", + "terms": "חנות זיקוקים" + }, + "shop/radiotechnics": { + "name": "חנות אלקטרוניקה ורדיו", + "terms": "חנות אלקטרוניקה ורדיו" + }, + "shop/religion": { + "name": "חנות לדברי דת", + "terms": "חנות לדברי דת" + }, + "shop/scuba_diving": { + "name": "חנות לצוללנים", + "terms": "חנות לצוללנים" + }, + "shop/seafood": { + "name": "חנות למאכלי ים", + "terms": "חנות למאכלי ים" + }, + "shop/second_hand": { + "name": "חנות יד שניה", + "terms": "חנות יד שניה" + }, + "shop/shoes": { + "name": "חנות נעליים", + "terms": "חנות נעליים" + }, + "shop/sports": { + "name": "חנות לדברי ספורט", + "terms": "חנות לדברי ספורט" + }, + "shop/stationery": { + "name": "חנות לדברי כתיבה", + "terms": "חנות לדברי כתיבה" + }, + "shop/storage_rental": { + "name": "שטח אחסון להשכרה", + "terms": "שטח אחסון להשכרה" + }, + "shop/supermarket": { + "name": "כול-בו", + "terms": "כול-בו" + }, + "shop/tailor": { + "name": "חייט", + "terms": "חייט" + }, + "shop/tattoo": { + "name": "מכון קעקועים", + "terms": "מכון קעקועים" + }, + "shop/tea": { + "name": "חנות תה", + "terms": "חנות תה" + }, + "shop/ticket": { + "name": "עמדת מכירת כרטיסים", + "terms": "עמדת מכירת כרטיסים" + }, + "shop/tiles": { + "name": "חנות מרצפות", + "terms": "חנות מרצפות" + }, + "shop/tobacco": { + "name": "חנות טבק", + "terms": "חנות טבק" + }, + "shop/toys": { + "name": "חנות צעצועים", + "terms": "חנות צעצועים" + }, + "shop/trade": { + "name": "חנות מוצרים", + "terms": "חנות מוצרים" + }, + "shop/travel_agency": { + "name": "סוכנות נסיעות", + "terms": "סוכנות נסיעות" + }, + "shop/tyres": { + "name": "חנות צמיגים", + "terms": "חנות צמיגים" + }, + "shop/vacant": { + "name": "חנות ריקה" + }, + "shop/vacuum_cleaner": { + "name": "חנות שועבי אבק", + "terms": "חנות שועבי אבק" + }, + "shop/variety_store": { + "name": "חנות מגון מוצרים", + "terms": "חנות מגון מוצרים" + }, + "shop/video": { + "name": "חנות סרטים", + "terms": "חנות סרטים" + }, + "shop/video_games": { + "name": "חנות למשחקי מחשב", + "terms": "חנות למשחקי מחשב" + }, + "shop/watches": { + "name": "שען", + "terms": "שען" + }, + "shop/water_sports": { + "name": "חנות שחיה", + "terms": "חנות שחיה" + }, + "shop/weapons": { + "name": "חנות נשקים קרים", + "terms": "חנות נשקים קרים" + }, + "shop/wholesale": { + "name": "חנות סיטונאות", + "terms": "חנות סיטונאות" + }, + "shop/window_blind": { + "name": "חנות וילונות", + "terms": "חנות וילונות" + }, + "shop/wine": { + "name": "חנות יינות", + "terms": "חנות יינות" + }, + "tourism": { + "name": "משרד תיירות", + "terms": "משרד תיירות" + }, + "tourism/alpine_hut": { + "name": "בקטה הררית", + "terms": "בקטה הררית" + }, + "tourism/apartment": { + "name": "בית משותף", + "terms": "בית משותף" + }, + "tourism/aquarium": { + "name": "אקווריום", + "terms": "אקווריום" + }, + "tourism/artwork": { + "name": "אומנות", + "terms": "אומנות" + }, + "tourism/attraction": { + "name": "אתר תיירותי", + "terms": "אתר תיירותי" + }, + "tourism/camp_site": { + "name": "אתר מחנאות", + "terms": "אתר מחנאות" + }, + "tourism/caravan_site": { + "name": "מגרש קרוונים", + "terms": "מגרש קרוונים" + }, + "tourism/chalet": { + "name": "בקתה לחגים", + "terms": "בקתה לחגים" + }, + "tourism/gallery": { + "name": "גלריית אומנות", + "terms": "גלריית אומנות" + }, + "tourism/guest_house": { + "name": "בית הארחה", + "terms": "בית הארחה" + }, + "tourism/hostel": { + "name": "הוסטל", + "terms": "הוסטל" + }, + "tourism/hotel": { + "name": "מלון", + "terms": "מלון" + }, + "tourism/information": { + "name": "מידע", + "terms": "מידע" + }, + "tourism/information/board": { + "name": "לוח מידע", + "terms": "לוח מידע" + }, + "tourism/information/guidepost": { + "name": "סימון שביל", + "terms": "סימון שביל" + }, + "tourism/information/map": { + "name": "מפה", + "terms": "מפה" + }, + "tourism/information/office": { + "name": "מידע תיירותי", + "terms": "מידע תיירותי" + }, + "tourism/motel": { + "name": "מלון", + "terms": "מלון" + }, + "tourism/museum": { + "name": "מוזאון", + "terms": "מוזאון" + }, + "tourism/picnic_site": { + "name": "פיקניק", + "terms": "פיקניק" + }, + "tourism/theme_park": { + "name": "לונה פארק", + "terms": "לונה פארק" + }, + "tourism/viewpoint": { + "name": "תצפית", + "terms": "תצפית" + }, + "tourism/wilderness_hut": { + "name": "בקתת טבע", + "terms": "בקתת טבע" + }, + "tourism/zoo": { + "name": "גן חיות", + "terms": "גן חיות" + }, + "traffic_calming": { + "name": "הקלת פקקי תנועה", + "terms": "הקלת פקקי תנועה" + }, + "traffic_calming/bump": { + "name": "פסי האטה", + "terms": "פסי האטה" + }, + "traffic_calming/chicane": { + "name": "אי תנועה", + "terms": "אי תנועה" + }, + "traffic_calming/choker": { + "name": "פסי האטה", + "terms": "פסי האטה" + }, + "traffic_calming/cushion": { + "name": "פסי האטה", + "terms": "פסי האטה" + }, + "traffic_calming/dip": { + "name": "שקע", + "terms": "שקע" + }, + "traffic_calming/hump": { + "name": "פסי האטה", + "terms": "פסי האטה" + }, + "traffic_calming/island": { + "name": "אי תנועה", + "terms": "אי תנועה" + }, + "traffic_calming/rumble_strip": { + "name": "פסי האטה", + "terms": "פסי האטה" + }, + "traffic_calming/table": { + "name": "פסי האטה", + "terms": "פסי האטה" + }, + "type/boundary": { + "name": "גבול", + "terms": "גבול" + }, + "type/boundary/administrative": { + "name": "גבול ניהולי", + "terms": "גבול ניהולי" + }, + "type/multipolygon": { + "name": "מולטיפוליגון" + }, + "type/restriction": { + "name": "הפרדה", + "terms": "הפרדה" + }, "type/restriction/no_left_turn": { - "name": "אין פנייה שמאלה" + "name": "אין פנייה שמאלה", + "terms": "אין פנייה שמאלה" }, "type/restriction/no_right_turn": { - "name": "אין פנייה ימינה" + "name": "אין פנייה ימינה", + "terms": "אין פנייה ימינה" }, "type/restriction/no_straight_on": { - "name": "אי אפשר להמשיך ישר" + "name": "אי אפשר להמשיך ישר", + "terms": "אי אפשר להמשיך ישר" }, "type/restriction/no_u_turn": { - "name": "אין פניית פרסה" + "name": "אין פניית פרסה", + "terms": "אין פניית פרסה" }, "type/restriction/only_left_turn": { - "name": "פנייה שמאלה בלבד" + "name": "פנייה שמאלה בלבד", + "terms": "פנייה שמאלה בלבד" }, "type/restriction/only_right_turn": { - "name": "פנייה ימינה בלבד" + "name": "פנייה ימינה בלבד", + "terms": "פנייה ימינה בלבד" }, "type/restriction/only_straight_on": { - "name": "אין פניות" + "name": "אין פניות", + "terms": "אין פניות" }, "type/route": { - "name": "נתיב" + "name": "נתיב", + "terms": "נתיב" }, "type/route/bicycle": { - "name": "מסלול אופניים" + "name": "מסלול אופניים", + "terms": "מסלול אופניים" }, "type/route/bus": { - "name": "נתיב אוטובוסים" + "name": "נתיב אוטובוסים", + "terms": "נתיב אוטובוסים" }, "type/route/detour": { - "name": "נתיב עקיפה" + "name": "נתיב עקיפה", + "terms": "נתיב עקיפה" + }, + "type/route/ferry": { + "name": "נתיב מעבורת", + "terms": "נתיב מעבורת" + }, + "type/route/foot": { + "name": "דרך רגל", + "terms": "דרך רגל" + }, + "type/route/hiking": { + "name": "דרך טיול", + "terms": "דרך טיול" + }, + "type/route/horse": { + "name": "נתיב רכיבה", + "terms": "נתיב רכיבה" + }, + "type/route/light_rail": { + "name": "נתיב רכבת קלה", + "terms": "נתיב רכבת קלה" + }, + "type/route/pipeline": { + "name": "נתיב צנרת", + "terms": "נתיב צנרת" + }, + "type/route/piste": { + "name": "נתיב סקי", + "terms": "נתיב סקי" + }, + "type/route/power": { + "name": "נתיב חשמל", + "terms": "נתיב חשמל" + }, + "type/route/road": { + "name": "נתיב כביש", + "terms": "נתיב כביש" + }, + "type/route/subway": { + "name": "נתיב רכבת תחתית", + "terms": "נתיב רכבת תחתית" + }, + "type/route/train": { + "name": "נתיב רכבת", + "terms": "נתיב רכבת" + }, + "type/route/tram": { + "name": "נתיב חשמלית", + "terms": "נתיב חשמלית" + }, + "type/site": { + "name": "אתר", + "terms": "אתר" + }, + "type/waterway": { + "name": "נתיב מים", + "terms": "נתיב מים" }, "vertex": { - "name": "אחר" + "name": "אחר", + "terms": "אחר" + }, + "waterway": { + "name": "נתיב מים" }, "waterway/boatyard": { - "name": "מרינה" + "name": "מרינה", + "terms": "מרינה" }, "waterway/canal": { - "name": "תעלה" + "name": "תעלה", + "terms": "תעלה" }, "waterway/dam": { - "name": "סכר" + "name": "סכר", + "terms": "סכר" + }, + "waterway/ditch": { + "name": "תעלה", + "terms": "תעלה" + }, + "waterway/dock": { + "name": "רציף", + "terms": "רציף" + }, + "waterway/drain": { + "name": "נקז", + "terms": "נקז" }, "waterway/fuel": { - "name": "תחנת תדלוק ימית" + "name": "תחנת תדלוק ימית", + "terms": "תחנת תדלוק ימית" }, "waterway/river": { - "name": "נחל" + "name": "נחל", + "terms": "נחל" + }, + "waterway/riverbank": { + "name": "גדות נהר", + "terms": "גדות נהר" + }, + "waterway/sanitary_dump_station": { + "name": "סילוק פסולת ימי", + "terms": "סילוק פסולת ימי" + }, + "waterway/stream": { + "name": "נחל", + "terms": "נחל" + }, + "waterway/stream_intermittent": { + "name": "נחל תקופתי", + "terms": "נחל תקופתי" + }, + "waterway/water_point": { + "name": "תחנת מי שתיה ימי", + "terms": "תחנת מי שתיה ימי" }, "waterway/waterfall": { - "name": "מפל" + "name": "מפל", + "terms": "מפל" + }, + "waterway/weir": { + "name": "סכר", + "terms": "סכר" } } }, @@ -2287,7 +4063,8 @@ "DigitalGlobe-Premium-vintage": { "attribution": { "text": "תנאים ומשוב" - } + }, + "name": "דיגיטל גלוב' תצלומי אוויר פרמיום" }, "DigitalGlobe-Standard": { "attribution": { @@ -2300,12 +4077,21 @@ "attribution": { "text": "תנאים ומשוב" }, - "description": "גבולות ומועדי צילום. תוויות מופיעות ברמות תקריב של 14 ומעלה." + "description": "גבולות ומועדי צילום. תוויות מופיעות ברמות תקריב של 14 ומעלה.", + "name": "דיגיטל גלוב' תצלומי אוויר" }, "EsriWorldImagery": { "attribution": { "text": "תנאים ומשוב" - } + }, + "description": "ESRI תצלומי אוויר", + "name": "ESRI תצלומי אוויר" + }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "תנאים ומשוב" + }, + "name": "ESRI תצלומי אוויר (Clarity Beta)" }, "MAPNIK": { "attribution": { diff --git a/dist/locales/hr.json b/dist/locales/hr.json index 74394a50f..5142b1822 100644 --- a/dist/locales/hr.json +++ b/dist/locales/hr.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Ovo se ne može razdvojiti jer je spojeno na skriveni element karte." }, "restriction": { - "help": { - "select": "Klikni za odabir dijela ceste.", - "toggle": "Klikni za uključivanje zabrane skretanja.", - "toggle_on": "Klikni za dodavanje \"{restriction}\" zabrane.", - "toggle_off": "Klikni za uklanjanje \"{restriction}\" zabrane." - }, "annotation": { "create": "Zabrana skretanja je dodana", "delete": "Zabrana skretanja je uklonjena" @@ -574,6 +568,10 @@ "tag_suggests_area": "Oznaka {tag} ukazuje da bi linija trebala biti područje, ali nije područje", "deprecated_tags": "Zastarjele oznake: {tags}" }, + "zoom": { + "in": "Povećaj prikaz", + "out": "Smanji prikaz" + }, "cannot_zoom": "Nije moguće više udaljiti u trenutnom môdu.", "full_screen": "Slika preko cijelog zaslona", "gpx": { @@ -594,7 +592,19 @@ "view_on_mapillary": "Pogledaj ovu sliku na Mapillary" }, "help": { - "title": "Pomoć" + "title": "Pomoć", + "key": "H", + "help": { + "title": "Pomoć", + "open_data_h": "Slobodni podaci", + "before_start_h": "Prije nego počneš", + "open_source_h": "Otvoreni kod" + }, + "overview": { + "title": "Pregled", + "navigation_h": "Navigacija", + "features_h": "Elementi karte" + } }, "intro": { "done": "gotovo", diff --git a/dist/locales/hu.json b/dist/locales/hu.json index 396364939..9264d9f70 100644 --- a/dist/locales/hu.json +++ b/dist/locales/hu.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Nem lehet kettévágni, mert egy rejtett elemhez csatlakozik." }, "restriction": { - "help": { - "select": "Kattints egy útszakasz kiválasztásához.", - "toggle": "Kattints a kanyarodási tiltások átkapcsolásához.", - "toggle_on": "Kattints egy „{restriction}” korlátozás hozzáadásához.", - "toggle_off": "Kattints a(z) „{restriction}” korlátozás eltávolításához." - }, "annotation": { "create": "Kanyarodási tiltás hozzáadva", "delete": "Kanyarodási tiltás törölve" @@ -389,6 +383,8 @@ "title": "Mérés", "selected": "{n} kiválasztott", "geometry": "Geometria", + "closed_line": "zárt vonal", + "closed_area": "zárt terület", "center": "Középpont", "perimeter": "Kerület", "length": "Hossz", @@ -1132,6 +1128,23 @@ } } }, + "units": { + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "É", + "south": "D", + "east": "K", + "west": "Ny", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -3330,6 +3343,9 @@ "name": "Óvodaépület", "terms": "Iskolai előkészítő épület, ovi épület, bölcsőde épület, kisdedóvó épület, dedó épület" }, + "building/mosque": { + "name": "Mecset" + }, "building/public": { "name": "Középület", "terms": "Nyilvános épület" @@ -3638,6 +3654,9 @@ "emergency/private": { "name": "Vészhelyzeti használat: magántulajdon" }, + "emergency/water_tank": { + "name": "Vészhelyzeti víztartály" + }, "emergency/yes": { "name": "Vészhelyzeti használat" }, @@ -4779,6 +4798,7 @@ "terms": "pártszékház, politika, párt" }, "office/private_investigator": { + "name": "Magánnyomozó iroda", "terms": "" }, "office/quango": { @@ -5036,6 +5056,12 @@ "public_transport/stop_position_aerialway": { "name": "Felvonó megállási pont" }, + "public_transport/stop_position_bus": { + "name": "Busz megállási hely" + }, + "public_transport/stop_position_subway": { + "name": "Metró megállási hely" + }, "public_transport/stop_position_train": { "name": "Vasút megállási hely" }, @@ -5149,9 +5175,6 @@ "name": "Üzlet", "terms": "bolt, kereskedés, kiskereskedés" }, - "shop/agrarian": { - "name": "Mezőgazdasági bolt" - }, "shop/alcohol": { "name": "Alkoholüzlet", "terms": "unikum,pálinka,baileys,konyak,tokaji,vodka,wiszki,whiskey,kosher szilvapálinka,zwack" @@ -5494,7 +5517,7 @@ "terms": " Falfesték bolt, Tikkurila Festékbolt, Színkeverő bolt, Festék- vegyi áru szaküzlet" }, "shop/pastry": { - "name": "Süteménybolt", + "name": "Cukrászda", "terms": "cukrászda,sütemény,süti,torta" }, "shop/pawnbroker": { @@ -5999,6 +6022,11 @@ "description": "Esri World felvételek.", "name": "Esri World felvételek" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Feltételek és visszajelzés" + } + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap-közreműködők, CC-BY-SA" diff --git a/dist/locales/hy.json b/dist/locales/hy.json index c6f58dea9..7c4f39174 100644 --- a/dist/locales/hy.json +++ b/dist/locales/hy.json @@ -183,12 +183,6 @@ "connected_to_hidden": "Սա չի կարող կիսուել, քանի որ կապ ունի թաքնուած յատկութեան հետ։" }, "restriction": { - "help": { - "select": "Կտացնել ճանապարհային հատուած ընտրելու համար։", - "toggle": "Կտացնել շրջադարձի սահմանափակումները փոփոխելու համար։", - "toggle_on": "Կտացնել «{restriction}» սահմանափակումը աւելացնելու համար։", - "toggle_off": "Կտացնել «{restriction}» սահմանափակումը հեռացնելու համար։" - }, "annotation": { "create": "Աւելացուել է շրջադարձի սահմանափակում։", "delete": "Ջնջուել է շրջադարձի սահմանափակումը։" diff --git a/dist/locales/id.json b/dist/locales/id.json index fc1f5bc73..d7f38b418 100644 --- a/dist/locales/id.json +++ b/dist/locales/id.json @@ -183,12 +183,6 @@ "connected_to_hidden": "Tidak bisa dipotong karena terhubung dengan fitur tersembunyi." }, "restriction": { - "help": { - "select": "Klik untuk memilih segmen jalan.", - "toggle": "Klik untuk menentukan larangan belok kiri/kanan.", - "toggle_on": "Klik untuk menambahkan larangan \"{restriction}\".", - "toggle_off": "Klik untuk menghapus larangan \"{restriction}\"." - }, "annotation": { "create": "Menambahkan larangan belok", "delete": "Menghapus larangan belok" diff --git a/dist/locales/is.json b/dist/locales/is.json index 7d3209bca..b67cfcda1 100644 --- a/dist/locales/is.json +++ b/dist/locales/is.json @@ -18,21 +18,24 @@ }, "browse": { "title": "Fletta", - "description": "Færðu og þysjaðu kortið." + "description": "Hliðraðu til og renndu að kortinu." }, "draw_area": { "tail": "Smelltu til að bæta hnúta við svæðið. Smelltu á fyrsta hnútinn til að klára svæðið." }, "draw_line": { "tail": "Smelltu til að bæta fleiri hnútum við línuna. Smelltu á aðrar línur til að tengjast þeim, og tvísmelltu til að klára línuna." + }, + "drag_node": { + "connected_to_hidden": "Ekki hægt að breyta þessu því að falið eigindi tengist þessu." } }, "operations": { "add": { "annotation": { "point": "Bætti punkti við.", - "vertex": "Bætti hnút við leið.", - "relation": "Bætti við tengslum." + "vertex": "Bætti hnúti við leið.", + "relation": "Bætti við venslum." } }, "start": { @@ -42,7 +45,7 @@ } }, "continue": { - "key": " ", + "key": "A", "title": "Halda áfram", "description": "Halda áfram með línu.", "not_eligible": "Ekki hægt að framlengja neina línu hér.", @@ -77,18 +80,18 @@ "connected_to_hidden": "Ekki er hægt að gera þetta að hring því að það tengist földu eigindi." }, "orthogonalize": { - "title": "Ferhyrningur", + "title": "Hornrétta", "description": { "line": "Rétta horn þessarar línu.", "area": "Rétta horn þessa svæðis." }, "key": "S", "annotation": { - "line": "Réttaði horn á línu.", - "area": "Réttaði horn svæðis." + "line": "Rétti horn á línu.", + "area": "Rétti horn svæðis." }, "not_squarish": "Það er ekki hægt að hornrétta þetta því að það er ekki kassalaga", - "too_large": "Ekki hægt að hornrétta þar sem hluti er utan sjónsviðs.", + "too_large": "Ekki hægt að hornrétta þetta því ekki er nægur hluti þess sýnilegur.", "connected_to_hidden": "Ekki er hægt að hornrétta þetta því að það tengist földu eigindi." }, "straighten": { @@ -102,14 +105,32 @@ "delete": { "title": "Eyða", "description": { - "single": "Eyða þessu endanlega." + "single": "Eyða þessu endanlega.", + "multiple": "Eyða þessum fitjum endanlega." }, "annotation": { "point": "Eyddi punkti.", "vertex": "Eyddi hnút af leið.", "line": "Eyddi línu.", "area": "Eyddi svæði.", - "relation": "Eyddi tengslum." + "relation": "Eyddi venslum.", + "multiple": "Eyddi {n} fitjum." + }, + "too_large": { + "single": "Ekki hægt að eyða þessu því ekki er nægur hluti þess sýnilegur.", + "multiple": "Ekki hægt að eyða þessum atriðum því ekki er nægur hluti þeirra sýnilegur." + }, + "incomplete_relation": { + "single": "Ekki er hægt að eyða þessu atriði því að það er ekki fullhlaðið.", + "multiple": "Ekki er hægt að eyða þessum atriðum því að þau eru ekki fullhlaðin." + }, + "part_of_relation": { + "single": "Ekki hægt að eyða þessu atriði því það er hluti af stærri venslum. Þú þarft fyrst að fjarlægja það úr venslunum.", + "multiple": "Ekki hægt að eyða þessum atriðum því þau eru hluti af stærri venslum. Þú þarft fyrst að fjarlægja þau úr venslunum." + }, + "connected_to_hidden": { + "single": "Ekki hægt að eyða þessu því það tengist földu eigindi.", + "multiple": "Ekki hægt að breyta þessum atriðum því sum þeirra tengjast földum eigindum." } }, "add_member": { @@ -132,36 +153,119 @@ "key": "D", "annotation": "Aðskilja línur/svæði.", "not_connected": "Það eru ekki nógu margar línur/svæði hérna til að aftengja.", - "connected_to_hidden": "Það er ekki hægt að aftengja því að falið eigindi tengist þessu." + "connected_to_hidden": "Ekki er hægt að aftengja þetta því að það tengist földu eigindi.", + "relation": "Ekki hægt að aftengja þetta því það tengir saman meðlimi í venslum." }, "merge": { "title": "Sameina", + "description": "Sameina þessar fitjur.", "key": "C", - "not_eligible": "Það er ekki hægt að samfella þessa hluti." + "annotation": "Sameinaði {n} fitjur.", + "not_eligible": "Það er ekki hægt að sameina þessa hluti.", + "not_adjacent": "Það er ekki hægt að sameina þessi atriði því endapunktar þeirra eru ekki tengdir.", + "restriction": "Það er ekki hægt að sameina þessi atriði því a.m.k. eitt þeirra er hluti af \"{relation}\" venslum.", + "incomplete_relation": "Það er ekki hægt að sameina þessi atriði því ekki er búið að hlaða inn að fullu a.m.k. einu þeirra.", + "conflicting_tags": "Það er ekki hægt að sameina þessi atriði því sum merki þeirra eru ekki með samstæð gildi." }, "move": { "title": "Færa", + "description": { + "single": "Færa þessa fitju á annan stað.", + "multiple": "Færa þessar fitjur á annan stað." + }, "key": "M", "annotation": { "point": "Færði punkt.", "vertex": "Færði hnút á leið.", "line": "Færði línu.", - "area": "Færði svæði." + "area": "Færði svæði.", + "multiple": "Færði margar fitjur." + }, + "incomplete_relation": { + "single": "Ekki er hægt að færa þetta atriði því að það er ekki fullhlaðið.", + "multiple": "Ekki er hægt að færa þessi atriði því þau eru ekki fullhlaðin." + }, + "too_large": { + "single": "Ekki hægt að færa þetta atriði því ekki er nægur hluti þess sýnilegur.", + "multiple": "Ekki hægt að færa þessi atriði því ekki er nægur hluti þeirra sýnilegur." + }, + "connected_to_hidden": { + "single": "Ekki hægt að færa þetta atriði því það tengist földu eigindi.", + "multiple": "Ekki hægt að færa þessi atriði því sum þeirra tengjast földum eigindum." + } + }, + "reflect": { + "title": { + "long": "Spegla langsum", + "short": "Spegla þversum" + }, + "description": { + "long": { + "single": "Spegla þessari fitju um langás sinn.", + "multiple": "Spegla þessum fitjum um langása sína." + }, + "short": { + "single": "Spegla þessari fitju um styttri ás sinn.", + "multiple": "Spegla þessum fitjum um styttri ása sína." + } + }, + "key": { + "long": "T", + "short": "Y" + }, + "annotation": { + "long": { + "single": "Speglaði þessari fitju um langás sinn.", + "multiple": "Speglaði mörgum fitjum um langása sína." + }, + "short": { + "single": "Spegla þessari fitju um styttri ás sinn.", + "multiple": "Speglaði mörgum fitjum um styttri ása sína." + } + }, + "incomplete_relation": { + "single": "Ekki er hægt að spegla þessu atriði því að það er ekki fullhlaðið.", + "multiple": "Ekki er hægt að spegla þessum atriðum því að þau eru ekki fullhlaðin." + }, + "too_large": { + "single": "Ekki hægt að spegla þessu atriði því ekki er nægur hluti þess sýnilegur.", + "multiple": "Ekki hægt að spegla þessum atriðum því ekki er nægur hluti þeirra sýnilegur." + }, + "connected_to_hidden": { + "single": "Ekki hægt að spegla þessu atriði því það tengist földu eigindi.", + "multiple": "Ekki hægt að spegla þessum atriðum því sum þeirra tengjast földum eigindum." } }, "rotate": { "title": "Snúa", + "description": { + "single": "Snúa þessari fitju um miðpunkt sinn.", + "multiple": "Snúa þessum fitjum um sameiginlegan miðpunkt sinn." + }, "key": "R", "annotation": { "line": "Snéri línu.", - "area": "Snéri svæði." + "area": "Snéri svæði.", + "multiple": "Snéri mörgum fitjum." + }, + "incomplete_relation": { + "single": "Ekki er hægt að snúa þessu atriði því að það er ekki fullhlaðið.", + "multiple": "Ekki er hægt að snúa þessum atriðum því að þau eru ekki fullhlaðin." + }, + "too_large": { + "single": "Ekki hægt að snúa þessu atriði því ekki er nægur hluti þess sýnilegur.", + "multiple": "Ekki hægt að snúa þessum atriðum því ekki er nægur hluti þeirra sýnilegur." + }, + "connected_to_hidden": { + "single": "Ekki hægt að snúa þessu atriði því það tengist földu eigindi.", + "multiple": "Ekki hægt að snúa þessum atriðum því sum þeirra tengjast földum eigindum." } }, "reverse": { - "title": "Öfugt", + "title": "Snúa við", "description": "Láta þessa línu fara í öfuga átt.", "key": "V", - "annotation": "Snéri línu." + "annotation": "Snéri við línu." }, "split": { "title": "Aðskilja", @@ -177,82 +281,176 @@ "multiple": "Aðskilja {n} línur/svæði." }, "not_eligible": "Ekki er hægt að aðskilja línur við upphaf þeirra eða endi.", - "multiple_ways": "Of margar línur hér til að hægt sé að aðskilja." + "multiple_ways": "Of margar línur hér til að hægt sé að aðskilja.", + "connected_to_hidden": "Ekki er hægt að aðskilja þetta því að það tengist földu eigindi." }, "restriction": { - "help": { - "select": "Smelltu til að velja veghluta" + "annotation": { + "create": "Bætti við takmörkunum á beygju", + "delete": "Eyddi takmörkunum á beygju" } } }, "undo": { "tooltip": "Afturkalla: {action}", - "nothing": "Ekkert til að hætta við." + "nothing": "Ekkert til að afturkalla." }, "redo": { "tooltip": "Endurtaka: {action}", "nothing": "Ekkert til að endurtaka." }, - "tooltip_keyhint": "Flýtival:", + "tooltip_keyhint": "Flýtilykill:", + "browser_notice": "Þessi ritill er studdur af Firefox, Chrome, Safari, Opera og Internet Explorer 11 og betri. Endilega uppfærðu vafrann þinn eða notaðu Potlatch 2 til að breyta kortinu.", "translate": { "translate": "Þýða", - "localized_translation_label": "Margtyngt nafn", + "localized_translation_label": "Nafn á öðrum tungumálum", "localized_translation_language": "Veldu tungumál", "localized_translation_name": "Nafn" }, - "login": "innskrá", - "logout": "útskrá", + "zoom_in_edit": "Renndu að til að breyta", + "login": "innskráning", + "logout": "útskráning", "loading_auth": "Tengist við OpenStreetMap...", + "report_a_bug": "Tilkynna villu", + "help_translate": "Hjálpa til við að þýða", + "feature_info": { + "hidden_warning": "{count} faldar fitjur", + "hidden_details": "Þessar fitjur eru núna faldar: {details}" + }, "status": { "error": "Get ekki tengst við API.", "offline": "API er ekki tiltækur. Vinsamlegast reyndu að breyta aftur síðar.", - "readonly": "API er í lesham. Þú þarft að bíða með að vista breytingar." + "readonly": "API er í lesham. Þú þarft að bíða með að vista breytingar.", + "rateLimit": "API-forritsviðmótið takmarkar nafnlausar tengingar. Þú getur lagað þetta með því að skrá þig inn." }, "commit": { + "title": "Senda inn á OpenStreetMap", "upload_explanation": "Breytingarnar sem þú gerir verða sýnilegar á öllum kortum sem nota OpenStreetMap gögn.", "upload_explanation_with_user": "Breytingarnar sem þú gerir sem {user} verða sýnilegar á öllum kortum sem nota OpenStreetMap gögn.", + "request_review": "Ég myndi vilja að einhver yfirfæri breytingarnar mínar.", + "save": "Senda inn", "cancel": "Hætta við", "changes": "{count} breytingar", + "download_changes": "Sækja osmChange-skrá", "warnings": "Aðvaranir", "modified": "Breytt", "deleted": "Eytt", - "created": "Búið til" + "created": "Búið til", + "about_changeset_comments": "Um athugasemdir við breytingasett", + "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", + "google_warning": "Þú minntist á Google í þessari athugasemd: mundu að það er stranglega bannað að afrita úr Google Maps.", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "Breytingar frá {users}", "truncated_list": "Breytingar frá {users} og {count} öðrum" }, + "info_panels": { + "key": "I", + "background": { + "key": "B", + "title": "Bakgrunnur", + "zoom": "Aðdráttur", + "vintage": "Gamaldags", + "source": "Uppruni", + "description": "Lýsing", + "resolution": "Upplausn", + "accuracy": "Nákvæmni", + "unknown": "Óþekkt", + "show_tiles": "Sýna kortaflísar", + "hide_tiles": "Fela kortaflísar", + "show_vintage": "Sýna gamaldags", + "hide_vintage": "Fela gamaldags" + }, + "history": { + "key": "H", + "title": "Aðgerðaferill", + "selected": "{n} valin", + "version": "Útgáfa", + "last_edit": "Síðasta breyting", + "edited_by": "Breytt af", + "changeset": "Breytingasett", + "unknown": "Óþekkt", + "link_text": "Sagan á openstreetmap.org" + }, + "location": { + "key": "L", + "title": "Staðsetning", + "unknown_location": "Óþekkt staðsetning" + }, + "measurement": { + "key": "M", + "title": "Mæling", + "selected": "{n} valin", + "geometry": "Rúmfræði", + "closed_line": "lokuð lína", + "closed_area": "lokað svæði", + "center": "Miðja", + "perimeter": "Útjaðar", + "length": "Lengd", + "area": "Svæði", + "centroid": "Miðpunktur", + "location": "Staðsetning", + "metric": "Metrakerfi", + "imperial": "Breskt Imperial", + "node_count": "Fjöldi hnúta" + } + }, + "geometry": { + "point": "punktur", + "vertex": "hlið", + "line": "lína", + "area": "svæði", + "relation": "vensl" + }, "geocoder": { "search": "Leita hnattrænt...", - "no_results_visible": "Engar niðurstöður á sýndu korti", + "no_results_visible": "Engar niðurstöður á sýnilegum kortfleti", "no_results_worldwide": "Engar niðurstöður fundust" }, "geolocate": { - "title": "Sýna mína staðsetningu" + "title": "Sýna staðsetninguna mína", + "locating": "Staðset, bíddu aðeins..." }, "inspector": { - "no_documentation_combination": "Það er ekki til skjölun fyrir þessar samsettu merkingar", - "no_documentation_key": "Það er ekki til skjölun fyrir þennan efnislykil", + "no_documentation_combination": "Það eru ekki til nein hjálparskjöl fyrir þessar samsettu merkingar", + "no_documentation_key": "Það eru ekki til nein hjálparskjöl fyrir þennan efnislykil", + "documentation_redirect": "Þessu hjálparskjali hefur verið endurbeint á nýja síðu", "show_more": "Sýna meira", "view_on_osm": "Skoða á openstreetmap.org", + "all_fields": "Öll gagnasvið", "all_tags": "Öll merki", "all_members": "Allir meðlimir", - "all_relations": "Öll tengsl", - "new_relation": "Ný tengsl...", + "all_relations": "Öll vensl", + "new_relation": "Ný vensl...", "role": "Hlutverk", - "choose": "Veldu tegund", + "choose": "Veldu gerð eiginda", "results": "{n} niðurstöður fyrir {leit}", "reference": "Skoða á OpenStreetMap Wiki", - "back_tooltip": "Breyta eigindi", + "back_tooltip": "Breyta eigindum", "remove": "Fjarlægja", "search": "Leita", + "multiselect": "Valdar fitjur", "unknown": "Óþekkt", "incomplete": "", - "feature_list": "Leitareigindi", - "edit": "Breyta eigindi", + "feature_list": "Leita að fitjum/eigindum", + "edit": "Breyta fitju/eigindum", + "check": { + "yes": "Já", + "no": "Nei", + "reverser": "Breyta stefnu" + }, + "radio": { + "structure": { + "type": "Tegund", + "default": "Sjálfgefið", + "layer": "Lag" + } + }, + "add": "Bæta við", "none": "Ekkert", "node": "Hnútur", - "way": "Ferill", + "way": "Leið", "relation": "Vensl", "location": "Staðsetning", "add_fields": "Bæta við svæði:" @@ -260,53 +458,148 @@ "background": { "title": "Bakgrunnur", "description": "Bakgrunnsstillingar", + "key": "B", + "backgrounds": "Bakgrunnar", "none": "Ekkert", - "reset": "endurstilla" + "best_imagery": "Best þekkti brunnur myndefnis fyrir þessa staðsetningu", + "switch": "Skipta aftur í þennan bakgrunn", + "custom": "Sérsniðið", + "custom_button": "Breyta sérsniðnum bakgrunni", + "custom_prompt": "Settu inn sniðmát slóðar á kortatígul. Gild viðföng eru:\n - {zoom} eða {z}, {x}, {y} fyrir Z/X/Y tíglaskema\n - {-y} eða {ty} fyrir flett TMS-stíls Y-hnit\n - {u} fyrir fjórtígla skema (quadtile)\n - {switch:a,b,c} fyrir fléttugreiningu á DNS-þjóni (multiplexing)\n\nDæmi:\n{example}", + "overlays": "Þekjur", + "imagery_source_faq": "Upplýsingar myndefnis / Tilkynna vandamál", + "reset": "endurstilla", + "display_options": "Valkostir birtingar", + "brightness": "Birtustig", + "contrast": "Birtuskil", + "saturation": "Litmettun", + "sharpness": "Skerpa", + "minimap": { + "description": "Birta yfirlitskort", + "tooltip": "Birta smágert yfirlitskort sem hjálpar til við að staðsetja svæðið sem verið er að vinna með í kortaglugganum.", + "key": "/" + }, + "fix_misalignment": "Laga hliðrun mynda", + "offset": "Dragðu til í gráa svæðinu hér fyrir neðan til að laga til hliðrun myndefnis, eða settu inn gildi hliðrunar í metrum." }, "map_data": { + "title": "Kortagögn", "description": "Kortagögn", + "key": "F", "data_layers": "Gagnalög", - "fill_area": "Fylla svæði" + "layers": { + "osm": { + "tooltip": "Kortagögn frá OpenStreetMap", + "title": "OpenStreetMap-gögn" + } + }, + "fill_area": "Fylla svæði", + "map_features": "Fitjur á korti", + "autohidden": "Þessar fitjur hafa verið faldar sjálfvirkt því annars yrðu of margar sýndar á skjánum. Þú getur rennt að til að breyta þeim.", + "osmhidden": "Þessar fitjur hafa verið faldar sjálfvirkt því að OpenStreetMap-lagið er falið." }, "feature": { "points": { + "description": "Punktar", "tooltip": "Áhugaverðir staðir" }, + "traffic_roads": { + "description": "Umferðargötur", + "tooltip": "Þjóðvegir, götur, o.s.frv." + }, + "service_roads": { + "description": "Þjónustugötur", + "tooltip": "Þjónustugötur, bílastæðagangar, slóðir, o.s.frv." + }, + "paths": { + "description": "Stígar", + "tooltip": "Gangstéttir, göngustígar, hjólastígar, o.s.frv." + }, "buildings": { "description": "Byggingar", "tooltip": "Byggingar, skýli, bílskúrar oþh." }, + "landuse": { + "description": "Fitjur fyrir landnotkun", + "tooltip": "Skógar, Akurlendi, Garðar, Íbúðabyggð, Verslunarsvæði, o.s.frv." + }, "boundaries": { "description": "Svæðamörk", "tooltip": "Stjórnsýslumörk" }, "water": { + "description": "Vatnafitjur", "tooltip": "Ár, vötn, tjarnir, lón og fl." }, "rail": { - "description": "Lestareigindi" + "description": "Eigindi járnbrauta", + "tooltip": "Járnbrautarlestir" }, "power": { - "description": "Flóknari möguleikar" + "description": "Flóknari möguleikar", + "tooltip": "Raflínur, Orkuver, Tengivirki, o.s.frv." }, "past_future": { + "description": "Eldra/Framtíð", "tooltip": "Tillaga, í byggingu, í eyði, niðurrif oþh" }, "others": { + "description": "Annað", "tooltip": "Allt annað" } }, + "area_fill": { + "wireframe": { + "description": "Engin fylling (útlínuteikning)", + "tooltip": "Ef útlínuhamur er virkjaður er auðveldara að sjá myndefnið í bakgrunni.", + "key": "W" + }, + "partial": { + "description": "Fyllt að hluta", + "tooltip": "Svæði eru teiknuð með fyllingu innan við jaðra þeirra. (Mælt með þessu fyrir byrjendur í kortagerð)" + }, + "full": { + "description": "Fylla alveg", + "tooltip": "Svæði eru teiknuð fyllt yfir allan flötinn." + } + }, "restore": { "heading": "Þú átt óvistaðar breytingar", - "description": "Viltu endurvekja óvistaðar breytingar frá því síðast?" + "description": "Viltu endurvekja óvistaðar breytingar frá því síðast?", + "restore": "Endurheimta breytingarnar mínar", + "reset": "Henda breytingunum mínum" }, "save": { "title": "Vista", + "help": "Yfirfarðu breytingarnar og sendu þær inn á OpenStreetMap, þær verða þá sýnilegar öðrum notendum.", "no_changes": "Engar breytingar til að vista.", + "error": "Villa kom upp þegar reynt var að vista", + "status_code": "Þjónn svaraði með stöðukóða {code}", "unknown_error_details": "Aðgættu hvort að nettengingin er í lagi.", - "unsaved_changes": "Þú átt óvistaðar breytingar", + "uploading": "Hleð breytingum inn á OpenStreetMap.", + "conflict_progress": "Athuga með árekstra: {num} af {total}", + "unsaved_changes": "Þú ert með óvistaðar breytingar", "conflict": { - "next": "Næst >" + "header": "Leysa breytingar sem rekast á", + "count": "Árekstur {num} af {total}", + "previous": "< Fyrra", + "next": "Næst >", + "keep_local": "Halda mínu", + "keep_remote": "Nota þeirra", + "restore": "Endurheimta", + "delete": "Halda eyddu", + "download_changes": "Eða sækja osmChange-skrá", + "done": "Allir árekstrar leystir!", + "help": "Annar notandi breytti einhverjum þeim sömu eigindum og þú varst að breyta.\nSmelltu á hver eigindi fyrir sig hér fyrir neðan til að sjá nánari upplýsingar um árekstrana, og veldu hvort eigi að halda\nþínum breytingum eða breytingum hins notandans.\n" + } + }, + "merge_remote_changes": { + "conflict": { + "deleted": "Þessari fitju var eytt af {user}.", + "location": "Þessi fitja var færð bæði af þér og af {user}.", + "nodelist": "Hnútum var breytt bæði af þér og af {user}.", + "memberlist": "Meðlimum vensla var breytt bæði af þér og af {user}.", + "tags": "Þú breyttir {tag} merkinu í \"{local}\" og {user} breytti því í \"{remote}\"." } }, "success": { @@ -315,44 +608,257 @@ "view_on_osm": "Skoða á OSM", "facebook": "Deila á Facebook", "twitter": "Deila á Twitter", - "google": "Deila á Google+" + "google": "Deila á Google+", + "help_html": "Breytingarnar þínar ættu að birtast á \"staðlaða\" laginu innan skamms. Breytingar á öðrum lögum og ákveðnum eigindum gætu tekið lengri tíma.", + "help_link_text": "Nánar", + "help_link_url": "https://wiki.openstreetmap.org/wiki/FAQ#I_have_just_made_some_changes_to_the_map._How_do_I_get_to_see_my_changes.3F" + }, + "confirm": { + "okay": "Í lagi", + "cancel": "Hætta við" }, "splash": { - "welcome": "Velkomin/n í iD ritil OpenStreetMap", - "text": "iD er notandavænt tæki til að bæta við besta fría kortagrunn heimsins. Þetta er þróunarútgáfa {version}. Þú getur fengið meiri upplýsingar á vefnum {website} og tilkynnt villur {github}.", - "walkthrough": "Skoða leiðarvísir" + "welcome": "Velkomin í iD ritil OpenStreetMap", + "text": "iD er notendavænt en öflugt tæki til að bæta við besta frjálsa kortagrunn heimsins. Þetta er útgáfa {version}. Þú getur fengið meiri upplýsingar á vefnum {website} og tilkynnt villur á {github}.", + "walkthrough": "Skoða leiðarvísi", + "start": "Breyta núna" }, "source_switch": { "live": "raun", "lose_changes": "Þú átt óvistaðar breytingar. Að skipta um kortaþjón mun henda þeim. Ertu viss um að þú viljir skipta um kortaþjón?", "dev": "þróun" }, + "version": { + "whats_new": "Hvað er nýtt í iD {version}" + }, "tag_reference": { "description": "Lýsing", "on_wiki": "{tag} á wiki.osm.org", "used_with": "notað með {type}" }, "validations": { + "disconnected_highway": "Aftengdur þjóðvegur", + "disconnected_highway_tooltip": "Vegir ættu að vera tengdir í aðra vegi eða í innaganga í byggingar.", + "old_multipolygon": "Fjölhyrningamerki á ytri leið", + "old_multipolygon_tooltip": "Þessi stíll fjölhyrnings er úreltur. Úthlutaðu merkjunum á forvera-fjölhyrninginn (parent) í stað ytri ferilsins.", "untagged_point": "Ómerktur punktur", + "untagged_point_tooltip": "Veldu tegund eiginda sem lýsir því hvað þessi punktur er.", "untagged_line": "Ómerkt lína", + "untagged_line_tooltip": "Veldu tegund eiginda sem lýsir því hvað þessi lína er.", "untagged_area": "Ómerkt svæði", + "untagged_area_tooltip": "Veldu tegund eiginda sem lýsir því hvað þetta svæði er.", + "untagged_relation": "Ómerkt vensl", + "untagged_relation_tooltip": "Veldu tegund eiginda sem lýsir því hvað þessi vensl standa fyrir.", + "many_deletions": "Þú ert að eyða {n} fitjum: {p} hnútar, {l} línur, {a} svæði, {r} vensl. Ertu viss um að þú viljir gera þetta? Þetta mun eyða þeim af kortinu sem allir nota á openstreetmap.org.", "tag_suggests_area": "Merkingin {tag} þýðir að línan ætti að vera svæði, en hún er ekki svæði", "deprecated_tags": "Úrelt merki: {tags}" }, - "cannot_zoom": "Get ekki þysjað lengra út í núverandi ham.", + "zoom": { + "in": "Renna að", + "out": "Renna frá" + }, + "cannot_zoom": "Get ekki rennt lengra frá í núverandi ham.", + "full_screen": "Víxla skjáfylli af/á", + "gpx": { + "local_layer": "Skrá á tölvunni", + "drag_drop": "Dragðu og slepptu .gpx, .geojson eða .kml-skrá á síðuna, eða smelltu á hnappinn til hægri til að leita að skrá", + "zoom": "Renna að lagi", + "browse": "Finna skrá" + }, + "mapillary_images": { + "tooltip": "Ljósmyndir í götuhæð frá Mapillary", + "title": "Ljósmyndaþekja (Mapillary)" + }, + "mapillary_signs": { + "tooltip": "Umferðarmerki frá Mapillary (verður að virkja ljósmyndaþekju)", + "title": "Umferðarmerkjaþekja (Mapillary)" + }, "mapillary": { "view_on_mapillary": "Skoða þessa mynd á Mapillary" }, + "openstreetcam_images": { + "tooltip": "Ljósmyndir í götuhæð frá OpenStreetCam", + "title": "Ljósmyndaþekja (OpenStreetCam)" + }, + "openstreetcam": { + "view_on_openstreetcam": "Skoða þessa mynd á OpenStreetCam" + }, "help": { - "title": "Hjálp" + "title": "Hjálp", + "key": "H", + "help": { + "title": "Hjálp", + "welcome": "Velkomin í iD ritilinn fyrir [OpenStreetMap](https://www.openstreetmap.org/). Með þessum ritli geturðu uppfært OpenStreetMap beint úr vafranum þínum.", + "open_data_h": "Opin gögn", + "open_data": "Breytigar sem þú gerir á þessu korti verða sýnilegar öllum þeim sem nota OpenStreetMap. Breytingarnar þínar geta byggst á persónulegri þekkingu, mælingum á staðnum, eða myndefni sem safnað er úr loftmyndum eða myndum teknum í götuhæð. Afritun úr höfundarréttarvörðu efni eins og Google Maps, [er stranglega bannað](https://www.openstreetmap.org/copyright).", + "before_start_h": "Áður en þú byrjar", + "before_start": "Þú þyrftir að vera kunnug(ur) OpenStreetMap og þessum ritli áður en þú hefst handa við breytingar. iD kemur með skref-fyrir-skref leiðarvísi sem getur kennt þér grunnatriði við breytingar á OpenStreetMap. Smelltu á \"Skoða leiðarvísi\" á þessum skjá til að fara í kennsluna - þetta tekur einungis um 15 mínútur.", + "open_source_h": "Opinn hugbúnaður", + "open_source": "iD ritillinn er samstarfsverkefni um opinn og frjálsan hugbúnað, og ert þú að nota núna útgáfu {version}. Grunnkóðinn er til taks [á GitHub](https://github.com/openstreetmap/iD).", + "open_source_help": "Þú getur hjálpað iD með því að [þýða](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) hann eða með því að [tilkynna villur](https://github.com/openstreetmap/iD/issues)." + }, + "overview": { + "title": "Yfirlit", + "navigation_h": "Leiðsögn", + "navigation_drag": "Þú getur dregið til kortið með því að ýta á og halda niðri {leftclick} vinstri músarhnappnum og færa síðan til músarbendilinn. Þú getur líka notað `↓`, `↑`, `←`, `→` örvalyklana á lyklaborðinu þínu.", + "navigation_zoom": "Þú getur rennt inn eða út á kortinu með því að skruna með músarhjólinu eða snertiplatta, eða með því að smella á {plus} / {minus} hnappana við hlið kortsins. Þú getur líka notað `+`, `-` lyklana á lyklaborðinu þínu.", + "features_h": "Fitjur á korti", + "features": "Við notum orðin *fitjur* og *eigindi* til að lýsa atriðum sem birtast á kortinu, svo sem vegum, byggingum eða áhugaverðum stöðum. Hvað sem er í raunheimi er hægt að tákna með fitjum/eigindum í OpenStreetMap. Fitjur á korti eru birtar með því að nota *punkta*, *línur*, eða *svæði*.", + "nodes_ways": "Í OpenStreetMap eru punktar stundum kallaðir *hnútar*, eins eru línur og svæði stundum kölluð *leiðir*." + }, + "editing": { + "title": "Breytingar og vistun", + "select_h": "Velja", + "select_left_click": "{leftclick} Vinstri-smelltu á fitju til að velja hana. Það mun áherslulita hana með púlsandi ljóma jafnframt því að hliðarspjaldið mun birta allar helstu upplýsingar um þessa fitju, svo sem eins og heiti hennar og heimilisfang/staðsetningu.", + "select_right_click": "{rightclick} Hægri-smelltu á fitju til að birta breytingavalmyndina, sem sýnir hvaða skipanir eru tiltækar, svo sem snúningur, tilfærsla og eyðing.", + "multiselect_h": "Velja margt", + "multiselect_shift_click": "`{shift}`+{leftclick} vinstri-smelltu til að velja margar fitjur saman. Þetta auðveldar að færa eða eyða mörgum atriðum.", + "multiselect_lasso": "Önnur leið til að velja margar fitjur er að halda niðri `{shift}` lyklinum, síðan ýta á og halda niðri {leftclick} vinstri músarhnappnum og draga músarbendilinn til að teikna valsvæði. Allir punktar innan valsvæðisins verða þá valdir.", + "undo_redo_h": "Afturkalla og endurtaka", + "undo_redo": "Breytingarnar eru geymdar staðvært í vafranum þínum þangað til þú velur að vista þær inn á OpenStreetMap-vefþjóninn. Þú getur afturkallað breytingar með því að smella á {undo} **Afturkalla** hnappinn, og endurtekið þær með því að smella á {redo} **Endurtaka** hnappinn.", + "save_h": "Vista", + "save": "Smelltu á {save} **Vista** til að ljúka breytingunum þínum og senda þær inn á OpenStreetMap. Þú ættir að muna eftir að vista reglulega vinnuna þína!", + "save_validation": "Á vistunarskjánum hefurðu tækifæri til að yfirfara það sem þú ert búin(n) að gera. iD framkvæmir einnig nokkrar grunnathuganir á hvort gögn vanti og gæti boðið upp á hjálpsamlegar tillögur og aðvaranir ef eitthvað virðist ekki vera í lagi.", + "upload_h": "Senda inn", + "upload": "Áður en þú sendir breytingarnar þínar inn verðurðu að skrifa [athugasemd með breytingasettinu](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). Síðan smellirðu á **Senda inn** svo að breytingarnar fari inn í OpenStreetMap, þar sem þær verða samtvinnaðar inn í kortið og verða sýnilegar öllum sem nota það.", + "backups_h": "Sjálfvirk öryggisafritun", + "backups": "Ef þú getur ekki lokið öllum breytingunum þínum í einni setu, til dæmis ef tölvan þín hrynur eða ef þú lokaðir óvart flipanum í vafranum, verða breytingarnar þínar eftir sem áður vistðar í geymsluminni vafrans. Þú getur komið aftur síðar (í sama vafra á sömu tölvu), og mun iD þá bjóðast til að endurheimta vinnuna þína.", + "keyboard_h": "Flýtilyklar", + "keyboard": "Þú getur skoðað lista yfir flýtileiðir á lyklaborði með því að ýta á `?` lykilinn." + }, + "feature_editor": { + "title": "Fitjuritill", + "intro": "*Fitjuritillinn* birtist við hlið kortsins og gerir þér kleift að skoða og vinna með allar upplýsingar tengdar valinni fitju.", + "definitions": "Efsti hlutinn birtir gerð fitjunnar. Miðhlutinn inniheldur *gagnasvið* sem sýna eigindi fitjunnar, svo sem eins og heiti hennar og heimilisfang/staðsetningu.", + "type_h": "Gerð fitju", + "type": "Þú getur smellt á gerð fitjunnar til að breyta henni í einhverja aðra tegund. Öllu sem til er í raunheimum á að vera hægt að bæta inn í OpenStreetMap, þannig að það eru þúsundir mismunandi eiginda sem hægt er að velja úr.", + "type_picker": "Tegundavalið birtir algengustu gerðir eiginda, svo sem garða, sjúkrahús, veitingastaði, vegi og byggingar. Þú getur leitað að hverju sem er með því að skrifa inn í leitarreitinn. Þú getur líka smellt á {inspect} **upplýsinga** táknmyndina næst fitjutegundinni til að fræðast meira um hana.", + "fields_h": "Gagnasvið", + "fields_all_fields": "Hlutinn \"Öll gagnasvið\" inniheldur öll þau eigindi fitju sem þú getur breytt. Í OpenStreetMap eru öll gagnasviðin valkvæð, og það er í góðu lagi að skilja gagnasvið eftir autt ef þú ert ekki viss.", + "fields_example": "Hver gerð fitju mun birta mismunandi gagnasvið. Sem dæmi má nefna að gata mun birta svið fyrir vegyfirborð og hraðatakmarkanir, en veitingastaður mun aftur birta svið fyrir hvaða tegundir matar þar fást og á hvaða tímum hann er opinn.", + "fields_add_field": "Þú getur líka smellt á \"Bæta við gagnasviði\" fellilistann til að bæta við fleiri sviðum, svo sem lýsingu, Wikipedia-tengli, hjólastólaaðgangi, og fleiru.", + "tags_h": "Merki", + "tags_all_tags": "Fyrir neðan hlutann með gagnasviðunum, er annar hluti með heitinu \"Öll merki\" sem þú getur flett út til að vinna með hvert einasta OpenStreetMap *merki* fyrir valda fitju. Hvert merki samanstendur af *lykill* (key) og *gildi* (value), gagnaeinindum sem skilgreina öll eigindi/fitjur sem geymd eru í OpenStreetMap.", + "tags_resources": "Breytingar á merkjum eiginda/fitja krefst nokkurrar þekkingar á OpenStreetMap. Þú ættir að fletta upp í heimildum á borð við [wiki-síður OpenStreetMap](https://wiki.openstreetmap.org/wiki/Main_Page) eða [Taginfo](https://taginfo.openstreetmap.org/) til að vita meira um ásættanlegar aðferðir við merkingar í OpenStreetMap." + }, + "points": { + "title": "Punktar", + "intro": "Punktar geta táknað hluti eins og verslanir, veitingahús og minnismerki. Þeir merkja ákveðinn stað og lýsa því hvað er þar.", + "add_point_h": "Bæta við punktum", + "add_point": "Til að bæta við punkti, smelltu á {point} **Punktur** hnappinn á verkfærastikunni fyrir ofan kortið, eða ýttu á flýtilykilinn `1`. Þá breytist músarbendillinn í krossmið.", + "add_point_finish": "Til að setja nýjan punkt á kortið, staðsettu þá músarbendilinn þar sem punkturinn á að vera, síðan skaltu {leftclick} vinstri-smella eða ýta á `Bilslá`.", + "move_point_h": "Færa punkta", + "move_point": "Til að færa punkt, staðsettu þá músarbendilinn yfir punktinum, ýttu og haltu niðri {leftclick} vinstri músarhnappnum á meðan punkturinn er dreginn yfir á nýju staðsetninguna.", + "delete_point_h": "Eyða punktum", + "delete_point": "IÞað er í góðu lagi að eyða fitjum sem ekki eru til í raunheimum. Eyðing fitju úr OpenStreetMap fjarlægir hana af kortinu sem allir nota, þannig að þú ættir að ganga tryggilega úr skugga um að hún sé raunverulega horfin áður en þú eyðir henni.", + "delete_point_command": "Til að eyða punkti, {rightclick} hægri-smelltu á punktinn til að velja hann og birta í leiðinni breytingavalmyndina, notaðu síðan {delete} **Eyða** skipunina." + }, + "lines": { + "title": "Línur", + "intro": "*Línur* eru notaðar til að tákna fyrirbæri eins og vegi, lestarteina og árfarvegi. Línur ætti að teikna eftir miðju þeirra fyrirbæra sem þær tákna.", + "add_line_h": "Bæta við línum", + "add_line": "Til að bæta við línu, smelltu á {line} **Lína** hnappinn á verkfærastikunni fyrir ofan kortið, eða ýttu á flýtilykilinn `2`. Þá breytist músarbendillinn í krossmið.", + "add_line_draw": "Næst skaltu setja bendilinn þar sem línan ætti að byrja og {leftclick} vinstri-smella eða ýta á `Bilslá` til að fara að setja hnúta eftir línunni. Haltu áfram að setja fleiri hnúta með því að smella eða ýta á `Bilslá`. Á meðan þessu stendur, geturðu breytt aðdrættinum eða dregið til kortið til að geta bætt við fleiri atriðum.", + "add_line_finish": "Til að ljúka línu, ýttu á `{return}` eða smelltu aftur á síðasta hnútinn.", + "modify_line_h": "Breyta línum", + "modify_line_dragnode": "Oft muntu sjá línur sem ekki eru formaðar rétt, til dæmis vegi sem ekki falla saman við veginn eins og hann er á bakgrunnsmynd. Til að laga lögun línu, {leftclick} vinstri-smelltu fyrst á hana til að velja hana. Allir hnútar línunnar breytast í litla hringi. Þá geturðu dregið hnútana til á betri staðsetningar.", + "modify_line_addnode": "Þú getur líka búið til nýja hnúta á línuna annað hvort með því að {leftclick}**x2** tvísmella á línuna eða með því að draga til litlu þríhyrningana nálægt miðju milli hnúta.", + "connect_line_h": "Tengja línur", + "connect_line": "Að tengja vegi rétt er mjög mikilvægt fyrir kortið og algerlega nauðsynlegt til að geta gefið akstursleiðsögn.", + "connect_line_display": "Tengingar milli vega eru táknaðar með gráum hringjum. Endapunktar línu eru teiknaðir með stærri hvítum hringjum ef þeir tengjast ekki í neitt.", + "connect_line_drag": "Til að tengja línu í aðra fitju, dragðu þá einn af hnútum hennar yfir á hina fitjuna þar til fitjurnar smella saman. Ábending: Þú getur haldið niðri `{alt}` lyklinum til að hindra fitjur í því að tengjast við aðrar fitjur.", + "connect_line_tag": "Ef þú veist að tengingin sé með umferðarljós eða gangbrautir, geturðu bætt þessum atriðum við með því að velja tengihnútinn og nota fitjuritilinn til að velja rétt eigindi.", + "disconnect_line_h": "Aftengja línur", + "disconnect_line_command": "Til að aftengja veg frá annari fitju, {rightclick} hægri-smelltu á tengihnútinn og veldu {disconnect} **Aftengja** skipunina úr breytingavalmyndinni.", + "move_line_h": "Færa línur", + "move_line_command": "Til að færa heila línu, {rightclick} hægri-smelltu á línuna og veldu {move} **Færa** skipunina úr breytingavalmyndinni. Færðu síðan bendilinn á réttan stað og {leftclick} vinstri-smelltu til að koma línunni fyrir á nýja staðnum.", + "move_line_connected": "Línur sem eru tengdar við aðrar línur munu haldast tengdar eftir að hafa verið færðar á nýjan stað. iD gæti komið í veg fyrir að þú færir tengda línu yfir aðra tengda línu.", + "delete_line_h": "Eyða línum", + "delete_line": "Ef lína er algerlega röng, til dæmis vegur sem ekki er lengur til staðar í raunheimum, er í góðu lagi að eyða honum. En farðu varlega við að eyða fitjum: bakgrunnsmyndirnar sem þú ert að nota gætu verið úreldar og vegurinn sem lítur út fyrir að vera rangur, gæti einfaldlega verið nýbyggður.", + "delete_line_command": "Til að eyða línu, {rightclick} hægri-smelltu á línuna til að velja hana og birta í leiðinni breytingavalmyndina, notaðu síðan {delete} **Eyða** skipunina." + }, + "areas": { + "title": "Svæði", + "intro": "*Svæði* eru notuð til að sýna jaðra á fitjum eins og vötnum, byggingum og íbúðahverfum. Svæði á að teikna í kringum útjaðar fyrirbæranna sem þau tákna, til dæmis við útlínur á grunni byggingar.", + "point_or_area_h": "Punktar eða svæði?", + "point_or_area": "Mörg fyrirbæri er hægt að tákna bæði sem punkt eða sem svæði. Meginreglan er að teikna byggingar og lóðir sem svæði þegar það er mögulegt. Settu síðan punkta inn í svæði byggingar til að tákna fyrirtæki, aðstöðu og annað slíkt sem staðsett er inni í byggingunni.", + "add_area_h": "Bæta við svæðum", + "add_area_command": "Til að bæta við cvæði, smelltu á {area} **Svæði** hnappinn á verkfærastikunni fyrir ofan kortið, eða ýttu á flýtilykilinn `3`. Þá breytist músarbendillinn í krossmið.", + "add_area_draw": "Næst skaltu setja bendilinn á eitt horn fitjunnar og {leftclick} vinstri-smella eða ýta á `Bilslá` til að fara að setja hnúta eftir útjaðri svæðisins. Haltu áfram að setja fleiri hnúta með því að smella eða ýta á `Bilslá`. Á meðan þessu stendur, geturðu breytt aðdrættinum eða dregið til kortið til að geta bætt við fleiri atriðum.", + "add_area_finish": "Til að ljúka svæði, ýttu á `{return}` eða smelltu aftur á annað hvort fyrsta eða síðasta hnútinn.", + "square_area_h": "Rétt horn", + "square_area_command": "Margar fitjur svæða eins og t.d. byggingar eru með köntuð horn. Til að gera horn svæðis köntuð, {rightclick} hægri-smelltu á tengihnútinn og veldu {orthogonalize} **Hornrétta** skipunina úr breytingavalmyndinni.", + "modify_area_h": "Breyta svæðum", + "modify_area_dragnode": "Oft muntu sjá svæði sem ekki eru formuð rétt, til dæmis byggingar sem ekki falla saman við bygginguna eins og hún er á bakgrunnsmynd. Til að laga lögun svæðis, {leftclick} vinstri-smelltu fyrst á hana til að velja það. Allir hnútar svæðisins breytast í litla hringi. Þá geturðu dregið hnútana til á betri staðsetningar.", + "modify_area_addnode": "Þú getur líka búið til nýja hnúta meðfram svæði annað hvort með því að {leftclick}**x2** tvísmella á svæðið eða með því að draga til litlu þríhyrningana nálægt miðju milli hnúta.", + "delete_area_h": "Eyða svæðum", + "delete_area": "Ef svæði er algerlega rangt, til dæmis bygging sem ekki er lengur til staðar í raunheimum, er í góðu lagi að eyða henni. En farðu varlega við að eyða fitjum: bakgrunnsmyndirnar sem þú ert að nota gætu verið úreltar og byggingin sem lítur út fyrir að vera röng, gæti einfaldlega verið nýbyggð.", + "delete_area_command": "Til að eyða svæði, {rightclick} hægri-smelltu á svæðið til að velja það og birta í leiðinni breytingavalmyndina, notaðu síðan {delete} **Eyða** skipunina." + }, + "relations": { + "title": "Vensl", + "intro": "*Vensl* (relation) er sérstök tegund eiginda í OpenStreetMap sem hópar saman önnur eigindi/fitjur. Fitjur eða eigindi sem tilheyra venslum kallast *meðlimir* (members), og getur hver meðlimur haft *hlutverk* (role) í venslunum.", + "edit_relation_h": "Breytingar á venslum", + "edit_relation": "Neðst í fitjuritlinum geturðu flett út hlutanum \"Öll vensl\" til að sjá hvort valin fitja sé meðlimur í einhverjum venslum. Þú getur svo smellt á venslin til að velja þau og breyta þeim.", + "edit_relation_add": "Til að bæta fitju við vensl, veldu þá fitjuna, smelltu síðan á {plus} plúshnappinn í \"Öll vensl\" hluta fitjuritilsins. Þú getur þá valið úr lista yfir nálæg vensl eða farið á valkostinn \"Ný vensl...\".", + "edit_relation_delete": "Þú getur einnig smellt á {delete} **Eyða** hnappin til að fjarlægja völdu fitjuna úr venslunum. Ef þú fjarlægir alla meðlimi úr venslum, verður þeim venslum eytt sjálfvirkt.", + "maintain_relation_h": "Viðhalda venslum", + "maintain_relation": "Oftast nær mun iD viðhalda venslum um leið og þú sýslar með breytingar. Þú ættir að fara varlega þegar þú ert að skipta út fitjum sem gætu verið meðlimir í venslum. Til dæmis ef þú eyðir vegbút og teiknar nýjan veghluta í stað hans, ættirðu að bæta nýja veghlutanum í sömu vensl (vegir, beygjutakmarkanir, o.s.frv.) eins og upprunalegi vegurinn hafði.", + "relation_types_h": "Tegundir vensla", + "multipolygon_h": "Fjölhyrningar (Flákar)", + "multipolygon": "Venslin *fjölhyrningur* er hópur af einni eða fleiri *ytri* fitjum og einni eða fleiri *innri* fitjum. Ytri fitjurnar skilgreina útjaðra fjölhyrningsins og innri fitjurnar skilgreina undirsvæði eða holur sem skornar eru út úr innri fleti fjölhyrningsins.", + "multipolygon_create": "Til að búa til fjölhyrning, til dæmis byggingu með inngarði, teiknaðu þá útjaðarinn sem svæði og svo innri jaðrana sem línu eða annarskonar svæði. Síðan skaltu nota `{shift}`+{leftclick} vinstri-smell til að velja báðar fitjurnar, {rightclick} hægri-smella til að birta breytingavalmyndina, og velja síðan {merge} **Sameina** skipunina.", + "multipolygon_merge": "Sameining nokkurra lína eða svæða mun útbúa ný fjölhyrningsvensl með öll valin svæði sem meðlimi. iD mun velja innri og ytri hlutverkin sjálfvirkt, byggt á því hvaða fitjur eru innan í öðrum fitjum.", + "turn_restriction_h": "Takmarkanir á beygjum", + "turn_restriction": "Venslin *takmörkun á beygjum* er hópur nokkurra vegbúta á vegamótum. Takmarkanir á beygjum samanstanda af *frá* (from) vegi, *gegnum* (via) hnút eða vegi, og *til* (to) vegar.", + "turn_restriction_field": "Til að breyta beygjutakmörkunum, veldu þá tengihnút þar sem tveir eða fleiri vegir mætast. Fitjuritillinn mun birta sérstakt \"Takmarkanir á beygjum\" gagnasvið sem sýnir líkan af gatnamótunum.", + "turn_restriction_editing": "Í gagnasviðinu \"Takmarkanir á beygjum\", smelltu til að velja \"frá\" (from) veg, og skoðaðu hvort beygjur séu leyfðar eða takmarkaðar við einhverja af \"til\" (to) vegina. Þú getur smellt á beygjutáknin til að víxla þeim á milli leyft og takmarkað. iD mun útbúa venslin sjálfvirkt og stilla hlutverkin 'frá', 'gegnum', og 'til' eftir því sem þú hefur valið.", + "route_h": "Leiðir", + "route": "Venslin *leið* er hópur einnar eða fleiri fitja sem saman mynda leiðakerfi, svo sem eins og strætisvagnaleið, gönguleið eða þjóðveg.", + "route_add": "Til að bæta fitju við leiðavensl, veldu þá fitjuna og skrunaðu niður í hlutann \"Öll vensl\" í fitjuritlinum, smelltu síðan á {plus} plúshnappinn til að bæta þessari fitju við einhver nærliggjandi vensl eða í ný vensl.", + "boundary_h": "Svæðamörk", + "boundary": "Venslin *svæðamörk* er hópur einnar eða fleiri línufitja sem saman mynda stjórnsýslutengd mörk svæða.", + "boundary_add": "Til að bæta fitju við svæðamarkavensl, veldu þá fitjuna og skrunaðu niður í hlutann \"Öll vensl\" í fitjuritlinum, smelltu síðan á {plus} plúshnappinn til að bæta þessari fitju við einhver nærliggjandi vensl eða í ný vensl." + }, + "imagery": { + "title": "Bakgrunnsmyndir", + "intro": "Bakgrunnsmyndefnið sem birtist fyrir aftan kortagögnin er mikilvæg tilföng í kortagerð. Þetta geta verið loftmyndir teknar af gervitunglum, flugvélum eða drónum, nú eða söguleg landakort eða önnur tiltæk gögn.", + "sources_h": "Uppruni myndefnis", + "choosing": "Til að sjá hvaða myndabankar eru tiltækir til að nota við vinnsluna, smelltu á hnappinn {layers} **Bakgrunnsstillingar** við hlið kortsins.", + "sources": "Sjálfgefið er [Bing Maps](https://www.bing.com/maps/) gervihnattalag valið sem bakgrunnsmynd. Það fer eftir því hvar þú ert að vinna hvort aðrir myndabankar séu tiltækir. Sumir þeirra gætu verið með nýrri myndir eða í betri upplausn, þannig að það getur borgað sig að athuga hvaða myndalag sé best til að nota sem viðmiðun í kortagerðinni.", + "offsets_h": "Laga hliðrun mynda", + "offset": "Mynsednið er einstaka sinnum örlítið hliðrað miðað við nákvæm kortagögnin. Ef þú sérð að margar byggingar og vegir liggja til hliðar við það sem sést á bakgrunnsmyndunum, þá gæti verið að myndirnar séu ekki rétt stilltar og þá ættir þú alls ekki að færa til fitjurnar svo þær passi við bakgrunninn. Í staðinn geturðu lagað bakgrunninn þannig að hann passi sem best við fyrirliggjandi gögn með því að fara í \"Laga hliðrun mynda\" neðst í bakgrunnsstillingaspjaldinu.", + "offset_change": "Smelltu á litlu þríhyrningana til að laga hliðrun mynda í litlum þrepum, eða haltu niðri vinstri músarhnappnum og dragðu til innan í gráa ferhyrningnum til að renna myndinni á réttan stað." + }, + "streetlevel": { + "title": "Ljósmyndir í götuhæð", + "intro": "Ljósmyndir teknar í götuhæð nýtast vel við að setja inn upplýsingar um umferðarmerki, fyrirtæki og önnur fyrirbæri sem ekki er gott að átta sig á af gervihnattamyndum og loftmyndum. iD ritillinn styður ljósmyndir í götuhæð frá [Mapillary](https://www.mapillary.com) og [OpenStreetCam](https://www.openstreetcam.org).", + "using_h": "Nota ljósmyndir í götuhæð", + "using": "Til að nota ljósmyndir í götuhæð við kortagerð, smelltu á spjaldið {data} **Kortagögn** við hlið kortsins til að virkja tiltæk myndalög eða gera þau óvirk.", + "photos": "Þegar það er virkt, sýnir myndalag línu meðfram myndarununni. Við hærri aðdráttarstig merkir hringur staðsetningu hverrar myndar, og við enn hærri aðdráttarstig birtist keila sem sýnir stefnuna sem myndavélinni var beint í þegar myndin var tekin.", + "viewer": "Þegar þú smellir á staðsetningu einhverrar myndar, birtist myndaskoðari í neðri hluta kortsins. Myndaskoðarinn er með stýringar til að hægt sé að fara áfram og afturábak í myndarununni. Hann sýnir einnig notandanafn þess sem tók myndina, tökudagsetningu, og einnig tengil sem hægt er að fylgja til að skoða myndina á upprunalegu vefsvæði." + }, + "gps": { + "title": "GPS-ferlar", + "intro": "Söfnun GPS-ferla er mikilvægur þáttur í þeim gögnum sem notuð eru í OpenStreetMap. Þessi ritill styður notkun á *.gpx*, *.geojson* og *.kml* files af tölvunni þinni. Þú getur safnað GPS-ferlum með snjallsíma, íþróttaúri eða öðrum GPS-tækjum.", + "survey": "Til að skoða upplýsingar um hvernig framkvæma eigi GPS-mælingar, lestu [Kortagerð með snjallsíma, GPS eða pappír](http://learnosm.org/en/mobile-mapping/).", + "using_h": "Nota GPS-ferla", + "using": "Til að nota GPS-feril til kortagerðar, dragðu og slepptu gagnaskrána yfir í kortaritilinn. Ef hún er metin gild, verður ferillinn teiknaður á kortið með ljósfjólublárri línu. Smelltu á {data} **Kortagögn** spjaldið við hlið kortsins til að virkja, gera óvirkt eða renna inn að GPS-gögnunum þínum.", + "tracing": "GPS-ferillinn er ekki sendur til OpenStreetMap - besta leiðin til að nota hann er við teikningu á kortið, nota hann til stuðnungs við fitjur eða eigindi sem þú setur inn.", + "upload": "Þú getur líka [sent GPS-gögnin þín inn á OpenStreetMap](https://www.openstreetmap.org/trace/create) svo að aðrir notendur geti stuðst við þau." + } }, "intro": { + "done": "lokið", + "ok": "Í lagi", "graph": { "block_number": "", + "city": "Þrísprænubær", "county": "", "district": "", "hamlet": "", "neighbourhood": "", + "postcode": "493", "province": "", "quarter": "", "state": "", @@ -372,42 +878,427 @@ "10th-avenue": "10da breiðgata", "11th-avenue": "11ta breiðgata", "12th-avenue": "12ta breiðgata", + "access-point-employment": "Ráðningastofan Ráðvillt", "adams-street": "Adamsstræti", "andrews-elementary-school": "Grunnskóli Aragötu", "andrews-street": "Aragata", - "lynns-garage": "Bílskúr Lísu" + "armitage-street": "Armæðustræti", + "barrows-school": "Bjarnþórsskóli", + "battle-street": "Rósturstræti", + "bennett-street": "Binnastræti", + "bowman-park": "Bangsagarður", + "collins-drive": "Karlabraut", + "conrail-railroad": "Flugvallarhraðlestin", + "conservation-park": "Grasagarðurinn", + "constantine-street": "Þingeyrastræti", + "cushman-street": "Kochstræti", + "dollar-tree": "Krónutréð", + "douglas-avenue": "Ingólfsbreiðgata", + "east-street": "Austurstræti", + "elm-street": "Álmstræti", + "flower-street": "Fjólustræti", + "foster-street": "Friðriksstræti", + "french-street": "Frakkastræti", + "garden-street": "Garðastræti", + "gem-pawnbroker": "GEM veðlán", + "golden-finch-framing": "GF-innrömmun", + "grant-avenue": "Guðrúnarbreiðgata", + "hoffman-pond": "Hoffmannstjörn", + "hoffman-street": "Hoffmannsstræti", + "hook-avenue": "Króks-breiðgata", + "jefferson-street": "Jóns-Sigurðsonarstræti", + "kelsey-street": "Þorkelsstræti", + "lafayette-park": "Borghildargarður", + "las-coffee-cafe": "Bragakaffihúsið", + "lincoln-avenue": "Leifsheppnabreiðgata", + "lowrys-books": "Líndal bókaverslun", + "lynns-garage": "Bílaverkstæði Lísu", + "main-street-barbell": "Aðalstrætisbarinn", + "main-street-cafe": "Aðalstrætiskaffi", + "main-street-fitness": "Líkamsræktin Aðalstræti", + "main-street": "Aðalstræti", + "maple-street": "Hlynstræti", + "marina-park": "Skipagerði", + "market-street": "Markaðsstræti", + "memory-isle-park": "Minningareyjugarður", + "memory-isle": "Minningareyja", + "michigan-avenue": "Sprænusýslubreiðgata", + "middle-street": "Miðjustræti", + "millard-street": "Flókastræti", + "moore-street": "Gissurarstræti", + "morris-avenue": "Hjörleifsbreiðgata", + "mural-mall": "Njólinn verslunarmiðstöð", + "paisanos-bar-and-grill": "Paísanó - Bar og Grill", + "paisley-emporium": "Papatorg", + "paparazzi-tattoo": "Húðflúrstofan Paparazzi", + "pealer-street": "Pálmastræti", + "pine-street": "Furustræti", + "pizza-hut": "Kofapizza", + "portage-avenue": "Tvísprænubreiðgata", + "portage-river": "Tvísprænuá", + "preferred-insurance-services": "Fótur og fát - tryggingaþjónusta", + "railroad-drive": "Lestarbraut", + "river-city-appliance": "Búsáhaldaverslun Sprænubæjar", + "river-drive": "Sprænubraut", + "river-road": "Sprænugata", + "river-street": "Sprænustræti", + "riverside-cemetery": "Kirkjugarður á árbakka", + "riverwalk-trail": "Árbakkastígur", + "riviera-theatre": "Árbakkaleikhúsið", + "rocky-river": "Grjótá", + "saint-joseph-river": "Suðurá", + "scidmore-park-petting-zoo": "Dýraklapp í Sælugarði", + "scidmore-park": "Sælugarður", + "scouter-park": "Syðrigarður", + "sherwin-williams": "Skjöldur-Vífill", + "south-street": "Suðurgata", + "southern-michigan-bank": "Suður-sprænusýslubankinn", + "spring-street": "Lindargata", + "sturgeon-river-road": "Styrjufljótsgata", + "three-rivers-city-hall": "Bæjarskrifstofur Þrísprænubæjar", + "three-rivers-elementary-school": "Grunnskóli Þrísprænubæjar", + "three-rivers-fire-department": "Slökkvistöð Þrísprænubæjar", + "three-rivers-high-school": "Framhaldsskóli Þrísprænubæjar", + "three-rivers-middle-school": "Gagnfræðaskóli Þrísprænubæjar", + "three-rivers-municipal-airport": "Innanlandsflugvöllur Þrísprænubæjar", + "three-rivers-post-office": "Pósthús Þrísprænubæjar", + "three-rivers-public-library": "Almenningsbókasafn Þrísprænubæjar", + "three-rivers": "Þrísprænubær", + "unique-jewelry": "Einstakir skartgripir", + "walnut-street": "Hnotustræti", + "washington-street": "Njálsgata", + "water-street": "Brunnstræti", + "west-street": "Vesturgata", + "wheeler-street": "Vilborgarstræti", + "william-towing": "Dráttarbílar Villa", + "willow-drive": "Víðibraut", + "wood-street": "Drumbastræti", + "world-fare": "Heimsmarkaðurinn" } }, + "welcome": { + "title": "Velkomin", + "welcome": "Velkomin! Þessi skref-fyrir-skref leiðarvísir mun kenna þér grunnatriði við breytingar í OpenStreetMap.", + "practice": "Gögnin í þessum leiðarvísi eru til æfinga, og verða breytingar sem þú gerir á meðan á þessu stendur ekki vistaðar.", + "words": "Í þessum skref-fyrir-skref leiðarvísi munum við kynna ýmis ný orð og hugtök. Þegar nýtt orð kemur fyrir, notum við *skáletrun*.", + "mouse": "Þú getur notað hvaða inntakstæki sem er til breytinga á kortinu, en í þessum leiðarvísi göngum við út frá því að þú notir mús með hægri og vinstri músarhnöppum. **Ef þú vilt tengja mús við tölvuna, ættirðu að gera það núna og smella síðan á 'Í lagi'.**", + "leftclick": "Þegar þessi leiðarvísir biður þig um að smella eða tvísmella, er meint að það eigi að nota vinstri músarhnappinn. Á snertiplatta (trackpad) gæti það verið einfaldur-smellur eða eins-fingur bank. **Vinstri-smelltu {num} sinnum.**", + "rightclick": "Stundum biðjum við þig um að hægri-smella. Á snertiplatta (trackpad) gæti það verið að halda niðri Ctrl (Control) hnappnum + smellur eða tveggja-fingra bank. **Hægri-smelltu {num} sinnum.**", + "chapters": "Þetta gengur vel! Þú getur notað hnappana hér fyrir neðan til að sleppa köflum eða byrjað aftur á kafla ef þú týnir þræðinum. Hefjumst nú handa! **Smelltu á '{next}' til að halda áfram.**" + }, "navigation": { - "title": "Leiðarvísun" + "title": "Leiðsögn", + "drag": "Aðal-kortaglugginn sýnir kortagögn OpenStreetMap ofan á bakgrunni.{br}Þú getur dregið til kortið með því að ýta á og halda niðri vinstri músarhnappnum og færa síðan til músarbendilinn. Þú getur líka notað örvalyklana á lyklaborðinu þínu. **Dragðu kortið til!**", + "zoom": "Þú getur rennt inn eða út á kortinu með því að skruna með músarhjólinu eða snertiplatta, eða með því að smella á {plus} / {minus} hnappana við hlið kortsins. **Renndu inn að kortinu!**", + "features": "Við notum orðin *fitjur* og *eigindi* til að lýsa atriðum sem birtast á kortinu, svo sem vegum, byggingum eða áhugaverðum stöðum. Hvað sem er í raunheimi er hægt að tákna með fitjum/eigindum í OpenStreetMap.", + "points_lines_areas": " Fitjur á korti eru birtar með því að nota *punkta*, *línur*, eða *svæði*.", + "nodes_ways": "Í OpenStreetMap eru punktar stundum kallaðir *hnútar*, eins eru línur og svæði stundum kölluð *leiðir*.", + "click_townhall": "Hægt er að velja hvaða atriði sem er á kortinu með því að smella á það. ** Smelltu á punktinn til að velja hann.**", + "selected_townhall": "Fínt! Punkturinn er núna valinn. Valdar fitjur eru teiknaðar með púlsandi ljóma.", + "editor_townhall": "Þegar fitja eða eigindi eru valin birtist **fitjuritillinn** við hlið kortsins.", + "preset_townhall": "Efsti hluti fitjuritilsins birtir gerð fitjunnar. Þessi punktur er {preset}.", + "fields_townhall": "Miðhlutinn inniheldur *gagnasvið* sem sýna eigindi fitjunnar, svo sem eins og heiti hennar og heimilisfang/staðsetningu.", + "close_townhall": "**Lokaðu fitjuritlinum með því að ýta á 'Escape'-lykilinn eða á {button} hnappinn í efra horninu.**", + "search_street": "Þú getur líka leitað að fitjum í þessari sýn eða út um víða veröld. **Leitaðu að '{name}'.**", + "choose_street": "**Veldu {name} af listanum til að velja það.**", + "selected_street": "Frábært! {name} er núna valið.", + "editor_street": "Gagnasvið sem sýnd eru fyrir götu eru önnur en þau sem birtast fyrir ráðhús.{br}Fyrir þessa völdu götu birtir fitjuritillinn gagnasvið á borð við '{field1}' og '{field2}'. **Lokaðu fitjuritlinum með því að ýta á 'Escape'-lykilinn eða á {button} hnappinn.**", + "play": "Prófaðu að hreyfa til kortið og að smella á önnur atriði til að sjá hvaða hlutum sé hægt að bæta inn í OpenStreetMap. **Þegar þú ert tilbúin(n) að halda áfram í næsta kafla, smelltu á '{next}'.**" }, "points": { - "title": "Punktar" + "title": "Punktar", + "add_point": "Punktar geta táknað hluti eins og verslanir, veitingahús og minnismerki.{br}Þeir merkja ákveðinn stað og lýsa því hvað er þar. **Smelltu á {button} 'Punktur'-hnappinn til að bæta við nýjum punkti.** ", + "place_point": "Til að setja nýjan punkt á kortið, staðsettu þá músarbendilinn þar sem punkturinn á að vera, síðan skaltu vinstri-smella eða ýta á bilslána. **Færðu músarbendilinn yfir þessa byggingu, síðan skaltu vinstri-smella eða ýta á bilslána.**", + "search_cafe": "Það eru margvíslegir hlutir sem punktar geta staðið fyrir. Punkturinn sem þú varst að bæta við er kaffihús. **Leitaðu að '{preset}'**", + "choose_cafe": "**Veldu {preset} af listanum.**", + "feature_editor": "Punkturinn er nú merktur sem kaffihús. Með því að nota fitjuritilinn getum við bætt við fleiri upplýsingum um kaffihúsið.", + "add_name": "Í OpenStreetMap eru öll gagnasviðin valkvæð, og það er í góðu lagi að skilja gagnasvið eftir autt ef þú ert ekki viss.{br}Látum eins og þú þekkir þetta kaffihús vel og sért með nafn þess á hreinu. **Bættu við nafni á þetta kaffihús.**", + "add_close": "Fitjuritillinn man sjálfkrafa allar breytingarnar þínar. **Þegar þú hefur lokið við að setja nafnið, ýttu á 'Escape', 'Enter', eða smelltu á {button} hnappinn til að loka fitjuritlinum.**", + "reselect": "Punktar geta þegar verið til, en verið settir af misgáningi eða innihaldið rangar upplýsingar. Það er hægt að breyta punktum sem eru þegar til staðar. **Smelltu til að velja kaffihúsið sem þú varst að búa til.**", + "update": "Setjum núna inn einhverjar fleiri upplýsingar um þetta kaffihús. Þú getur breytt nafni þess, sett inn hverskonar mat þar er að fá, eða nætt við heimilisfangi. **Breyttu upplýsingum um kaffihúsið.**", + "update_close": "**Þegar þú hefur lokið við að breyta upplýsingunum, ýttu á 'Escape', 'Enter', eða smelltu á {button} hnappinn til að loka fitjuritlinum.**", + "rightclick": "Þú getur hægri-smellt á allar fitjur til að sjá *breytingavalmyndina*, sem sýnir lista yfir mögulegar breytingaraðgerðir. **Hægri-smelltu til að velja punktinn sem þú útbjóst og birta breytingavalmyndina.**", + "delete": "Það er í góðu lagi að eyða fitjum sem ekki eru til í raunheimum.{br}Eyðing fitju úr OpenStreetMap fjarlægir hana af kortinu sem allir nota, þannig að þú ættir að ganga tryggilega úr skugga um að hún sé raunverulega horfin áður en þú eyðir henni. **Smelltu á {button} hnappinn til að eyða punktinum.**", + "undo": "Þú getur alltaf afturkallað allar breytingar, allt þar til þú vistar þær inn í OpenStreetMap. **Smelltu á {button} hnappinn til að afturkalla eyðinguna og fá punktinn til baka.**", + "play": "Núna þegar þú veist hvernig á að búa til punkta og breyta þeim, skaltu prófa að bæta við nokkrum punktum til viðbótar til að æfa þig. **Þegar þú ert tilbúin(n) að halda áfram í næsta kafla, smelltu á '{next}'.**" }, "areas": { - "title": "Svæði" + "title": "Svæði", + "add_playground": "*Svæði* eru notuð til að sýna jaðra á fitjum eins og vötnum, byggingum og íbúðahverfum.{br}Þau er einnig hægt að nota við nákvæmari kortlagningu margra fyrirbæra sem annars væri hægt að tákna með punktum. **Smelltu á {button} 'Svæði'-hnappinn til að bæta við nýju svæði.**", + "start_playground": "Setjum þennan leikvöll inn á kortið með því að teikna svæði. Svæði eru dregin með því að setja niður *hnúta* sem tákna ytri mörk svæðisins. **Smelltu með músinni eða ýttu á bilslána til að setja byrjunarhnút í eitt horn leiksvæðisins.**", + "continue_playground": "Haltu áfram að teikna svæðið með því að setja fleiri punkta meðfram jaðri leikvallarins. Það er í lagi að tengja svæðið við göngustígana sem fyrir eru.{br}Ábending: Þú getur haldið niðri `{alt}` lyklinum til að hindra fitjur í því að tengjast við aðrar fitjur. **Haltu áfram að teikna svæði fyrir leikvöllinn.**", + "finish_playground": "Kláraðu svæðið með því að ýta á 'Enter' eða smella í lokin á upphafs- eða endahnútinn. **Ljúktu við að teikna svæði fyrir leikvöllinn.**", + "search_playground": "**Leitaðu að '{preset}'.**", + "choose_playground": "**Veldu {preset} af listanum.**", + "add_field": "Leikvöllurinn er ekki með neitt opinbert heiti, þannig að við setjum ekki neitt í nafnreitinn.{br}Í staðinn ættum við að setja svolitlar viðbótarupplýsingar í gagnasviðið 'Lýsing'. **Opnaðu listann 'Bæta við gagnasviðum'.**", + "choose_field": "**Veldu {field} af listanum.**", + "retry_add_field": "Þú valdir ekki {field} gagnasviðið. Prófaðu aftur.", + "describe_playground": "**Bættu inn lýsingu og smelltu síðan á {button} hnappinn til að loka fitjuritlinum.**", + "play": "Vel gert! Prófaðu að teikna nokkur önnur svæði til að sjá hverkyns svæðum sé hægt að bæta inn í OpenStreetMap. **Þegar þú ert tilbúin(n) að halda áfram í næsta kafla, smelltu á '{next}'.**" }, "lines": { - "title": "Línur" + "title": "Línur", + "add_line": "*Línur* eru notaðar til að tákna fyrirbæri eins og vegi, lestarteina og árfarvegi. **Smelltu á {button} 'Lína'-hnappinn til að bæta nýrri línu við.**", + "start_line": "Hér vantar götu. Skellum henni inn!{br}Í OpenStreetMap á að teikna línur eftir miðjum veginum. Þú getur dregið til kortið og breytt aðdrætti á meðan þú teikna ef þess þarf. **Byrjaðu nýja línu með því að smella á efri enda götunnar sem vantar.**", + "intersect": "Smelltu með músinni eða ýttu á bilslána til að bæta fleiri hnútum við línuna.{br}Vegir, og margar aðrar línur, eru hluti af stærra neti. Það er mikilvægt að þessar línur tengist rétt saman svo að leiðsagnarforrit virki rétt. **Smelltu á {name} til að búa til vegamót sem tengja línurnar saman.**", + "retry_intersect": "Vegurinn þarf að eiga vegamót við {name}. Prófaðu aftur!", + "continue_line": "Haltu áfram að teikna línuna fyrir nýja veginn. Mundu að þú getur dregið til kortið og breytt aðdrætti á meðan þú teikna ef þess þarf.{br}Þegar þú hefur lokið teikningunni, smelltu aftur á síðasta hnútinn. **Kláraðu að teikna götuna.**", + "choose_category_road": "**Veldu {category} af listanum.**", + "choose_preset_residential": "Það eru til ýmsar tegundir vega, sú algengasta er húsagata. **Veldu tegundina {preset}**", + "retry_preset_residential": "Þú valdir ekki {preset} gagnasviðið. **Smelltu hér til að velja aftur.**", + "name_road": "**Gefðu götunni nafn, ýttu síðan á 'Escape', 'Enter', eða smelltu á {button} hnappinn til að loka fitjuritlinum.**", + "did_name_road": "Lítur vel út! Næst ætlum við að skoða hvernig hægt sé að uppfæra lögun á línu.", + "update_line": "Stundum þarf að breyta lögun fyrirliggjandi línu. Hér er gata sem ekki lítur út fyrir að vera alveg rétt.", + "add_node": "Við getum bætt nokkrum hnútum við þessa línu til að bæta útlit hennar. Ein leið til að gera það er að tvísmella á línuna þar sem þú vilt bæta hnútnum við. **Tvísmelltu á línuna til að búa til nýjan hnút.**", + "start_drag_endpoint": "Þegar lína er valin, geturðu dregið til hvaða hnút hennar sem er með því að smella og halda niðri vinstri músarhnappnum á meðan þú dregur hnútinn til. **Dragðu til endapunktinn á þann stað þar sem vegamótin ættu að vera.**", + "finish_drag_endpoint": "Þessi staður lítur vel út. **Slepptu vinstri músarhnappnum til að ljúka drættinum.**", + "start_drag_midpoint": "Litlir þríhyrningar eru teiknaðir nálægt miðju milli hnúta. Önnur leið til að búa til nýjan hnút er að draga miðpunkt á nýjan stað. **Dragðu til miðpunktsþríhyrning til að búa til nýjan hnút í beygjunni á veginum.**", + "continue_drag_midpoint": "Þetta lítur mikið betur út! Haltu áfram með að laga þessa línu með því að tvísmella eða draga til miðpunkta og færa til punkta þangað til beygjan á veginum samsvarar lögun götumyndarinnar. **Þegar þú ert orðin(n) ánægð(ur) með útlit vegarins, smelltu þá á 'Í lagi'**", + "delete_lines": "Það er í góðu lagi að eyða línum fyrir vegi sem ekki eru til í raunheimum.{br}Hér er dæmi um veginn {street} sem bæjaryfirvöld höfðu áformað að gera, en framkvæmdu aldrei. Við getum bætt þennan hluta kortsins með því að eyða þessum aukalínum.", + "rightclick_intersection": "Síðasta raunverulega gatan er {street1}, þannig að við munum *aðskilja* {street2} á þessum gatnamótum og eyða öllu fyrir ofan þau. **Hægri-smelltu á vegamótahnútinn.**", + "split_intersection": "**Smelltu á {button} hnappinn til að skipta upp {street}.**", + "retry_split": "Þú smelltir ekki á Aðskilja-hnappinn. Prófaðu aftur.", + "did_split_multi": "Flott! {street1} er núna skipt upp í tvo hluta. Efri hlutann má fjarlægja. **Smelltu á efri hlutann af {street2} til að velja hann.**", + "did_split_single": "**Smelltu á efri hluta {street2} til að velja hann.**", + "multi_select": "{selected} er núna valið. Veljum líka {other1}. Þú getur haldið niðri Shift + smellt til að velja mörg atriði. **Shift-smelltu á {other2}.**", + "multi_rightclick": "Gott! Báðar línurnar sem á að eyða eru núna valdar. **Hægri-smelltu á aðra hvora línuna til að birta breytingavalmyndina.**", + "multi_delete": "**Smelltu á {button} hnappinn til að eyða þessum aukalínum.**", + "retry_delete": "Þú smelltir ekki á Eyða-hnappinn. Prófaðu aftur.", + "play": "Frábært! Notaðu það sem þú lærðir í þessum kafla til að breyta nokkrum línum til viðbótar til að æfa þig. **Þegar þú ert tilbúin(n) að halda áfram í næsta kafla, smelltu á '{next}'.**" + }, + "buildings": { + "title": "Byggingar", + "add_building": "OpenStreetMap er heimsins stærsti gagnagrunnur yfir byggingar.{br}Þú getur hjálpað til við að gera þennan gagnagrunn ennþá betri með því að teikna inn byggingar sem ekki eru þegar á kortum. **Smelltu á {button} 'Svæði'-hnappinn til að bæta við nýju svæði.**", + "start_building": "Setjum þetta hús inn á kortið með því að teikna útlínur þess.{br}Byggingar ætti að teikna við grunn sinn (fótafarið) eins nákvæmlega og hægt er. **Smelltu með músinni eða ýttu á bilslána til að setja byrjunarhnút í eitt horn byggingarinnar.**", + "continue_building": "Haltu áfram að setja fleiri hnúta og teikna þannig útlínu byggingarinnar. Mundu að þú getur dregið til kortið og breytt aðdrætti á meðan þú teikna ef þess þarf.{br}Þegar þú hefur lokið teikningunni, ýttu á 'Enter' eða smelltu aftur á síðasta hnútinn. **Kláraðu að teikna bygginguna.**", + "retry_building": "Það lítur út fyrir að þú hafir lent í vandræðum með að setja hnútana á horn byggingarinnar. Prófaðu aftur!", + "choose_category_building": "**Veldu {category} af listanum.**", + "choose_preset_house": "Það eru til ýmsar mismunandi tegundir bygginga, en þessi er greinilega er hús.{br}Ef þú ert ekki viss um tegundina, er allt í lagi að velja bara almenna gerðina 'Bygging'. **Veldu tegundina {preset}**", + "close": "**Ýttu á 'Escape', 'Enter', eða smelltu á {button} hnappinn til að loka fitjuritlinum.**", + "rightclick_building": "**Hægri-smelltu til að velja bygginguna sem þú varst að búa til og birta breytingavalmyndina.**", + "square_building": "Húsið sem þú varst að bæta við mydi líta ennþá betur út með réttum hornum. **Smelltu á {button} hnappinn til að gera öll horn byggingarinnar hornrétt.**", + "retry_square": "Þú smelltir ekki á Hornrétta-hnappinn. Prófaðu aftur.", + "done_square": "Sástu hvernig öll horn byggingarinnar færðust til? Nú skulum við læra annað notadrjúgt bragð.", + "add_tank": "Næst skulum við teikna þennan hringlaga geymslutank. **Smelltu á {button} 'Svæði'-hnappinn til að bæta við nýju svæði.**", + "start_tank": "Ekki hafa áhyggjur, þú þarft ekkert að teikna fullkominn hring. Teiknaðu bara svæði sem snertir innri brúnir tanksins. **Smelltu með músinni eða ýttu á bilslána til að setja byrjunarhnút á jaðar tanksins.**", + "continue_tank": "Haltu áfram að setja fleiri hnúta á útlínu tanksins. Hringurinn verður dreginn utan við hnútana sem þú teiknar.{br}Þegar þú hefur lokið teikningunni, ýttu á 'Enter' eða smelltu aftur á síðasta hnútinn. **Kláraðu að teikna tankinn.**", + "search_tank": "**Leitaðu að {preset}.**", + "choose_tank": "**Veldu {preset} af listanum.**", + "rightclick_tank": "**Hægri-smelltu til að velja geymslutankinn sem þú varst að búa til og birta breytingavalmyndina.**", + "circle_tank": "**Smelltu á {button} hnappinn til að gera tankinn að hring.**", + "retry_circle": "Þú smelltir ekki á Hringlaga-hnappinn. Prófaðu aftur.", + "play": "Vel gert! Prófaðu að teikna nokkrar byggingar til viðbótar og prófa einhverjar aðrar skipanir á breytingavalmyndinni. **Þegar þú ert tilbúin(n) að halda áfram í næsta kafla, smelltu á '{next}'.**" }, "startediting": { "title": "Byrja að breyta", + "help": "Núna ertu tilbúin(n) til að fara að breyta OpenStreetMap!{br}Þú getur farið í gegnum þennan leiðarvísi aftur hvenær sem er eða skoðað fleiri hjálparskjöl með því að smella á {button} Hjálp-hnappinn eða ýtt á '{key}' lykilinn.", + "shortcuts": "Þú getur skoðað lista yfir skipanir ásamt flýtileiðum þeirra með því að ýta á '{key}' lykilinn.", "save": "Ekki gleyma að vista reglulega breytingar sem þú gerir.", "start": "Kortameistaratíð þín er hafin!" } }, + "shortcuts": { + "title": "Flýtilyklar", + "tooltip": "Birta glugga með flýtileiðum á lyklaborði.", + "toggle": { + "key": "?" + }, + "key": { + "alt": "Alt", + "backspace": "Backspace", + "cmd": "Cmd", + "ctrl": "Ctrl", + "delete": "Eyða", + "del": "Del", + "end": "End", + "enter": "Enter", + "esc": "Esc", + "home": "Home", + "option": "Option", + "pause": "Pause", + "pgdn": "PgDn", + "pgup": "PgUp", + "return": "Enter", + "shift": "Shift", + "space": "Bil" + }, + "gesture": { + "drag": "draga" + }, + "or": "-eða-", + "browsing": { + "title": "Flakk", + "navigation": { + "title": "Rötun", + "pan": "Hliðra korti", + "pan_more": "Hliðra korti um eina skjástærð", + "zoom": "Renna að / Renna frá", + "zoom_more": "Renna langt að / Renna langt frá" + }, + "help": { + "title": "Hjálp", + "help": "Birta hjálp/leiðbeiningar", + "keyboard": "Birta flýtilykla" + }, + "display_options": { + "title": "Valkostir birtingar", + "background": "Birta valkosti bakgrunns", + "background_switch": "Skipta aftur í síðasta bakgrunn", + "map_data": "Birta valkosti kortagagna", + "fullscreen": "Fara í skjáfylliham", + "wireframe": "Víxla útlínuham af/á", + "minimap": "Víxla yfirlitskorti af/á" + }, + "selecting": { + "title": "Velja fitjur", + "select_one": "Velja staka fitju", + "select_multi": "Velja margar fitjur", + "lasso": "Draga valsvæði í kringum fitjur", + "search": "Finna fitjur sem samsvara leitartexta" + }, + "with_selected": { + "title": "Með fitju valda", + "edit_menu": "Víxla breytingavalmynd af/á" + }, + "vertex_selected": { + "title": "Með valinn hnút", + "previous": "Hoppa í fyrri hnút", + "next": "Hoppa í næsta hnút", + "first": "Hoppa í fyrsta hnút", + "last": "Hoppa í síðasta hnút", + "change_parent": "Skipta í yfilrleið (parent)" + } + }, + "editing": { + "title": "Breytingar", + "drawing": { + "title": "Teikning", + "add_point": "'Bæta við punkti' hamur", + "add_line": "'Bæta við línu' hamur", + "add_area": "'Bæta við svæði' hamur", + "place_point": "Setja punkt", + "disable_snap": "Halda niðri til að koma í veg fyrir grip í punkta", + "stop_line": "Ljúka við að teikna línu eða svæði" + }, + "operations": { + "title": "Aðgerðir", + "continue_line": "Halda áfram með línu við valinn hnút", + "merge": "Sameina (setja saman) valdar fitjur", + "disconnect": "Aftengja fitjur við valinn hnút", + "split": "Aðskilja línu í tvennt við valinn hnút", + "reverse": "Snúa við línu", + "move": "Færa valdar fitjur", + "rotate": "Snúa völdum fitjum", + "orthogonalize": "Gera línu beina / Rétta horn svæðis", + "circularize": "Gera lokaða línu eða svæði hringlaga", + "reflect_long": "Spegla fitjum um langása sína", + "reflect_short": "Spegla fitjum um styttri ása sína", + "delete": "Eyða völdum fitjum" + }, + "commands": { + "title": "Skipanir", + "copy": "Afrita valdar fitjur", + "paste": "Líma valdar fitjur", + "undo": "Afturkalla síðustu aðgerð", + "redo": "Endurtaka síðustu aðgerð", + "save": "Vista breytingar" + } + }, + "tools": { + "title": "Verkfæri", + "info": { + "title": "Upplýsingar", + "all": "Víxla öllum upplýsingaspjöldum af/á", + "background": "Víxla bakgrunnsspjaldi af/á", + "history": "Víxla aðgerðaferilspjaldi af/á", + "location": "Víxla staðsetningarspjaldi af/á", + "measurement": "Víxla mælingaspjaldi af/á" + } + } + }, + "units": { + "feet": "{quantity} fet", + "miles": "{quantity} míl", + "square_feet": "{quantity} ferfet", + "square_miles": "{quantity} fermílur", + "acres": "{quantity} ekr", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "A", + "west": "V", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { + "categories": { + "category-barrier": { + "name": "Hindrunarfitjur" + }, + "category-building": { + "name": "Byggingafitjur" + }, + "category-golf": { + "name": "Fitjur fyrir golf" + }, + "category-landuse": { + "name": "Fitjur fyrir landnotkun" + }, + "category-natural-area": { + "name": "Náttúrulegar fitjur" + }, + "category-natural-line": { + "name": "Náttúrulegar fitjur" + }, + "category-natural-point": { + "name": "Náttúrulegar fitjur" + }, + "category-path": { + "name": "Stígafitjur" + }, + "category-rail": { + "name": "Járnbrautafitjur" + }, + "category-restriction": { + "name": "Takmörkunareigindi" + }, + "category-road": { + "name": "Vegafitjur" + }, + "category-route": { + "name": "Leiðafitjur" + }, + "category-water-area": { + "name": "Vatnafitjur" + }, + "category-water-line": { + "name": "Vatnafitjur" + } + }, "fields": { "access": { + "label": "Leyfður aðgangur", "options": { "designated": { - "description": "Aðgangur heimill sökum skilta eða reglna", - "title": "Merking" + "description": "Aðgangur heimill samkvæmt skiltum eða sértækum staðbundnum reglum", + "title": "Ætlað fyrir" }, "destination": { "description": "Aðgangur leyfður aðeins ef í fararleið", "title": "Áfangastaður" }, + "dismount": { + "description": "Aðgangur leyfður en það þarf að fara af baki", + "title": "Af baki" + }, "no": { "description": "Aðgangur óheimill almenningi", "title": "Aðgangur bannaður" @@ -421,85 +1312,329 @@ "title": "Einka" }, "yes": { - "description": "Aðgangur leyfður með lögum", + "description": "Aðgangur leyfður með lögum; leiðarréttur", "title": "Leyft" } }, + "placeholder": "Ekki tilgreint", "types": { + "access": "Allt", "bicycle": "Hjól", "foot": "Fótgangandi", "horse": "Hestar", "motor_vehicle": "Vélknúin ökutæki" } }, + "access_simple": { + "label": "Leyfður aðgangur" + }, "address": { "label": "Heimilisfang", "placeholders": { + "block_number": "Númer blokkar", + "block_number!jp": "Nr. blokkar", "city": "Sveitarfélag", + "city!jp": "Borg/Bær/Sveitarfélag", + "city!vn": "Borg/Sveitarfélag", + "conscriptionnumber": "123", "country": "Land", + "county": "Sýsla", + "county!jp": "Umdæmi", + "district": "Umdæmi", + "district!vn": "Hverfi/Bæjarfélag/Umdæmi", + "floor": "Hæð", + "hamlet": "Þéttbýliskjarni", + "housename": "Nafn byggingar", "housenumber": "123", + "housenumber!jp": "Bygging Nr./Lóð Nr.", + "neighbourhood": "Grannsvæði", + "neighbourhood!jp": "Chōme/Aza/Koaza", + "place": "Staður", + "postcode": "Póstnúmer", + "province": "Hérað", + "province!jp": "Lögregluumdæmi", + "quarter": "Hverfi", + "quarter!jp": "Ōaza/Machi", + "state": "Ríki", "street": "Gata", - "subdistrict": "Undirsvæði" + "subdistrict": "Undirsvæði", + "subdistrict!vn": "Hverfishluti/Hreppur/Byggðakjarni", + "suburb": "Úthverfi", + "suburb!jp": "Hverfishluti", + "unit": "Eining" } }, "admin_level": { "label": "Stjórnsýslustig" }, + "aerialway": { + "label": "Tegund" + }, "aerialway/access": { + "label": "Aðgangur", "options": { "both": "Bæði", + "entry": "Aðkoma", "exit": "Útgangur" } }, + "aerialway/bubble": { + "label": "Veðurhlíf" + }, "aerialway/capacity": { + "label": "Afköst (á klukkustund)", "placeholder": "500, 2500, 5000..." }, + "aerialway/duration": { + "label": "Tímalengd (mínútur)", + "placeholder": "1, 2, 3..." + }, + "aerialway/heating": { + "label": "Upphitað" + }, + "aerialway/occupancy": { + "label": "Farþegar pr. einingu", + "placeholder": "2, 4, 8..." + }, + "aerialway/summer/access": { + "label": "Aðgangur (sumar)", + "options": { + "both": "Bæði", + "entry": "Aðkoma", + "exit": "Útgangur" + } + }, "aeroway": { "label": "Tegund" }, + "agrarian": { + "label": "Afurðir" + }, "amenity": { "label": "Tegund" }, + "animal_boarding": { + "label": "Fyrir dýr" + }, + "animal_breeding": { + "label": "Fyrir dýr" + }, + "animal_shelter": { + "label": "Fyrir dýr" + }, + "area/highway": { + "label": "Tegund" + }, + "artist": { + "label": "Listamaður" + }, "artwork_type": { "label": "Tegund" }, "atm": { "label": "Hraðbanki" }, + "backrest": { + "label": "Með baki" + }, "barrier": { "label": "Tegund" }, + "bath/open_air": { + "label": "Utandyra" + }, + "bath/sand_bath": { + "label": "Sandbað" + }, + "bath/type": { + "label": "Sérgrein", + "options": { + "foot_bath": "Fótabað", + "hot_spring": "Heit uppspretta", + "onsen": "Japanskt Onsen" + } + }, + "beauty": { + "label": "Tegund verslunar" + }, + "bench": { + "label": "Bekkur" + }, "bicycle_parking": { "label": "Tegund" }, + "bin": { + "label": "Ruslatunna" + }, + "blood_components": { + "label": "Blóðþættir", + "options": { + "plasma": "plasma", + "platelets": "blóðflögur", + "stemcells": "stofnfrumusýni", + "whole": "heilblóð" + } + }, + "board_type": { + "label": "Tegund" + }, + "boules": { + "label": "Tegund" + }, "boundary": { "label": "Tegund" }, + "brand": { + "label": "Vörumerki" + }, + "brewery": { + "label": "Bjór úr krana" + }, + "bridge": { + "label": "Tegund", + "placeholder": "Sjálfgefið" + }, "building": { "label": "Bygging" }, "building_area": { "label": "Bygging" }, + "bunker_type": { + "label": "Tegund" + }, + "cables": { + "label": "Kaplar", + "placeholder": "1, 2, 3..." + }, + "camera/direction": { + "label": "Stefna (gráður réttsælis)", + "placeholder": "45, 90, 180, 270" + }, + "camera/mount": { + "label": "Myndavélarfesting" + }, + "camera/type": { + "label": "Tegund myndavélar", + "options": { + "dome": "Hálfkúla", + "fixed": "Föst", + "panning": "Hliðrun" + } + }, "capacity": { - "label": "Áhorfendafjöldi/Rýmd", + "label": "Notendafjöldi/Rýmd", "placeholder": "50, 100, 200..." }, + "castle_type": { + "label": "Tegund" + }, + "clothes": { + "label": "Föt" + }, + "club": { + "label": "Tegund" + }, "collection_times": { "label": "Losunartímar" }, + "comment": { + "label": "Athugasemd við breytingasett", + "placeholder": "Stutt lýsing á breytingum þínum (nauðsynlegt)" + }, + "communication_multi": { + "label": "Tegundir samskipta" + }, "construction": { "label": "Tegund" }, + "contact/webcam": { + "label": "URL-slóð vefmyndavélar", + "placeholder": "http://dæmi.is/" + }, + "content": { + "label": "Innihald" + }, "country": { "label": "Land" }, "covered": { "label": "Yfirbyggt" }, + "craft": { + "label": "Tegund" + }, + "crane/type": { + "label": "Tegund krana", + "options": { + "floor-mounted_crane": "Jarðfestur krani", + "portal_crane": "Hegri", + "travel_lift": "Skipalyfta/Teinakrani" + } + }, + "crop": { + "label": "Uppskera" + }, "crossing": { "label": "Tegund" }, + "cuisine": { + "label": "Matarhefð" + }, + "currency_multi": { + "label": "Tegund gjaldmiðils" + }, + "cutting": { + "label": "Tegund", + "placeholder": "Sjálfgefið" + }, + "cycle_network": { + "label": "Leiðakerfi" + }, + "cycleway": { + "label": "Hjólabrautir", + "options": { + "lane": { + "description": "Hjólabraut sem aðskilin er frá bílaumferð með málaðri línu", + "title": "Stöðluð hjólabraut" + }, + "none": { + "description": "Engin hjólabraut", + "title": "Ekkert" + }, + "opposite": { + "description": "Hjólabraut sem stefnir í báðar áttir á einstefnugötu", + "title": "Hjólabraut gagnstætt umferð" + }, + "opposite_lane": { + "description": "Hjólabraut sem stefnir í gagnstæða átt við umferð", + "title": "Gagnstæð hjólabraut" + }, + "share_busway": { + "description": "Hjólabraut sem deilt er með strætisvagnaleið", + "title": "Hjólabraut sem deilt er með strætisvögnum" + }, + "shared_lane": { + "description": "Hjólabraut sem ekki er aðskilin frá bílaumferð", + "title": "Samnýtt hjólabraut" + }, + "track": { + "description": "Hjólabraut sem aðskilin er frá annarri umferð með eiginlegri hindrun", + "title": "Hjólaslóð" + } + }, + "placeholder": "ekkert", + "types": { + "cycleway:left": "Vinstra megin", + "cycleway:right": "Hægra megin" + } + }, + "date": { + "label": "Dagsetning" + }, + "delivery": { + "label": "Heimsending" + }, "denomination": { "label": "Trúardeild" }, @@ -509,35 +1644,208 @@ "description": { "label": "Lýsing" }, + "devices": { + "label": "Tæki", + "placeholder": "1, 2, 3..." + }, + "diaper": { + "label": "Bleyjuskipti í boði" + }, + "direction": { + "label": "Stefna (gráður réttsælis)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "Stefna", + "options": { + "E": "Austur", + "ENE": "Aust-norðaustur", + "ESE": "Aust-suðaustur", + "N": "Norður", + "NE": "Norðaustur", + "NNE": "Norð-norðaustur", + "NNW": "Norð-norðvestur", + "NW": "Norðvestur", + "S": "Suður", + "SE": "Suðaustur", + "SSE": "Suð-suðaustur", + "SSW": "Suð-suðvestur", + "SW": "Suðvestur", + "W": "Vestur", + "WNW": "Vest-norðvestur", + "WSW": "Vest-suðvestur" + } + }, + "direction_clock": { + "label": "Stefna", + "options": { + "anticlockwise": "Rangsælis", + "clockwise": "Réttsælis" + } + }, + "direction_vertex": { + "label": "Stefna", + "options": { + "backward": "Afturábak", + "both": "Bæði / Allt", + "forward": "Áfram" + } + }, + "dispensing": { + "label": "Dreifing eftir lyfseðli" + }, + "display": { + "label": "Birting" + }, + "dock": { + "label": "Tegund" + }, + "drive_through": { + "label": "Afgreiðslulúga" + }, + "duration": { + "label": "Tímalengd", + "placeholder": "00:00" + }, + "electrified": { + "label": "Rafvæðing", + "options": { + "contact_line": "Rafmagnaður snertistrengur", + "no": "Nei", + "rail": "Rafmagnaðir teinar", + "yes": "Já (óskilgreint)" + }, + "placeholder": "Snertistrengur, rafteinar..." + }, "elevation": { "label": "Hæð" }, + "email": { + "label": "Tölvupóstur", + "placeholder": "dæmi@dæmi.is" + }, + "embankment": { + "label": "Tegund", + "placeholder": "Sjálfgefið" + }, "emergency": { "label": "Neyðarþjónusta" }, "entrance": { "label": "Tegund" }, + "except": { + "label": "Undantekningar" + }, "fax": { "label": "Myndsími", - "placeholder": "+31 42 123 4567" + "placeholder": "+354 123 4567" }, "fee": { "label": "Gjald" }, + "fence_type": { + "label": "Tegund" + }, + "fire_hydrant/position": { + "label": "Staðsetning", + "options": { + "green": "Grænt", + "lane": "Akrein", + "parking_lot": "Bílastæðasvæði", + "sidewalk": "Gangstétt" + } + }, + "fire_hydrant/type": { + "label": "Tegund", + "options": { + "pillar": "Stöpull/Ofanjarðar", + "pond": "Tjörn", + "underground": "Neðanjarðar", + "wall": "Veggur" + } + }, + "fitness_station": { + "label": "Gerð tækja" + }, "fixme": { "label": "Lagaðu mig" }, + "ford": { + "label": "Tegund", + "placeholder": "Sjálfgefið" + }, + "frequency": { + "label": "Vinnutíðni" + }, "fuel": { "label": "Eldsneyti" }, + "fuel_multi": { + "label": "Gerð eldsneytis" + }, + "gauge": { + "label": "Mælir" + }, + "gender": { + "label": "Kyn", + "options": { + "female": "Kona", + "male": "Karl", + "unisex": "Kyn skiptir ekki máli" + }, + "placeholder": "Óþekkt" + }, + "generator/method": { + "label": "Aðferð" + }, + "generator/output/electricity": { + "label": "Aflúttak", + "placeholder": "50 MW, 100 MW, 200 MW..." + }, + "generator/source": { + "label": "Uppruni" + }, + "generator/type": { + "label": "Tegund" + }, + "government": { + "label": "Tegund" + }, + "grape_variety": { + "label": "Tegundir af þrúgum" + }, + "handicap": { + "label": "Forgjöf", + "placeholder": "1-18" + }, + "handrail": { + "label": "Handrið" + }, + "hashtags": { + "label": "Tillögur að myllumerkjum", + "placeholder": "#dæmi" + }, + "healthcare": { + "label": "Tegund" + }, + "healthcare/speciality": { + "label": "Sérgreinar" + }, + "height": { + "label": "Hæð (metrar)" + }, "highway": { "label": "Tegund" }, "historic": { "label": "Tegund" }, + "historic/civilization": { + "label": "Söguleg menning" + }, "hoops": { + "label": "Körfur", "placeholder": "1, 2, 4..." }, "iata": { @@ -549,15 +1857,50 @@ "incline": { "label": "Halli" }, + "incline_steps": { + "label": "Halli", + "options": { + "down": "Niður", + "up": "Upp" + } + }, + "indoor": { + "label": "Innanhúss" + }, + "information": { + "label": "Tegund" + }, + "inscription": { + "label": "Áletrun" + }, + "intermittent": { + "label": "Tímabundið rennsli" + }, "internet_access": { "label": "Internetaðgangur", "options": { "no": "Nei", "terminal": "Útstöð", "wired": "Leiðslur", - "wlan": "Þráðlaust" + "wlan": "Þráðlaust", + "yes": "Já" } }, + "internet_access/fee": { + "label": "Gjald fyrir internetaðgang" + }, + "internet_access/ssid": { + "label": "SSID (nafn á netkerfi)" + }, + "kerb": { + "label": "Kantsteinn" + }, + "label": { + "label": "Merking" + }, + "lamp_type": { + "label": "Tegund" + }, "landuse": { "label": "Tegund" }, @@ -566,42 +1909,174 @@ "placeholder": "1, 2, 3..." }, "layer": { - "label": "Lag" + "label": "Lag", + "placeholder": "0" + }, + "leaf_cycle": { + "label": "Laufgunartími", + "options": { + "deciduous": "Sumargrænt", + "evergreen": "Sígrænt", + "mixed": "Blandað", + "semi_deciduous": "Hálf-sumargrænt", + "semi_evergreen": "Hálf-sígrænt" + } + }, + "leaf_cycle_singular": { + "label": "Laufgunartími", + "options": { + "deciduous": "Sumargrænt", + "evergreen": "Sígrænt", + "semi_deciduous": "Hálf-sumargrænt", + "semi_evergreen": "Hálf-sígrænt" + } + }, + "leaf_type": { + "label": "Lauftegund", + "options": { + "broadleaved": "Breiðlaufungur", + "leafless": "Lauflaust", + "mixed": "Blandað", + "needleleaved": "Laufnálar" + } + }, + "leaf_type_singular": { + "label": "Lauftegund", + "options": { + "broadleaved": "Breiðlaufungur", + "leafless": "Lauflaust", + "needleleaved": "Laufnálar" + } }, "leisure": { "label": "Tegund" }, + "length": { + "label": "Lengd (metrar)" + }, + "level": { + "label": "Hæð" + }, "levels": { "label": "Hæðir", "placeholder": "2, 4, 6..." }, + "lit": { + "label": "Upplýst" + }, "location": { "label": "Staðsetning" }, "man_made": { "label": "Tegund" }, + "manhole": { + "label": "Tegund" + }, + "map_size": { + "label": "Þekja" + }, + "map_type": { + "label": "Tegund" + }, + "maxheight": { + "label": "Hámarkshæð", + "placeholder": "4, 4.5, 5, 14'0\", 14'6\", 15'0\"" + }, "maxspeed": { "label": "Hraðatakmörkun", "placeholder": "40, 50, 60..." }, + "maxstay": { + "label": "Hámarksdvöl" + }, + "maxweight": { + "label": "Hámarksþyngd" + }, + "memorial": { + "label": "Tegund" + }, + "monitoring_multi": { + "label": "Vöktun" + }, "mtb/scale": { + "label": "Erfiðleikastig fjallahjólreiða", "options": { - "2": "2: laust undirlag, stórar hindranir, auðveldar beygjur" - } + "0": "0: Þétt möl/þjappað undirlag, engar hindranir, auðveldar beygjur", + "1": "1: Nokkuð laust undirlag, litlar hindranir, auðveldar beygjur", + "2": "2: Mjög laust undirlag, stórar hindranir, auðveldar beygjur", + "3": "3: Sleipt undirlag, stórar hindranir, þröngar beygjur", + "4": "4: Laust undirlag eða stórgrýti, hættulegar þröngar beygjur", + "5": "5: Hámarkserfiðleikar, stórgrýtisurð, skriður", + "6": "6: Ekki hjólandi nema fyrir allra færasta fjallahjólreiðafólk" + }, + "placeholder": "0, 1, 2, 3..." }, "mtb/scale/imba": { + "label": "IMBA erfiðleikastig leiðar", + "options": { + "0": "Auðveldast (hvítur hringur)", + "1": "Auðvelt (grænn hringur)", + "2": "Miðlungs (blár ferningur)", + "3": "Erfitt (svartur tígull)", + "4": "Einstaklega erfitt (tvöfaldur svartur tígull)" + }, "placeholder": "Auðvelt, miðlungs, erfitt..." }, + "mtb/scale/uphill": { + "label": "Erfiðleikastig fjallahjólreiða upp í mót", + "options": { + "0": "0: Meðalhalli <10%, möl/þjappað undirlag, engar hindranir", + "1": "1: Meðalhalli <15%, möl/þjappað undirlag, nokkrar litlar hindranir", + "2": "2: Meðalhalli <20%, stöðugt undirlag, hnefastórir steinar/rætur", + "3": "3: Meðalhalli <25%, breytilegt undirlag, hnefastórir steinar/greinar", + "4": "4: Meðalhalli <30%, lélegt undirlag, stórir steinar/greinar", + "5": "5: Mjög bratt, venjulega þarf að ýta hjólinu eða bera það" + }, + "placeholder": "0, 1, 2, 3..." + }, "name": { "label": "Nafn", - "placeholder": "Almannanafn (ef eitthvað)" + "placeholder": "Almennt heiti (ef eitthvað)" }, "natural": { "label": "Náttúrulegt" }, "network": { - "label": "Netkerfi" + "label": "Leiðakerfi" + }, + "network_bicycle": { + "label": "Tegund leiðakerfis", + "options": { + "icn": "Alþjóðlegt", + "lcn": "Staðarkerfi", + "ncn": "Landskerfi", + "rcn": "Héraðskerfi" + }, + "placeholder": "Staðarkerfi, Héraðskerfi, Landskerfi, Alþjóðlegt" + }, + "network_foot": { + "label": "Tegund kerfis", + "options": { + "iwn": "Alþjóðlegt", + "lwn": "Staðarkerfi", + "nwn": "Landskerfi", + "rwn": "Héraðskerfi" + }, + "placeholder": "Staðarkerfi, Héraðskerfi, Landskerfi, Alþjóðlegt" + }, + "network_horse": { + "label": "Tegund leiðakerfis", + "options": { + "ihn": "Alþjóðlegt", + "lhn": "Staðarkerfi", + "nhn": "Landskerfi", + "rhn": "Héraðskerfi" + }, + "placeholder": "Staðarkerfi, Héraðskerfi, Landskerfi, Alþjóðlegt" + }, + "network_road": { + "label": "Leiðakerfi" }, "note": { "label": "Athugasemd" @@ -610,10 +2085,24 @@ "label": "Tegund" }, "oneway": { - "label": "Einstefna" + "label": "Einstefna", + "options": { + "alternating": "Til skiptis", + "no": "Nei", + "reversible": "Getur snúist við", + "undefined": "Ætlað að sé 'Nei'", + "yes": "Já" + } }, "oneway_yes": { - "label": "Einstefna" + "label": "Einstefna", + "options": { + "alternating": "Til skiptis", + "no": "Nei", + "reversible": "Getur snúist við", + "undefined": "Ætlað að sé 'Já'", + "yes": "Já" + } }, "opening_hours": { "label": "Opnunartímar" @@ -621,8 +2110,12 @@ "operator": { "label": "Rekstraraðili" }, + "outdoor_seating": { + "label": "Sæti utandyra" + }, "par": { - "label": "Par" + "label": "Par", + "placeholder": "3, 4, 5..." }, "park_ride": { "label": "Bílastæði fyrir almenningssamgöngur" @@ -630,29 +2123,155 @@ "parking": { "label": "Tegund", "options": { - "surface": "Yfirborð" + "carports": "Bílskýli", + "garage_boxes": "Bílskúrar", + "lane": "Við hlið vegar", + "multi-storey": "Margra hæða", + "sheds": "Skúrar", + "surface": "Yfirborð", + "underground": "Neðanjarðar" } }, + "payment_multi": { + "label": "Greiðslumátar" + }, + "phases": { + "label": "Fasar", + "placeholder": "1, 2, 3..." + }, "phone": { "label": "Sími", "placeholder": "+31 42 123 4567" }, + "piste/difficulty": { + "label": "Erfiðleikastig", + "options": { + "advanced": "Erfitt (svartur tígull)", + "easy": "Auðvelt (grænn hringur)", + "expert": "Einstaklega erfitt (tvöfaldur svartur tígull)", + "extreme": "Ofurerfitt (krafist klifurbúnaðar)", + "freeride": "Frjáls skíðun (utanbrauta)", + "intermediate": "Miðlungs (blár ferningur)", + "novice": "Byrjendur (kennsla)" + }, + "placeholder": "Auðvelt, Miðlungs, Erfitt..." + }, + "piste/grooming": { + "label": "Snjóþjöppun", + "options": { + "backcountry": "Ferðaleið", + "classic": "Klassískt spor", + "classic+skating": "Klassískt spor og skautun", + "mogul": "Hólabraut", + "scooter": "Vélsleðar/troðarar", + "skating": "Skautun" + } + }, "piste/type": { "label": "Tegund", "options": { + "downhill": "Brun", + "hike": "Ganga", "ice_skate": "Skautar", - "sleigh": "Sleði" + "nordic": "Gönguskíði", + "playground": "Leikvöllur", + "skitour": "Skíðaferð", + "sled": "Sleði", + "sleigh": "Sleði", + "snow_park": "Snjógarður" } }, "place": { "label": "Tegund" }, + "plant": { + "label": "Orkuver" + }, + "plant/output/electricity": { + "label": "Aflúttak", + "placeholder": "500 MW, 1000 MW, 2000 MW..." + }, + "playground/baby": { + "label": "Barnastóll" + }, + "playground/max_age": { + "label": "Hámarksaldur" + }, + "playground/min_age": { + "label": "Lágmarksaldur" + }, + "population": { + "label": "Íbúafjöldi" + }, "power": { "label": "Tegund" }, + "power_supply": { + "label": "Rafmagnstengill" + }, + "produce": { + "label": "Afurð" + }, + "product": { + "label": "Framleiðsla" + }, "railway": { "label": "Tegund" }, + "railway/position": { + "label": "Staðsetning vegalengdarsteins", + "placeholder": "Vegalengd með einum aukastaf (123.4)" + }, + "railway/signal/direction": { + "label": "Stefna", + "options": { + "backward": "Afturábak", + "both": "Bæði / Allt", + "forward": "Áfram" + } + }, + "rating": { + "label": "Afl" + }, + "recycling_accepts": { + "label": "Tekur við" + }, + "ref": { + "label": "Tílvísunarkóði" + }, + "ref/isil": { + "label": "ISIL-kóði" + }, + "ref_aeroway_gate": { + "label": "Hliðnúmer" + }, + "ref_golf_hole": { + "label": "Númer holu", + "placeholder": "1-18" + }, + "ref_highway_junction": { + "label": "Númer tengingar" + }, + "ref_platform": { + "label": "Númer palls" + }, + "ref_road_number": { + "label": "Vegnúmer" + }, + "ref_route": { + "label": "Leiðarnúmer" + }, + "ref_runway": { + "label": "Númer flugbrautar", + "placeholder": "t.d. 01L/19R" + }, + "ref_stop_position": { + "label": "Númer biðstöðvar" + }, + "ref_taxiway": { + "label": "Heiti akbrautar", + "placeholder": "t.d. A5" + }, "relation": { "label": "Tegund" }, @@ -662,18 +2281,66 @@ "restriction": { "label": "Tegund" }, + "restrictions": { + "label": "Takmarkanir á beygjum" + }, + "rooms": { + "label": "Herbergi" + }, "route": { "label": "Tegund" }, "route_master": { "label": "Tegund" }, + "sac_scale": { + "label": "Erfiðleikastig göngu", + "options": { + "alpine_hiking": "T4: Fjallganga", + "demanding_alpine_hiking": "T5: Krefjandi fjallganga", + "demanding_mountain_hiking": "T3: Krefjandi fjallagönguferð", + "difficult_alpine_hiking": "T6: Erfið fjallganga", + "hiking": "T1: Ganga", + "mountain_hiking": "T2: Fjallagönguferð" + }, + "placeholder": "Fjallagönguferð, Fjallganga..." + }, + "sanitary_dump_station": { + "label": "Losun salerna" + }, "seasonal": { "label": "Árstíðabundið" }, + "second_hand": { + "label": "Selur notað", + "options": { + "no": "Nei", + "only": "Einungis", + "yes": "Já" + }, + "placeholder": "Já, Nei, Einungis" + }, "service": { "label": "Tegund" }, + "service/bicycle": { + "label": "Þjónustur" + }, + "service/vehicle": { + "label": "Þjónustur" + }, + "service_rail": { + "label": "Tegund þjónustu", + "options": { + "crossover": "Sporaskipting", + "siding": "Hliðarspor", + "spur": "Sporaendi (spur)", + "yard": "Viðhaldsspor (yard)" + } + }, + "service_times": { + "label": "Þjónustutímar" + }, "shelter": { "label": "Skýli" }, @@ -683,8 +2350,71 @@ "shop": { "label": "Tegund" }, + "site": { + "label": "Tegund" + }, "smoking": { - "label": "Reykingar" + "label": "Reykingar", + "options": { + "dedicated": "Tileinkað reykingafólki (t.d. vindlaklúbbur)", + "isolated": "Á reykingasvæðum, einangruðum frá öðru", + "no": "Engar reykingar neinsstaðar", + "outside": "Leyft utandyra", + "separated": "Á reykingasvæðum, ekki sérstaklega einangruðum frá öðru", + "yes": "Leyft allsstaðar" + }, + "placeholder": "Nei, Aðskilið, Já..." + }, + "smoothness": { + "label": "Hrjúfleiki", + "options": { + "bad": "Sterkleg dekk: fjallahjól, bílar, dráttarvagnar", + "excellent": "Mjóar rúllur: línuskautar, hjólabretti", + "good": "Mjó dekk: götukeppnisreiðhjól", + "horrible": "Utanvega: Öflug torfæruaksturstæki", + "impassable": "Ófært / Engin farartæki á hjólum", + "intermediate": "Venjuleg dekk: bæjarreiðhjól, hjólastólar, skutlur", + "very_bad": "Hátt undir kvið: léttir jeppar og torfæruaksturstæki", + "very_horrible": "Sérstaklega gert fyrir utanvegaakstur: dráttarvélar, fjórhjól" + }, + "placeholder": "Mjóar rúllur, Venjuleg dekk, Utanvega..." + }, + "social_facility": { + "label": "Tegund" + }, + "social_facility_for": { + "label": "Þjónustað fólk" + }, + "source": { + "label": "Heimildir" + }, + "sport": { + "label": "Íþróttir" + }, + "sport_ice": { + "label": "Íþróttir" + }, + "sport_racing_motor": { + "label": "Íþróttir" + }, + "sport_racing_nonmotor": { + "label": "Íþróttir" + }, + "stars": { + "label": "Stjörnur" + }, + "start_date": { + "label": "Upphafsdagur" + }, + "step_count": { + "label": "Fjöldi þrepa" + }, + "stop": { + "label": "Tegund stöðvunar", + "options": { + "all": "Allar leiðir", + "minor": "Minni vegur" + } }, "structure": { "label": "Mannvirki", @@ -692,28 +2422,199 @@ "bridge": "Brú", "cutting": "Rás", "embankment": "Stallur", + "ford": "Vað", "tunnel": "Göng" }, "placeholder": "Óþekkt" }, + "structure_waterway": { + "label": "Mannvirki", + "options": { + "tunnel": "Göng" + }, + "placeholder": "Óþekkt" + }, + "studio": { + "label": "Tegund" + }, + "substance": { + "label": "Efni" + }, + "substation": { + "label": "Tegund" + }, "supervised": { - "label": "Undir stjórn" + "label": "Undir eftirliti" + }, + "support": { + "label": "Undirstaða" }, "surface": { "label": "Yfirborð" }, + "surveillance": { + "label": "Gerð eftirlits" + }, + "surveillance/type": { + "label": "Tegund eftirlits", + "options": { + "ALPR": "Sjálfvirkur númeralestur", + "camera": "Myndavél", + "guard": "Vörður" + } + }, + "surveillance/zone": { + "label": "Svæði undir eftirliti" + }, + "switch": { + "label": "Tegund", + "options": { + "circuit_breaker": "Aflrofi", + "disconnector": "Skilrofi", + "earthing": "Jarðsamband", + "mechanical": "Vélrænt" + } + }, + "tactile_paving": { + "label": "Snertimerking yfirborðs" + }, + "takeaway": { + "label": "Taka með", + "options": { + "no": "Nei", + "only": "Einungis taka með", + "yes": "Já" + }, + "placeholder": "Já, Nei, Einungis taka með" + }, + "toilets/disposal": { + "label": "Losun", + "options": { + "bucket": "Fata", + "chemical": "Kemískt", + "flush": "Vatnssalerni", + "pitlatrine": "Hola/Kamar" + } + }, + "toll": { + "label": "Gjald" + }, + "tomb": { + "label": "Tegund" + }, "tourism": { "label": "Tegund" }, + "tourism_attraction": { + "label": "Ferðaþjónusta" + }, + "tower/construction": { + "label": "Uppbygging", + "placeholder": "Stagaður, Grind, Lokaður..." + }, + "tower/type": { + "label": "Tegund" + }, + "tracktype": { + "label": "Tegund slóðar", + "options": { + "grade1": "Þétt: slitlag eða vel þjappað yfirborð úr hörðum efnum", + "grade2": "Nokkuð þétt: möl/grjót með einhverju af mýkra íblöndunarefni", + "grade3": "Jöfn blanda af mjúkum og hörðum efnum", + "grade4": "Nokkuð mjúkt: jarðvegur/sandur/gras með einhverju af harðara íblöndunarefni", + "grade5": "Mjúkt: jarðvegur/sandur/gras" + }, + "placeholder": "Þétt, Nokkuð þétt, Mjúkt..." + }, + "trade": { + "label": "Tegund" + }, + "traffic_calming": { + "label": "Tegund" + }, + "traffic_signals": { + "label": "Tegund" + }, + "traffic_signals/direction": { + "label": "Stefna", + "options": { + "backward": "Afturábak", + "both": "Bæði / Allt", + "forward": "Áfram" + } + }, "trail_visibility": { - "label": "Sýnileiki" + "label": "Sýnileiki slóðar", + "options": { + "bad": "Lélegur: engar merkingar, slóð stundum ill- eða ósýnileg", + "excellent": "Frábær: óumdeilanlegur stígur og merkingar allstaðar", + "good": "Góður: merkingar sýnilegar, þarf einstaka sinnum að leita", + "horrible": "Nánast enginn: oft án slóðar, krefst nokkurrar kunnáttu í rötun", + "intermediate": "Miðlungs: nokkuð um merkingar, slóð oftast sýnileg", + "no": "Enginn: krefst góðrar ratvísi og kunnáttu" + }, + "placeholder": "Frábær, Góður, Lélegur..." + }, + "transformer": { + "label": "Tegund", + "options": { + "auto": "Sjálfvirkur spennir", + "converter": "Straumbreytir", + "distribution": "Dreifispennir", + "generator": "Rafall", + "phase_angle_regulator": "Fasahornsstýring", + "yes": "Óþekkt" + } }, "trees": { "label": "Tré" }, + "tunnel": { + "label": "Tegund", + "placeholder": "Sjálfgefið" + }, + "vending": { + "label": "Sýnileiki vöru" + }, + "visibility": { + "label": "Sýnileiki", + "options": { + "area": "Yfir 20m (65fet)", + "house": "Allt að 5m (16fet)", + "street": "5 til 20m (16 til 65fet)" + } + }, + "volcano/status": { + "label": "Staða eldstöðvar", + "options": { + "active": "Virkt", + "dormant": "Í dvala", + "extinct": "Útdautt" + } + }, + "volcano/type": { + "label": "Gerð eldstöðvar", + "options": { + "scoria": "Gjallgígur", + "shield": "Dyngja", + "stratovolcano": "Eldkeila" + } + }, + "voltage": { + "label": "Spenna" + }, + "voltage/primary": { + "label": "Aðalspenna" + }, + "wall": { + "label": "Tegund" + }, "water": { "label": "Tegund" }, + "water_point": { + "label": "Vatnsból" + }, "waterway": { "label": "Tegund" }, @@ -727,8 +2628,30 @@ "wheelchair": { "label": "Hjólastólaaðgangur" }, + "wholesale": { + "label": "Heildsala" + }, + "width": { + "label": "Breidd (metrar)" + }, "wikipedia": { "label": "Wikipedia" + }, + "windings": { + "label": "Vindingar", + "placeholder": "1, 2, 3..." + }, + "windings/configuration": { + "label": "Uppsetning vindinga", + "options": { + "delta": "Delta", + "leblanc": "Leblanc", + "open": "Opið", + "open-delta": "Opið Delta", + "scott": "Scott", + "star": "Stjörnu", + "zigzag": "Sikk-sakk" + } } }, "presets": { @@ -736,6 +2659,48 @@ "name": "Heimilisfang", "terms": "" }, + "advertising/billboard": { + "name": "Auglýsingaspjald" + }, + "aerialway": { + "name": "Víralyfta" + }, + "aerialway/cable_car": { + "name": "Kláfur" + }, + "aerialway/chair_lift": { + "name": "Stólalyfta" + }, + "aerialway/drag_lift": { + "name": "Toglyfta" + }, + "aerialway/gondola": { + "name": "Eggjalyfta" + }, + "aerialway/goods": { + "name": "Vöruvíralyfta" + }, + "aerialway/magic_carpet": { + "name": "Töfrateppi" + }, + "aerialway/mixed_lift": { + "name": "Blönduð gerð víralyftu" + }, + "aerialway/platter": { + "name": "Diskalyfta" + }, + "aerialway/pylon": { + "name": "Lyftumastur" + }, + "aerialway/rope_tow": { + "name": "Kaðallyfta" + }, + "aerialway/station": { + "name": "Lyftustöð" + }, + "aerialway/t-bar": { + "name": "T-lyfta" + }, "aeroway": { "name": "Loftlína" }, @@ -744,7 +2709,10 @@ "terms": "" }, "aeroway/apron": { - "name": "Tengibrú" + "name": "Flughlað" + }, + "aeroway/gate": { + "name": "Flugvallarhlið" }, "aeroway/hangar": { "name": "Flugskýli" @@ -757,11 +2725,27 @@ "name": "Flugbraut" }, "aeroway/taxiway": { - "name": "Flugrein" + "name": "Akbraut flugvéla", + "terms": "flugrein,færslubraut" + }, + "aeroway/terminal": { + "name": "Flugstöð" }, "amenity": { "name": "Þjónusta" }, + "amenity/animal_boarding": { + "name": "Dýrahótel" + }, + "amenity/animal_breeding": { + "name": "Dýraræktun" + }, + "amenity/animal_shelter": { + "name": "Dýraathvarf" + }, + "amenity/arts_centre": { + "name": "Listamiðstöð" + }, "amenity/atm": { "name": "Hraðbanki" }, @@ -784,38 +2768,110 @@ "amenity/bicycle_rental": { "name": "Hjólaleiga" }, + "amenity/bicycle_repair_station": { + "name": "Hjólaviðgerðastandur" + }, + "amenity/biergarten": { + "name": "Bjórgarður" + }, + "amenity/boat_rental": { + "name": "Bátaleiga" + }, + "amenity/bureau_de_change": { + "name": "Gjaldmiðlaskipti" + }, + "amenity/bus_station": { + "name": "Strætisvagnastöð / Umferðarmiðstöð" + }, "amenity/cafe": { "name": "Kaffihús", "terms": "tehús" }, + "amenity/car_pooling": { + "name": "Bílasamnýting" + }, "amenity/car_rental": { "name": "Bílaleiga" }, + "amenity/car_sharing": { + "name": "Bíladeiling" + }, "amenity/car_wash": { "name": "Bílaþvottur" }, + "amenity/casino": { + "name": "Spilavíti" + }, + "amenity/charging_station": { + "name": "Hleðslustöð" + }, + "amenity/childcare": { + "name": "Barnagæsla/dagvistun" + }, "amenity/cinema": { "name": "Kvikmyndahús", "terms": "bíó" }, + "amenity/clinic": { + "name": "Læknastofa" + }, + "amenity/clinic/abortion": { + "name": "Fóstureyðingastofa" + }, + "amenity/clinic/fertility": { + "name": "Frjósemisklínik" + }, "amenity/clock": { "name": "Klukka" }, + "amenity/college": { + "name": "Framhaldskólalóð" + }, + "amenity/community_centre": { + "name": "Samfélagsmiðstöð" + }, + "amenity/compressed_air": { + "name": "Loftdæla" + }, "amenity/courthouse": { "name": "Dómhús" }, + "amenity/coworking_space": { + "name": "Sameiginlegt vinnurými" + }, + "amenity/crematorium": { + "name": "Líkbrennsla" + }, + "amenity/dentist": { + "name": "Tannlæknir" + }, + "amenity/doctors": { + "name": "Læknir" + }, + "amenity/dojo": { + "name": "Dojo / Bardagaíþróttir" + }, "amenity/drinking_water": { "name": "Drykkjarvatn" }, + "amenity/driving_school": { + "name": "Ökuskóli" + }, "amenity/embassy": { "name": "Sendiráð" }, "amenity/fast_food": { "name": "Skyndibiti" }, + "amenity/ferry_terminal": { + "name": "Ferjustöð / Umferðarmiðstöð" + }, "amenity/fire_station": { "name": "Slökkvistöð" }, + "amenity/food_court": { + "name": "Matarmarkaður" + }, "amenity/fountain": { "name": "Gosbrunnur" }, @@ -825,21 +2881,57 @@ "amenity/grave_yard": { "name": "Grafreitur" }, + "amenity/grit_bin": { + "name": "Sandkista" + }, "amenity/hospital": { "name": "Spítalalóð" }, + "amenity/hunting_stand": { + "name": "Skotvöllur" + }, + "amenity/ice_cream": { + "name": "Ísbúð" + }, + "amenity/internet_cafe": { + "name": "Netkaffihús" + }, + "amenity/kindergarten": { + "name": "Forskóla-/Leikskólalóð" + }, "amenity/library": { "name": "Bókasafn" }, + "amenity/love_hotel": { + "name": "Ástarhótel" + }, "amenity/marketplace": { "name": "Markaður" }, + "amenity/motorcycle_parking": { + "name": "Mótorhjólastæði" + }, + "amenity/music_school": { + "name": "Tónlistarskóli" + }, "amenity/nightclub": { "name": "Næturklúbbur" }, + "amenity/nursing_home": { + "name": "Hjúkrunarheimili" + }, "amenity/parking": { "name": "Bílastæði" }, + "amenity/parking_entrance": { + "name": "Inngangur/Útgangur bílastæðahúss" + }, + "amenity/parking_space": { + "name": "Bílastæðarými" + }, + "amenity/pavilion": { + "name": "Einbýlishús" + }, "amenity/pharmacy": { "name": "Lyfjaverslun" }, @@ -853,6 +2945,9 @@ "amenity/place_of_worship/christian": { "name": "Kirkja" }, + "amenity/place_of_worship/hindu": { + "name": "Hindú-musteri" + }, "amenity/place_of_worship/jewish": { "name": "Bænahús gyðinga" }, @@ -860,6 +2955,18 @@ "name": "Moska", "terms": "bænahús múslima" }, + "amenity/place_of_worship/shinto": { + "name": "Shinto-skrín" + }, + "amenity/place_of_worship/sikh": { + "name": "Sikh-musteri" + }, + "amenity/place_of_worship/taoist": { + "name": "Taóistamusteri" + }, + "amenity/planetarium": { + "name": "Stjörnuver" + }, "amenity/police": { "name": "Lögregla", "terms": "löggan" @@ -870,24 +2977,69 @@ "amenity/post_office": { "name": "Pósthús" }, + "amenity/prison": { + "name": "Fangelsislóð" + }, "amenity/pub": { "name": "Krá" }, + "amenity/public_bath": { + "name": "Almenningsböð" + }, + "amenity/public_bookcase": { + "name": "Almenningsbókakassi" + }, + "amenity/ranger_station": { + "name": "Landvarðastöð" + }, + "amenity/recycling": { + "name": "Endurvinnslugámur" + }, + "amenity/recycling_centre": { + "name": "Endurvinnslumiðstöð" + }, + "amenity/register_office": { + "name": "Skráningarskrifstofa" + }, "amenity/restaurant": { "name": "Veitingahús" }, + "amenity/sanitary_dump_station": { + "name": "Salernishreinsun fyrir bíla" + }, "amenity/school": { "name": "Skólalóð" }, + "amenity/scrapyard": { + "name": "Brotajárnshaugur" + }, "amenity/shelter": { "name": "Skýli" }, + "amenity/shower": { + "name": "Steypibað" + }, + "amenity/smoking_area": { + "name": "Reykingasvæði" + }, + "amenity/social_facility": { + "name": "Félagsþjónusta" + }, "amenity/social_facility/food_bank": { "name": "Mataraðstoð" }, + "amenity/social_facility/group_home": { + "name": "Sambýli eldri borgara" + }, "amenity/social_facility/homeless_shelter": { "name": "Athvarf heimilislausra" }, + "amenity/social_facility/nursing_home": { + "name": "Hjúkrunarheimili" + }, + "amenity/studio": { + "name": "Upptökustúdíó" + }, "amenity/swimming_pool": { "name": "Sundlaug" }, @@ -906,15 +3058,111 @@ "amenity/townhall": { "name": "Ráðhús" }, + "amenity/university": { + "name": "Háskólalóð" + }, + "amenity/vending_machine": { + "name": "Sjálfsali" + }, + "amenity/vending_machine/cigarettes": { + "name": "Sígarettusjálfsali" + }, + "amenity/vending_machine/condoms": { + "name": "Smokkasjálfsali" + }, + "amenity/vending_machine/drinks": { + "name": "Drykkjasjálfsali" + }, + "amenity/vending_machine/excrement_bags": { + "name": "Sjálfsali með úrgangspokum" + }, + "amenity/vending_machine/feminine_hygiene": { + "name": "Sjálfsali með dömusnyrtivörum" + }, + "amenity/vending_machine/news_papers": { + "name": "Dagblaðasjálfsali" + }, + "amenity/vending_machine/newspapers": { + "name": "Dagblaðasjálfsali" + }, + "amenity/vending_machine/parcel_pickup_dropoff": { + "name": "Sjálfsali fyrir afhendingu/hirðingu bögglapósts" + }, + "amenity/vending_machine/parking_tickets": { + "name": "Bílastæðamiðasjálfsali" + }, + "amenity/vending_machine/public_transport_tickets": { + "name": "Miðasjálfsali í almenningssamgöngur" + }, + "amenity/vending_machine/sweets": { + "name": "Snakksjálfsali" + }, "amenity/veterinary": { "name": "Dýralæknir" }, + "amenity/waste/dog_excrement": { + "name": "Fata undir hundaskít" + }, "amenity/waste_basket": { "name": "Ruslafata" }, + "amenity/waste_disposal": { + "name": "Ruslagámur" + }, + "amenity/waste_transfer_station": { + "name": "Sorpflokkunarstöð" + }, + "amenity/water_point": { + "name": "Drykkjarvatn fyrir bíla" + }, + "amenity/watering_place": { + "name": "Brynning fyrir dýr" + }, "area": { "name": "Svæði" }, + "area/highway": { + "name": "Yfirborð vegar" + }, + "attraction/amusement_ride": { + "name": "Skemmtitæki" + }, + "attraction/animal": { + "name": "Dýr" + }, + "attraction/big_wheel": { + "name": "Parísarhjól" + }, + "attraction/bumper_car": { + "name": "Ákeyrslubílar" + }, + "attraction/bungee_jumping": { + "name": "Teygjustökk" + }, + "attraction/carousel": { + "name": "Hringekja" + }, + "attraction/dark_ride": { + "name": "Draugahús" + }, + "attraction/drop_tower": { + "name": "Fallturn" + }, + "attraction/pirate_ship": { + "name": "Sjóræningjaskip" + }, + "attraction/river_rafting": { + "name": "Flúðasiglingar" + }, + "attraction/roller_coaster": { + "name": "Rússíbani" + }, + "attraction/train": { + "name": "Ferðamannalest" + }, + "attraction/water_slide": { + "name": "Vatnsrennibraut" + }, "barrier": { "name": "Hindrun" }, @@ -924,6 +3172,9 @@ "barrier/bollard": { "name": "Pollar / tálmar" }, + "barrier/border_control": { + "name": "Landamæraeftirlit" + }, "barrier/cattle_grid": { "name": "Vegrist" }, @@ -933,6 +3184,9 @@ "barrier/cycle_barrier": { "name": "Hjólahindrun" }, + "barrier/ditch": { + "name": "Skurður" + }, "barrier/entrance": { "name": "Inngangur" }, @@ -943,7 +3197,10 @@ "name": "Hlið" }, "barrier/hedge": { - "name": "Hekki" + "name": "Limgerði" + }, + "barrier/kerb": { + "name": "Kantsteinn" }, "barrier/kissing_gate": { "name": "Sjálflokandi hlið" @@ -975,22 +3232,49 @@ "building/barn": { "name": "Hlaða" }, + "building/boathouse": { + "name": "Bátaskýli" + }, + "building/bungalow": { + "name": "Sumarbústaður" + }, "building/bunker": { "name": "Byrgi" }, "building/cabin": { - "name": "Sumarhús", + "name": "Kofi", "terms": "Sumarbústaður, kofi" }, + "building/cathedral": { + "name": "Dómkirkjubygging" + }, + "building/chapel": { + "name": "Kapellubygging" + }, + "building/church": { + "name": "Kirkjubygging" + }, + "building/civic": { + "name": "Borgaraleg bygging" + }, + "building/college": { + "name": "Framhaldskólabygging" + }, "building/commercial": { "name": "Atvinnuhúsnæði" }, "building/construction": { "name": "Á byggingarstigi" }, + "building/detached": { + "name": "Aðskilin bygging" + }, "building/dormitory": { "name": "Heimavist" }, + "building/entrance": { + "name": "Inngangur/Útgangur" + }, "building/garage": { "name": "Bílskúr" }, @@ -1010,16 +3294,22 @@ "name": "Einbýlishús" }, "building/hut": { - "name": "Kofi" + "name": "Fjallakofi" }, "building/industrial": { "name": "Iðnaðarhúsnæði" }, + "building/kindergarten": { + "name": "Forskóla-/Leikskólabygging" + }, + "building/mosque": { + "name": "Moskubygging" + }, "building/public": { "name": "Opinber bygging" }, "building/residential": { - "name": "Íbúahúsnæði" + "name": "Íbúðarhúsnæði" }, "building/retail": { "name": "Verslunarhúsnæði" @@ -1027,43 +3317,124 @@ "building/roof": { "name": "Þak" }, + "building/ruins": { + "name": "Byggingarústir" + }, "building/school": { "name": "Skólabygging" }, + "building/semidetached_house": { + "name": "Hálf-aðskilin bygging" + }, + "building/service": { + "name": "Þjónustubygging" + }, "building/shed": { "name": "Skúr", "terms": "garðskáli" }, + "building/stable": { + "name": "Hesthús" + }, + "building/stadium": { + "name": "Íþróttaleikvangur" + }, "building/static_caravan": { "name": "Staðfast hjólhýsi" }, + "building/temple": { + "name": "Musterisbygging" + }, "building/terrace": { "name": "Raðhús" }, "building/train_station": { "name": "Lestarstöð" }, + "building/transportation": { + "name": "Samgöngubygging" + }, "building/university": { "name": "Háskólabygging" }, "building/warehouse": { "name": "Vöruhús" }, + "camp_site/camp_pitch": { + "name": "Tjaldstæðishólf" + }, + "circular": { + "name": "Hringakstur" + }, + "club": { + "name": "Klúbbur" + }, + "craft": { + "name": "Handverk" + }, + "craft/basket_maker": { + "name": "Körfugerð" + }, + "craft/beekeeper": { + "name": "Býflugnahirðir" + }, "craft/blacksmith": { "name": "Járnsmiður" }, + "craft/boatbuilder": { + "name": "Bátasmiður" + }, "craft/bookbinder": { "name": "Bókbindari" }, + "craft/brewery": { + "name": "Bruggari" + }, + "craft/carpenter": { + "name": "Trésmiður" + }, + "craft/carpet_layer": { + "name": "Teppalagning" + }, + "craft/caterer": { + "name": "Veisluþjónusta" + }, + "craft/chimney_sweeper": { + "name": "Sótari" + }, + "craft/clockmaker": { + "name": "Klukkusmiður" + }, + "craft/confectionery": { + "name": "Sælgætisgerð" + }, + "craft/distillery": { + "name": "Eimingarhús" + }, "craft/dressmaker": { "name": "Kjólasaumari" }, "craft/electrician": { "name": "Rafvirki" }, + "craft/electronics_repair": { + "name": "Rafeindatækjaverkstæði" + }, "craft/gardener": { "name": "Garðyrkjumaður" }, + "craft/glaziery": { + "name": "Glerskurður" + }, + "craft/handicraft": { + "name": "Handverk" + }, + "craft/hvac": { + "name": "Loftræsting, upphitun og loftkæling" + }, + "craft/insulator": { + "name": "Einangrun" + }, "craft/jeweler": { "name": "Skartgripasali" }, @@ -1073,6 +3444,9 @@ "craft/locksmith": { "name": "Lyklasmiður" }, + "craft/metal_construction": { + "name": "Málmsmíði (byggingar)" + }, "craft/optician": { "name": "Gleraugnasali" }, @@ -1082,48 +3456,240 @@ "craft/photographer": { "name": "Ljósmyndari" }, + "craft/photographic_laboratory": { + "name": "Ljósmyndavinnustofa" + }, + "craft/plasterer": { + "name": "Gifslagningar" + }, "craft/plumber": { "name": "Pípari" }, + "craft/pottery": { + "name": "Leirkeragerð" + }, + "craft/rigger": { + "name": "Stagari (rigger)" + }, + "craft/roofer": { + "name": "Þaksmíði" + }, + "craft/saddler": { + "name": "Söðlasmiður" + }, + "craft/sailmaker": { + "name": "Seglagerð" + }, + "craft/sawmill": { + "name": "Sögunarmylla" + }, + "craft/scaffolder": { + "name": "Vinnupallasmíði" + }, + "craft/sculptor": { + "name": "Myndhöggvari" + }, "craft/shoemaker": { "name": "Skósmiður" }, + "craft/stonemason": { + "name": "Steinsmiður" + }, "craft/tailor": { "name": "Skraddari" }, + "craft/tiler": { + "name": "Flísaleggjari" + }, + "craft/tinsmith": { + "name": "Tinsmiður" + }, "craft/upholsterer": { "name": "Bólstrari" }, "craft/watchmaker": { "name": "Úrsmiður" }, + "craft/window_construction": { + "name": "Gluggasmíði" + }, "craft/winery": { "name": "Víngerð" }, + "embankment": { + "name": "Stallur" + }, "emergency/ambulance_station": { "name": "Sjúkrabílastöð" }, + "emergency/defibrillator": { + "name": "Hjartastuðtæki" + }, + "emergency/designated": { + "name": "Ætlað sem neyðaraðgangur" + }, + "emergency/destination": { + "name": "Neyðaraðgangur ef í fararleið" + }, "emergency/fire_hydrant": { "name": "Brunahani" }, + "emergency/life_ring": { + "name": "Bjarghringur" + }, + "emergency/no": { + "name": "Ekki neyðaraðgangur" + }, + "emergency/official": { + "name": "Opinber neyðaraðgangur" + }, "emergency/phone": { "name": "Neyðarsími" }, + "emergency/private": { + "name": "Einka neyðaraðgangur" + }, + "emergency/water_tank": { + "name": "Neyðarvatnstankur" + }, + "emergency/yes": { + "name": "Neyðaraðgangur: Já" + }, + "entrance": { + "name": "Inngangur/Útgangur" + }, + "footway/crossing": { + "name": "Gangbraut" + }, + "footway/crossing-raised": { + "name": "Upphækkuð gangbraut" + }, + "footway/crosswalk": { + "name": "Gangbraut fyrir fótgangandi" + }, + "footway/crosswalk-raised": { + "name": "Upphækkuð gangbraut fyrir fótgangandi" + }, + "footway/sidewalk": { + "name": "Gangstétt" + }, + "ford": { + "name": "Vað" + }, + "golf/bunker": { + "name": "Glompa" + }, + "golf/fairway": { + "name": "Braut" + }, "golf/green": { "name": "Púttflöt" }, + "golf/hole": { + "name": "Golfhola" + }, + "golf/lateral_water_hazard_area": { + "name": "Vatnsgryfja til hliðar" + }, + "golf/lateral_water_hazard_line": { + "name": "Vatnsgryfja til hliðar" + }, + "golf/rough": { + "name": "Kargi" + }, + "golf/tee": { + "name": "Teigur" + }, + "golf/water_hazard_area": { + "name": "Vatnsgryfja" + }, + "golf/water_hazard_line": { + "name": "Vatnsgryfja" + }, + "healthcare": { + "name": "Heilsugæsluaðstaða" + }, + "healthcare/alternative": { + "name": "Óhefðbundnar lækningar" + }, + "healthcare/alternative/chiropractic": { + "name": "Hnykkjalæknir" + }, + "healthcare/audiologist": { + "name": "Heyrnartækjafræðingur" + }, + "healthcare/birthing_center": { + "name": "Fæðingarheimili" + }, + "healthcare/blood_donation": { + "name": "Blóðbanki" + }, + "healthcare/hospice": { + "name": "Líknarsel" + }, + "healthcare/midwife": { + "name": "Ljósmóðir" + }, + "healthcare/occupational_therapist": { + "name": "Iðjuþjálfi" + }, + "healthcare/optometrist": { + "name": "Sjóntækjafræðingur" + }, + "healthcare/physiotherapist": { + "name": "Sjúkraþjálfari" + }, + "healthcare/podiatrist": { + "name": "Fótaaðgerðafræðingur" + }, + "healthcare/psychotherapist": { + "name": "Sálmeðferðarfræðingur" + }, + "healthcare/rehabilitation": { + "name": "Endurhæfingaraðstaða" + }, + "healthcare/speech_therapist": { + "name": "Talmeinafræðingur" + }, "highway": { "name": "Þjóðvegur" }, "highway/bridleway": { "name": "Reiðleið" }, + "highway/bus_guideway": { + "name": "Strætóleiðsagnarbraut" + }, + "highway/bus_stop": { + "name": "Strætóstoppistöð / Biðsvæði" + }, + "highway/corridor": { + "name": "Gangur innanhúss" + }, + "highway/crossing": { + "name": "Gangbraut" + }, + "highway/crossing-raised": { + "name": "Upphækkuð gangbraut" + }, + "highway/crosswalk": { + "name": "Gangbraut fyrir fótgangandi" + }, + "highway/crosswalk-raised": { + "name": "Upphækkuð gangbraut fyrir fótgangandi" + }, "highway/cycleway": { "name": "Hjólastígur" }, + "highway/elevator": { + "name": "Lyfta" + }, "highway/footway": { "name": "Göngustígur" }, + "highway/give_way": { + "name": "Biðskyldumerki" + }, "highway/living_street": { "name": "Vistgata" }, @@ -1133,18 +3699,30 @@ "highway/motorway": { "name": "Hraðbraut" }, + "highway/motorway_junction": { + "name": "Hraðbrautartenging / Útafakstur" + }, "highway/motorway_link": { "name": "Hraðbrautarrein" }, "highway/path": { "name": "Stígur" }, + "highway/pedestrian_area": { + "name": "Svæði fyrir fótgangandi" + }, + "highway/pedestrian_line": { + "name": "Göngugata" + }, "highway/primary": { "name": "Stofnbraut" }, "highway/primary_link": { "name": "Stofnrein" }, + "highway/raceway": { + "name": "Keppnisbraut (mótorsport)" + }, "highway/residential": { "name": "Íbúagata" }, @@ -1182,17 +3760,32 @@ "highway/services": { "name": "Þjónustusvæði" }, + "highway/speed_camera": { + "name": "Hraðamyndavél" + }, "highway/steps": { "name": "Tröppur" }, + "highway/stop": { + "name": "Stöðvunarskyldumerki" + }, + "highway/street_lamp": { + "name": "Ljósastaur" + }, "highway/tertiary": { "name": "Safnbraut" }, "highway/tertiary_link": { "name": "Safnbrautarrein" }, + "highway/track": { + "name": "Vegslóði án viðhalds" + }, + "highway/traffic_mirror": { + "name": "Umferðarspegill" + }, "highway/traffic_signals": { - "name": "Umferðarskilti" + "name": "Umferðarljós" }, "highway/trunk": { "name": "Umferðaræð" @@ -1203,6 +3796,12 @@ "highway/turning_circle": { "name": "Beygjuhringur" }, + "highway/turning_loop": { + "name": "Viðsnúningstorg (eyja)" + }, + "highway/unclassified": { + "name": "Minni/Óflokkaður vegur" + }, "historic": { "name": "Sögulegur staður" }, @@ -1219,74 +3818,254 @@ "name": "Minnismerki" }, "historic/monument": { - "name": "Minnismerki" + "name": "Minnisvarði" }, "historic/ruins": { "name": "Rústir" }, + "historic/tomb": { + "name": "Gröf" + }, "historic/wayside_cross": { "name": "Tilbeiðslukross" }, "historic/wayside_shrine": { - "name": "Tilbeiðsluskríni" + "name": "Tilbeiðsluskrín" + }, + "junction": { + "name": "Tenging" + }, + "landuse": { + "name": "Landnotkun" + }, + "landuse/allotments": { + "name": "Samfélagsgarður" + }, + "landuse/aquaculture": { + "name": "Vatnseldi" }, "landuse/basin": { "name": "Lægð" }, + "landuse/brownfield": { + "name": "Byggingarsvæði" + }, "landuse/cemetery": { "name": "Kirkjugarður" }, + "landuse/churchyard": { + "name": "Kirkjulóð" + }, + "landuse/commercial": { + "name": "Atvinnusvæði" + }, "landuse/construction": { "name": "Byggingarframkvæmdir" }, + "landuse/farm": { + "name": "Akurlendi" + }, + "landuse/farmland": { + "name": "Akurlendi" + }, "landuse/farmyard": { "name": "Bóndabýli" }, "landuse/forest": { "name": "Skógur" }, + "landuse/garages": { + "name": "Landnotkun fyrir verkstæði" + }, "landuse/grass": { "name": "Gras" }, + "landuse/greenfield": { + "name": "Nýbyggingarsvæði" + }, + "landuse/greenhouse_horticulture": { + "name": "Blómagróðurhús" + }, + "landuse/harbour": { + "name": "Höfn" + }, + "landuse/industrial": { + "name": "Iðnaðarsvæði" + }, + "landuse/industrial/scrap_yard": { + "name": "Brotajárnshaugur" + }, + "landuse/industrial/slaughterhouse": { + "name": "Sláturhús" + }, "landuse/landfill": { "name": "Landfylling" }, "landuse/meadow": { "name": "Engi" }, + "landuse/military": { + "name": "Hersvæði" + }, + "landuse/military/airfield": { + "name": "Herflugvöllur" + }, + "landuse/military/barracks": { + "name": "Herbúðir" + }, + "landuse/military/bunker": { + "name": "Hernaðarsprengjubyrgi" + }, + "landuse/military/checkpoint": { + "name": "Varðstöð" + }, + "landuse/military/danger_area": { + "name": "Hættusvæði" + }, + "landuse/military/naval_base": { + "name": "Flotastöð" + }, + "landuse/military/nuclear_explosion_site": { + "name": "Kjarnorkusprengisvæði" + }, + "landuse/military/obstacle_course": { + "name": "Hindrunarhlaupabraut" + }, + "landuse/military/office": { + "name": "Hermálaskrifstofa" + }, + "landuse/military/range": { + "name": "Hersvæði" + }, + "landuse/military/training_area": { + "name": "Æfingasvæði" + }, "landuse/orchard": { "name": "Aldingarður" }, + "landuse/plant_nursery": { + "name": "Uppeldi plantna" + }, "landuse/quarry": { "name": "Náma" }, + "landuse/railway": { + "name": "Járnbrautargangur" + }, + "landuse/recreation_ground": { + "name": "Leikvöllur" + }, + "landuse/religious": { + "name": "Svæði fyrir trúarathafnir" + }, + "landuse/residential": { + "name": "Íbúðahverfi" + }, + "landuse/retail": { + "name": "Svæði fyrir verslun og þjónustu" + }, "landuse/vineyard": { "name": "Vínekra" }, "leisure": { "name": "Skemmtun" }, + "leisure/adult_gaming_centre": { + "name": "Fjárhættuspilasalur" + }, + "leisure/amusement_arcade": { + "name": "Spilasalur" + }, + "leisure/bird_hide": { + "name": "Fuglaskoðunarskýli" + }, + "leisure/bowling_alley": { + "name": "Keiluhöll" + }, + "leisure/common": { + "name": "Almenningur" + }, + "leisure/dance": { + "name": "Danssalur" + }, "leisure/dog_park": { "name": "Hundagarður" }, "leisure/firepit": { "name": "Eldstæði" }, + "leisure/fitness_centre": { + "name": "Líkamsræktarmiðstöð" + }, + "leisure/fitness_centre/yoga": { + "name": "Jógastúdíó" + }, + "leisure/fitness_station": { + "name": "Líkamsþjálfunarstöð utandyra" + }, + "leisure/fitness_station/balance_beam": { + "name": "Jafnvægisslá" + }, + "leisure/fitness_station/box": { + "name": "Æfingakassi" + }, + "leisure/fitness_station/horizontal_bar": { + "name": "Þverslá" + }, + "leisure/fitness_station/horizontal_ladder": { + "name": "Hangstigi" + }, + "leisure/fitness_station/hyperextension": { + "name": "Ofurteygingastöð" + }, + "leisure/fitness_station/parallel_bars": { + "name": "Samhliðaslár" + }, + "leisure/fitness_station/push-up": { + "name": "Armbeygjustöð" + }, + "leisure/fitness_station/rings": { + "name": "Æfingahringir" + }, + "leisure/fitness_station/sign": { + "name": "Merki með æfingaleiðbeiningum" + }, + "leisure/fitness_station/sit-up": { + "name": "Uppsetustöð" + }, + "leisure/fitness_station/stairs": { + "name": "Æfingastigar" + }, "leisure/garden": { "name": "Garður" }, "leisure/golf_course": { "name": "Golfvöllur" }, + "leisure/hackerspace": { + "name": "Hakkaraathvarf" + }, + "leisure/horse_riding": { + "name": "Aðstaða fyrir reiðmennsku" + }, "leisure/ice_rink": { "name": "Skautasvell" }, "leisure/marina": { "name": "Bátahöfn" }, + "leisure/miniature_golf": { + "name": "Mínígolf" + }, + "leisure/nature_reserve": { + "name": "Friðland" + }, "leisure/park": { "name": "Garður" }, + "leisure/picnic_table": { + "name": "Nestisborð" + }, "leisure/pitch": { "name": "Íþróttavöllur" }, @@ -1299,9 +4078,36 @@ "leisure/pitch/basketball": { "name": "Körfuboltavöllur" }, + "leisure/pitch/beachvolleyball": { + "name": "Strandblakvöllur" + }, + "leisure/pitch/boules": { + "name": "Kúluspilsvöllur (boules/bocce)" + }, + "leisure/pitch/bowls": { + "name": "Kúluspilsflöt" + }, + "leisure/pitch/cricket": { + "name": "Krikketvöllur" + }, + "leisure/pitch/equestrian": { + "name": "Reiðsvæði" + }, + "leisure/pitch/rugby_league": { + "name": "Rúgbývöllur (league)" + }, + "leisure/pitch/rugby_union": { + "name": "Rúgbývöllur (union)" + }, + "leisure/pitch/skateboard": { + "name": "Skautagarður" + }, "leisure/pitch/soccer": { "name": "Knattspyrnuvöllur" }, + "leisure/pitch/table_tennis": { + "name": "Borðtennisborð" + }, "leisure/pitch/tennis": { "name": "Tennisvöllur" }, @@ -1311,36 +4117,108 @@ "leisure/playground": { "name": "Leikvöllur" }, + "leisure/resort": { + "name": "Afþreyingarþorp" + }, + "leisure/running_track": { + "name": "Keppnisbraut (hlaup)" + }, + "leisure/sauna": { + "name": "Gufubað" + }, "leisure/slipway": { "name": "Dráttarbraut" }, + "leisure/sports_centre": { + "name": "Íþróttamiðstöð" + }, + "leisure/sports_centre/swimming": { + "name": "Sundlaugaraðstaða" + }, "leisure/stadium": { "name": "Leikvangur" }, "leisure/swimming_pool": { "name": "Sundlaug" }, + "leisure/track": { + "name": "Keppnisbraut (ekki mótorsport)" + }, + "leisure/water_park": { + "name": "Vatnagarður" + }, "line": { "name": "Lína" }, "man_made": { "name": "Manngert" }, + "man_made/adit": { + "name": "Námuinngangur" + }, "man_made/breakwater": { "name": "Sjóvarnargarður" }, + "man_made/bridge": { + "name": "Brú" + }, + "man_made/chimney": { + "name": "Skorsteinn" + }, + "man_made/crane": { + "name": "Krani" + }, "man_made/cutline": { "name": "Cut line" }, + "man_made/embankment": { + "name": "Stallur" + }, + "man_made/flagpole": { + "name": "Fánastöng" + }, + "man_made/gasometer": { + "name": "Gasmælir" + }, + "man_made/groyne": { + "name": "Öldubrjótur" + }, "man_made/lighthouse": { "name": "Viti" }, + "man_made/mast": { + "name": "Mastur" + }, + "man_made/monitoring_station": { + "name": "Vöktunarstöð" + }, + "man_made/observation": { + "name": "Varðturn" + }, + "man_made/petroleum_well": { + "name": "Olíulind" + }, "man_made/pier": { "name": "Bryggja" }, "man_made/pipeline": { "name": "Röraleiðsla" }, + "man_made/pumping_station": { + "name": "Dælustöð" + }, + "man_made/silo": { + "name": "Síló" + }, + "man_made/storage_tank": { + "name": "Geymslutankur" + }, + "man_made/surveillance": { + "name": "Eftirlit" + }, + "man_made/surveillance_camera": { + "name": "Eftirlitsmyndavél" + }, "man_made/survey_point": { "name": "Útsýnisstaður" }, @@ -1348,29 +4226,60 @@ "name": "Turn" }, "man_made/wastewater_plant": { - "name": "Skolphreinsistöð" + "name": "Skólphreinsistöð" }, "man_made/water_tower": { "name": "Vatnsturn" }, + "man_made/water_well": { + "name": "Brunnur" + }, "man_made/water_works": { "name": "Vatnsveita" }, + "man_made/watermill": { + "name": "Vatnsmylla" + }, + "man_made/windmill": { + "name": "Vindmylla" + }, + "man_made/works": { + "name": "Verksmiðja" + }, + "manhole": { + "name": "Mannop" + }, + "manhole/drain": { + "name": "Yfirfall" + }, + "manhole/telecom": { + "name": "Mannop fyrir fjarskipti" + }, "natural": { "name": "Náttúrulegt" }, + "natural/bare_rock": { + "name": "Berar klappir" + }, "natural/bay": { "name": "Flói" }, "natural/beach": { "name": "Strönd" }, + "natural/cave_entrance": { + "name": "Inngangur í helli", + "terms": "hellir,skúti,skýli" + }, "natural/cliff": { "name": "Klettur" }, "natural/coastline": { "name": "Strandlengja" }, + "natural/fell": { + "name": "Fell" + }, "natural/glacier": { "name": "Jökull" }, @@ -1383,6 +4292,18 @@ "natural/peak": { "name": "Tindur" }, + "natural/ridge": { + "name": "Hryggur" + }, + "natural/saddle": { + "name": "Röðull" + }, + "natural/sand": { + "name": "Sandur" + }, + "natural/scree": { + "name": "Skriða" + }, "natural/scrub": { "name": "Kjarr" }, @@ -1392,6 +4313,12 @@ "natural/tree": { "name": "Tré" }, + "natural/tree_row": { + "name": "Trjáröð" + }, + "natural/volcano": { + "name": "Eldstöð" + }, "natural/water": { "name": "Vatn" }, @@ -1410,36 +4337,147 @@ "natural/wood": { "name": "Skógur" }, + "noexit/yes": { + "name": "Enginn útgangur" + }, "office": { "name": "Skrifstofa" }, + "office/accountant": { + "name": "Bókhaldsskrifstofa" + }, + "office/administrative": { + "name": "Stjórnsýsluskrifstofa" + }, + "office/adoption_agency": { + "name": "Ættleiðingaskrifstofa" + }, + "office/advertising_agency": { + "name": "Auglýsingastofa" + }, + "office/architect": { + "name": "Arkitektastofa" + }, + "office/association": { + "name": "Skrifstofa frjálsra félagasamtaka" + }, + "office/charity": { + "name": "Skrifstofa góðgerðasamtaka" + }, + "office/company": { + "name": "Skrifstofa fyrirtækis" + }, + "office/coworking": { + "name": "Sameiginlegt vinnurými" + }, + "office/educational_institution": { + "name": "Menntastofnun" + }, + "office/employment_agency": { + "name": "Atvinnumiðlun" + }, + "office/energy_supplier": { + "name": "Orkusöluskrifstofa" + }, + "office/estate_agent": { + "name": "Fasteignasöluskrifstofa" + }, "office/financial": { "name": "Fjármálafyrirtæki" }, + "office/forestry": { + "name": "Skrifstofa skógarvarða" + }, + "office/foundation": { + "name": "Skrifstofa sjálfseignarstofnunar" + }, "office/government": { "name": "Opinber stofnun" }, + "office/government/register_office": { + "name": "Skráningarskrifstofa" + }, + "office/government/tax": { + "name": "Skattstofa" + }, + "office/guide": { + "name": "Skrifstofa leiðsögumanna" + }, + "office/insurance": { + "name": "Tryggingaskrifstofa" + }, + "office/it": { + "name": "Upplýsingatækniskrifstofa" + }, + "office/lawyer": { + "name": "Lögmannaskrifstofa" + }, + "office/lawyer/notary": { + "name": "Skrifstofa lögbókanda" + }, + "office/newspaper": { + "name": "Skrifstofur fréttablaðs" + }, + "office/ngo": { + "name": "Skrifstofa frjálsra félagasamtaka" + }, + "office/notary": { + "name": "Skrifstofa lögbókanda" + }, + "office/physician": { + "name": "Læknir" + }, "office/political_party": { "name": "Stjórnmálaflokkur" }, + "office/private_investigator": { + "name": "Einkaspæjaraskrifstofa" + }, + "office/quango": { + "name": "Félagasamtök í samstarfi við hið opinbera (quango)" + }, "office/research": { "name": "Rannsóknarstofa" }, + "office/surveyor": { + "name": "Landmælingaskrifstofa" + }, + "office/tax_advisor": { + "name": "Skattaráðgjafarskrifstofa" + }, + "office/telecommunication": { + "name": "Samskiptaskrifstofa" + }, + "office/therapist": { + "name": "Meðferðarstofa" + }, "office/travel_agent": { "name": "Ferðaskrifstofa" }, + "office/water_utility": { + "name": "Skrifstofa vatnsveitu" + }, + "piste": { + "name": "Skíða/gönguslóð" + }, "place": { "name": "Staður" }, "place/city": { "name": "Borg" }, + "place/farm": { + "name": "Býli" + }, "place/hamlet": { "name": "Þéttbýliskjarni" }, "place/island": { "name": "Eyja" }, + "place/islet": { + "name": "Hólmi" + }, "place/isolated_dwelling": { "name": "Einöngruð búseta" }, @@ -1449,12 +4487,66 @@ "place/neighbourhood": { "name": "Hverfi" }, + "place/plot": { + "name": "Skiki" + }, + "place/quarter": { + "name": "Úthverfishluti / Hverfi" + }, + "place/square": { + "name": "Torg" + }, + "place/suburb": { + "name": "Jaðarbyggð / Úthverfi" + }, "place/town": { "name": "Bær" }, "place/village": { "name": "Þorp" }, + "playground/balance_beam": { + "name": "Jafnvægisslá" + }, + "playground/basket_spinner": { + "name": "Körfuhringróla" + }, + "playground/basket_swing": { + "name": "Körfuróla" + }, + "playground/climbing_frame": { + "name": "Klifurgrind" + }, + "playground/cushion": { + "name": "Hoppkoddi" + }, + "playground/horizontal_bar": { + "name": "Leikþverslá" + }, + "playground/rocker": { + "name": "Rugguhestur" + }, + "playground/roundabout": { + "name": "Leikhringekja" + }, + "playground/sandpit": { + "name": "Sandkassi" + }, + "playground/seesaw": { + "name": "Vegasalt" + }, + "playground/slide": { + "name": "Rennibraut" + }, + "playground/structure": { + "name": "Leikjagrind" + }, + "playground/swing": { + "name": "Róla" + }, + "playground/zipwire": { + "name": "Aparóla" + }, "point": { "name": "Punktur" }, @@ -1464,66 +4556,295 @@ "power/generator": { "name": "Aflstöð" }, + "power/generator/source_nuclear": { + "name": "Kjarnaofn" + }, + "power/generator/source_wind": { + "name": "Vindtúrbína" + }, "power/line": { - "name": "Orkulína" + "name": "Raflína" + }, + "power/minor_line": { + "name": "Minni raflína" + }, + "power/plant": { + "name": "Orkuverslóð" }, "power/pole": { - "name": "Orkustaur" + "name": "Rafmagnsstaur" }, "power/sub_station": { "name": "Undirstöð" }, + "power/substation": { + "name": "Undirstöð" + }, + "power/switch": { + "name": "Spennivirki" + }, "power/tower": { "name": "Háspennuturn" }, "power/transformer": { "name": "Straumbreytir" }, + "public_transport/linear_platform": { + "name": "Biðstöð / Biðsvæði", + "terms": "almenningssamgöngur,strætó,samgöngur,stoppistöð" + }, + "public_transport/linear_platform_aerialway": { + "name": "Lyftustöð / Biðsvæði" + }, + "public_transport/linear_platform_bus": { + "name": "Strætóstoppistöð / Biðsvæði" + }, + "public_transport/linear_platform_ferry": { + "name": "Ferjustöð / Biðsvæði" + }, + "public_transport/linear_platform_light_rail": { + "name": "Léttlestarstoppistöð / Biðsvæði" + }, + "public_transport/linear_platform_monorail": { + "name": "Einteinungsstoppistöð / Biðsvæði" + }, + "public_transport/linear_platform_subway": { + "name": "Neðanjarðarlestarpallur" + }, + "public_transport/linear_platform_train": { + "name": "Lestarpallur" + }, + "public_transport/linear_platform_tram": { + "name": "Sporvagnastoppistöð / Biðsvæði" + }, + "public_transport/linear_platform_trolleybus": { + "name": "Strætóstoppistöð / Biðsvæði" + }, + "public_transport/platform": { + "name": "Biðstöð / Biðsvæði", + "terms": "almenningssamgöngur,strætó,samgöngur,stoppistöð" + }, + "public_transport/platform_aerialway": { + "name": "Lyftustöð / Biðsvæði" + }, + "public_transport/platform_bus": { + "name": "Strætóstoppistöð / Biðsvæði" + }, + "public_transport/platform_ferry": { + "name": "Ferjustöð / Biðsvæði" + }, + "public_transport/platform_light_rail": { + "name": "Léttlestarstoppistöð / Biðsvæði" + }, + "public_transport/platform_monorail": { + "name": "Einteinungsstoppistöð / Biðsvæði" + }, + "public_transport/platform_subway": { + "name": "Neðanjarðarlestarpallur" + }, + "public_transport/platform_train": { + "name": "Lestarpallur" + }, + "public_transport/platform_tram": { + "name": "Sporvagnastoppistöð / Biðsvæði" + }, + "public_transport/platform_trolleybus": { + "name": "Strætóstoppistöð / Biðsvæði" + }, + "public_transport/station": { + "name": "Umferðarmiðstöð", + "terms": "almenningssamgöngur,strætó,rúta,samgöngur,skiptistöð" + }, + "public_transport/station_aerialway": { + "name": "Lyftustöð" + }, + "public_transport/station_bus": { + "name": "Strætisvagnastöð / Umferðarmiðstöð" + }, + "public_transport/station_ferry": { + "name": "Ferjustöð / Umferðarmiðstöð" + }, + "public_transport/station_light_rail": { + "name": "Léttlestarstöð" + }, + "public_transport/station_monorail": { + "name": "Einteinungsstöð" + }, + "public_transport/station_subway": { + "name": "Neðanjarðarlestarstöð" + }, + "public_transport/station_train": { + "name": "Lestarstöð" + }, + "public_transport/station_train_halt": { + "name": "Lestarstöð (stöðvun / beiðni)" + }, + "public_transport/station_tram": { + "name": "Sporvagnastöð" + }, + "public_transport/station_trolleybus": { + "name": "Strætisvagnastöð / Umferðarmiðstöð" + }, + "public_transport/stop_area": { + "name": "Biðstöðvarsvæði" + }, + "public_transport/stop_position": { + "name": "Staðsetning stöðvunar almenningssamgangna" + }, + "public_transport/stop_position_aerialway": { + "name": "Staðsetning stöðvunar víralyftu" + }, + "public_transport/stop_position_bus": { + "name": "Staðsetning stöðvunar strætisvagna" + }, + "public_transport/stop_position_ferry": { + "name": "Staðsetning stöðvunar ferju" + }, + "public_transport/stop_position_light_rail": { + "name": "Staðsetning stöðvunar léttlestar" + }, + "public_transport/stop_position_monorail": { + "name": "Staðsetning stöðvunar einteinungs" + }, + "public_transport/stop_position_subway": { + "name": "Staðsetning stöðvunar neðanjarðarlestar" + }, + "public_transport/stop_position_train": { + "name": "Staðsetning stöðvunar járnbrautarlestar" + }, + "public_transport/stop_position_tram": { + "name": "Staðsetning stöðvunar sporvagna" + }, + "public_transport/stop_position_trolleybus": { + "name": "Staðsetning stöðvunar rafknúinna strætisvagna" + }, "railway": { "name": "Lest" }, "railway/abandoned": { "name": "Yfirgefnir lestarteinar" }, + "railway/buffer_stop": { + "name": "Járnbrautarstuðpúði" + }, + "railway/crossing": { + "name": "Þverun járnbrautar (stígur)" + }, + "railway/derail": { + "name": "Járnbrautarsporsþvinga", + "terms": "til að setja út af spori" + }, "railway/disused": { "name": "Ónotaðir lestarteinar" }, "railway/funicular": { "name": "Toglest" }, + "railway/halt": { + "name": "Lestarstöð (stöðvun / beiðni)" + }, + "railway/level_crossing": { + "name": "Þverun járnbrautar (vegur)" + }, + "railway/light_rail": { + "name": "Léttlest" + }, + "railway/milestone": { + "name": "Vegalengdarmerki járnbrautar" + }, + "railway/miniature": { + "name": "Smájárnbraut" + }, "railway/monorail": { - "name": "Monorail" + "name": "Einteinungur" + }, + "railway/narrow_gauge": { + "name": "Mjótt lestarspor" + }, + "railway/platform": { + "name": "Lestarpallur" }, "railway/rail": { "name": "Lestarteinar" }, + "railway/signal": { + "name": "Lestarmerki" + }, + "railway/station": { + "name": "Lestarstöð" + }, "railway/subway": { "name": "Neðanjarðarlest" }, "railway/subway_entrance": { "name": "Inngangur að neðanjarðarlest" }, + "railway/switch": { + "name": "Lestarteinaskiptir" + }, + "railway/train_wash": { + "name": "Lestarvagnaþvottur" + }, "railway/tram": { "name": "Sporvagn" }, + "railway/tram_stop": { + "name": "Staðsetning stöðvunar sporvagna" + }, "relation": { "name": "Tengsl" }, + "roundabout": { + "name": "Hringtorg" + }, "route/ferry": { "name": "Ferjuleið" }, "shop": { "name": "Verslun" }, + "shop/agrarian": { + "name": "Landbúnaðarvöruverslun" + }, "shop/alcohol": { "name": "Vínbúð" }, + "shop/anime": { + "name": "Anime-búð" + }, + "shop/antiques": { + "name": "Antíkverslun" + }, + "shop/appliance": { + "name": "Raftækjaverslun" + }, + "shop/art": { + "name": "Listmunaverslun" + }, + "shop/baby_goods": { + "name": "Barnavöruverslun" + }, + "shop/bag": { + "name": "Töskubúð" + }, "shop/bakery": { "name": "Bakarí" }, + "shop/bathroom_furnishing": { + "name": "Baðinnréttingaverslun" + }, "shop/beauty": { "name": "Fegrunarstofa" }, + "shop/beauty/nails": { + "name": "Naglasnyrtingastofa" + }, + "shop/beauty/tanning": { + "name": "Sólbaðsstofa" + }, + "shop/bed": { + "name": "Rúm/Dýnuverslun" + }, "shop/beverages": { "name": "Drykkjarbúð" }, @@ -1533,12 +4854,18 @@ "shop/bookmaker": { "name": "Veðmangari" }, + "shop/books": { + "name": "Bókabúð" + }, "shop/boutique": { "name": "Búð" }, "shop/butcher": { "name": "Slátrari" }, + "shop/candles": { + "name": "Kertabúð" + }, "shop/car": { "name": "Bílabúð" }, @@ -1548,9 +4875,27 @@ "shop/car_repair": { "name": "Bílaverkstæði" }, + "shop/carpet": { + "name": "Gólfteppaverslun" + }, + "shop/charity": { + "name": "Góðgerðaverslun" + }, + "shop/cheese": { + "name": "Ostabúð" + }, + "shop/chemist": { + "name": "Hreinlætisvöruverslun" + }, + "shop/chocolate": { + "name": "Súkkulaðibúð" + }, "shop/clothes": { "name": "Fataverslun" }, + "shop/coffee": { + "name": "Kaffibúð" + }, "shop/computer": { "name": "Tölvuverslun" }, @@ -1560,6 +4905,21 @@ "shop/convenience": { "name": "Kjörbúð" }, + "shop/copyshop": { + "name": "Ljósritunarstofa" + }, + "shop/cosmetics": { + "name": "Snyrtivöruverslun" + }, + "shop/craft": { + "name": "Handverksverslun" + }, + "shop/curtain": { + "name": "Gluggatjaldaverslun" + }, + "shop/dairy": { + "name": "Mjólkurbúð" + }, "shop/deli": { "name": "Deli" }, @@ -1569,27 +4929,51 @@ "shop/doityourself": { "name": "Handlaginna verslun" }, + "shop/dry_cleaning": { + "name": "Þurrhreinsun" + }, + "shop/e-cigarette": { + "name": "Rafrettubúð" + }, "shop/electronics": { - "name": "Raftækjaverslun" + "name": "Rafeindatækjaverslun" + }, + "shop/erotic": { + "name": "Hjálpartæki ástarlífsins" + }, + "shop/fabric": { + "name": "Álnavöruverslun" }, "shop/farm": { "name": "Vörubás" }, + "shop/fashion": { + "name": "Tískuverslun" + }, "shop/fishmonger": { "name": "Fisksali" }, "shop/florist": { "name": "Blómabúð" }, + "shop/frame": { + "name": "Innrömmun" + }, "shop/funeral_directors": { "name": "Útfararheimili" }, + "shop/furnace": { + "name": "Arinvöruverslun" + }, "shop/furniture": { "name": "Húsgagnaverslun" }, "shop/garden_centre": { "name": "Garðaverslun" }, + "shop/gas": { + "name": "Verslun með flöskugas" + }, "shop/gift": { "name": "Gjafavörubúð" }, @@ -1602,49 +4986,121 @@ "shop/hardware": { "name": "Byggingavöruverslun" }, + "shop/health_food": { + "name": "Verslun með heilsuvörur" + }, + "shop/hearing_aids": { + "name": "Heyrnartækjaverslun" + }, "shop/herbalist": { "name": "Grasalæknir" }, "shop/hifi": { "name": "Hljómverslun" }, + "shop/houseware": { + "name": "Búsáhaldaverslun" + }, + "shop/interior_decoration": { + "name": "Innanhúshönnunarverslun" + }, "shop/jewelry": { "name": "Skartgripabúð" }, + "shop/kiosk": { + "name": "Blaðastandur" + }, + "shop/kitchen": { + "name": "Eldhúshönnunarverslun" + }, "shop/laundry": { "name": "Þvottur" }, + "shop/leather": { + "name": "Leðurvöruverslun" + }, "shop/locksmith": { "name": "Lásasmiður" }, + "shop/lottery": { + "name": "Lottósjoppa" + }, "shop/mall": { "name": "Verslunarmiðstöð" }, "shop/massage": { "name": "Nuddstofa" }, + "shop/medical_supply": { + "name": "Lækningavöruverslun" + }, "shop/mobile_phone": { "name": "Farsímaverslun" }, + "shop/money_lender": { + "name": "Peningaútlán" + }, "shop/motorcycle": { "name": "Mótorhjólaverslun" }, "shop/music": { "name": "Tónlistarbúð" }, + "shop/musical_instrument": { + "name": "Hljóðfæraverslun" + }, + "shop/newsagent": { + "name": "Dagblaða/tímaritasala" + }, + "shop/nutrition_supplements": { + "name": "Verslun með fæðubótarefni" + }, "shop/optician": { "name": "Gleraugnaverslun" }, + "shop/organic": { + "name": "Verslun með lífrænar vörur" + }, "shop/outdoor": { "name": "Útivistarbúð" }, + "shop/paint": { + "name": "Málningarvöruverslun" + }, + "shop/pastry": { + "name": "Kökubúð" + }, + "shop/pawnbroker": { + "name": "Veðlánari" + }, + "shop/perfumery": { + "name": "Ilmvatnsbúð" + }, "shop/pet": { "name": "Dýrabúð" }, + "shop/photo": { + "name": "Ljósmyndavöruverslun" + }, + "shop/pyrotechnics": { + "name": "Flugeldaverslun" + }, + "shop/radiotechnics": { + "name": "Rafíhlutaverslun" + }, + "shop/religion": { + "name": "Verslun með trúartengdar vörur" + }, + "shop/scuba_diving": { + "name": "Verslun með köfunarvörur" + }, "shop/seafood": { - "name": "Fiskverslu", + "name": "Fiskverslun", "terms": "verslun með sjávarfang" }, + "shop/second_hand": { + "name": "Notað og nýtt" + }, "shop/shoes": { "name": "Skóbúð" }, @@ -1654,18 +5110,36 @@ "shop/stationery": { "name": "Skriffangaverslun" }, + "shop/storage_rental": { + "name": "Geymsluleiga" + }, "shop/supermarket": { "name": "Stórmarkaður" }, "shop/tailor": { "name": "Skraddari" }, + "shop/tattoo": { + "name": "Húðflúrstofa" + }, + "shop/tea": { + "name": "Teverslun" + }, "shop/ticket": { "name": "Miðasala" }, + "shop/tiles": { + "name": "Flísaverslun" + }, + "shop/tobacco": { + "name": "Tóbaksverslun" + }, "shop/toys": { "name": "Dótabúð" }, + "shop/trade": { + "name": "Iðnaðarvörusala" + }, "shop/travel_agency": { "name": "Ferðaskrifstofa" }, @@ -1675,27 +5149,66 @@ "shop/vacant": { "name": "Tóm verslun" }, + "shop/vacuum_cleaner": { + "name": "Verslun með ryksugur" + }, "shop/variety_store": { "name": "Allrahandaverslun" }, "shop/video": { "name": "Myndbandaverslun" }, + "shop/video_games": { + "name": "Tölvuleikjaverslun" + }, + "shop/watches": { + "name": "Úraverslun" + }, + "shop/water_sports": { + "name": "Verslun með sund/vatnaíþróttavörur" + }, + "shop/weapons": { + "name": "Vopnaverslun" + }, + "shop/wholesale": { + "name": "Heildverslun" + }, + "shop/window_blind": { + "name": "Verslun með rimlagluggatjöld" + }, + "shop/wine": { + "name": "Vínbúð" + }, "tourism": { - "name": "Ferðamannaiðnaður" + "name": "Ferðaþjónusta" }, "tourism/alpine_hut": { "name": "Fjallakofi" }, + "tourism/apartment": { + "name": "Gestaíbúð" + }, + "tourism/aquarium": { + "name": "Sædýrasafn" + }, "tourism/artwork": { "name": "Listaverk" }, "tourism/attraction": { "name": "Ferðamannagildra" }, + "tourism/camp_site": { + "name": "Tjaldsvæði" + }, "tourism/caravan_site": { "name": "Hjólhýsagarður" }, + "tourism/chalet": { + "name": "Frístundahús" + }, + "tourism/gallery": { + "name": "Listagallerí" + }, "tourism/guest_house": { "name": "Gestahús" }, @@ -1708,6 +5221,18 @@ "tourism/information": { "name": "Upplýsingar" }, + "tourism/information/board": { + "name": "Upplýsingatafla" + }, + "tourism/information/guidepost": { + "name": "Upplýsingaskilti" + }, + "tourism/information/map": { + "name": "Kort" + }, + "tourism/information/office": { + "name": "Upplýsingaskrifstofa ferðamanna" + }, "tourism/motel": { "name": "Mótel" }, @@ -1723,9 +5248,42 @@ "tourism/viewpoint": { "name": "Útsýnisstaður" }, + "tourism/wilderness_hut": { + "name": "Óbyggðakofi" + }, "tourism/zoo": { "name": "Dýragarður" }, + "traffic_calming": { + "name": "Hraðahindrun" + }, + "traffic_calming/bump": { + "name": "Hraðahindrunarójafna" + }, + "traffic_calming/chicane": { + "name": "Umferðarhliðrun" + }, + "traffic_calming/choker": { + "name": "Umferðarþrenging" + }, + "traffic_calming/cushion": { + "name": "Hraðahindrunarkoddi" + }, + "traffic_calming/dip": { + "name": "Hraðahindrunardokk" + }, + "traffic_calming/hump": { + "name": "Hraðahindrunaralda" + }, + "traffic_calming/island": { + "name": "Umferðareyja" + }, + "traffic_calming/rumble_strip": { + "name": "Hvinrendur" + }, + "traffic_calming/table": { + "name": "Hraðahindrunarpallur" + }, "type/boundary": { "name": "Svæðamörk" }, @@ -1738,6 +5296,27 @@ "type/restriction": { "name": "Takmörkun" }, + "type/restriction/no_left_turn": { + "name": "Engin vinstri beygja" + }, + "type/restriction/no_right_turn": { + "name": "Engin hægri beygja" + }, + "type/restriction/no_straight_on": { + "name": "Ekki beint áfram" + }, + "type/restriction/no_u_turn": { + "name": "Engin U-beygja" + }, + "type/restriction/only_left_turn": { + "name": "Einungis vinstri beygja" + }, + "type/restriction/only_right_turn": { + "name": "Einungis hægri beygja" + }, + "type/restriction/only_straight_on": { + "name": "Engar beygjur" + }, "type/route": { "name": "Leið" }, @@ -1754,17 +5333,32 @@ "name": "Ferjuleið" }, "type/route/foot": { + "name": "Leið fyrir fótgangandi" + }, + "type/route/hiking": { "name": "Gönguleið" }, + "type/route/horse": { + "name": "Reiðleið" + }, + "type/route/light_rail": { + "name": "Léttlestarleið" + }, "type/route/pipeline": { "name": "Röraleið" }, + "type/route/piste": { + "name": "Skíða/göngubraut" + }, "type/route/power": { - "name": "Orkuleið" + "name": "Orkuflutningsleið" }, "type/route/road": { "name": "Vegaleið" }, + "type/route/subway": { + "name": "Leið neðanjarðarlestar" + }, "type/route/train": { "name": "Lestarleið" }, @@ -1774,12 +5368,18 @@ "type/route_master": { "name": "Leiðastjóri" }, + "type/waterway": { + "name": "Siglingaleið" + }, "vertex": { "name": "Annað" }, "waterway": { "name": "Siglingaleið" }, + "waterway/boatyard": { + "name": "Bátalægi" + }, "waterway/canal": { "name": "Síki" }, @@ -1789,22 +5389,267 @@ "waterway/ditch": { "name": "Skurður" }, + "waterway/dock": { + "name": "Flotkví / Slippur" + }, "waterway/drain": { "name": "Frárennsli" }, + "waterway/fuel": { + "name": "Eldsneytisstöð fyrir báta" + }, "waterway/river": { "name": "Á" }, "waterway/riverbank": { "name": "Árbakki" }, + "waterway/sanitary_dump_station": { + "name": "Salernishreinsun fyrir báta" + }, "waterway/stream": { "name": "Straumvatn" }, + "waterway/stream_intermittent": { + "name": "Tímabundið straumvatn" + }, + "waterway/water_point": { + "name": "Drykkjarvatn fyrir báta" + }, + "waterway/waterfall": { + "name": "Foss" + }, "waterway/weir": { "name": "Yfirfall" } } + }, + "imagery": { + "Bing": { + "description": "Gervihnatta- og loftmyndir.", + "name": "Loftmyndir frá Bing" + }, + "DigitalGlobe-Premium": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Gervihnattamyndir frá DigitalGlobe (Premium).", + "name": "Myndir frá DigitalGlobe (Premium)" + }, + "DigitalGlobe-Premium-vintage": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Útjaðar myndefnis og tökudagsetningar. Merkingar birtast við aðdráttarstig 14 og hærra.", + "name": "Eldri myndir frá DigitalGlobe (Premium Vintage)" + }, + "DigitalGlobe-Standard": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Gervihnattamyndir frá DigitalGlobe (Standard).", + "name": "Myndir frá DigitalGlobe (Standard)" + }, + "DigitalGlobe-Standard-vintage": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Útjaðar myndefnis og tökudagsetningar. Merkingar birtast við aðdráttarstig 14 og hærra.", + "name": "Eldri myndir frá DigitalGlobe (Standard Vintage)" + }, + "EsriWorldImagery": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Heimsmyndir frá Esri.", + "name": "Heimsmyndir frá Esri" + }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Myndefni úr safni Esri sem gæti verið skýrara og nákvæmara en sjálfgefna lagið.", + "name": "Heimsmyndir frá Esri (Clarity) prófun" + }, + "MAPNIK": { + "attribution": { + "text": "© Þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "description": "Sjálfgefna OpenStreetMap-lagið.", + "name": "OpenStreetMap (staðlað)" + }, + "Mapbox": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Gervihnatta- og loftmyndir.", + "name": "Mapbox gervihnattamyndir" + }, + "OSM_Inspector-Addresses": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Heimilisföng" + }, + "OSM_Inspector-Geometry": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Rúmfræði (geometry)" + }, + "OSM_Inspector-Highways": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Þjóðvegir" + }, + "OSM_Inspector-Multipolygon": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Svæði" + }, + "OSM_Inspector-Places": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Staðir" + }, + "OSM_Inspector-Routing": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Leiðagerð" + }, + "OSM_Inspector-Tagging": { + "attribution": { + "text": "© Geofabrik GmbH, þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OSM Inspector: Merkingar" + }, + "US-TIGER-Roads-2012": { + "name": "TIGER vegir 2012" + }, + "US-TIGER-Roads-2014": { + "description": "Við aðdráttarstig 16+ birtast kortagögn í almenningseigu frá US Census þjóðskránni. Við lægri aðdrátt birtast einungis breytingar síðan 2006 mínus þær breytingar sem þegar hafa verið settar inn í OpenStreetMap", + "name": "TIGER vegir 2014" + }, + "US-TIGER-Roads-2017": { + "description": "Gult = Kortagögn í almenningseigu frá US Census þjóðskránni. Rautt = Gögn fundust ekki í OpenStreetMap", + "name": "TIGER vegir 2017" + }, + "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, þátttakendur í OpenStreetMap, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Hjólreiðar" + }, + "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, þátttakendur í OpenStreetMap, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Gönguferðir" + }, + "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, þátttakendur í OpenStreetMap, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Fjallahjól" + }, + "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, þátttakendur í OpenStreetMap, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Skautar" + }, + "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, þátttakendur í OpenStreetMap, CC by-SA 3.0" + }, + "name": "Waymarked Trails: Vetraríþróttir" + }, + "basemap.at": { + "attribution": { + "text": "basemap.at" + }, + "description": "Grunnkort af Austurríki, byggt á opinberum gögnum.", + "name": "basemap.at" + }, + "basemap.at-orthofoto": { + "attribution": { + "text": "basemap.at" + }, + "description": "Orthofoto lag frá basemap.at. \"Arftaki\" myndefnis frá geoimage.at.", + "name": "basemap.at Orthofoto" + }, + "hike_n_bike": { + "attribution": { + "text": "© Þátttakendur í OpenStreetMap" + }, + "name": "Hike & Bike göngu og hjólamyndir" + }, + "mapbox_locator_overlay": { + "attribution": { + "text": "Skilmálar og umsagnir" + }, + "description": "Birtir aðalfitjur til að hjálpa þér við að staðsetja hlutina.", + "name": "Staðsetningarþekja" + }, + "openpt_map": { + "attribution": { + "text": "© Þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OpenPT kort (yfirlagsþekja)" + }, + "osm-gps": { + "attribution": { + "text": "© Þátttakendur í OpenStreetMap" + }, + "description": "Opinberir GPS-ferlar sendir inn á OpenStreetMap.", + "name": "OpenStreetMap GPS-ferlar" + }, + "osm-mapnik-black_and_white": { + "attribution": { + "text": "© Þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OpenStreetMap (staðlað svart/hvítt)" + }, + "osm-mapnik-german_style": { + "attribution": { + "text": "© Þátttakendur í OpenStreetMap, CC-BY-SA" + }, + "name": "OpenStreetMap (þýskur stíll)" + }, + "qa_no_address": { + "attribution": { + "text": "Simon Poole, gögn eru með © þátttakendur í OpenStreetMap" + }, + "name": "QA No Address (ekkert heimilisfang)" + }, + "skobbler": { + "attribution": { + "text": "© Kortaflísar: skobbler, kortagögn: þátttakendur í OpenStreetMap" + }, + "name": "skobbler" + }, + "stamen-terrain-background": { + "attribution": { + "text": "Kortaflísar frá Stamen Design, með CC BY 3.0 notkunarleyfi" + }, + "name": "Stamen landsyfirborð" + }, + "tf-cycle": { + "attribution": { + "text": "Kort © Thunderforest, gögn eru með © þátttakendur í OpenStreetMap" + }, + "name": "Thunderforest OpenCycleMap" + }, + "tf-landscape": { + "attribution": { + "text": "Kort © Thunderforest, gögn eru með © þátttakendur í OpenStreetMap" + }, + "name": "Thunderforest landslag" + } } } } \ No newline at end of file diff --git a/dist/locales/it.json b/dist/locales/it.json index 3fc862e5c..f6e8bb7a4 100644 --- a/dist/locales/it.json +++ b/dist/locales/it.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Questo elemento non può essere diviso perché è connesso ad un elemento nascosto." }, "restriction": { - "help": { - "select": "Clicca per selezionare un segmento di strada.", - "toggle": "Clicca per attivare una limitazione.", - "toggle_on": "Clicca per aggiungere \"{restriction}\".", - "toggle_off": "Clicca per rimuovere \"{restriction}\"." - }, "annotation": { "create": "Limitazione aggiunta", "delete": "Limitazione rimossa" @@ -471,6 +465,7 @@ "switch": "Ritorna a questo sfondo", "custom": "Personalizzato", "custom_button": "Modifica sfondo personalizzato", + "custom_prompt": "Inserisci un modello di URL per i tasselli. Sono validi i valori:\n- {zoom} oppure {z}, {x}, {y} per il modello dei tasselli Z/X/Y\n- {-y} oppure {ty} per le coordinate Y in stile TMS rovesciato\n- {u} per il modello QuadTile\n- {switch:a,b,c} per il multiplexing del server DNS\n\nEsempio:\n{example}", "overlays": "Livelli sovrapposti", "imagery_source_faq": "Informazioni sulle immagini satellitari / Segnala un problema", "reset": "reset", @@ -695,17 +690,17 @@ "title": "Aiuto", "welcome": "Benvenuto nell'editor iD. Con questo software puoi aggiornare OpenstreetMap direttamente dal tuo browser.", "open_data_h": "Open Data", - "open_data": "Le modifiche che apporti alla mappa saranno visibili a tutti gli utilizzatori di Openstreetmap. Le tue modifiche possono essere basate su conoscenze personali, sopralluoghi, foto aeree oppure foto a livello stradale. La copia di informazioni da altri servizi commerciali, quali Google Maps [è vietata] (https://www.openstreetmap.org/copyright).", + "open_data": "Le modifiche che apporti alla mappa saranno visibili a tutti gli utilizzatori di OpenStreetMap. Le tue modifiche possono essere basate su conoscenze personali, sopralluoghi, foto aeree oppure foto a livello stradale. La copia di informazioni da altri servizi commerciali, quali Google Maps [è vietata](https://www.openstreetmap.org/copyright).", "before_start_h": "Prima di iniziare", "before_start": "Prima di iniziare ad effettuare modifiche dovresti essere a conoscenza delle funzioni principali di questo editor e di come funziona OpenstreetMap. In iD è stata integrata una guida interattiva, con lo scopo di insegnare le funzioni indispensabili per la mappatura. Clicca \"Avvia il tutorial\" su questa schermata per iniziare - richiede circa 15 minuti.", "open_source_h": "Open Source", - "open_source": "L'editor iD è un progetto collaborativo open source, tu ora stai usando la versione [versione]. Il codice sorgente è disponibile [su GitHub] (https://github.com/openstreetmap/iD).", - "open_source_help": "Puoi contribuire nella traduzione di iD (https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) oppure [segnalare problemi](https://github.com/openstreetmap/iD/issues)." + "open_source": "L'editor iD è un progetto collaborativo open source, tu ora stai usando la versione {versione}. Il codice sorgente è disponibile [su GitHub](https://github.com/openstreetmap/iD).", + "open_source_help": "Puoi contribuire nella [traduzione](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) di iD oppure [segnalare problemi](https://github.com/openstreetmap/iD/issues)." }, "overview": { "title": "Vista generale", "navigation_h": "Navigazione", - "navigation_drag": "Puoi trascinare la mappa tenendo premuto il tasto sx del mouse e spostandolo. Puoi inoltre utilizzare le frecce della tua tastiera.", + "navigation_drag": "Puoi trascinare la mappa tenendo premuto il tasto sinistro del mouse e spostandolo. Puoi inoltre utilizzare le frecce della tua tastiera.", "navigation_zoom": "Puoi ingrandire o diminuire il livello di zoom utilizzando la rotella del mouse, oppure utilizzando i bottoni [più/meno] nella parte destra della schermata. Puoi inoltre utilizzare i tasti '+' ,'-' della tastiera.", "features_h": "Elementi della mappa", "features": "Utilizziamo la parola \"caratteristiche\" per descrivere gli oggetti che compaiono sulla mappa, ne sono esempi: strade, edifici o punti di interesse vari. Tutti gli elementi presenti nel mondo reale possono essere mappati in OpenStreetMap, sotto forma di punti, linee o aree.", @@ -714,15 +709,15 @@ "editing": { "title": "Modifica e salvataggio", "select_h": "Seleziona", - "select_left_click": "[leftclick] Il clic con il taso sx del mouse seleziona un elemento. L'elemento selezionato si evidenzierà e la barra laterale mostrerà le informazioni di quell'elemento, ad esempio il nome e l'indirizzo.", - "select_right_click": "[rightclick] Il clic con il tasto dx del mouse su un elemento, farà apparire alcuni comandi aggiuntivi, quali: ruota, sposta, cancella, taglia e dividi.", + "select_left_click": "{leftclick} Il clic con il tasto sinistro del mouse seleziona un elemento. L'elemento selezionato si evidenzierà e la barra laterale mostrerà le informazioni di quell'elemento, ad esempio il nome e l'indirizzo.", + "select_right_click": "{rightclick} Il clic con il tasto destro del mouse su un elemento, farà apparire alcuni comandi aggiuntivi, quali: ruota, sposta, cancella, taglia e dividi.", "multiselect_h": "Selezione multipla", - "multiselect_shift_click": "`{shift}`+{leftclick} Il clic con il tasto sx del mouse consente di selezionare più elementi della mappa. La funzione è utile per spostare e cancellare contemporaneamente più elementi.", + "multiselect_shift_click": "`{shift}`+{leftclick} Il clic con il tasto sinistro del mouse consente di selezionare più elementi della mappa. La funzione è utile per spostare e cancellare contemporaneamente più elementi.", "multiselect_lasso": "Un altro modo per selezionare più elementi contemporaneamente è quello di tenere premuto il tasto `{shift}` sulla tastiera e quindi premere e tenere premuto il {leftclick} tasto sinistro del mouse e trascinare il mouse per disegnare una selezione. Saranno così selezionati tutti i punti presenti nell'area della selezione.", "undo_redo_h": "Annulla e avanza", "undo_redo": "Finché non decidi di salvare, le tue modifiche sono salvate temporaneamente nel tuo browser. Puoi annullare ogni modifica con il tasto [annulla] oppure ripristinare la modifica annullata con il tasto [avanti]", "save_h": "Salva", - "save": "Clicca [salva] per terminare la tua modifica e inviare i nuovi dati a OpenstreetMap. Ricordati di salvare spesso il tuo lavoro!", + "save": "Clicca {save} **Salva** per terminare la tua modifica e inviare i nuovi dati a OpenStreetMap. Ricordati di salvare spesso il tuo lavoro!", "save_validation": "Nella schermata di salvataggio avrai la possibilità di visualizzare le tue modifiche. iD farà inoltre un controllo sulle tue modifiche, con lo scopo di individuare informazioni mancanti o segnalare suggerimenti, in caso qualcosa non risulti corretto.", "upload_h": "Carica", "upload": "Prima di caricare le tue modifiche devi inserire un [commento al gruppo di modifiche](https://wiki.openstreetmap.org/wiki/IT:Good_changeset_comments). Fatto ciò clicca su **Carica** per inviare le tue modifiche ad OpenStreetMap, dove saranno unite alla mappa e rese visibili pubblicamente a chiunque.", @@ -767,7 +762,7 @@ "add_line_finish": "Per completare una linea, premi `{return}` oppure clicca nuovamente sull'ultimo punto", "modify_line_h": "Modificare linee", "modify_line_dragnode": "Spesso vedrai delle linee che non sono disegnate correttamente, per esempio una strada che non corrisponde granché alle immagini di sfondo. Per migliorare l'aspetto di una linea, per prima cosa clicca col {leftclick} tasto sinistro del mouse per selezionarla. Tutti i nodi della linea diverranno dei piccoli cerchi. Adesso puoi spostare ogni nodo in una posizione più corretta.", - "modify_line_addnode": "Puoi anche aggiungere dei nodi ad una linea sia cliccando due volte col {lefclick}**x2** tasto sinistro del mouse sulla linea oppure trascinando i piccoli triangoli situati a metà strada tra i vari nodi già presenti.", + "modify_line_addnode": "Puoi anche aggiungere dei nodi ad una linea sia cliccando due volte col {leftclick}**x2** tasto sinistro del mouse sulla linea oppure trascinando i piccoli triangoli situati a metà strada tra i vari nodi già presenti.", "connect_line_h": "Connettere linee", "connect_line": "È importante per la mappa ed essenziale per fornire le indicazioni che le strade sia collegate tra loro nel modo giusto.", "connect_line_display": "Le connessioni tra le strade sono mostrate mediante dei piccoli cerchi grigi. Se non sono collegati a nient'altro, gli estremi di una linea sono disegnati con dei cerchi bianchi più grandi.", @@ -822,7 +817,7 @@ "route": "Una relazione *percorso* consiste in un gruppo di uno o più elementi linea che formano insieme una rete di percorsi, come per esempio la linea di un autobus, quella di un treno oppure un percorso stradale.", "route_add": "Per aggiungere un elemento ad una relazione percorso, seleziona l'elemento e scorri verso il basso fino alla sezione \"Tutte le relazioni\" dell'editor dell'elemento, poi clicca il pulsante {plus} aggiungi per aggiungere questo elemento ad una relazione vicina già esistente oppure per crearne una nuova.", "boundary_h": "Confini", - "boundary": "Una relazione *Confine\" consiste in un gruppo di uno o più elementi linea che insieme formano un confine amministrativo.", + "boundary": "Una relazione *Confine* consiste in un gruppo di uno o più elementi linea che insieme formano un confine amministrativo.", "boundary_add": "Per aggiungere un elemento ad una relazione confine, seleziona l'elemento e scorri verso il basso fino alla sezione \"Tutte le relazioni\" dell'editor dell'elemento, poi clicca sul pulsante {plus} aggiungi per aggiungere l'elemento ad una relazione vicina già esistente o per crearne una nuova." }, "imagery": { @@ -2784,7 +2779,7 @@ }, "amenity/bicycle_rental": { "name": "Stazione del Bike Sharing", - "terms": "Noleggio biciclette" + "terms": "" }, "amenity/bicycle_repair_station": { "name": "Stazione di riparazione biciclette", @@ -3442,10 +3437,6 @@ "building/entrance": { "name": "Entrata/Uscita" }, - "building/farm": { - "name": "Cascina (residenza)", - "terms": "" - }, "building/garage": { "name": "Garage", "terms": "Garage" @@ -4355,6 +4346,10 @@ "name": "Sala da gioco", "terms": "gioco d'azzardo,casinò,bisca" }, + "leisure/amusement_arcade": { + "name": "Sala giochi", + "terms": "Videogiochi" + }, "leisure/bird_hide": { "name": "osservazione uccelli", "terms": "Capanno di osservazione" @@ -5025,7 +5020,7 @@ "terms": "Località (luogo con nome, non popolato)" }, "place/neighbourhood": { - "name": "Vicinanze", + "name": "Quartiere", "terms": "Quartiere,Zona" }, "place/plot": { @@ -5056,6 +5051,7 @@ "terms": "" }, "playground/basket_spinner": { + "name": "Girello", "terms": "" }, "playground/basket_swing": { @@ -5075,7 +5071,7 @@ }, "playground/rocker": { "name": "Gioco a molla", - "terms": "" + "terms": "Dondolo a molla" }, "playground/roundabout": { "name": "Girello", @@ -5418,8 +5414,8 @@ "terms": "Negozio" }, "shop/agrarian": { - "name": "Negozio di articoli agricoli", - "terms": "" + "name": "Negozio di attrezzatura agricola", + "terms": "attrezzi agricoli, macchinai agricoli, fertilizzanti, pesticidi, semina" }, "shop/alcohol": { "name": "Negozio di liquori", @@ -5470,7 +5466,7 @@ "terms": "Centro abbronzatura,Solarium" }, "shop/bed": { - "name": "Negozio di Materassi", + "name": "Negozio di letti/materassi", "terms": "Negozio di materassi" }, "shop/beverages": { @@ -5482,7 +5478,7 @@ "terms": "Negozio biciclette" }, "shop/bookmaker": { - "name": "Negozio di scommesse", + "name": "Agenzia di scommesse", "terms": "scommesse,puntate,allibratore" }, "shop/books": { @@ -5578,7 +5574,7 @@ "terms": "Cibi e bevande pregiate" }, "shop/department_store": { - "name": "Supermercato", + "name": "Grande magazzino", "terms": "Grande magazzino" }, "shop/doityourself": { @@ -5812,7 +5808,7 @@ "terms": "Negozio scarpe" }, "shop/sports": { - "name": "Negozio di Sport", + "name": "Negozio di articoli sportivi", "terms": "Negozio di articoli sportivi" }, "shop/stationery": { @@ -5897,6 +5893,10 @@ "name": "Armeria", "terms": "armeria,armi,munizioni,coltelli,pistole" }, + "shop/wholesale": { + "name": "Grossista", + "terms": "Negozio di commercio all'ingrosso" + }, "shop/window_blind": { "name": "Negozio di tapparelle e serrande", "terms": "Serramenti" @@ -5966,7 +5966,7 @@ "terms": "info,infromazioni,turismo,cartello,pannello,turistico" }, "tourism/information/guidepost": { - "name": "Indicazione stradale", + "name": "Cartello segnavia", "terms": "segnale,segnaletica,turismo,turistico,indicazione,cartello" }, "tourism/information/map": { diff --git a/dist/locales/ja.json b/dist/locales/ja.json index f6f78a2a6..ce73a2e20 100644 --- a/dist/locales/ja.json +++ b/dist/locales/ja.json @@ -285,18 +285,48 @@ "connected_to_hidden": "非表示の地物に接続しているため、分割することができません。" }, "restriction": { - "help": { - "select": "道路の区間を選択するにはクリックしてください。", - "toggle": "進行方向制限を切り替えるにはクリックしてください。", - "toggle_on": "「{restriction}」の制約を追加するにはクリックしてください。", - "toggle_off": "「{restriction}」の制約を削除するにはクリックしてください。" - }, "annotation": { "create": "進行方向制限を追加しました", "delete": "進行方向制限を削除しました" } } }, + "restriction": { + "controls": { + "distance": "距離", + "distance_up_to": "上限 {distance}", + "via": "経由", + "via_node_only": "ノードのみ", + "via_up_to_one": "1 ウェイまで", + "via_up_to_two": "2 ウェイまで" + }, + "help": { + "indirect": "(間接)", + "turn": { + "no_left_turn": "左折禁止 {indirect}", + "no_right_turn": "右折禁止 {indirect}", + "no_u_turn": "Uターン禁止 {indirect}", + "no_straight_on": "直進禁止 {indirect}", + "only_left_turn": "左折専用 {indirect}", + "only_right_turn": "右折専用 {indirect}", + "only_u_turn": "Uターンのみ {indirect}", + "only_straight_on": "直進専用 {indirect}", + "allowed_left_turn": "左折可 {indirect}", + "allowed_right_turn": "右折可 {indirect}", + "allowed_u_turn": "Uターン可 {indirect}", + "allowed_straight_on": "直進可 {indirect}" + }, + "from": "進行元(FROM)", + "via": "経由(VIA)", + "to": "進行先(TO)", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "クリックして {from} 区間を選択", + "select_from_name": "クリックして {from} {fromName}を選択", + "toggle": "クリックして「{turn}」に切換え" + } + }, "undo": { "tooltip": "もとに戻す: {action}", "nothing": "もとに直す変更点がありません" @@ -852,6 +882,44 @@ "using": "GPSトレースをマッピングに使うには、そのデータファイルをマップエディタにドラッグ&ドロップしてください。正しく認識されると、マップ上に明るい紫のラインとして表示されます。マップ脇の{data}**地図データ設定**パネルをクリックしてあなたのGPSデータ(ローカル・ファイル)を有効化したり、無効化したり、あるいはズームしてみてください。", "tracing": "GPSトラックはOpenStreetMapへは送信されません。そのいちばん良い使い方は、自分が追加する新しい地物のためのガイドとして使いながらマッピングすることです。 ", "upload": "あなたは他の利用者が使えるように[自分のGPSデータをOpenStreetMapにアップロード](https://www.openstreetmap.org/trace/create)することもできます。" + }, + "field": { + "restrictions": { + "title": "進行方向制限のヘルプ", + "about": { + "title": "説明", + "about": "この枠内で進行方向制限を検査したり変更することができます。選択された交差点が他の近接する道路とともにモデル化して表示されます。", + "from_via_to": "進行方向制限には必ずひとつの**進行元(FROM) ウェイ**、ひとつの**進行先(TO) ウェイ**、そしてひとつの**経由(VIA) ノード**またはひとつ以上の**経由(VIA) ウェイ**が含まれます。", + "maxdist": "「{distField}」スライダーは追加で探す接続道路の距離範囲を制御しています。", + "maxvia": "「{viaField}」スライダーは経由(VIA)ウェイをいくつまで検索に含めて良いかを調整します。 (ヒント: シンプルなほどベター)" + }, + "inspecting": { + "title": "検査", + "about": "任意の**FROM**区間にホバー(マウスポインターを合わせる)すると、進行方向制限があるかどうかを確認できます。 可能性のある**TO**進行先が色付きの影で描画され、そこに制限があるかどうかを示します。", + "from_shadow": "{fromShadow} **FROM 区間**", + "allow_shadow": "{allowShadow} **許可されたTO**", + "restrict_shadow": "{restrictShadow} **禁止されたTO**", + "only_shadow": "{onlyShadow} **TOのみ**", + "restricted": "「制限」は進行方向制限があることを示しています。例「左折禁止」。", + "only": "「専用」は通行する乗り物がその選択だけ許可されていることを示します。例「直進専用」。" + }, + "modifying": { + "title": "修正", + "about": "進行方向制限を修正するには、まず任意の進行元**FROM**区間をクリックして選択します。選択された区間が点滅し、全ての可能な**TO**進行先が進行方向のシンボルとして現れます。", + "indicators": "次に、進行方向のシンボルをクリックして「許可」「制限」「専用」の間で切り換えます。", + "allow_turn": "{allowTurn} **許可された TO**", + "restrict_turn": "{restrictTurn} **制限された TO**", + "only_turn": "{onlyTurn} **専用の TO**" + }, + "tips": { + "title": "ヒント", + "simple": "**複雑なものよりシンプルな制限を選びましょう。**", + "simple_example": "例えば、よりシンプルな経由(via)ノード進行方向制限が使える場合には、経由(via)ウェイを作成することは避けましょう。", + "indirect": "**制限の中には「(間接)」の文字が表示され、明るく描画されるものがあります。**", + "indirect_example": "これらは近くに別の制限がある場合に存在する制限です。例えば、「直進専用」制限は交差点内の全ての他の通行路に対して、間接的に「進行方向変更不可」という制限を設けることになります。", + "indirect_noedit": "間接的な制限を編集するのではなく、近くの直接的な制限を編集します。" + } + } } }, "intro": { @@ -1697,6 +1765,9 @@ "forward": "順方向" } }, + "dispensing": { + "label": "調剤可否" + }, "display": { "label": "表示盤の種類" }, @@ -2639,6 +2710,9 @@ "wheelchair": { "label": "車椅子の利用可否" }, + "wholesale": { + "label": "卸売商品" + }, "width": { "label": "幅 (m)" }, @@ -2669,7 +2743,7 @@ }, "advertising/billboard": { "name": "広告用看板", - "terms": "掲示板, 看板" + "terms": "掲示板, 看板, 広告, 宣伝, 屋外広告" }, "aerialway": { "name": "索道" @@ -2872,7 +2946,7 @@ }, "amenity/clock": { "name": "時計", - "terms": "時計, クロック, 公園, 駅" + "terms": "時計, クロック, 公園, 駅前, 広場" }, "amenity/college": { "name": "短大・高専・専門学校(代表点または敷地)", @@ -2907,7 +2981,7 @@ }, "amenity/dojo": { "name": "道場", - "terms": "道場, スポーツ" + "terms": "道場, スポーツ, 訓練, 稽古, 練習, 習い事, 教習, トレーニング, 教室, 体操, 運動" }, "amenity/drinking_water": { "name": "水飲み場", @@ -2915,7 +2989,7 @@ }, "amenity/driving_school": { "name": "自動車教習所", - "terms": "Driving School, ドライビングスクール, 教習所, 自動車, 自動車教習所, 車, 学校, 教育" + "terms": "Driving School, ドライビングスクール, 教習所, 自動車, 自動車教習所, 車, 学校, 教育, 稽古, 練習, 訓練, 練習, トレーニング" }, "amenity/embassy": { "name": "大使館", @@ -2938,7 +3012,7 @@ }, "amenity/fountain": { "name": "噴水", - "terms": "泉,噴水, 公園" + "terms": "泉,噴水, 公園, 広場, 駅前" }, "amenity/fuel": { "name": "ガソリンスタンド", @@ -2958,7 +3032,7 @@ }, "amenity/hunting_stand": { "name": "狩猟スタンド", - "terms": "狩猟スタンド, 娯楽, スポーツ, 小屋" + "terms": "狩猟スタンド, 娯楽, スポーツ, 小屋, レジャー" }, "amenity/ice_cream": { "name": "アイスクリーム店", @@ -2982,7 +3056,7 @@ }, "amenity/marketplace": { "name": "市場", - "terms": "市場, マーケット, 朝市, マルシェ, 食品, 雑貨, 買い物, ショッピング" + "terms": "市場, マーケット, 朝市, マルシェ, 食品, 雑貨, 買い物, ショッピング, 食べ物" }, "amenity/motorcycle_parking": { "name": "オートバイの駐車場", @@ -2990,7 +3064,7 @@ }, "amenity/music_school": { "name": "音楽学校", - "terms": "音楽学校, ミュージック・スクール, 教習所, カラオケ教室, 音楽教室, 学校, 教育" + "terms": "音楽学校, ミュージック・スクール, 教習所, カラオケ教室, 音楽教室, 学校, 教育, 教室, 訓練, 練習, 稽古, 習い事, トレーニング" }, "amenity/nightclub": { "name": "ナイトクラブ", @@ -3004,8 +3078,8 @@ "terms": "駐車場, パーキング, 自動車" }, "amenity/parking_entrance": { - "name": "駐車場の出入口", - "terms": "駐車場の出入口, 自動車" + "name": "出入口(駐車場)", + "terms": "駐車場の出入口, 自動車, 出入り口, 出入口" }, "amenity/parking_space": { "name": "駐車区画(1台ごとの)", @@ -3127,7 +3201,7 @@ }, "amenity/smoking_area": { "name": "喫煙所", - "terms": "喫煙所, 喫煙エリア, たばこ, タバコ" + "terms": "喫煙所, 喫煙エリア, たばこ, タバコ, 公園, 駅前, 広場" }, "amenity/social_facility": { "name": "福祉施設", @@ -3348,7 +3422,7 @@ "terms": "塹壕, 空堀, 堀, 溝, 谷, 障害物, バリア" }, "barrier/entrance": { - "name": "出入口" + "name": "出入口(柵などのバリア)" }, "barrier/fence": { "name": "フェンス", @@ -3360,7 +3434,7 @@ }, "barrier/hedge": { "name": "生垣", - "terms": "生垣, 障害物, バリア" + "terms": "生垣, 障害物, バリア, 植物, 生け垣, 樹木" }, "barrier/kerb": { "name": "縁石", @@ -3458,11 +3532,15 @@ "terms": "寮, 独身寮, 住宅, 住居" }, "building/entrance": { - "name": "出入口" + "name": "出入口(非推奨)" }, "building/farm": { - "name": "農家(建物)", - "terms": "農家, 住宅, 住居, 農業" + "name": "農家(居住用)", + "terms": "農家, 農業, 生産者, 百姓, 農場" + }, + "building/farm_auxiliary": { + "name": "農業補助施設全般(非居住用)", + "terms": "農業補助施設, 農場, 農業, 農業施設" }, "building/garage": { "name": "車庫(建物、小)", @@ -3546,7 +3624,7 @@ }, "building/stadium": { "name": "スタジアム(建物)", - "terms": "スタジアム, スポーツ" + "terms": "スタジアム, スポーツ, 運動, 競技" }, "building/static_caravan": { "name": "トレーラーハウス", @@ -3636,7 +3714,7 @@ }, "craft/confectionery": { "name": "菓子屋(製造・販売)", - "terms": "菓子製造所, 菓子製造直売所, 饅頭屋, まんじゅう屋, 煎餅屋, せんべい屋, 飴屋, 和菓子屋, 和菓子店, 職人, 工房, 食品, お菓子" + "terms": "菓子製造所, 菓子製造直売所, 饅頭屋, まんじゅう屋, 煎餅屋, せんべい屋, 飴屋, 和菓子屋, 和菓子店, 職人, 工房, 食品, お菓子, 食べ物" }, "craft/distillery": { "name": "蒸留所", @@ -3663,8 +3741,8 @@ "terms": "ガラス細工師, 職人, 工房" }, "craft/handicraft": { - "name": "手工芸品", - "terms": "手工芸品, 職人, 工房, 雑貨" + "name": "手工芸品店", + "terms": "手工芸品, 職人, 工房, 雑貨, 工芸, 民芸, こけし, 人形" }, "craft/hvac": { "name": "空調設計", @@ -3713,7 +3791,7 @@ }, "craft/pottery": { "name": "窯元", - "terms": "窯元, 陶器製造業, 職人, 工房" + "terms": "窯元, 陶器製造業, 職人, 工房, 陶芸, 陶磁器, 焼き物" }, "craft/rigger": { "name": "艤装者", @@ -3825,8 +3903,8 @@ "name": "緊急時の利用可" }, "entrance": { - "name": "出入口", - "terms": "出入口, 入口, 出口" + "name": "出入口(全般)", + "terms": "出入口, 入口, 出口, 出入り口, エントランス, 玄関, 正面入口, 裏口" }, "footway/crossing": { "name": "横断歩道", @@ -3906,7 +3984,7 @@ }, "healthcare/audiologist": { "name": "聴覚訓練士", - "terms": "聴覚訓練士, 聴覚機能訓練士, オージオロジスト, 医療" + "terms": "聴覚訓練士, 聴覚機能訓練士, オージオロジスト, 医療, トレーニング, 訓練" }, "healthcare/birthing_center": { "name": "バースセンター", @@ -4124,7 +4202,7 @@ }, "highway/traffic_mirror": { "name": "カーブミラー", - "terms": "カーブミラー, ミラー, 道路反射鏡, 道路設備" + "terms": "カーブミラー, ミラー, 道路反射鏡, 道路設備, 交通安全" }, "highway/traffic_signals": { "name": "信号機", @@ -4168,7 +4246,7 @@ }, "historic/memorial": { "name": "記念碑", - "terms": "記念碑, 石碑, 石仏, 像, 歴史, 銅像, 彫刻" + "terms": "記念碑, 石碑, 石仏, 像, 歴史, 銅像, 彫刻, 公園" }, "historic/monument": { "name": "記念堂", @@ -4235,23 +4313,23 @@ }, "landuse/farmland": { "name": "農地", - "terms": "農地, 畑, 田, 茶畑, 田んぼ, 田畑, 耕作地" + "terms": "農地, 畑, 田, 茶畑, 田んぼ, 田畑, 耕作地, 農業" }, "landuse/farmyard": { "name": "農家(敷地)", - "terms": "農業施設用地, 農家" + "terms": "農業施設用地, 農家, 農業" }, "landuse/forest": { "name": "人工林", - "terms": "人工林, 二次林, 営林, 保安林, 鉄道林, 防風林, 森林(人工)" + "terms": "人工林, 二次林, 営林, 保安林, 鉄道林, 防風林, 森林(人工), 樹木, 植物" }, "landuse/garages": { "name": "車庫(土地区画)", "terms": "ガレージ, 車庫" }, "landuse/grass": { - "name": "草地", - "terms": "草地, 芝生" + "name": "芝生", + "terms": "草地, 芝生, 植物" }, "landuse/greenfield": { "name": "開発予定区画(未整備)", @@ -4335,7 +4413,7 @@ }, "landuse/orchard": { "name": "果樹園", - "terms": "果樹園, 果物畑, リンゴ畑, ミカン畑" + "terms": "果樹園, 果物畑, リンゴ畑, ミカン畑, 農業, 樹木, 森林" }, "landuse/plant_nursery": { "name": "育苗所", @@ -4367,7 +4445,7 @@ }, "landuse/vineyard": { "name": "ぶどう畑", - "terms": "ぶどう畑, 果樹園, 森林" + "terms": "ぶどう畑, 果樹園, 森林, 樹木, 植物, ブドウ, 農業" }, "leisure": { "name": "レジャー施設全般", @@ -4375,7 +4453,11 @@ }, "leisure/adult_gaming_centre": { "name": "遊技場(成人向け)", - "terms": "遊技場, パチンコ, パチスロ, スロット, 娯楽, アダルト, レジャー" + "terms": "遊技場, パチンコ, パチスロ, スロット, 娯楽, アダルト, レジャー, パチンコ店, パチンコ屋, スロットルマシン" + }, + "leisure/amusement_arcade": { + "name": "ゲームセンター", + "terms": "ゲームセンター, ゲーセン, 娯楽, レジャー, 遊技, ゲーム, 遊戯" }, "leisure/bird_hide": { "name": "野鳥観察舎", @@ -4383,7 +4465,7 @@ }, "leisure/bowling_alley": { "name": "ボウリング場", - "terms": "ボウリング場, ボウリング, ボーリング, スポーツ, 娯楽" + "terms": "ボウリング場, ボウリング, ボーリング, スポーツ, 娯楽, 運動, レジャー, ゲーム" }, "leisure/common": { "name": "共有地", @@ -4403,67 +4485,67 @@ }, "leisure/fitness_centre": { "name": "ジム/フィットネスセンター", - "terms": "フィットネスクラブ, フィットネスセンター, ジム, スポーツ" + "terms": "フィットネスクラブ, フィットネスセンター, ジム, スポーツ, 訓練, 練習, 習い事, 教習, トレーニング, 教室, 体操, 運動, エクササイズ" }, "leisure/fitness_centre/yoga": { "name": "ヨガスタジオ", - "terms": "ヨガスタジオ, スポーツ" + "terms": "ヨガスタジオ, スポーツ, トレーニング, 訓練, 教室, 習い事, 教習, 稽古, 体操, 運動" }, "leisure/fitness_station": { - "name": "屋外運動器具", - "terms": "屋外運動器具, スポーツ" + "name": "屋外トレーニング場", + "terms": "屋外運動器具, スポーツ, トレーニング, 運動器具, 屋外ジム, 屋外運動場, エクササイズ場, 屋外フィットネス場, 屋外トレーニング場, 屋外健康遊具場" }, "leisure/fitness_station/balance_beam": { "name": "平均台", - "terms": "平均台, 運動器具" + "terms": "平均台, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/box": { "name": "トレーニング台", - "terms": "トレーニング台, 運動台, 運動器具" + "terms": "トレーニング台, 運動台, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/horizontal_bar": { "name": "鉄棒", - "terms": "鉄棒, 運動器具" + "terms": "鉄棒, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/horizontal_ladder": { "name": "うんてい", - "terms": "うんてい, 雲梯, 運動器具" + "terms": "うんてい, 雲梯, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/hyperextension": { "name": "トレーニングベンチ", - "terms": "トレーニングベンチ, 背筋台, 運動器具" + "terms": "トレーニングベンチ, 背筋台, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/parallel_bars": { "name": "平行棒", - "terms": "平行棒, 運動器具" + "terms": "平行棒, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/push-up": { "name": "腕立て伏せ", - "terms": "腕立て伏せ, プッシュアップ, 運動器具" + "terms": "腕立て伏せ, プッシュアップ, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/rings": { "name": "吊り輪", - "terms": "吊り輪, 運動器具" + "terms": "吊り輪, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/sign": { "name": "運動の説明標識", - "terms": "運動の説明標識, 運動器具" + "terms": "運動の説明標識, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/sit-up": { "name": "腹筋台", - "terms": "腹筋台, シットアップ, 運動器具" + "terms": "腹筋台, シットアップ, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/fitness_station/stairs": { "name": "階段(トレーニング用)", - "terms": "階段, 運動器具" + "terms": "階段, 運動器具, トレーニング, エクササイズ, 健康遊具" }, "leisure/garden": { "name": "庭園", - "terms": "庭園, 日本庭園, 植物園, 公園, 枯山水" + "terms": "庭園, 日本庭園, 植物園, 公園, 枯山水, 植物, 樹木" }, "leisure/golf_course": { "name": "ゴルフコース", - "terms": "ゴルフコース, ゴルフ場" + "terms": "ゴルフコース, ゴルフ場, 運動, スポーツ, 娯楽, レジャー" }, "leisure/hackerspace": { "name": "ハッカースペース", @@ -4471,19 +4553,19 @@ }, "leisure/horse_riding": { "name": "乗馬施設", - "terms": "乗馬施設, 馬事公苑, 乗馬クラブ, スポーツ" + "terms": "乗馬施設, 馬事公苑, 乗馬クラブ, スポーツ, 運動, 娯楽, レジャー" }, "leisure/ice_rink": { "name": "アイススケート場", - "terms": "アイススケート, アイススケート場, アイススケートリンク, スケートリンク, スポーツ" + "terms": "アイススケート, アイススケート場, アイススケートリンク, スケートリンク, スポーツ, 運動, 娯楽, レジャー" }, "leisure/marina": { "name": "マリーナ", - "terms": "マリーナ, ヨットハーバー, スポーツ" + "terms": "マリーナ, ヨットハーバー, スポーツ, 運動, 娯楽, レジャー" }, "leisure/miniature_golf": { "name": "ミニゴルフ", - "terms": "パターゴルフ, スポーツ, 娯楽" + "terms": "パターゴルフ, スポーツ, 娯楽, ミニゴルフ, 運動, レジャー" }, "leisure/nature_reserve": { "name": "自然保護区", @@ -4499,63 +4581,63 @@ }, "leisure/pitch": { "name": "スポーツ競技場", - "terms": "スポーツ競技場, 運動場, 競技場, グラウンド, 校庭" + "terms": "スポーツ競技場, 運動場, 競技場, グラウンド, 校庭, 競技, 練習" }, "leisure/pitch/american_football": { "name": "アメリカンフットボール場", - "terms": "アメリカンフットボール場, アメフト競技場, スポーツ" + "terms": "アメリカンフットボール場, アメフト競技場, スポーツ, 運動, 競技" }, "leisure/pitch/baseball": { "name": "野球場", - "terms": "野球場, 球場, スポーツ" + "terms": "野球場, 球場, スポーツ, 運動, 競技" }, "leisure/pitch/basketball": { "name": "バスケットボール場", - "terms": "バスケットボール場, スポーツ" + "terms": "バスケットボール場, スポーツ, 運動, 競技" }, "leisure/pitch/beachvolleyball": { "name": "ビーチバレーコート", - "terms": "ビーチバレーコート, スポーツ" + "terms": "ビーチバレーコート, スポーツ, 運動, 競技" }, "leisure/pitch/boules": { "name": "ブールスポーツ", - "terms": "ブールスポーツ, ボッチ, ボッチボール, スポーツ" + "terms": "ブールスポーツ, ボッチ, ボッチボール, スポーツ, 運動, 競技" }, "leisure/pitch/bowls": { "name": "ローンボウルズ", - "terms": "ローンボウルズ, スポーツ" + "terms": "ローンボウルズ, スポーツ, 運動, 競技" }, "leisure/pitch/cricket": { "name": "クリケット場", - "terms": "クリケット場, スポーツ" + "terms": "クリケット場, スポーツ, 運動, 競技" }, "leisure/pitch/equestrian": { "name": "乗馬場", - "terms": "乗馬場, スポーツ" + "terms": "乗馬場, スポーツ, 運動, トレーニング, 練習, 訓練, 競技" }, "leisure/pitch/rugby_league": { "name": "ラグビーリーグ場", - "terms": "ラグビー場, ラグビー, リーグ, スポーツ" + "terms": "ラグビー場, ラグビー, リーグ, スポーツ, 運動, 競技" }, "leisure/pitch/rugby_union": { "name": "ラグビー場", - "terms": "ラグビーユニオン場, スポーツ" + "terms": "ラグビーユニオン場, スポーツ, 運動, 競技" }, "leisure/pitch/skateboard": { "name": "スケートパーク", - "terms": "スケートパーク, スポーツ" + "terms": "スケートパーク, スポーツ, 運動, 競技" }, "leisure/pitch/soccer": { "name": "サッカー場", - "terms": "サッカー場, スポーツ" + "terms": "サッカー場, スポーツ, 運動, 競技" }, "leisure/pitch/table_tennis": { "name": "卓球台", - "terms": "卓球台, スポーツ" + "terms": "卓球台, スポーツ, 運動, 競技" }, "leisure/pitch/tennis": { "name": "テニスコート", - "terms": "テニスコート, テニス場, 庭球場, スポーツ" + "terms": "テニスコート, テニス場, 庭球場, スポーツ, 運動, 競技" }, "leisure/pitch/volleyball": { "name": "バレーボールコート", @@ -4571,7 +4653,7 @@ }, "leisure/running_track": { "name": "競技トラック (徒競走)", - "terms": "競技トラック (徒競走), スポーツ" + "terms": "競技トラック (徒競走), スポーツ, 運動, 競技" }, "leisure/sauna": { "name": "サウナ", @@ -4583,11 +4665,11 @@ }, "leisure/sports_centre": { "name": "スポーツセンター/複合施設", - "terms": "スポーツセンター, 複合施設" + "terms": "スポーツセンター, 複合施設, 運動, 競技, トレーニング, 練習, 訓練, 体操" }, "leisure/sports_centre/swimming": { "name": "スイミングプール施設", - "terms": "遊泳プール, プール, 水泳場, スポーツ" + "terms": "遊泳プール, プール, 水泳場, スポーツ, 運動, 競技" }, "leisure/stadium": { "name": "スタジアム", @@ -4599,7 +4681,7 @@ }, "leisure/track": { "name": "競技トラック(モータースポーツ以外)", - "terms": "競技トラック, スポーツ" + "terms": "競技トラック, スポーツ, 運動, 競技" }, "leisure/water_park": { "name": "ウォーターパーク", @@ -4765,8 +4847,8 @@ "terms": "砂浜, ビーチ, 浜" }, "natural/cave_entrance": { - "name": "洞窟の入口", - "terms": "洞窟の入口, 洞穴" + "name": "出入口(洞窟)", + "terms": "洞窟の入口, 洞穴, 出入口, 出入り口" }, "natural/cliff": { "name": "崖", @@ -4786,11 +4868,11 @@ }, "natural/grassland": { "name": "草原", - "terms": "草地, 草原" + "terms": "草地, 草原, 植物" }, "natural/heath": { "name": "荒地", - "terms": "荒地" + "terms": "荒地, 植物" }, "natural/peak": { "name": "山頂", @@ -4814,19 +4896,19 @@ }, "natural/scrub": { "name": "低木", - "terms": "低木, 茂み" + "terms": "低木, 茂み, 植物" }, "natural/spring": { "name": "泉", "terms": "泉, 湧水" }, "natural/tree": { - "name": "樹木・林", - "terms": "樹木, 林, 木" + "name": "樹木", + "terms": "樹木, 林, 木, 公園, 森林, 天然記念物, 植物" }, "natural/tree_row": { "name": "並木", - "terms": "並木, 木, 樹木" + "terms": "並木, 木, 樹木, 街路樹, 植物" }, "natural/volcano": { "name": "火口", @@ -4842,23 +4924,23 @@ }, "natural/water/pond": { "name": "池", - "terms": "池" + "terms": "池, 公園" }, "natural/water/reservoir": { "name": "貯水池", - "terms": "貯水池" + "terms": "貯水池, ため池, 溜池" }, "natural/wetland": { - "name": "湿地帯", - "terms": "湿地帯" + "name": "湿地", + "terms": "湿地帯, 湿地, 植物, 湿原" }, "natural/wood": { "name": "自然林", - "terms": "自然林, 原生林, 森林(自然)" + "terms": "自然林, 原生林, 森林(自然), 樹木, 植物" }, "noexit/yes": { "name": "行き止まり", - "terms": "行き止まり" + "terms": "行き止まり, 行止り, 突き当たり" }, "office": { "name": "オフィス", @@ -5167,7 +5249,7 @@ }, "power/pole": { "name": "電柱", - "terms": "電柱" + "terms": "電柱, 電信柱" }, "power/sub_station": { "name": "変電所" @@ -5429,8 +5511,8 @@ "terms": "地下鉄, 線路" }, "railway/subway_entrance": { - "name": "地下鉄の出入口", - "terms": "地下鉄の出入口" + "name": "出入口(地下鉄)", + "terms": "地下鉄の出入口, 出入り口, 出入口, 地下鉄, 出口, 入口" }, "railway/switch": { "name": "分岐器", @@ -5464,7 +5546,7 @@ }, "shop/agrarian": { "name": "農業用品店", - "terms": "農業用品店, 種苗店, 農協" + "terms": "農業用品店, 農協, 種苗店, 農業, 農薬, 飼料, 肥料, 駆除剤, 農機具, 除草剤" }, "shop/alcohol": { "name": "酒店", @@ -5472,15 +5554,15 @@ }, "shop/anime": { "name": "アニメショップ", - "terms": "アニメショップ, 娯楽" + "terms": "アニメショップ, 娯楽, アニメ, コスプレ, マンガ, まんが" }, "shop/antiques": { "name": "古美術品店", - "terms": "古美術品店, アンティークショップ, 美術, アート" + "terms": "古美術品店, アンティークショップ, 美術, アート, 古美術" }, "shop/appliance": { - "name": "家電販売店", - "terms": "家電販売店,家電量販店,電器屋, 買い物, ショッピング" + "name": "白物家電販売店(大型製品)", + "terms": "家電販売店,家電量販店,電器屋, 買い物, ショッピング, 白物家電, 白物, 生活家電, 冷蔵庫, 洗濯機, 電機屋" }, "shop/art": { "name": "美術品販売店", @@ -5496,7 +5578,7 @@ }, "shop/bakery": { "name": "パン屋", - "terms": "パン屋, ベーカリー, 食品" + "terms": "パン屋, ベーカリー, 食品, 食べ物" }, "shop/bathroom_furnishing": { "name": "浴室用品店", @@ -5540,7 +5622,7 @@ }, "shop/butcher": { "name": "精肉店", - "terms": "精肉店, 肉屋, 食品" + "terms": "精肉店, 肉屋, 食品, 食べ物" }, "shop/candles": { "name": "キャンドル専門店", @@ -5568,7 +5650,7 @@ }, "shop/cheese": { "name": "チーズ店", - "terms": "チーズ店,食品" + "terms": "チーズ店,食品, 食べ物" }, "shop/chemist": { "name": "化粧品・薬品店(英国)", @@ -5576,7 +5658,7 @@ }, "shop/chocolate": { "name": "チョコレート店", - "terms": "チョコレート店, 食品" + "terms": "チョコレート店, 食品, 食べ物" }, "shop/clothes": { "name": "衣料品店", @@ -5584,15 +5666,15 @@ }, "shop/coffee": { "name": "コーヒー豆販売店", - "terms": "コーヒー豆専門店, 嗜好品, 食品, 珈琲" + "terms": "コーヒー豆専門店, 嗜好品, 食品, 珈琲, 飲み物" }, "shop/computer": { "name": "コンピューター店", - "terms": "コンピューター店, パソコン店" + "terms": "コンピューター店, パソコン店, コンピュータ, PC" }, "shop/confectionery": { "name": "菓子屋(販売)", - "terms": "菓子店, 駄菓子屋, 食品, お菓子, スナック, チョコレート, 飴, キャンディ" + "terms": "菓子店, 駄菓子屋, 食品, お菓子, スナック, チョコレート, 飴, キャンディ, 食べ物" }, "shop/convenience": { "name": "コンビニエンスストア", @@ -5616,11 +5698,11 @@ }, "shop/dairy": { "name": "日配品店", - "terms": "日配品店, 食品" + "terms": "日配品店, 食品, 食べ物" }, "shop/deli": { "name": "惣菜屋", - "terms": "惣菜屋, 弁当屋, デリカ, 食品" + "terms": "惣菜屋, 弁当屋, デリカ, 食品, 食べ物" }, "shop/department_store": { "name": "百貨店", @@ -5639,8 +5721,8 @@ "terms": "電子タバコ店, 嗜好品, タバコ, たばこ" }, "shop/electronics": { - "name": "家電販売店", - "terms": "家電販売店, 家電量販店, 買い物, ショッピング" + "name": "家電販売店(小型製品)", + "terms": "家電販売店, 家電量販店, 買い物, ショッピング, 小型家電, 電器屋, 電気屋" }, "shop/erotic": { "name": "アダルトショップ", @@ -5652,7 +5734,7 @@ }, "shop/farm": { "name": "農産物直売所", - "terms": "農産物直売所, 直販, 食品" + "terms": "農産物直売所, 直販, 食品, 食べ物" }, "shop/fashion": { "name": "ファッション店", @@ -5682,7 +5764,7 @@ }, "shop/garden_centre": { "name": "園芸用品店", - "terms": "園芸用品店, ガーデンセンター, DIY, 家庭菜園, 植木" + "terms": "園芸用品店, ガーデンセンター, DIY, 家庭菜園, 植木, 樹木, 植物" }, "shop/gas": { "name": "ガスボンベ店", @@ -5690,11 +5772,11 @@ }, "shop/gift": { "name": "ギフト店", - "terms": "ギフト店, ギフト用品店, 土産店" + "terms": "ギフト店, ギフト用品店, 土産店, お土産, 贈答品" }, "shop/greengrocer": { "name": "八百屋", - "terms": "八百屋, 青果店, 食品" + "terms": "八百屋, 青果店, 食品, 食べ物" }, "shop/hairdresser": { "name": "理美容店", @@ -5704,6 +5786,10 @@ "name": "金物屋", "terms": "金物屋, 金物店" }, + "shop/health_food": { + "name": "健康食品店", + "terms": "健康食品店, 健康, 食品, 食べ物" + }, "shop/hearing_aids": { "name": "補聴器店", "terms": "補聴器店" @@ -5770,7 +5856,7 @@ }, "shop/money_lender": { "name": "消費者金融", - "terms": "消費者金融, サラ金, 貸金, お金, 金融" + "terms": "消費者金融, サラ金, 貸金, お金, 金融, マチ金, 借金" }, "shop/motorcycle": { "name": "バイク店", @@ -5798,7 +5884,7 @@ }, "shop/organic": { "name": "オーガニック商品店", - "terms": "オーガニック商品店, 有機野菜, オーガニック, 有機, 食品" + "terms": "オーガニック商品店, 有機野菜, オーガニック, 有機, 食品, 食べ物" }, "shop/outdoor": { "name": "アウトドアショップ", @@ -5810,7 +5896,7 @@ }, "shop/pastry": { "name": "焼菓子(ペイストリー)店", - "terms": "焼菓子店, ケーキ屋, 食品, パイ, ビスケット, 洋菓子, ペイストリー, ペストリー, お菓子" + "terms": "焼菓子店, ケーキ屋, 食品, パイ, ビスケット, 洋菓子, ペイストリー, ペストリー, お菓子, 食べ物, 食品" }, "shop/pawnbroker": { "name": "質店", @@ -5834,7 +5920,7 @@ }, "shop/radiotechnics": { "name": "電子部品店", - "terms": "電子部品店, ラジオ, 電子部品, 電子工作" + "terms": "電子部品店, ラジオ, 電子部品, 電子工作, 電子パーツ" }, "shop/religion": { "name": "宗教用品店", @@ -5842,11 +5928,11 @@ }, "shop/scuba_diving": { "name": "スキューバダイビングショップ", - "terms": "スキューバダイビングショップ, スキューバダイビング, スポーツ" + "terms": "スキューバダイビングショップ, スキューバダイビング, スポーツ, 運動" }, "shop/seafood": { "name": "魚屋", - "terms": "海鮮食品店, 魚屋, 魚市場, 食品, 魚介" + "terms": "海鮮食品店, 魚屋, 魚市場, 食品, 魚介, 食べ物" }, "shop/second_hand": { "name": "リサイクルショップ", @@ -5858,15 +5944,15 @@ }, "shop/sports": { "name": "スポーツ用品店", - "terms": "スポーツ用品店" + "terms": "スポーツ用品店, 運動, 競技, トレーニング, 訓練" }, "shop/stationery": { "name": "文具店", "terms": "文具店, 文房具屋" }, "shop/storage_rental": { - "name": "レンタルスペース", - "terms": "貸し倉庫, レンタルボックス, 貸しコンテナ" + "name": "レンタル倉庫", + "terms": "貸し倉庫, レンタルボックス, 貸しコンテナ, 貸倉庫, 倉庫, レンタル倉庫" }, "shop/supermarket": { "name": "スーパーマーケット", @@ -5882,7 +5968,7 @@ }, "shop/tea": { "name": "茶舗", - "terms": "茶舗, 茶店, 食品, お茶, 緑茶" + "terms": "茶舗, 茶店, 食品, お茶, 緑茶, 飲み物" }, "shop/ticket": { "name": "チケット店", @@ -5910,7 +5996,7 @@ }, "shop/tyres": { "name": "タイヤ店", - "terms": "タイヤ店, タイヤ販売店, 自動車" + "terms": "タイヤ店, タイヤ販売店, 自動車, カー用品" }, "shop/vacant": { "name": "空き店舗, シャッター店舗" @@ -5937,19 +6023,23 @@ }, "shop/water_sports": { "name": "ウォータースポーツ用品店", - "terms": "マリンスポーツ専門店, ウォータースポーツ専門店, 水着屋, スポーツ" + "terms": "マリンスポーツ専門店, ウォータースポーツ専門店, 水着屋, スポーツ, 運動, 競技, トレーニング" }, "shop/weapons": { "name": "武器屋", "terms": "銃砲店" }, + "shop/wholesale": { + "name": "卸売店", + "terms": "卸, 卸売, 卸売店" + }, "shop/window_blind": { "name": "ブラインドカーテン専門店", "terms": "ブラインド販売店, 家具" }, "shop/wine": { "name": "ワイン店", - "terms": "ワイン店, 酒屋, 食品, アルコール, 嗜好品" + "terms": "ワイン店, 酒屋, 食品, アルコール, 嗜好品, 飲み物" }, "tourism": { "name": "観光", @@ -5969,11 +6059,11 @@ }, "tourism/artwork": { "name": "パブリックアート", - "terms": "芸術作品, 銅像, 屋外アート, 彫刻, 壁画, アート, 絵画, オブジェ" + "terms": "芸術作品, 銅像, 屋外アート, 彫刻, 壁画, アート, 絵画, オブジェ, 公園, 駅前, 広場" }, "tourism/attraction": { - "name": "観光名所", - "terms": "観光名所, 見どころ, アトラクション, 見もの" + "name": "観光地", + "terms": "観光名所, 見どころ, アトラクション, 見もの, 名所, 旧跡, 名勝, 観光地" }, "tourism/camp_site": { "name": "キャンプ場", @@ -6004,12 +6094,12 @@ "terms": "ホテル, 旅館, 宿" }, "tourism/information": { - "name": "観光案内", - "terms": "観光案内, 案内, 案内板, 案内所, インフォメーション" + "name": "観光案内(全般)", + "terms": "観光案内, 案内, 案内板, 案内所, インフォメーション, 観光" }, "tourism/information/board": { - "name": "情報掲示板", - "terms": "情報掲示板, 案内" + "name": "観光情報掲示板", + "terms": "情報掲示板, 案内, 観光, 観光案内, インフォメーション, 案内板, 観光情報, 掲示板" }, "tourism/information/guidepost": { "name": "道標", @@ -6021,7 +6111,7 @@ }, "tourism/information/office": { "name": "観光案内所", - "terms": "観光案内所, 案内" + "terms": "観光案内所, 案内, ビジターセンター, 観光, インフォメーション" }, "tourism/motel": { "name": "モーテル", @@ -6041,7 +6131,7 @@ }, "tourism/viewpoint": { "name": "展望台", - "terms": "展望台, 観光" + "terms": "展望台, 観光, 展望所, 名勝, 景色, 風景, パノラマ, 景勝" }, "tourism/wilderness_hut": { "name": "避難小屋", @@ -6323,7 +6413,7 @@ "attribution": { "text": "規約 & フィードバック" }, - "description": "おそらくデフォルトのレイヤより明瞭で正確、しかしやや古いEsriアーカイブ画像。(日本での違いは不明)", + "description": "おそらくEsriデフォルトのレイヤより明瞭で正確、しかしやや古いEsriアーカイブ画像。(日本での違いは不明)", "name": "Esri World Imagery(鮮明版)ベータ" }, "MAPNIK": { diff --git a/dist/locales/kn.json b/dist/locales/kn.json index 259fe83ef..c300009f2 100644 --- a/dist/locales/kn.json +++ b/dist/locales/kn.json @@ -285,12 +285,6 @@ "connected_to_hidden": "ಈ ವಸ್ತು ಇನ್ನೊದು ಗುಪ್ತ ವಸ್ತುವಿಗೆ ಸೇರಿಕೊಂಡಿದೆ. ಆದುದರಿಂದ ಇದನ್ನು ವಿಭಜಿಸಲಾಗುವುದಿಲ್ಲ. " }, "restriction": { - "help": { - "select": "ರಸ್ತೆ ಭಾಗವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಈ ಬಟನನ್ನ ಒತ್ತಿ. ", - "toggle": "ತಿರುಗು ನಿರ್ಭಂಧವನ್ನು ಅಂತರಣಗೊಳಿಸಲು ಕ್ಲಿಕ್ಕಿಸಿ ", - "toggle_on": " {ತಿರುಗು ನಿರ್ಬಂಧವನ್ನು} ಸೇರಿಸಲು ಈ ಬಟನನ್ನ ಒತ್ತಿ. ", - "toggle_off": "{ತಿರುಗು ನಿರ್ಬಂಧವನ್ನು} ತೆಗೆಯಲು ಈ ಬತನನ್ನ ಒತ್ತಿ. " - }, "annotation": { "create": "ತಿರುಗು ನಿರ್ಬಂಧವನ್ನು ಸೇರಿಸಲಾಗಿದೆ.", "delete": "ತಿರುಗು ನಿರ್ಬಂಧವನ್ನು ತೆಗೆಯಲಾಗಿದೆ. " diff --git a/dist/locales/ko.json b/dist/locales/ko.json index ad7eb60fb..af0dbdad1 100644 --- a/dist/locales/ko.json +++ b/dist/locales/ko.json @@ -282,12 +282,6 @@ "connected_to_hidden": "이것은 숨겨진 지물에 연결되어 있기 때문에 분할할 수 없습니다." }, "restriction": { - "help": { - "select": "도로 분절을 선택하려면 클릭하세요.", - "toggle": "회전 제한을 토글하려면 클릭하세요.", - "toggle_on": "\"{restriction}\" 제한을 추가하려면 클릭하세요.", - "toggle_off": "\"{restriction}\" 제한을 제거하려면 클릭하세요" - }, "annotation": { "create": "회전 제한을 추가했습니다", "delete": "회전 제한을 삭제했습니다" @@ -341,7 +335,8 @@ "created": "만듦", "about_changeset_comments": "바뀜집합 덧글에 대해", "about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments", - "google_warning": "덧글에서 구글을 언급했습니다: 구글 지도로부터 복사하는 것은 엄격히 금지됨을 유의하세요." + "google_warning": "덧글에서 구글을 언급했습니다: 구글 지도로부터 복사하는 것은 엄격히 금지됨을 유의하세요.", + "google_warning_link": "https://www.openstreetmap.org/copyright" }, "contributors": { "list": "{users} 사용자의 편집", @@ -467,6 +462,7 @@ "switch": "이 배경으로 복귀합니다", "custom": "사용자 지정", "custom_button": "사용자 지정 배경 편집", + "custom_prompt": "타일 URL 템플릿을 입력하세요. 올바른 토큰은 다음과 같습니다:\n - Z/X/Y 타일 체계에 대해 {zoom} 또는 {z}, {x}, {y}\n - 뒤집힌 TMS 스타일의 Y좌표용으로 {-y} 또는 {ty}\n - 쿼드 타일 방식으로 {u}\n - 다중 DNS 서버용으로 {switch:a,b,c}\n\n예시는 다음과 같습니다:\n{example}", "overlays": "오버레이", "imagery_source_faq": "이미지 정보 / 버그 신고", "reset": "재설정", @@ -649,6 +645,7 @@ "untagged_area_tooltip": "이 공간을 설명하는 지물 유형을 선택하세요.", "untagged_relation": "태그되지 않은 관계", "untagged_relation_tooltip": "이 관계가 무엇인지 설명하는 지물 유형을 선택하세요.", + "many_deletions": "개체 {n}개: 노드 {p}개, 선 {l}개, 지역 {a}개, 관계 {r}개를 삭제하고 있습니다. 이를 수행하겠습니까? 다른 사람이 openstreetmap.org에서 보는 지도에서 삭제됩니다.", "tag_suggests_area": "{tag} 태그의 제안 선은 공간이여야 하지만 태그는 공간이 아닙니다", "deprecated_tags": "사용되지 않는 태그: {tags}" }, @@ -3630,6 +3627,10 @@ "name": "청능사", "terms": "귀,청력,소리" }, + "healthcare/birthing_center": { + "name": "산원", + "terms": "아기,출산,분만,진통,임신" + }, "healthcare/blood_donation": { "name": "헌혈의 집", "terms": "헌혈의 집, 헌혈 센터" @@ -5020,10 +5021,6 @@ "name": "상점", "terms": "가게" }, - "shop/agrarian": { - "name": "농업 용품 가게", - "terms": "농기계,씨앗,종자,농약,살충제,비료,농기구" - }, "shop/alcohol": { "name": "주류 상점", "terms": "알코올,술,맥주,와인,포도주" @@ -5262,6 +5259,9 @@ "name": "철물점", "terms": "철물점" }, + "shop/health_food": { + "name": "건강식품 가게" + }, "shop/hearing_aids": { "name": "보청기 가게" }, @@ -5458,6 +5458,9 @@ "name": "무기상점", "terms": "탄약,총,칼,나이프" }, + "shop/wholesale": { + "name": "도매상" + }, "shop/window_blind": { "name": "창문 블라인드 가게" }, diff --git a/dist/locales/ku.json b/dist/locales/ku.json index 454c996f0..c4613968a 100644 --- a/dist/locales/ku.json +++ b/dist/locales/ku.json @@ -2,81 +2,7 @@ "ku": { "modes": { "add_area": { - "title": "ناوچە" - }, - "add_line": { - "title": "هێڵ" - }, - "add_point": { - "title": "خاڵ" - } - }, - "tooltip_keyhint": "کورتبڕ:", - "translate": { - "translate": "وەرگێڕان", - "localized_translation_language": "هەڵبژاردنی زمان", - "localized_translation_name": "ناو" - }, - "logout": "دەرچوون", - "report_a_bug": "ناردنی هەڵە", - "help_translate": "یارمەتیدان بۆ وەرگێڕان", - "commit": { - "cancel": "پاشگەزبوونەوە", - "deleted": "سڕایەوە", - "created": "دروستکرا" - }, - "geometry": { - "point": "خاڵ", - "line": "هێڵ", - "area": "ناوچە" - }, - "inspector": { - "remove": "لابردن", - "search": "گەڕان", - "check": { - "yes": "بەڵێ", - "no": "نەخێر" - }, - "add": "زیادکردن", - "none": "هیچ" - }, - "background": { - "none": "هیچ" - }, - "feature": { - "points": { - "description": "خاڵەکان" - } - }, - "save": { - "title": "پاشەکەوتکردن", - "conflict": { - "previous": "<پێشتر", - "next": "دواتر>" - } - }, - "success": { - "help_link_text": "وردەکارییەکان" - }, - "help": { - "title": "یارمەتی" - }, - "intro": { - "graph": { - "block_number": "", - "county": "", - "district": "", - "hamlet": "", - "neighbourhood": "", - "province": "", - "quarter": "", - "state": "", - "subdistrict": "", - "suburb": "", - "countrycode": "tr" - }, - "startediting": { - "title": "دەستپێکردنی دەستکاری" + "title": "Herêm" } } } diff --git a/dist/locales/lt.json b/dist/locales/lt.json index b76f9a790..954d40e7c 100644 --- a/dist/locales/lt.json +++ b/dist/locales/lt.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Tai negali būti padalinta, nes yra prijungta prie paslėpto objekto." }, "restriction": { - "help": { - "select": "Spustelėkite, kad pasirinktumėte kelio atkarpą.", - "toggle": "Spustelėkite, kad nustatytumėte posūkio apribojimus.", - "toggle_on": "Spustelėkite, kad pridėtumėte \"{restriction}\" apribojimą.", - "toggle_off": "Spustelėkite, kad panaikintumėte \"{restriction}\" apribojimą." - }, "annotation": { "create": "Posūkio apribojimas pridėtas", "delete": "Posūkio apribojimas panaikintas" diff --git a/dist/locales/mk.json b/dist/locales/mk.json index 2459c5aaa..cd42f8143 100644 --- a/dist/locales/mk.json +++ b/dist/locales/mk.json @@ -190,12 +190,6 @@ "connected_to_hidden": "Ова не може да се расцепи бидејќи е поврзано со скриен елемент." }, "restriction": { - "help": { - "select": "Стиснете за да изберете делница.", - "toggle": "Стиснете за приказ/тргање на забраните за свртување.", - "toggle_on": "Стиснете за да додадете забрана „{restriction}“.", - "toggle_off": "Стиснете за да ја отстраните забраната „{restriction}“." - }, "annotation": { "create": "Додадена забрана за свртување", "delete": "Избришана забрана за свртување" diff --git a/dist/locales/ms.json b/dist/locales/ms.json index ee3bf56db..179c3192c 100644 --- a/dist/locales/ms.json +++ b/dist/locales/ms.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Ini tidak dapat dibelah kerana ianya bersambung ke ciri tersembunyi." }, "restriction": { - "help": { - "select": "Klik untuk memilih segmen jalan.", - "toggle": "Klik untuk menukar sekatan pusingan.", - "toggle_on": "Klik untuk menambah suatu larangan \"{restriction}\".", - "toggle_off": "Klik untuk menghapuskan suatu larangan \"{restriction}\"." - }, "annotation": { "create": "Suatu larangan membelok telah ditambah", "delete": "Suatu larangan membelok telah dihapuskan" diff --git a/dist/locales/nl.json b/dist/locales/nl.json index 63df55c3c..b356713d1 100644 --- a/dist/locales/nl.json +++ b/dist/locales/nl.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Dit kan niet gesplitst worden omdat het verbonden is met een verborgen object." }, "restriction": { - "help": { - "select": "Klik om een stuk weg te selecteren.", - "toggle": "Klik om te kiezen tussen afslagbeperkingen.", - "toggle_on": "Klik om een \"{restriction}\"-beperking toe te voegen.", - "toggle_off": "Klik om de \"{restriction}\"-beperking weg te halen." - }, "annotation": { "create": "Afslagbeperking toegevoegd", "delete": "Afslagbeperking weggehaald" @@ -389,6 +383,8 @@ "title": "Meting", "selected": "{n} geselecteerd", "geometry": "Geometrie", + "closed_line": "gesloten lijn", + "closed_area": "gesloten gebied", "center": "Midden", "perimeter": "Omtrek", "length": "Lengte", @@ -469,6 +465,7 @@ "switch": "Selecteer terug deze achtergrond", "custom": "Aangepast", "custom_button": "Tegel-URL-sjabloon aanpassen", + "custom_prompt": "Geef een tegel-URL-sjabloon op. Geldige placeholders zijn:\n - {zoom}/{z}, {x}, {y} voor het Z/X/Y-schema\n - {ty} voor omgekeerde Y-coördinaten in TMS-stijl\n - {u} voor het quadtile-schema\n - {switch:a,b,c} voor DNS-server-multiplexing\n\nVoorbeeld:\n{example}", "overlays": "Lagen", "imagery_source_faq": "Beeldopnameinfo / Rapporteer een probleem", "reset": "Standaard herstellen", @@ -652,6 +649,7 @@ "untagged_area_tooltip": "Selecteer een objecttype dat beschrijft wat dit vlak is.", "untagged_relation": "Relatie zonder tags", "untagged_relation_tooltip": "Selecteer een objecttype dat beschrijft wat deze relatie is.", + "many_deletions": "Je verwijdert {n} objecten. Weet je zeker dat je dit wil doen? Dit zal ze verwijderen van de kaart die iedereen ziet op openstreetmap.org.", "tag_suggests_area": "De tag {tag} suggereert dat de lijn een vlak is, maar het is geen vlak", "deprecated_tags": "Afgeschafte tags: {tags}" }, @@ -1218,6 +1216,21 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "north": "N", + "south": "Z", + "east": "O", + "west": "W", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -2613,6 +2626,9 @@ "wheelchair": { "label": "Rolstoeltoegankelijkheid" }, + "wholesale": { + "label": "Groothandel" + }, "width": { "label": "Breedte (in meter)" }, @@ -3098,6 +3114,9 @@ "name": "Douche", "terms": "stortbad,waterkraan,kraan" }, + "amenity/smoking_area": { + "name": "Rookgebied" + }, "amenity/social_facility": { "name": "Sociale Faciliteit", "terms": "OCMW,kansarmen,hulp,hulpcentrum" @@ -3331,6 +3350,9 @@ "name": "Haag", "terms": "heg,haag" }, + "barrier/kerb": { + "name": "Stoeprand" + }, "barrier/kissing_gate": { "name": "Voetgangershek", "terms": "veehek,kushek,kusjeshek,kissing gate" @@ -3420,9 +3442,6 @@ "building/entrance": { "name": "Ingang/Uitgang" }, - "building/farm": { - "name": "Gebouw van boerderij" - }, "building/garage": { "name": "Garage (privéstalling voor voertuigen)", "terms": "autogarage" @@ -3769,6 +3788,9 @@ "emergency/private": { "name": "Toegang voor hulpdiensten: privé" }, + "emergency/water_tank": { + "name": "Noodwatertank" + }, "emergency/yes": { "name": "Toegang voor hulpdiensten: ja" }, @@ -4321,6 +4343,9 @@ "name": "Speelzaal (met kansspelmachines)", "terms": "casino,slot machine,slots,gokken,slotmachine" }, + "leisure/amusement_arcade": { + "name": "Speelhal" + }, "leisure/bird_hide": { "name": "Vogelkijkscherm of -hut", "terms": "vogelkijkhut,vogelkijkscherm" @@ -5350,8 +5375,7 @@ "terms": "handelszaak" }, "shop/agrarian": { - "name": "Landbouwwinkel (om aan landbouw te doen)", - "terms": "landbouwzaak,landbouwerswinkel,landbouwerszaak,pesticidenwinkel,meststoffenwinkel,zadenwinkel,tractorwinkel,voerwinkel,veevoerwinkel,landbouwgereedschapswinkel,landbouwwerktuigenwinkel" + "name": "Landbouwwinkel" }, "shop/alcohol": { "name": "Slijterij", @@ -5816,6 +5840,9 @@ "name": "wapen winkel", "terms": "wapenwinkel" }, + "shop/wholesale": { + "name": "Groothandel" + }, "shop/window_blind": { "name": "Jaloeziewinkel", "terms": "zonwering,luiken,jaloezieën" @@ -6178,6 +6205,13 @@ "description": "Esri world imagery", "name": "Esri World Imagery" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Gebruiksvoorwaarden & feedback" + }, + "description": "Esri archiefbeelden kunnen duidelijker en accurater zijn dan de standaard achtergrondbeelden.", + "name": "Esri World Imagery (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap-bijdragers, CC-BY-SA" @@ -6246,18 +6280,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap bijdragers, CC by-SA 3.0" + }, "name": "Waymarked Trails: Fietsen" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap bijdragers, CC by-SA 3.0" + }, "name": "Waymarked Trails: Wandelen" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap bijdragers, CC by-SA 3.0" + }, "name": "Waymarked Trails: Mountainbiken" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap bijdragers, CC by-SA 3.0" + }, "name": "Waymarked Trails: Inline skaten" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap bijdragers, CC by-SA 3.0" + }, "name": "Waymarked Trails: Wintersportpistes" }, "basemap.at": { diff --git a/dist/locales/no.json b/dist/locales/no.json index f50e31088..180409044 100644 --- a/dist/locales/no.json +++ b/dist/locales/no.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Dette/denne kan ikke splittes da det er koblet til et skjult objekt." }, "restriction": { - "help": { - "select": "Klikk for å velge et vegelement.", - "toggle": "Klikk for å endre svingebegrensninger.", - "toggle_on": "Klikk for å legge til \"{restriction}\" begrensning.", - "toggle_off": "Klikk for å fjerne \"{restriction}\" begrensning." - }, "annotation": { "create": "La til en svingebegrensning.", "delete": "Fjernet en svingebegrensning." @@ -385,7 +379,11 @@ "selected": "{n} valgt", "geometry": "Geometri", "length": "Lengde", - "area": "Område" + "area": "Område", + "location": "Sted", + "metric": "Metrisk", + "imperial": "Imperisk", + "node_count": "Antall noder" } }, "geometry": { @@ -450,12 +448,16 @@ "title": "Bakgrunn", "description": "Bakgrunnsinnstillinger", "key": "B", + "backgrounds": "Bakgrunner", "none": "Ingen", "best_imagery": "Den beste ortofotokilden til denne plasseringen", "switch": "Bytt tilbake til denne bakgrunnen", "custom": "Egendefinert", "custom_button": "Endre egendefinert bakgrunn", + "overlays": "Overlegg", "reset": "tilbakestill", + "brightness": "Lysstyrke", + "contrast": "Kontrast", "minimap": { "tooltip": "Vis et kart som er zoomet ut for å hjelpe med å lokalisere området som vises.", "key": "/" diff --git a/dist/locales/pl.json b/dist/locales/pl.json index 99e70ccca..1a315e533 100644 --- a/dist/locales/pl.json +++ b/dist/locales/pl.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Tego obiektu nie można podzielić, ponieważ jest połączony z ukrytym obiektem lub jego cechą. " }, "restriction": { - "help": { - "select": "Proszę kliknąć, aby wybrać fragment drogi.", - "toggle": "Proszę kliknąć, aby zmienić zakazy/nakazy skrętu.", - "toggle_on": "Proszę kliknąć, aby dodać zakaz/nakaz skrętu \"{restriction}\".", - "toggle_off": "Proszę kliknąć, aby usunąć zakaz/nakaz skrętu \"{restriction}\"." - }, "annotation": { "create": "Dodano zakaz/nakaz skrętu", "delete": "Usunięto zakaz/nakaz skrętu" @@ -386,6 +380,8 @@ "title": "Pomiary", "selected": "{n} wybrano", "geometry": "Geometria", + "closed_line": "zamknięta droga", + "closed_area": "zamknięty obszar", "center": "Środek", "perimeter": "Obwód", "length": "Długość", @@ -648,6 +644,7 @@ "untagged_area_tooltip": "Wybierz typ obiektu, który opisuje czym jest ten obszar.", "untagged_relation": "Pusta relacja - brak znaczników", "untagged_relation_tooltip": "Wybierz typ obiektu, który opisuje czym jest ta relacja.", + "many_deletions": "Usuwasz {n} obiekty/obiektów: {p} węzłów, {l} linii, {a} obszarów, {r} relacji. Na pewno chcesz to zrobić? To spowoduje, że znikną one z mapy, którą wszyscy widzą na openstreetmap.org.", "tag_suggests_area": "Znacznik {tag} sugeruje, że linia powinna być obszarem, ale nim nie jest.", "deprecated_tags": "Przestarzałe znaczniki: {tags}" }, @@ -714,6 +711,8 @@ "keyboard_h": "Skróty klawiszowe" }, "feature_editor": { + "title": "Edytor Obiektu", + "type_h": "Rodzaje obiektów", "fields_h": "Pola", "tags_h": "Znaczniki" }, @@ -733,19 +732,30 @@ "delete_line_h": "Usuwanie linii" }, "areas": { - "title": "Obszary" + "title": "Obszary", + "point_or_area_h": "Punkty czy obszary?", + "add_area_h": "Dodawanie obszarów", + "square_area_h": "Kąty proste", + "modify_area_h": "Modyfikowanie obszarów", + "delete_area_h": "Usuwanie obszarów" }, "relations": { "title": "Relacje", + "edit_relation_h": "Edytowanie relacji", + "relation_types_h": "Rodzaje relacji", + "multipolygon_h": "Wielokąty", + "turn_restriction_h": "Ograniczenia skrętu", "route_h": "Trasy", "boundary_h": "Granice" }, "imagery": { "title": "Zdjęcia podkładów tła", - "sources_h": "Żródła zdjęć" + "sources_h": "Żródła zdjęć", + "offsets_h": "Dopasowywanie przesunięcia obrazu podkładu" }, "streetlevel": { - "title": "Zdjęcia uliczne" + "title": "Zdjęcia uliczne", + "using_h": "Korzystanie ze zdjęć ulic" }, "gps": { "title": "Ślady GPS", @@ -1124,6 +1134,28 @@ } } }, + "units": { + "feet": "{quantity} stóp", + "miles": "{quantity} mil", + "square_feet": "{quantity} stóp kwadratowych", + "square_miles": "{quantity} mil kwadratowych", + "acres": "{quantity} akr", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "E", + "west": "W", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1219,7 +1251,7 @@ "placeholders": { "block_number": "Kwartał", "block_number!jp": "Kwartał", - "city": "Miasto (nie poczta)", + "city": "Miejsc. (adres bez ulicy)", "city!jp": "Miasto/Wieś/Okręg specjalny Tokio", "city!vn": "Miasto", "conscriptionnumber": "123", @@ -1235,7 +1267,7 @@ "housenumber!jp": "Nr budynku/działki", "neighbourhood": "Okręg", "neighbourhood!jp": "Chōme/Aza/Koaza", - "place": "Miejscowość", + "place": "Miejsc. (adres z ulicą)", "postcode": "Kod pocztowy", "province": "Prowincja/województwo", "province!jp": "Prefektura", @@ -1373,6 +1405,9 @@ "brand": { "label": "Marka" }, + "brewery": { + "label": "Piwo z Beczki" + }, "bridge": { "label": "Rodzaj", "placeholder": "Domyślny" @@ -1574,6 +1609,9 @@ "forward": "Na przód" } }, + "dispensing": { + "label": "Realizacja Recept" + }, "display": { "label": "Typ wyświetlacza" }, @@ -1782,7 +1820,7 @@ "label": "Typ" }, "landuse": { - "label": "Typ" + "label": "Rodzaj" }, "lanes": { "label": "Pasy ruchu", @@ -1829,7 +1867,7 @@ } }, "leisure": { - "label": "Typ" + "label": "Rodzaj" }, "length": { "label": "Długość (w metrach)" @@ -1967,7 +2005,9 @@ "oneway": { "label": "Jednokierunkowa", "options": { + "alternating": "Ruch Wachadłowy", "no": "Nie", + "reversible": "Okresowo Zmieniana", "undefined": "Domyślnie nie", "yes": "Tak" } @@ -1975,7 +2015,9 @@ "oneway_yes": { "label": "Jednokierunkowa", "options": { + "alternating": "Ruch Wachadłowy", "no": "Nie", + "reversible": "Okresowo Zmieniana", "undefined": "Domyślnie tak", "yes": "Tak" } @@ -2102,6 +2144,7 @@ "label": "Kierunek", "options": { "backward": "Do tyłu", + "both": "Oba / Wszystkie", "forward": "Do przodu" } }, @@ -2414,6 +2457,7 @@ "label": "Kierunek", "options": { "backward": "Do tyłu", + "both": "Oba / Wszystkie", "forward": "Do przodu" } }, @@ -2510,6 +2554,9 @@ "wheelchair": { "label": "Dostęp dla wózków inwalidzkich" }, + "wholesale": { + "label": "Rodzaj hurtowni" + }, "width": { "label": "Szerokość (w metrach)" }, @@ -2698,7 +2745,8 @@ "terms": "kawa,herbata,kawiarnia" }, "amenity/car_pooling": { - "name": "Carpooling" + "name": "Carpooling", + "terms": "2+1,z pasażerem" }, "amenity/car_rental": { "name": "Wypożyczalnia samochodów", @@ -2846,6 +2894,10 @@ "name": "Biblioteka", "terms": "biblioteka,czytelnia" }, + "amenity/love_hotel": { + "name": "Hotel Dla Par", + "terms": "love hotel,dla par,xxx,krótki pobyt" + }, "amenity/marketplace": { "name": "Targowisko", "terms": "targowisko,targ,rynek,giełda" @@ -2991,6 +3043,10 @@ "name": "Prysznic", "terms": "prysznic" }, + "amenity/smoking_area": { + "name": "Palarnia", + "terms": "dla palących,dla palaczy" + }, "amenity/social_facility": { "name": "Placówka pomocy społecznej", "terms": "opieka społeczna, mops, gops, mopr, ośrodek opieki społecznej" @@ -3123,7 +3179,7 @@ }, "area/highway": { "name": "Nawierzchnia", - "terms": "typ nawierzchni" + "terms": "nawierzchnia,gruntowa,polna" }, "attraction/amusement_ride": { "name": "przejażdżka-atrakcja (ogólna)", @@ -3224,6 +3280,10 @@ "name": "Żywopłot", "terms": "żywopłot" }, + "barrier/kerb": { + "name": "Krawężnik", + "terms": "krawężnik,krawędź" + }, "barrier/kissing_gate": { "name": "Kissing Gate", "terms": "Kissing Gate" @@ -3264,6 +3324,14 @@ "name": "Stodoła", "terms": "stodoła" }, + "building/boathouse": { + "name": "Dom Na Wodzie", + "terms": "houseboat,boathouse,na wodzie" + }, + "building/bungalow": { + "name": "Bungalow", + "terms": "parterowy" + }, "building/bunker": { "name": "Bunkier" }, @@ -3283,6 +3351,10 @@ "name": "Budynek kościoła", "terms": "budynek kościelny, kościół, cerkiew" }, + "building/civic": { + "name": "Budynek miejski", + "terms": "użyteczności publicznej,publiczny,miejski" + }, "building/college": { "name": "Budynek szkoły policealnej", "terms": "Szkoła policealna" @@ -3306,9 +3378,6 @@ "building/entrance": { "name": "Wejście/wyjście" }, - "building/farm": { - "name": "Budynek wiejski" - }, "building/garage": { "name": "Garaż", "terms": "garaż" @@ -3366,7 +3435,8 @@ "terms": "dach,zadaszenia,wiata" }, "building/ruins": { - "name": "Ruiny budynku" + "name": "Ruiny budynku", + "terms": "ruiny,wyburzony" }, "building/school": { "name": "Budynek szkolny", @@ -3377,7 +3447,8 @@ "terms": "Dom bliźniaczy" }, "building/service": { - "name": "Budynek techniczny" + "name": "Budynek techniczny", + "terms": "serwisowy,usługi" }, "building/shed": { "name": "Szopa", @@ -3388,14 +3459,16 @@ "terms": "stajnie" }, "building/stadium": { - "name": "Budynek stadionu" + "name": "Budynek stadionu", + "terms": "stadion,sporotowy" }, "building/static_caravan": { "name": "Przyczepa/wóz kempingowy ustawiony na stałe", "terms": "mieszkalny wóz kempingowy" }, "building/temple": { - "name": "Budynek świątyni" + "name": "Budynek świątyni", + "terms": "świątynia,kościół" }, "building/terrace": { "name": "Domki szeregowe", @@ -3405,7 +3478,8 @@ "name": "Budynek dworca kolejowego" }, "building/transportation": { - "name": "Budynek stacji" + "name": "Budynek stacji", + "terms": "transport,dworzec,stacja" }, "building/university": { "name": "Budynek uczelni wyższej", @@ -3657,6 +3731,10 @@ "emergency/private": { "name": "Prywatny dojazd dla służb ratowniczych" }, + "emergency/water_tank": { + "name": "Zbiornik Wody", + "terms": "zapasowy,zbiornik,arwaryjny,pożarowy" + }, "emergency/yes": { "name": "Istniejący dojazd dla służb ratowniczych" }, @@ -3681,8 +3759,8 @@ "terms": "podniesione przejście dla pieszych, podwyższone przejście dla pieszych" }, "footway/sidewalk": { - "name": "Chodnik", - "terms": "chodnik" + "name": "Chodnik przy jezdni", + "terms": "chodnik, droga dla pieszych" }, "ford": { "name": "Bród", @@ -3795,12 +3873,16 @@ "name": "Droga tylko dla koni", "terms": "jazda konna,szlak jeździecki,szlak konny" }, + "highway/bus_guideway": { + "name": "Droga dla autobusu torowego", + "terms": "brt,autobus torowy," + }, "highway/bus_stop": { "name": "Przystanek autobusowy / platforma" }, "highway/corridor": { "name": "Korytarz (w budynku)", - "terms": "korytarz" + "terms": "korytarz, hall" }, "highway/crossing": { "name": "Przejście dla pieszych", @@ -3820,7 +3902,7 @@ }, "highway/cycleway": { "name": "Droga rowerowa", - "terms": "droga,rowerowa,ścieżka,rowerów" + "terms": "droga rowerowa,ścieżka dla rowerów" }, "highway/elevator": { "name": "Winda", @@ -3828,7 +3910,7 @@ }, "highway/footway": { "name": "Droga/ścieżka dla pieszych", - "terms": "pobocze,bulwar,ścieżka,deptak,szosa,spacer" + "terms": "pobocze,bulwar,ścieżka,deptak,szosa,spacer,chodnik" }, "highway/give_way": { "name": "Ustąp pierwszeństwa przejazdu", @@ -3864,7 +3946,7 @@ }, "highway/pedestrian_line": { "name": "Ulica - deptak", - "terms": "deptak" + "terms": "ulica handlowa, bulwar, promenada, esplanada" }, "highway/primary": { "name": "Droga pierwszorzędna", @@ -3875,7 +3957,7 @@ "terms": "rampa,wjazd,wyjazd,zjazd" }, "highway/raceway": { - "name": "Tor wyścigowy (Sporty Motorowe)", + "name": "Tor wyścigowy (sporty motorowe)", "terms": "tor,wyścigowy,samochodowy,motorowy" }, "highway/residential": { @@ -4032,19 +4114,19 @@ }, "landuse/allotments": { "name": "Ogródki działkowe", - "terms": "działki" + "terms": "działki, ogród działkowy" }, "landuse/aquaculture": { "name": "Teren akwakultury", "terms": "hodowla ryb" }, "landuse/basin": { - "name": "Zbiornik wodny", + "name": "Zbiornik wodny lub suchy", "terms": "zbiornik,wodny,retencyjny" }, "landuse/brownfield": { - "name": "Teren pod ponowną zabudowę", - "terms": "teren poprzemysłowy, teren powyburzeniowy" + "name": "Teren poprzemysłowy/powyburzeniowy", + "terms": "teren poprzemysłowy, teren powyburzeniowy, wyburzenie" }, "landuse/cemetery": { "name": "Cmentarz", @@ -4059,15 +4141,15 @@ "terms": "obszar biurowy, biura, biznes, obszar biznesowy" }, "landuse/construction": { - "name": "Obszar budowy", - "terms": "teren budowy,budowa" + "name": "Plac budowy", + "terms": "teren budowy,budowa,obszar budowy" }, "landuse/farm": { "name": "Użytki rolne" }, "landuse/farmland": { "name": "Pola uprawne", - "terms": "Uprawy" + "terms": "Uprawy,pole" }, "landuse/farmyard": { "name": "Teren z zabudowaniami rolniczymi", @@ -4078,26 +4160,28 @@ "terms": "las,drzewa" }, "landuse/garages": { - "name": "Obszar z garażami" + "name": "Teren z garażami", + "terms": "garaże,garażowisko,obszar garaży,wiaty" }, "landuse/grass": { "name": "Trawa", - "terms": "trawa, trawnik, " + "terms": "trawa, trawnik, skwer,klomb" }, "landuse/greenfield": { "name": "Teren niezabudowany", "terms": "teren niezabudowany" }, "landuse/greenhouse_horticulture": { - "name": "Obszar zajęty przez szklarnie/tunele" + "name": "Teren zajęty przez szklarnie/tunele", + "terms": "obszar zajęty przez szklarnie/tunele" }, "landuse/harbour": { "name": "Port morski", "terms": "port morski,port" }, "landuse/industrial": { - "name": "Obszar przemysłowy", - "terms": "Teren przemysłowy" + "name": "Teren przemysłowy", + "terms": "Obszar przemysłowy" }, "landuse/industrial/scrap_yard": { "name": "Stacja demontażu pojazdów" @@ -4112,11 +4196,11 @@ }, "landuse/meadow": { "name": "Łąka", - "terms": "Łąka" + "terms": "łąka,pastwisko" }, "landuse/military": { - "name": "Obszar wojskowy", - "terms": "poligon wojskowy" + "name": "Teren wojskowy", + "terms": "poligon wojskowy, wojsko, obszar wojskowy" }, "landuse/military/airfield": { "name": "Lotnisko wojskowe", @@ -4132,7 +4216,7 @@ }, "landuse/military/checkpoint": { "name": "Wojskowy punkt kontrolny", - "terms": "Wojskowy punkt kontrolny" + "terms": "wojskowy punkt kontrolny" }, "landuse/military/danger_area": { "name": "Obszar niebezpieczny", @@ -4148,23 +4232,23 @@ }, "landuse/military/obstacle_course": { "name": "Tor przeszkód", - "terms": "Tor przeszkód" + "terms": "tor przeszkód" }, "landuse/military/office": { "name": "Biuro Wojskowe", - "terms": "Biuro Wojskowe," + "terms": "biuro wojskowe,wku" }, "landuse/military/range": { "name": "Strzelnica Wojskowa", - "terms": "Strzelnica Wojskowa, Strzelnica" + "terms": "strzelnica wojskowa, strzelnica" }, "landuse/military/training_area": { - "name": "Poligon Wojskowy", + "name": "Poligon wojskowy", "terms": "poligon wojskowy, poligon" }, "landuse/orchard": { "name": "Sad", - "terms": "Sad" + "terms": "sad, owoce" }, "landuse/plant_nursery": { "name": "Szkółka leśna", @@ -4172,7 +4256,7 @@ }, "landuse/quarry": { "name": "Kamieniołom", - "terms": "kamieniołom, żwirownia, kruszywo,kopalnia odkrywkowa" + "terms": "kamieniołom, żwirownia, kruszywo,kopalnia odkrywkowa,kopalnia piasku" }, "landuse/railway": { "name": "Teren kolejowy", @@ -4180,7 +4264,7 @@ }, "landuse/recreation_ground": { "name": "Tereny rekreacyjne", - "terms": "rekreacja,odpoczynek" + "terms": "rekreacja,odpoczynek,sporty,zabawy" }, "landuse/religious": { "name": "Teren dla celów religijnych", @@ -4191,8 +4275,8 @@ "terms": "Teren zamieszkały" }, "landuse/retail": { - "name": "Obszar handlowy", - "terms": "handel" + "name": "Teren handlu detalicznego", + "terms": "handel detaliczny" }, "landuse/vineyard": { "name": "Winnica", @@ -4200,7 +4284,7 @@ }, "leisure": { "name": "Rozrywka i wypoczynek", - "terms": "Wypoczynek, czas wolny" + "terms": "wypoczynek, czas wolny, gry, zabawy" }, "leisure/adult_gaming_centre": { "name": "Salon gier hazardowych", @@ -4224,7 +4308,7 @@ }, "leisure/dog_park": { "name": "Park dla psów", - "terms": "psi park" + "terms": "psi park, wybieg dla psów" }, "leisure/firepit": { "name": "Miejsce na ognisko", @@ -4239,38 +4323,48 @@ "terms": "yoga, szkoła yogi, centrum yogi, praktyka yogi" }, "leisure/fitness_station": { - "name": "Przyrządy do ćwiczeń", - "terms": "siłownia zewnętrzna" + "name": "Siłownia zewnętrzna ", + "terms": "siłownia zewnętrzna, przyrządy do ćwiczeń" }, "leisure/fitness_station/balance_beam": { - "name": "Równoważnia" + "name": "Równoważnia", + "terms": "równoważnia" }, "leisure/fitness_station/box": { - "name": "Step" + "name": "Step", + "terms": "step" }, "leisure/fitness_station/horizontal_bar": { - "name": "Drążek do podciągania" + "name": "Drążek do podciągania", + "terms": "drążek do podciągania" }, "leisure/fitness_station/horizontal_ladder": { - "name": "Drabinka gimnastyczna pozioma" + "name": "Drabinka gimnastyczna pozioma", + "terms": "drabinka gimnastyczna pozioma" }, "leisure/fitness_station/hyperextension": { - "name": "Stanowisko ćwiczeń mięśni pleców" + "name": "Stanowisko ćwiczeń mięśni pleców", + "terms": "stanowisko ćwiczeń mięśni pleców" }, "leisure/fitness_station/parallel_bars": { - "name": "Poręcze do dipów" + "name": "Poręcze równoległe", + "terms": "Poręcze równoległe, poręcze do dipów" }, "leisure/fitness_station/push-up": { - "name": "Stanowisko do pompek" + "name": "Stanowisko do pompek", + "terms": "stanowisko do pompek" }, "leisure/fitness_station/rings": { - "name": "Kółka gimnastyczne" + "name": "Kółka gimnastyczne", + "terms": "kółka gimnastyczne" }, "leisure/fitness_station/sign": { - "name": "Instrukcja stanowiska do ćwiczeń" + "name": "Instrukcja stanowiska do ćwiczeń", + "terms": "instrukcja stanowiska do ćwiczeń" }, "leisure/fitness_station/sit-up": { - "name": "Stanowisko do brzuszków" + "name": "Stanowisko do brzuszków", + "terms": "stanowisko do brzuszków" }, "leisure/garden": { "name": "Ogród", @@ -4306,7 +4400,7 @@ }, "leisure/park": { "name": "Park", - "terms": "las,ogród,trawa,zieleń,trawnik,łąka,miejsce,plac,teren rekreacyjny" + "terms": "las,plac,teren rekreacyjny" }, "leisure/picnic_table": { "name": "Stół piknikowy", @@ -4381,8 +4475,8 @@ "terms": "plac zabaw" }, "leisure/resort": { - "name": "Resort", - "terms": "ośrodek wczasowy" + "name": "Ośrodek wczasowy", + "terms": "resort, ośrodek wczasowy" }, "leisure/running_track": { "name": "Bieżnia (Bieganie)", @@ -4398,7 +4492,7 @@ }, "leisure/sports_centre": { "name": "Centrum sportowe", - "terms": "centrum sportowe, ośrodek sportowy, ośrodek sportów" + "terms": "centrum sportowe, ośrodek sportowy, ośrodek sportów, kompleks sportowy" }, "leisure/sports_centre/swimming": { "name": "Pływalnia", @@ -4410,7 +4504,7 @@ }, "leisure/swimming_pool": { "name": "Basen", - "terms": "basen pływacki" + "terms": "pływalnia, basen pływacki" }, "leisure/track": { "name": "Tor wyścigowy (niemotorowy)", @@ -4946,12 +5040,12 @@ "terms": "turbina wiatrowa, wiatrak, generator" }, "power/line": { - "name": "Linia elektryczna", + "name": "Linia energetyczna wysokiego napiecia", "terms": "lina wysokiego napięcia, lina energetyczna" }, "power/minor_line": { - "name": "Linia energetyczna o niskim stopniu ważności", - "terms": "Linia energetyczna niskiego napięcia, " + "name": "Linia energetyczna drugorzędna", + "terms": "Linia energetyczna, linia niskiego napięcia, linia średniego napięcia" }, "power/plant": { "name": "Elektrownia", @@ -4972,13 +5066,35 @@ "name": "Przełącznik wysokiego napięcia" }, "power/tower": { - "name": "Wieża wysokiego napięcia", - "terms": "wieża HV" + "name": "Słup wysokiego napięcia", + "terms": "wieża wysokiego napiecia" }, "power/transformer": { "name": "Transformator", "terms": "transformator" }, + "public_transport/linear_platform_bus": { + "name": "Przystanek autobusowy / platforma" + }, + "public_transport/linear_platform_tram": { + "name": "Przystanek tramwajowy", + "terms": "przystanek tramwajowy" + }, + "public_transport/platform_bus": { + "name": "Przystanek autobusowy", + "terms": "przystanek autobusowy" + }, + "public_transport/platform_train": { + "name": "Peron kolejowy", + "terms": "peron kolejowy" + }, + "public_transport/platform_tram": { + "name": "Przystanek tramwajowy / peron" + }, + "public_transport/station_bus": { + "name": "Dworzec autobusowy", + "terms": "dworzec autobusowy, pks" + }, "public_transport/station_subway": { "name": "Stacja metra" }, @@ -5002,6 +5118,14 @@ "name": "Miejsce zatrzymania się pociągu", "terms": "miejsce zatrzymania się pociągu" }, + "public_transport/stop_position_tram": { + "name": "Miejsce zatrzymania się tramwaju", + "terms": "miejsce zatrzymania się tramwaju" + }, + "public_transport/stop_position_trolleybus": { + "name": "Miejsce zatrzymania się trolejbusu", + "terms": "miejsce zatrzymania się trolejbusu" + }, "railway": { "name": "Kolej" }, @@ -5281,7 +5405,7 @@ "terms": "e-papierosy" }, "shop/electronics": { - "name": "Sklep RTV/AGD", + "name": "Sklep RTV i AGD", "terms": "EuroRTVAgd,MediaExpert,Saturn,MediaMarkt" }, "shop/erotic": { @@ -5298,14 +5422,14 @@ }, "shop/fashion": { "name": "Sklep odzieżowy", - "terms": "moda" + "terms": "moda,butik" }, "shop/fishmonger": { "name": "Sklep rybny" }, "shop/florist": { "name": "Kwiaciarnia", - "terms": "kwiaciarnia" + "terms": "kwiaciarnia,kwiaty" }, "shop/frame": { "name": "Sklep z ramami", @@ -5346,6 +5470,10 @@ "name": "Sklep z narzędziami", "terms": "sklep narzędziowy" }, + "shop/health_food": { + "name": "Sklep ze zdrową żywnością", + "terms": "zdrowa żywność, żywność organiczna, żywność eko" + }, "shop/hearing_aids": { "name": "Sklep z aparatami słuchowymi", "terms": "aparaty słuchowe" @@ -5585,6 +5713,10 @@ "name": "Sklep z bronią", "terms": "militaria" }, + "shop/wholesale": { + "name": "Hurtownia", + "terms": "hurtownia, sprzedaż hurtowa, makro, selgros" + }, "shop/window_blind": { "name": "Sklep z żaluzjami/roletami", "terms": "żaluzje,rolety" @@ -5949,6 +6081,13 @@ "description": "Zdjęcia satelitarne i lotnicze Esri.", "name": "Esri (satelitarne i lotnicze)" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Warunki użytkowania i opinia" + }, + "description": "Zdjęcia satelitarne i lotnicze Esri, które mogą być czytelniejsze i dokładniejsze niż standardowy podkład.", + "name": "Esri Beta (satelitarne i lotnicze)" + }, "MAPNIK": { "attribution": { "text": "© autorzy OpenStreetMap, CC-BY-SA" @@ -5967,7 +6106,7 @@ "attribution": { "text": "© Geofabrik GmbH, autorzy OpenStreetMap, CC-BY-SA" }, - "name": "OSM Inspector: Adresy" + "name": "Inspektor OSM: Adresy" }, "OSM_Inspector-Geometry": { "attribution": { @@ -6017,18 +6156,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, autorzy OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Szlaki rowerowe" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, autorzy OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Szlaki piesze" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, autorzy OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Trasy MTB" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, autorzy OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Szlaki skaterskie" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, autorzy OpenStreetMap, CC by-SA 3.0" + }, "name": "Waymarked Trails: Szlaki sportów zimowych" }, "basemap.at": { diff --git a/dist/locales/pt-BR.json b/dist/locales/pt-BR.json index 156746849..e650f5094 100644 --- a/dist/locales/pt-BR.json +++ b/dist/locales/pt-BR.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Não pode ser dividido pois está conectado a um elemento oculto." }, "restriction": { - "help": { - "select": "Clique para selecionar um segmento de rua.", - "toggle": "Clique para alternar restrições de curva.", - "toggle_on": "Clique para adicionar uma restrição \"{restriction}\".", - "toggle_off": "Clique para remover a restrição \"{restriction}\"." - }, "annotation": { "create": "Adicionada uma restrição de curva", "delete": "Excluída uma restrição de curva" @@ -797,11 +791,14 @@ "imagery": { "title": "Imagens de Fundo", "sources_h": "Fontes de Imagens", - "offsets_h": "Ajustando o Deslocamento das Imagens de Fundo" + "offsets_h": "Ajustando o Deslocamento das Imagens de Fundo", + "offset_change": "Clique nos pequenos triângulos para ajustar o deslocamento de imagens em pequenos passos, ou segure o botão esquerdo do mouse e arraste no quadrado cinzento para deslizar a imagem para o alinhamento." }, "streetlevel": { "title": "Fotos de Rua", - "using_h": "Usando Fotos de Rua" + "using_h": "Usando Fotos de Rua", + "photos": "Quando ativado, a camada de foto exibe uma linha ao longo da seqüência de fotos. Em níveis de zoom mais altos, um círculo marca em cada local da foto e, em níveis de zoom ainda maiores, um cone indica a direção em que a câmera estava voltada quando a foto foi tirada.", + "viewer": "Quando você clica em um dos locais da foto, um visualizador de fotos aparece no canto inferior do mapa. O visualizador de fotos contém controles para avançar e retroceder na sequência da imagem. Também mostra o nome de usuário da pessoa que capturou a imagem, a data em que foi capturada e um link para visualizar a imagem no site original." }, "gps": { "title": "Traçados de GPS", @@ -1653,6 +1650,9 @@ "forward": "Igual à direção da linha" } }, + "dispensing": { + "label": "Dispensa prescrições" + }, "display": { "label": "Mostrador" }, @@ -2595,6 +2595,9 @@ "wheelchair": { "label": "Acesso a Cadeirantes" }, + "wholesale": { + "label": "Atacado" + }, "width": { "label": "Largura (Metros)" }, @@ -2608,6 +2611,7 @@ "windings/configuration": { "label": "Configuração das Bombinas", "options": { + "delta": "Delta", "open": "Aberta", "zigzag": "Zig Zag" } @@ -3076,6 +3080,9 @@ "name": "Ducha", "terms": "ducha, chuveiro, banheiro, banho público, banho" }, + "amenity/smoking_area": { + "name": "Área de fumantes" + }, "amenity/social_facility": { "name": "Unidade de Assistência Social", "terms": "Assistência Social, assistente social, Serviço Social" @@ -3399,10 +3406,6 @@ "building/entrance": { "name": "Entrada/Saída" }, - "building/farm": { - "name": "Edifício de Fazenda", - "terms": "fazenda, roça, zona rural, edifício, casa de fazenda, casa de campo" - }, "building/garage": { "name": "Garagem", "terms": "Garagem" @@ -5135,6 +5138,15 @@ "public_transport/station_trolleybus": { "name": "Estação de Trólebus / Terminal" }, + "public_transport/stop_position_bus": { + "name": "Local de parada de ônibus" + }, + "public_transport/stop_position_subway": { + "name": "Local de parada de metrô" + }, + "public_transport/stop_position_train": { + "name": "Local de parada de trem" + }, "railway": { "name": "Ferrovia" }, @@ -5235,10 +5247,6 @@ "name": "Loja", "terms": "Loja, Comércio" }, - "shop/agrarian": { - "name": "Loja de Produtos Agrícolas", - "terms": "loja de produtos agropecuários, sementes, fertilizantes, ferramentas agrícolas, loja agrícola, máquinas agrícolas, pesticidas" - }, "shop/alcohol": { "name": "Loja de alcoólicos licenciada", "terms": "Loja de Licores" @@ -6089,6 +6097,13 @@ "description": "Imagens globais da ESRI.", "name": "Imagens globais da ESRI" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Termos e Comentários" + }, + "description": "Esri imagens de arquivo que podem ser mais claras e mais precisas do que a camada padrão.", + "name": "Esri World Imagery (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© Colaboradores do OpenStreetMap, CC-BY-SA" diff --git a/dist/locales/pt.json b/dist/locales/pt.json index 6647f47bd..0ef0e047e 100644 --- a/dist/locales/pt.json +++ b/dist/locales/pt.json @@ -285,18 +285,48 @@ "connected_to_hidden": "Não é possível dividir porque este elemento está conectado a outro elemento oculto." }, "restriction": { - "help": { - "select": "Clique para selecionar um segmento de estrada.", - "toggle": "Clique para inverter as restrições de viragem.", - "toggle_on": "Clique para adicionar uma restrição de \"{restriction}\".", - "toggle_off": "Clique para remover a restrição de \"{restriction}\"." - }, "annotation": { "create": "Restrição de viragem adicionada.", "delete": "Restrição de viragem eliminada." } } }, + "restriction": { + "controls": { + "distance": "Distância", + "distance_up_to": "Até {distância}", + "via": "Via", + "via_node_only": "Apenas nó", + "via_up_to_one": "Até uma linha", + "via_up_to_two": "Até duas linhas" + }, + "help": { + "indirect": "(indirectamente)", + "turn": { + "no_left_turn": "Proibido virar à esquerda (indirectamente)", + "no_right_turn": "Proibido virar à direita (indirectamente)", + "no_u_turn": "Proibido inversão de marcha (indirectamente)", + "no_straight_on": "Proibido seguir em frente (indirectamente)", + "only_left_turn": "Apenas virar à esquerda (indirectamente)", + "only_right_turn": "Apenas virar à direita (indirectamente)", + "only_u_turn": "Apenas inversão de marcha (indirectamente)", + "only_straight_on": "Apenas seguir em frente (indirectamente)", + "allowed_left_turn": "É permitido virar à esquerda (indirectamente)", + "allowed_right_turn": "É permitido virar à direita (indirectamente)", + "allowed_u_turn": "É permitido a inversão de marcha (indirectamente)", + "allowed_straight_on": "É permitido a inversão de marcha (indirectamente)" + }, + "from": "DESDE", + "via": "VIA", + "to": "PARA", + "from_name": "{desde} {Nomedesde}", + "from_name_to_name": "{desde} {Nomedesde} {para} {Nomepara}", + "via_names": "{via} {Nomesvia}", + "select_from": "Clique para seleccionar um segmento {desde}", + "select_from_name": "Clique para seleccionar um segmento {Nomedesde}", + "toggle": "Clique para \"{virar}\"" + } + }, "undo": { "tooltip": "Desfazer: {action}", "nothing": "Nada a desfazer." @@ -655,6 +685,7 @@ "untagged_area_tooltip": "Escolha um elemento que indique o que esta área representa.", "untagged_relation": "Relação sem etiquetas", "untagged_relation_tooltip": "Selecione um tipo de elemento que descreva o que é esta relação.", + "many_deletions": "Está a eliminar {n} elementos: {p} nós, {l} linhas, {a} áreas, {r} relações. Tem a certeza que quer fazer isto? Isto irá eliminá-las do mapa que qualquer pessoa pode ver em openstreetmap.org.", "tag_suggests_area": "A etiqueta {tag} é normalmente usada em áreas e não linhas.", "deprecated_tags": "Etiquetas obsoletas: {tags}" }, @@ -851,6 +882,24 @@ "using": "Para utilizar um rasto GPS para mapear, arraste-o e coloque o ficheiro no editor do mapa do seu browser. Se for reconhecido, será desenhado no mapa como uma linha com uma cor de roxo claro. Clique em {data} **Dados do mapa** no painel lateral ao mapa para ativar, desativar ou aproximar para a sua informação GPS.", "tracing": "O rasto GPS não é enviado para o OpenStreetMap, a melhor maneira para utilizá-lo é desenhar no mapa e utilizando-o como guia para os novos elementos que adicionar.", "upload": "Pode também [enviar os seus dados GPS para o OpenStreetMap](https://www.openstreetmap.org/trace/create) para que outros possam utilizá-los para mapear." + }, + "field": { + "restrictions": { + "title": "Ajuda da restrições de viragem", + "about": { + "title": "Sobre", + "about": "Este campo permite-lhe inspeccionar e modificar as restrições de viragem. É mostrado um modelo da intersecção seleccionada incluindo as estradas que estão conectadas." + }, + "inspecting": { + "title": "Inspeccionando" + }, + "modifying": { + "title": "Modificando" + }, + "tips": { + "title": "Dicas" + } + } } }, "intro": { @@ -3956,7 +4005,7 @@ "terms": "Ligação Autoestrada, Entrada Autoestrada, Saída Autoestrada" }, "highway/path": { - "name": "Trilho", + "name": "Trilho pedestre", "terms": "Trilha, Caminho, vereda (com pavimento em terra), vereda" }, "highway/pedestrian_area": { @@ -3964,7 +4013,7 @@ "terms": "praça, largo, alameda" }, "highway/pedestrian_line": { - "name": "Estrada Pedonal", + "name": "Rua pedonal", "terms": "pedestre, rua pedonal, rua pedestre, pedonal" }, "highway/primary": { @@ -4137,7 +4186,7 @@ }, "landuse/aquaculture": { "name": "Aquacultura", - "terms": "algicultura,aquicultura,carcinicultura,malacocultura,maricultura,mitilicultura,ostreicultura,pectinicultura,piscicultura,ranicultura,viveiro de peixes" + "terms": "algicultura, aquicultura, carcinicultura, malacocultura, maricultura, mitilicultura,ostreicultura, pectinicultura,piscicultura, ranicultura, viveiro de peixes" }, "landuse/basin": { "name": "Bacia hidrográfica", @@ -4153,7 +4202,7 @@ }, "landuse/churchyard": { "name": "Adro de igreja", - "terms": "Churchyard, Área da Igreja, Zona da Igreja, Praça da Igreja, Adro" + "terms": "Área da Igreja, Zona da Igreja, Praça da Igreja, Adro" }, "landuse/commercial": { "name": "Zona de escritórios ", @@ -5214,10 +5263,6 @@ "name": "Loja", "terms": "Loja, Venda, Vendedor" }, - "shop/agrarian": { - "name": "Loja de Produtos Agrícolas", - "terms": "produtos agrícolas, produtos agrículas" - }, "shop/alcohol": { "name": "Loja de bebidas alcoólicas", "terms": "Alcool" @@ -6071,6 +6116,13 @@ "description": "Imagens aéreas Esri.", "name": "Imagens globais da Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Termos e opinião" + }, + "description": "A imagem de arquivo da ESRI poderá ser mais definida e detalhada que a cama pré-definida.", + "name": "Imagem Global ESRI (Claridade) versão Beta" + }, "MAPNIK": { "attribution": { "text": "© contribuidores OpenStreetMap, CC-BY-SA" diff --git a/dist/locales/ro.json b/dist/locales/ro.json index e1db10896..12a296248 100644 --- a/dist/locales/ro.json +++ b/dist/locales/ro.json @@ -755,15 +755,18 @@ "label": "Acces Permis", "options": { "designated": { + "description": "Acces permis potrivit semnalizării sau legilor locale", "title": "Desemnat" }, "destination": { + "description": "Acces permis doar pentru a ajunge la o destinație", "title": "Destinație" }, "dismount": { "title": "Demonta" }, "no": { + "description": "Acces interzis publicului larg", "title": "Interzis" }, "permissive": { @@ -806,7 +809,7 @@ "housenumber": "123", "neighbourhood": "Cartier", "place": "Loc", - "postcode": "Număr Poștal", + "postcode": "Cod poștal", "province": "Provincie", "province!jp": "Prefectură", "quarter": "Cartier", @@ -887,7 +890,10 @@ "label": "Aer Liber" }, "bath/type": { - "label": "Specialitate" + "label": "Specialitate", + "options": { + "hot_spring": "Izvor cald" + } }, "beauty": { "label": "Tip de Magazin" @@ -913,6 +919,9 @@ "board_type": { "label": "Tip" }, + "boules": { + "label": "Tip" + }, "boundary": { "label": "Tip" }, @@ -1527,6 +1536,18 @@ "visibility": { "label": "Vizibilitate" }, + "voltage": { + "label": "Voltaj" + }, + "voltage/primary": { + "label": "Voltaj primar" + }, + "voltage/secondary": { + "label": "Voltaj secundar" + }, + "voltage/tertiary": { + "label": "Voltaj terțiar" + }, "wall": { "label": "Tip" }, @@ -1548,6 +1569,9 @@ }, "wikipedia": { "label": "Wikipedia" + }, + "windings": { + "placeholder": "1, 2, 3..." } }, "presets": { @@ -2044,7 +2068,7 @@ "terms": "" }, "barrier/block": { - "name": "Bloc", + "name": "Blocaj", "terms": "" }, "barrier/bollard": { diff --git a/dist/locales/ru.json b/dist/locales/ru.json index 2817a419b..2590d0dcd 100644 --- a/dist/locales/ru.json +++ b/dist/locales/ru.json @@ -2,9 +2,9 @@ "ru": { "modes": { "add_area": { - "title": "Область", + "title": "Полигон", "description": "Нанести на карту парки, здания, озёра и другие площадные объекты.", - "tail": "Щёлкните по карте, чтобы начать рисовать область: парк, озеро, здание и т. п." + "tail": "Щёлкните по карте, чтобы начать рисовать полигон: парк, озеро, здание и т. п." }, "add_line": { "title": "Линия", @@ -21,7 +21,7 @@ "description": "Двигать и масштабировать карту." }, "draw_area": { - "tail": "Щёлкните, чтобы добавить точки /узлы/ в полигон. Чтобы завершить полигон, щёлкните по начальной точке." + "tail": "Щёлкните, чтобы добавить точки в полигон. Чтобы завершить полигон, щёлкните по начальной точке." }, "draw_line": { "tail": "Щёлкните по линии, чтобы добавить в неё точки. Щелчок по другой линии соединит их, а двойной щелчок завершит рисование." @@ -35,13 +35,13 @@ "annotation": { "point": "Добавлена точка.", "vertex": "В линию добавлена точка.", - "relation": "Добавлена связь." + "relation": "Добавлено отношние." } }, "start": { "annotation": { "line": "Начато рисование линии.", - "area": "Начато рисование области." + "area": "Начато рисование полигона." } }, "continue": { @@ -75,30 +75,30 @@ "line": "Линия превращена в окружность.", "area": "Полигон превращён в окружность." }, - "not_closed": "Объект нельзя превратить в окружность: он не замкнут.", + "not_closed": "Объект нельзя превратить в окружность: он не замкнут.", "too_large": "Объект нельзя превратить в окружность, поскольку большая его часть скрыта.", "connected_to_hidden": "Невозможно преобразовать в окружность, так как имеется соединение со скрытым объектом." }, "orthogonalize": { "title": "Спрямить углы", "description": { - "line": "Сделать углы линии прямыми.", - "area": "Сделать углы полигона прямыми." + "line": "Спрямить углы у линии.", + "area": "Спрямить углы у полигона." }, "key": "S", "annotation": { - "line": "Спрямлены углы линии.", - "area": "Спрямлены углы полигона." + "line": "У линии спрямлены углы.", + "area": "У полигона спрямлены." }, - "not_squarish": "Спрямить углы нельзя: объект не похож на прямоугольник.", + "not_squarish": "Спрямить углы нельзя: объект не похож на прямоугольник.", "too_large": "Углы объекта нельзя спрямить, поскольку большая его часть скрыта.", - "connected_to_hidden": "Угла объекта нельзя спрямить, так как имеется соединение со скрытым объектом." + "connected_to_hidden": "Углы объекта нельзя спрямить, так как имеется соединение со скрытым объектом." }, "straighten": { "title": "Выпрямить", "description": "Выпрямить эту линию.", "key": "S", - "annotation": "Выпрямить линию.", + "annotation": "Линия выпрямлена.", "too_bendy": "Эту линию нельзя выпрямить — она слишком изогнута.", "connected_to_hidden": "Эту линию нельзя выпрямить, так как имеется соединение со скрытым объектом." }, @@ -121,8 +121,8 @@ "multiple": "Эти объекты нельзя удалить, так как большая их часть скрыта." }, "incomplete_relation": { - "single": "Этот объект нельзя удалить, так как он загружен не полностью.", - "multiple": "Эти объекты нельзя удалить, так как они загружены не полностью." + "single": "Этот объект нельзя удалить, так как он загружен не полностью.", + "multiple": "Эти объекты нельзя удалить, так как они загружены не полностью." }, "part_of_relation": { "single": "Этот объект нельзя удалить, так как он — часть отношения. Сначала удалите объект из отношения.", @@ -149,9 +149,9 @@ }, "disconnect": { "title": "Разъединить", - "description": "Разъединить эти линии.", + "description": "Разъединить эти линии/полигоны друг от друга.", "key": "D", - "annotation": "Разъединены линии/области.", + "annotation": "Разъединены линии/полигоны.", "not_connected": "Нет линий или полигонов для разъединения.", "connected_to_hidden": "Нельзя разъединить, так как имеется соединение со скрытым объектом.", "relation": "Нельзя разъединить, так как имеются соединения с участниками отношения." @@ -160,11 +160,11 @@ "title": "Объединить", "description": "Объединить эти объекты.", "key": "C", - "annotation": "Объединены {n} объектов.", + "annotation": "Объединено {n} объектов.", "not_eligible": "Эти объекты нельзя объединить.", "not_adjacent": "Эти объекты нельзя объединить, так как их конечные точки не соединены.", - "restriction": "Эти объекты нельзя объединить, так как минимум один участник – из отношения «{relation}».", - "incomplete_relation": "Эти объекты нельзя объединить, так как хотя бы один из них не был загружен целиком.", + "restriction": "Эти объекты нельзя объединить, так как хотя бы один из них — участник «{relation}» отношения.", + "incomplete_relation": "Эти объекты нельзя объединить, так как хотя бы один из них не был загружен целиком.", "conflicting_tags": "Эти объекты нельзя объединить, так как некоторые из их тегов содержат конфликтующие значения." }, "move": { @@ -182,8 +182,8 @@ "multiple": "Перемещены несколько объектов." }, "incomplete_relation": { - "single": "Этот объект нельзя переместить, так как он загружен не полностью.", - "multiple": "Эти объекты нельзя переместить, так как они загружены не полностью." + "single": "Этот объект нельзя переместить, так как он загружен не полностью.", + "multiple": "Эти объекты нельзя переместить, так как они загружены не полностью." }, "too_large": { "single": "Этот объект нельзя переместить, так как большая его часть скрыта.", @@ -244,13 +244,13 @@ }, "key": "R", "annotation": { - "line": "Повёрнута линия.", - "area": "Повёрнут полигон.", - "multiple": "Повернуты несколько объектов." + "line": "Линия повёрнута.", + "area": "Полигон повёрнут.", + "multiple": "Повёрнуто несколько объектов." }, "incomplete_relation": { - "single": "Этот объект нельзя повернуть, так как он загружен не полностью.", - "multiple": "Эти объекты нельзя повернуть, так как они загружены не полностью." + "single": "Этот объект нельзя повернуть, так как он загружен не полностью.", + "multiple": "Эти объекты нельзя повернуть, так как они загружены не полностью." }, "too_large": { "single": "Этот объект нельзя повернуть, так как большая его часть скрыта.", @@ -262,17 +262,17 @@ } }, "reverse": { - "title": "Развернуть", + "title": "Изменить направление", "description": "Сменить направление этой линии на противоположное.", "key": "V", - "annotation": "Линия развёрнута." + "annotation": "Направление линия изменено." }, "split": { "title": "Разрезать", "description": { - "line": "Разделить линию в этой точке.", - "area": "Разделить этот полигон надвое.", - "multiple": "Разделить линии/полигон в этой точке надвое." + "line": "Разрезать линию в этой точке.", + "area": "Разрезать этот полигон надвое.", + "multiple": "Разрезать линии/полигон в этой точке надвое." }, "key": "X", "annotation": { @@ -282,18 +282,12 @@ }, "not_eligible": "Линии нельзя резать на концах.", "multiple_ways": "Слишком много линий для разрезания.", - "connected_to_hidden": "Невозможно разделить, так как имеется соединение со скрытым объектом." + "connected_to_hidden": "Невозможно разрезать, так как имеется соединение со скрытым объектом." }, "restriction": { - "help": { - "select": "Щёлкните по сегменту дороги, ОТКУДА совершается манёвр.", - "toggle": "Щёлкните, чтобы добавить/удалить запрет поворота.", - "toggle_on": "Щёлкните, чтобы добавить запрет «{restriction}».", - "toggle_off": "Щёлкните, чтобы удалить запрет «{restriction}»." - }, "annotation": { - "create": "Добавлен запрет поворота", - "delete": "Удалён запрет поворота" + "create": "Добавлен запрет манёвра", + "delete": "Удалён запрет манёвра" } } }, @@ -306,7 +300,7 @@ "nothing": "Повторять нечего." }, "tooltip_keyhint": "Горячая клавиша:", - "browser_notice": "Этот редактор поддерживает Firefox, Chrome, Safari, Opera и Internet Explorer 11 или выше. Обновите свой браузер или используйте Potlach 2 для редактирования карты.", + "browser_notice": "Этот редактор поддерживает Firefox, Chrome, Safari, Opera и Internet Explorer 11 или выше. Обновите свой браузер или используйте Potlach 2 для редактирования карты.", "translate": { "translate": "Перевести", "localized_translation_label": "Многоязычное название", @@ -320,7 +314,7 @@ "report_a_bug": "Сообщить об ошибке", "help_translate": "Помочь перевести", "feature_info": { - "hidden_warning": "{count} скрытый объект", + "hidden_warning": "{count} скрытых объектов", "hidden_details": "Эти объекты сейчас скрыты: {details}" }, "status": { @@ -355,9 +349,9 @@ "key": "I", "background": { "key": "B", - "title": "Фоновый слой", + "title": "Фоновое изображение", "zoom": "Масштаб", - "vintage": "Старый", + "vintage": "Vintage", "source": "Источник", "description": "Описание", "resolution": "Разрешение", @@ -389,6 +383,8 @@ "title": "Измерение", "selected": "выбрано {n}", "geometry": "Геометрия", + "closed_line": "замкнутая линия", + "closed_area": "полигон", "center": "Центр", "perimeter": "Периметр", "length": "Длина", @@ -396,14 +392,15 @@ "centroid": "Центроид", "location": "Расположение", "metric": "Метрическая", - "imperial": "Имперская" + "imperial": "Имперская", + "node_count": "Количество точек" } }, "geometry": { "point": "точка", "vertex": "вершина", "line": "линия", - "area": "область", + "area": "полигон", "relation": "отношение" }, "geocoder": { @@ -459,18 +456,26 @@ "add_fields": "Добавить поле:" }, "background": { - "title": "Слой", - "description": "Настройка слоёв", + "title": "Фоновое изображение", + "description": "Настройки фонового изображения", "key": "B", + "backgrounds": "Фоновые изображения", "none": "Отключить", "best_imagery": "Наилучший источник космоснимков из известных для этой территории", - "switch": "Переключить обратно на эту подложку", + "switch": "Переключить обратно на это фоновое изображение", "custom": "Настраиваемый", - "custom_button": "Указать собственный слой", + "custom_button": "Указать собственное фоновое изображение", + "custom_prompt": "Введите URL шаблона тайлов. Корректные токены:\n - {zoom} или {z}, {x}, {y} для Z/X/Y тайловой схемы\n - {-y} или {ty} для перевернутого TMS-стиля Y координат\n - {u} для quadtile схемы\n - {switch:a,b,c} для мультиплексирования DNS-сервера\n\nПример:\n{example}", + "overlays": "Накладываемые изображения", + "imagery_source_faq": "Сведения о подложке / Сообщить о проблеме", "reset": "сброс", "display_options": "Настройки отображения", + "brightness": "Яркость", "contrast": "Контраст", + "saturation": "Насыщенность", + "sharpness": "Резкость", "minimap": { + "description": "Показать мини-карту", "tooltip": "Показать уменьшенную карту, чтобы помочь найти отображаемую в данный момент область.", "key": "/" }, @@ -481,7 +486,7 @@ "title": "Данные карты", "description": "Данные карты", "key": "F", - "data_layers": "Слой данных", + "data_layers": "Слои данных", "layers": { "osm": { "tooltip": "Картографические данные OpenStreetMap", @@ -490,19 +495,20 @@ }, "fill_area": "Заливать полигоны", "map_features": "Объекты на карте", - "autohidden": "Эти объекты были автоматически скрыты, чтобы не загромождать карту на экране. Чтобы их редактировать, приблизьте карту." + "autohidden": "Эти объекты были автоматически скрыты, чтобы не загромождать карту на экране. Чтобы их редактировать, приблизьте карту.", + "osmhidden": "Эти объекты были автоматически скрыты, потому что слой OpenStreetMap сейчас скрыт." }, "feature": { "points": { "description": "Точки", - "tooltip": "Объекты - POI" + "tooltip": "Точки интереса — POI" }, "traffic_roads": { "description": "Дороги", "tooltip": "Автомагистрали, улицы и т.д." }, "service_roads": { - "description": "Подъездные дорожки", + "description": "Служебные проезды", "tooltip": "Служебные проезды, проезды на стоянках, грунтовки и т.д." }, "paths": { @@ -571,6 +577,7 @@ "status_code": "Получен ответ сервера с кодом {code}", "unknown_error_details": "Проверьте наличие подключения к Интернету.", "uploading": "Передать изменения на сервер OpenStreetMap...", + "conflict_progress": "Проверка на наличие конфликов: {num} из {total}", "unsaved_changes": "У вас есть несохранённые правки", "conflict": { "header": "Разрешение конфликтов правок", @@ -583,7 +590,7 @@ "delete": "Оставить удалённым", "download_changes": "Или скачать osmChange файл", "done": "Все конфликты устранены!", - "help": "Кто-то из участников OSM также изменил объекты, исправленные вами.\nПросмотрите каждый конфликт в списке ниже и решите, оставить ваши\nправки или принять правки другого участника.\n" + "help": "Кто-то из участников OSM изменил те же объекты, что изменили вы.\nПросмотрите каждый конфликт в списке ниже и решите, оставить ваши\nправки или принять правки другого участника.\n" } }, "merge_remote_changes": { @@ -596,7 +603,7 @@ } }, "success": { - "edited_osm": "Отредактировал OpenStreetMap!", + "edited_osm": " OSM отредактирован!", "just_edited": "Вы только что отредактировали карту OpenStreetMap!", "view_on_osm": "Посмотреть в OSM", "facebook": "Поделиться на Facebook", @@ -613,7 +620,7 @@ "splash": { "welcome": "Вас приветствует iD — редактор карт OpenStreetMap", "text": "Редактор iD — простой, но мощный инструмент для редактирования лучшей в мире бесплатной открытой карты. Версия программы: {version}. Дополнительную информацию смотрите на {website}, об ошибках сообщайте на {github}.", - "walkthrough": "Запустить обучение", + "walkthrough": "Начать обучение", "start": "Редактировать" }, "source_switch": { @@ -639,9 +646,10 @@ "untagged_line": "Линия без тегов", "untagged_line_tooltip": "Выберите тип объекта, который описывает, чем является эта линия.", "untagged_area": "Полигон без тегов", - "untagged_area_tooltip": "Выберите тип объекта, который описывает, чем является эта область.", + "untagged_area_tooltip": "Выберите тип объекта, который описывает, чем является этот полигон.", "untagged_relation": "Отношение без тегов", "untagged_relation_tooltip": "Выберите тип объекта, который описывает, чем является это отношение.", + "many_deletions": "Вы удаялете {n} объектов: {p} точек, {l} линий, {a} полигонов, {r} отошений. Вы уверены, что хотите сделать это? Это приведёт к удалению их с карты, которые все видят на openstreetmap.org.", "tag_suggests_area": "Тег {tag} обычно ставится на полигоны, но это не полигон", "deprecated_tags": "Теги устарели: {tags}" }, @@ -668,11 +676,176 @@ "mapillary": { "view_on_mapillary": "Посмотреть это изображение на Mapillary" }, + "openstreetcam_images": { + "tooltip": "Уличные фото из OpenStreetCam", + "title": "Слой с фото (OpenStreetCam)" + }, + "openstreetcam": { + "view_on_openstreetcam": "Посмотреть это изображение на OpenStreetCam" + }, "help": { "title": "Справка", "key": "H", "help": { - "title": "Справка" + "title": "Справка", + "welcome": "Добро пожаловать в редактор iD для [OpenStreetMap](https://www.openstreetmap.org/). С этим редактором вы можете обновлять OpenStreetMap прямо из вашего браузера.", + "open_data_h": "Открытые данные", + "open_data": "Правки, что вы делает на этой карте будут видны всем, кто использует OpenStreetMap. Ваши правки могут основываться на личных знаниеях, исследовании на местности, или изображениях, сделанных с воздуха, или с уличных фотографий. Использовать коммерческие источники, такие как Google Карты, 2GIS, Яндекса Карт (ЯК: за исключением панорам) [строго запрещено](https://www.openstreetmap.org/copyright).", + "before_start_h": "Прежде чем начать", + "before_start": "Вам следует немного разобраться в OpenStreetMap и в этом редакторе перед тем как делать правки. iD содержит пошаговый учебник, чтобы обучить вас основам редактирование OpenStreetMap. Щёлкните \"Начать обучение\" на экране — это займет всего лишь 15 минут.", + "open_source_h": "Открытый исходный код", + "open_source": "Редактор iD — коллективный проект с открытым исходным кодом, используемая здесь версия {version}. Исходный код достпуен [на GitHub](https://github.com/openstreetmap/iD).", + "open_source_help": "Вы можете помочь iD [переводя его](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) или [сообщая об ошибках](https://github.com/openstreetmap/iD/issues)." + }, + "overview": { + "title": "Основное", + "navigation_h": "Перемещение по карте", + "navigation_drag": "Вы можете перетаскивать карту, удерживая нажатой {leftclick} левую кнопку мыши, передвигая саму мышь. Вы также можете использовать `↓`, `↑`, `←`, `→` клавиши со стрелками на клавиатуре.", + "navigation_zoom": "Вы можете приближать или отдалять при помощи прокурчивания колесика мышки или трекпада, или щёлкая по {plus} / {minus} кнопкам вдоль с краю от карты. Вы также можете использовать клавиши `+`, `-` на клавиатуре.", + "features_h": "Объекты на карте", + "features": "Мы используем слово *объекты* для описания вещей, которые отображаются на карте, такие как: дороги, здания или точки интереса (POI). Всё что угодно из реального мира может быть отражено в виде объекта в OpenStreetMap. Объекты карты представлены на карте при помощи *точек*, *линий* или *полигонов*.", + "nodes_ways": "В OpenStreetMap, точки иногда называют *узлами*, а линии и полигоны иногда называют *путями*." + }, + "editing": { + "title": "Редактирование и Сохранение", + "select_h": "Выбрать", + "select_left_click": "{leftclick} Щёлкните по объекту, чтобы выбрать его. Это подсветит объект и заставит его обводку пульсировать, боковая панель при этом отобразит подробности объекта, такие как его имя и адрес.", + "select_right_click": "{rightclick} Щелчок правой кнопкой на объекте отобразит меню редактирования, которое покажет доступные команды, такие как: разворот, перемещние и удаление.", + "multiselect_h": "Мультивыбор", + "multiselect_shift_click": "`{shift}`+{leftclick} щёлкните для выбора нескольких объектов одновременно. Это облегчит перемещение или удаление нескольких предметов.", + "multiselect_lasso": "Ещё один способ выбрать несколько объектов — удерживая клавишу `{shift}`, зажать {leftclick} левую кнопку мыши и перемещать курсор, чтобы обрисовать выделение при помощи лассо. Все точки внутри области лассо станут выделенными.", + "undo_redo_h": "Отмена и Повтор", + "undo_redo": "Ваши правки хранятся локально, в вашем браузере, пока вы не отрпавите их на сервер OpenStreetMap. Вы можете отменить правки, щёлкнув кнопку {undo} **Отмена**, и повторить — щёлкнув кнопку {redo} **Повтор**.", + "save_h": "Сохранить", + "save": "Щёлкните {save} **Сохранить**, чтобы закончить редактирование и отправить изменения в OpenStreetMap. Стоит не забывать сохранять свою работу регулярно!", + "save_validation": "На экране сохранения у вас будет возможность проверить то, что вы сделали. iD также проведёт некоторые простые проверки отсутствующей информации и может предоставить полезные подсказки и предупреждения, если что-то не так.", + "upload_h": "Передать на сервер", + "upload": "Перед отправкой измеений вам нужно ввести [комментарий к пакету правок](https://wiki.openstreetmap.org/wiki/RU:Good_changeset_comments). Затем щёлкнуть **Сохранить** для отправки изменений в OpenStreetMap, где они объединятся с картой и будут видны всем.", + "backups_h": "Автоматические резервные копии", + "backups": "Если у вас не получается завершить правки в один присест, например вашш компьютер завис или вы закрыли вкладку в браузере, ваши правки останутся сохраненнёными в хранилище вашего браузера. Вы можете вернуться позже (на том же браузере и компьютере), и iD предложит восстановить ваши труды.", + "keyboard_h": "Горячие клавиши", + "keyboard": "Вы можете посмотреть список горячих клавиш, нажав на клавишу `?`." + }, + "feature_editor": { + "title": "Редактор объектов", + "intro": "*Редактор объектов* находится сбоку от карты и позволяет вам видеть и редактировать всю информацию о выбранном объекте.", + "definitions": "Верхняя область отображает тип объекта. Средняя — содержит *поля*, отображающие аттрибуты объекта, такие как его название или адрес.", + "type_h": "Тип объекта", + "type": "Вы можете щёлкнуть по типу объекта, чтобы изменить тип у объекта на другой. Всё, что существует в реальном мире, может быть добавлено в OpenStreetMap, так что в списке тысячи типов объектов для выбора.", + "type_picker": "В списке типов отображаются наиболее распространнёные типы объектов, такие как: парки, больницы, рестораны, дороги и здания. Вы можете использовать поиск, напечатав то, что хотите найти, в поле для поиска. Вы также можете щёлкнуть по {inspect} **Info** иконке рядом с типом объекта, чтобы узнать подробности о нём.", + "fields_h": "Поля", + "fields_all_fields": "Область \"Все поля\" содержит все детали объекта, которые можно отредактировать. В OpenStreetMap, все поля необязательные, и это нормально оставить их пустыми, если вы неуверенны.", + "fields_example": "У каждого типа объекта отображается свой набор полей. Например, у дорог отображается поле о дорожном покрытии и ограничении скорости, а у ресторанов могут отображаться поля о кухне, услугах и времени работы.", + "fields_add_field": "Вы можете щёлкнуть по выпадающему списку \"Добавить поле\", чтобы добавить ещё полей, таких как: описание, ссылка на Википедию, доступ маломобильным людям и многое другое.", + "tags_h": "Теги", + "tags_all_tags": "Ниже области с полями вы можете развернуть область \"Все теги\", чтобы отредактировать *теги* OpenStreetMap для выбранного объекта. Каждый тег состоит из *ключа* и его *значения* (тег — это ключ=значение) — элементов данных, определяющих объекты, хранящиеся в OpenStreetMap.", + "tags_resources": "Редактирование тегов объекта требует более серьёзного понимания OpenStreetMap. Вам следует ознакомиться с такими ресурсами как [OpenStreetMap вики](https://wiki.openstreetmap.org/wiki/Main_Page) или [Taginfo](https://taginfo.openstreetmap.org/), чтобы узнать больше о применяемых в OpenStreetMap практиках тегирования." + }, + "points": { + "title": "Точки", + "intro": "*Точки* могут использоваться для отображения таких объектов как: магазины, рестораны и монументы. Они отмечают определенное местоположение и описывают, что находится в нём.", + "add_point_h": "Создание точек", + "add_point": "Чтобы добавить точку, щёлкинте по кнопку {point} **Точка** на панели инструментов вверху карту или нажмите клавишу `1` на клавиатуре. Это изменит курсор мыши на символ перекрестия.", + "add_point_finish": "Чтобы разместить новую точку на карте, поместите курсор мыши в место, где будет располагаться точка. Затем щёлкните левой кнопкой мыши {leftclick} или нажмите `Пробел`.", + "move_point_h": "Перемещение точек", + "move_point": "Чтобы переместить точку, поместите курсор мыши над точкой, зажмите левую кнопку мыши {leftclick} и перетащите перетащите точку на новоё место.", + "delete_point_h": "Удаление точек", + "delete_point": "Нет ничего плохого в том, чтобы удалить объекты, которых не существует в реальном мире. Удаление объекта из OpenStreetMap удаляет его с общей карты, так что вам следует быть уверенным, действительно ли объекта больше не существует перед тем, как удалять его.", + "delete_point_command": "Чтобы удалить точку, щёлкните правой кнопкой {rightclick} по точке, чтобы выбрать её и отобразить меню редактирования. Затем используйте команду **Удалить** {delete}." + }, + "lines": { + "title": "Линии", + "intro": "*Линии* используются для отображения такие объектов как: автомобильные дороги, железные дорогие и реки. Линии должны быть нарисованы по центру объектов, которые они отражают.", + "add_line_h": "Создание линий", + "add_line": "Чтобы добавить линию, нажмитие кнопку **Линия** {line} на панели инструментов вверху карты, или используете сочетание клавиш `2`. Это изменит курсор мыши на символ перекрестия.", + "add_line_draw": "Теперь поместите курсор мыши туда, где линия должна начаться и щёлкните мышью {leftclick} или нажмите `Пробел`, чтобы разместить первую точку линии. Продолжайте добавлять точки, щёлкая мышью или нажимая `Пробел`. Во время рисования вы можете приближать или перемещаться по карте, чтобы добиться большей детальности.", + "add_line_finish": "Чтобы завершить линию, нажмите `{return}` или щёлкните ещё раз по последней точке.", + "modify_line_h": "Изменение линий", + "modify_line_dragnode": "Часто вы можете видеть, что форма линии неточна. Например, дорога не совпадает с тем, что видно на спутниковом снимке. Чтобы скорректровать форму линии для начала выберете линию, щёлкнув {leftclick} по ней. Точки на линии отобразятся как маленькие кружки. Их можно перетаскивать, чтобы сделать линию точнее.", + "modify_line_addnode": "Вы также можете создать новые точки на линии, или щёлкнув по ней дважды {leftclick}**x2**, или потянув за маленький треугольник посредине между точками.", + "connect_line_h": "Соединение линий", + "connect_line": "Связность дорожного графа — важно и необходимо для получения информации о возможности проехать по дороге.", + "connect_line_display": "Соединения дорог отображаются в виде серых кружков. Крайние точки линии отображаются более крупными белыми кружыками, если они не соединены ни с чем другим.", + "connect_line_drag": "Чтобы соединить линию с другим объектом, перетащите одну из точек линии на другой объект, пока оба объекта не притянутся друг к другу. Совет: вы можете удерживать клавишу `{alt}`, чтобы предотвратить присоединение точек к другим объектам.", + "connect_line_tag": "Если вам известно, что в месте соединения есть светофор или пешеходный переход, вы можете обозначить их, выбрав точку соединения и используя редактор объектов для выбора подходящего типа объекта.", + "disconnect_line_h": "Разъединение линий", + "disconnect_line_command": "Чтобы отсоединить дорогу от другого объекта щёлкните правой кнопкой мыши {rightclick} на точку присоединения и выберите команду **Разъединить** {disconnect} в меню редактирования.", + "move_line_h": "Перемещение линий", + "move_line_command": "Для перемещения линии целиком щёлкните правой кнопкой {rightclick} на линию и выберетие команду **Переместить** {move} в меню редактирования. Затем переместите курсор и щёлкните левой кнопкой {leftclick}, чтобы разместить линию в новом месте.", + "move_line_connected": "Линии, присоединённые к другим объектам, останутся присоединёнными к ним, когда вы перемещаете линию на новое место. iD может предотвратить перемещение линии через другую присоединённую линию.", + "delete_line_h": "Удаление линий", + "delete_line": "Если линия польностью неверна, например дорога, не существующая в реальном мире, такую линию можно смело удалять. Но будьте осторожны, когда удаляете объекты: спутниковые снимки могут быть устарелые, и дорога, которая выглядит неправильной, может быть попросту построена недавно.", + "delete_line_command": "Чтобы удалить линию щёлкните правой кнопкой {rightclick} по линии, чтобы выбрать её и отобразить меню редактирования, затем выберите команду **Удалить** {delete}." + }, + "areas": { + "title": "Полигоны", + "intro": "*Полигоны* используются для отображения границ объектов, таких как: озёра, здания и жилые зоны. Полигоны следует отрисовывать по краю объекта, который они отражают, например, по основанию здания.", + "point_or_area_h": "Точки или полигоны?", + "point_or_area": "Существует множество объектов, которые можно описать и при помощи точек и при помощи полигонов. Здания следует отрисовывать при помощи полоигна, если это возможно сделать. Кафе, офисы и прочие объекты внутри здания стоит отметить при помощи точек, расположенных внутри полигона здания.", + "add_area_h": "Добавление полигонов", + "add_area_command": "Чтобы добавить полигон щёлкните по кнопке **Полигон** {area} на панели инструментов вверху карты или нажмите клавишу `3`. Курсор приобретёт вид перекрестия.", + "add_area_draw": "Затем разместите курсор мыши на углу объекта и щёлкните левой кнопкой {leftclick} или нажмите `Пробел`, чтобы начать расставлять точки по периметру области. Продолжайте добавлять новые точки, щёлкая левой кнопкой или нажимая `Пробле`. Во время рисования, вы можете приближать или перемещать карту, чтобы добиться большей детализованности.", + "add_area_finish": "Чтобы завершить полигон, нажмите `{return}` или щёлкните ещё раз по первой или последней точке.", + "square_area_h": "Спрямление углов", + "square_area_command": "Многие полигоны, такие как здания, имеют прямые углы. Чтобы сделать углыми полигона прямыми щёлкните правой кнопкой {rightclick} по краю полигона и выберите команду **Спрямить углы** {orthogonalize} в меню редактирования.", + "modify_area_h": "Изменение полигонов", + "modify_area_dragnode": "Часто вы будете замечать полигоны, форма которых не верна. Например, здание не соответствует тому, что на спутниковом снимке. Чтобы скорректировать форму полигона сначала выделите его, щёлкнув по нему {leftclick}. Все точки, принадлежащие полигону, станут отражены небольшими кружчкми. Вы можете перетащить точки в более подходящие места.", + "modify_area_addnode": "Вы также можете создать новые точки в полигоне, щёлкнув дважды {leftclick}**x2** по краю полигона или потянув за маленький треугольник посредине между точками.", + "delete_area_h": "Удаление полигонов", + "delete_area": "Если полигон неверн полностью, например, здания больше не существует в реальном мире, такой полигон можно удалить. Но будьте осторожны, удаляя объекты — спутниковое изображение может быть устарелым, а здание, казавшееся неверным, недавно построено.", + "delete_area_command": "Чтобы удалить полигон, щёлкните правой кнопкой {rightclick} по полигону, чтобы выбрать его и отобразить меню редактирования, затем примените команду **Удалить** {delete}." + }, + "relations": { + "title": "Отношения", + "intro": "*Отношение* — это специальный тип объекта OpenStreetMap для объединения других объектов. Объекты, входящие в отношение, называются *участниками отношения*, а каждый из участников отношения может иметь *роль* в отношении.", + "edit_relation_h": "Редактирование отношений", + "edit_relation": "В нижней части редактора объектов вы можете раскрыть область \"Все отношения\", чтобы посмотреть, является ли выбранный объект участником какого-либо отношения. Вы можете щёлкнуть по отношению, чтобы выбрать и отредактировать его.", + "edit_relation_add": "Чтобы добавить объект к отношению, выберите объект, затем щёлкните по кнопке \"+\" {plus} в разделе \"Все отношения\" редактора объектов. Вы можете выбрать из списка ближайщих к выбранному объекту отношений или же вариант \"Новое отношение...\".", + "edit_relation_delete": "Вы можете щёлкнуть по кнопке **Удалить** {delete}, чтобы удалить выбранный объект из отношения. Если из отношения удалить всех его участников, само отношение автоматически удалится.", + "maintain_relation_h": "Поддерживание отношений в порядке", + "maintain_relation": "В большинстве случаев iD будет поддерживать в порядке отношения автоматически, пока вы редактируете. Но вам стоит быть внимательным, когда вы заменяете объекты, которые могут быть участинками отношений. Например, вы удаляете участок дороги и рисуете его заново взамен удаленного, в таком случае вам следует добавить вновь отрисованный участок дороги к тем же отношениям, в которых числился удалённый (маршруты, ограничения на поворт и тому подобное).", + "relation_types_h": "Типы отношений", + "multipolygon_h": "Мультиполигоны", + "multipolygon": "Отношение типа *мультиполигон* — это объединение из одного и более *внешнего* объекта и одного и более внутреннего объекта. Внешние объекты определяют внешние границы мультиполигона, а внутренние объекты определяют под-области или дырки, вырезанные внутри мультиполигона.", + "multipolygon_create": "Чтобы создать мультиполигон, например здание с дыркой в нём, нарисуйте внешнюю границу как полигон, а внутреннюю границу как линию или как полигон с другим типом. Затем щёлкните `{shift}`+{leftclick}, чтобы выбрать сразу оба объекта, щёлкните правой кнопкой {rightclick} чтобы отобразить меню редактирования и выберите команду **Объединить** {merge}.", + "multipolygon_merge": "Объединение несколько линий или полигонов приведёт к созданию нового мультиполигона со всеми выделенными объектами в виде его участников. iD расставит роли inner и outer автоматически, основываясь на том, какой объект внутри какого.", + "turn_restriction_h": "Запрет манёвров", + "turn_restriction": "Отношение *запрет манёвра* — это группа из нескольких пересекающихся участков (сегментов) дорог. Запрет манёвров состоит из *from* участка, *via* точки пересечения дорог, и *to* участка дороги.", + "turn_restriction_field": "Чтобы отредактировать запрет манёвров, выберите точку, в которой пересекаются две и более автомобильные дороги. Редактор объектов отобразит особое поле \"Запрет манёвров\", содержащее модель перекрёстка.", + "turn_restriction_editing": "В поле \"Запрет манёвров\" щёлкните, чтобы выборать \"from\" дорогу, в модели отобразится, доступен ли манёвр или нет для любой из \"to\" дороги. Вы можете щёлкнуть по уконке манёвра, чтобы изменять состояние запрета между \"разрешено\" и \"запрещено\". iD автоматически создаст отношения и укажет в них роли from, via и to, основываясь на ваших действиях.", + "route_h": "Маршруты", + "route": "Отношение *маршрут* — группа из одного и более линейного объекта, образующих вместе маршрутную сеть, такую как: автобусный маршрут, железнодорожный маршрут или автомобильный маршрут.", + "route_add": "Чтобы добавить объект к отношению маршрута, выберите объект и прокрутите вниз до секции \"Все отношения\" в редакторе объектов, затем щёлкните по {plus} кнопке добавить, чтобы добавить выбранный объект к ближайшим существующим или новому отношению.", + "boundary_h": "Границы", + "boundary": "Отношение *граница* — это группа из одного и более линейного объекта, которые вместе образуют административную границу.", + "boundary_add": "Чтобы добавить объект к отношению границы, выберите объект и прокрутите вниз до секции \"Все отношения\" в редакторе объектов, затем щёлкните по {plus} кнопке добавить, чтобы добавить выбранный объект к ближайшим существующим или новому отношению." + }, + "imagery": { + "title": "Фоновые изображения", + "intro": "Фоновые изображения, отображаемые под картографическими данными, — важный источник для картографирования. Этими изображениями могут быть снимки с воздуха, собранные спутниками, самолетами или беспилотными летательными аппаратами, или это может быть отсканированная историческая карта или любой другой свободно распростаняемый источник информации.", + "sources_h": "Источники подложек", + "choosing": "Чтобы узнать, какие подложки доступны для редактирования, щёлкните на {layers} **Настройка фонового изображения** кнопку сбоку от карты.", + "sources": "По умолчанию фоновым изображением является слой спутниковых снимков из [Карт Bing](https://www.bing.com/maps/). В зависимости от того, где вы редактируете, могут быть доступны другие источники подложек. Некоторые из них могут оказаться новее или иметь более высокое разрешение, так что всегда полезно проверить и посмотреть, какая из подложек наиболее подходит для обрисовки.", + "offsets_h": "Настройка смещения подложки", + "offset": "Подложка часто имеет небольшой сдвиг (смещение) относительно объектов в реальности. Если вы видите множество дорого или зданий, сдвинутых относительно изображения с подложки, возможно это потому что изображение некорректно. В таком случае не сдвигайте отрисованные объекты под изображение с подложки. Вместо этого, убедитесь, что нет необходимости выставить смещение спутниковому снимку. Скорректировать фоновое изображение можно, раскрыв область \"Установка смещения слоя\" внизу панели настройки фоновых изображений.", + "offset_change": "Щёлкните на маленькие треугольники, чтобы скорректировать сдвиг подложики небольшими шагами, или зажмите левую кнопку мыши и перетаскивайте внутри серого квадрата, чтобы сдвинуть подложку до сопоставления с данными." + }, + "streetlevel": { + "title": "Панорамы улиц", + "intro": "Уличные панорамы полезны для картографирования дорожных знаков, бизнесов и других подробностей, которых не видно на спутниковых снимках и снимках с воздуха. Редактор iD поддерживает панорамы из [Mapillary](https://www.mapillary.com) и [OpenStreetCam](https://www.openstreetcam.org).", + "using_h": "Использование панорам улиц", + "using": "Для использования уличных панорам для картографирования щёлкните по панели {data} **Данные карты** сбоку от карты, чтобы включить или выключить слой с доступными фотографиями.", + "photos": "Когда включён, слой фото отображает линию вдоль череды фотографий. На крупных зумах видны круглые отметки в месте каждой фотографии, а на ещё более крупных зумах — индикатор в виде конуса, отображающий направление камеры во время съёмки.", + "viewer": "Когда вы щёлкните по местоположению фотографии, в нижнем углу карты откроется просмотрщик фотографий. Просмотрщик фотографий содержит элементы управления, чтобы перемещаться вперёд и назад по последовательности изображений. Он также отображает имя пользователя человека, сделавшего фото, дату фотографии и ссылку на фотографию на оригинальном веб-сайте." + }, + "gps": { + "title": "GPS треки", + "intro": "Собранные GPS треки — ценный источник данных для OpenStreetMap. Данные редактор поддерживает *.gpx*, *.geojson* и *.kml* файлы с вашего компьютера. Вы можете записывать GPS треки при помощи смартфона, спортивных часов или любого другого GPS устройства.", + "survey": "Об информации о тому, как проводить GPS разведку, прочтите [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/).", + "using_h": "Использование GPS треков", + "using": "Для использование GPS треков с целью картографирования перетащите файл с треком в окно редактора карты. Если файл подходящий, трек будет отображен на карте яркой фиолетовой линией. Щёлкните на панель {data} **Данные карты** сбоку от карты, чтобы выключить, выключить или приблизить ваши GPS данные.", + "tracing": "GPS трек не передаёся в OpenStreetMap. Лучший способ использовать его — это отрисовать по нему карту, используя его как подсказку для новых объектов, что вы добавляете.", + "upload": "Вы также можете [загрузить ваши GPS треки в OpenStreetMap](https://www.openstreetmap.org/trace/create), чтобы и другие участники смогли ими пользоваться." } }, "intro": { @@ -685,7 +858,7 @@ "district": "", "hamlet": "", "neighbourhood": "", - "postcode": "490", + "postcode": "127000", "province": "", "quarter": "", "state": "", @@ -730,7 +903,7 @@ "grant-avenue": "Авеню Гранта", "hoffman-pond": "пруд Хоффмана", "hoffman-street": "улица Хоффмана", - "hook-avenue": "Хук-авен", + "hook-avenue": "Хук-авеню", "jefferson-street": "улица Джефферсона", "kelsey-street": "улица Келси", "lafayette-park": "парк Лафейетт", @@ -738,8 +911,9 @@ "lincoln-avenue": "Линкольн-авеню", "lowrys-books": "Книги Лаури", "lynns-garage": "Гараж Линн", + "main-street-barbell": "Штанга Мейн-стрит", "main-street-cafe": "Кафе Мейн-стрит", - "main-street-fitness": "Финесс Мейн-стрит", + "main-street-fitness": "Фитнесс Мейн-стрит", "main-street": "Мейн-стрит", "maple-street": "Кленовая улица", "marina-park": "парк Причал", @@ -751,8 +925,9 @@ "millard-street": "улица Милларда", "moore-street": "улица Мура", "morris-avenue": "авеню Морриса", - "mural-mall": "ТЦ Mural", + "mural-mall": "Тороговый центр Мурал", "paisanos-bar-and-grill": "Бар и гриль Пейзано", + "paisley-emporium": "Магазин тканей", "paparazzi-tattoo": "Тату-салон Папарацци", "pealer-street": "улица Пилера", "pine-street": "Сосновая улица", @@ -761,12 +936,14 @@ "portage-river": "река Портаж", "preferred-insurance-services": "Страхование Preferred", "railroad-drive": "Железнодорожная улица", + "river-city-appliance": "Электроприборы Ривер Сити", "river-drive": "Речной переулок", "river-road": "Речное шоссе", "river-street": "Речная улица", "riverside-cemetery": "кладбище У реки", "riverwalk-trail": "тропа вдоль реки", "riviera-theatre": "театр Ривьера", + "rocky-river": "Каменистая река", "saint-joseph-river": "река Сен-Жозеф", "scidmore-park-petting-zoo": "контактный зоопарк Скидмор-парк", "scidmore-park": "Скидмор-парк", @@ -791,120 +968,122 @@ "water-street": "Водная улица", "west-street": "Западная улица", "wheeler-street": "улица Уилер", + "william-towing": "Эвакуаторы Уильяма", "willow-drive": "Ивовый переулок", "wood-street": "Древняя улица" } }, "welcome": { "title": "Добро пожаловать", - "welcome": "Добро пожаловать! Это обучение поможем Вам познакомиться с основами редактирования карт в OpenStreetMap", + "welcome": "Добро пожаловать! Это обучение научит вас основам редактирования карт в OpenStreetMap.", "practice": "Все данные в течение этого обучения предназначены только для тренировки. Никакие изменения не будут сохранены.", "words": "В процессе обучения мы введём новые слова и термины. Все новые слова будут отмечены *курсивом*.", "mouse": "Вы можете редактировать карту на любом устройстве. Но для данного обучения у Вас должна быть мышка с двумя кнопками. **Если хотите подключить мышь, то сделайте это сейчас и нажмите OK.**", - "leftclick": "Когда в процессе обучения Вас попросят кликнуть или сделать двойной клик, мы имеем в виду нажать левую кнопку мыши. При использовании сенсорной панели (тачпада) это означает одиночное нажатие или касание одним пальцем. **Кликните {num} раз(а).**", - "rightclick": "Иногда мы попросим Вас нажать правую кнопку мыши. Это может быть кликнуть с зажатой клавишей Control или касание сенсорной панели двумя пальцами. Возможно у Вас на клавиатуре есть кнопка 'меню', которая работает как правый клик мышки. **Кликните правой кнопкой {num} раз(а).**", - "chapters": "Пока всё хорошо! Вы можете использовать кнопки ниже, чтобы в любой момент пропустить главы обучения или начать главу заново, если Вы столкнулись с проблемой. Начнём! **Кликните '{next}' чтобы продолжить.**" + "leftclick": "Когда в процессе обучения Вас попросят щёлкнуть или щёлкнуть дважды, мы имеем в виду нажать левую кнопку мыши. При использовании сенсорной панели (тачпада) это означает одиночное нажатие или касание одним пальцем. **Щёлкните {num} раз(а).**", + "rightclick": "Иногда мы попросим Вас нажать правую кнопку мыши. Это может означать щелчок с зажатой клавишей Control или касание сенсорной панели двумя пальцами. Возможно у Вас на клавиатуре есть кнопка 'Menu', которая работает как щелчок правой кнопкой мышки. **Щёлкните правой кнопкой {num} раз(а).**", + "chapters": "Пока всё хорошо! Вы можете использовать кнопки ниже, чтобы в любой момент пропустить главы обучения или начать главу заново, если Вы столкнулись с проблемой. Начнём! **Щёлкните '{next}' чтобы продолжить.**" }, "navigation": { "title": "Перемещение", - "drag": "Область рисования карты показывает данные OpenStreetMap поверх подложки.{br}Двигайте карту, нажав левую кнопку мыши и перетаскивая её. Кнопки клавиатуры со стрелочками тоже работают. **Попробуйте перетащить карту!**", + "drag": "Область для рисования карты показывает данные OpenStreetMap поверх фонового изображения.{br}Двигайте карту, нажав левую кнопку мыши и перетаскивая её. Кнопки клавиатуры со стрелочками тоже работают. **Попробуйте перетащить карту!**", "zoom": "Изменить масштаб можно колесом мыши или прокруткой на трекпеде, либо кнопкам {plus} и {minus}. **Попробуйте увеличить карту!**", - "features": "Мы используем слово *объект* для описания предметов, отображаемых на карте. Любой предмет реального мира может быть добавлен как объект на карте в OpenStreetMap.", - "points_lines_areas": "Объекты на карте создаются с помощью *точек, линий или областей.*", - "nodes_ways": "В OpenStreetMap, точки иногда называются *узлами*, а линии и области иногда называются *отрезками*.", - "click_townhall": "Любые объекты на карте могут быть выбраны щелчком на них. **Нажмите на точку чтобы выбрать ее.**", + "features": "Мы используем слово *объект* для описания предметов, отображаемых на карте. Всё что угодно из реального мира может быть отражено в виде объекта в OpenStreetMap.", + "points_lines_areas": "Объекты на карте создаются с помощью *точек, линий или полигонов.*", + "nodes_ways": "В OpenStreetMap, точки иногда называются *узлами*, а линии и полигоны иногда называются *отрезками*.", + "click_townhall": "Любые объекты на карте могут быть выбраны щелчком на них. **Нажмите на точку чтобы выбрать её.**", "selected_townhall": "Отлично! Теперь точка выделена. Выбранный объект выделяется пульсирующей обводкой.", - "editor_townhall": "Когда объект выбран, рядом с картой показывается *редактор объекта*.", - "preset_townhall": "В верхней части редактора объекта отображается тип объекта. Эта точка имеет тип {preset}.", + "editor_townhall": "Когда объект выбран, рядом с картой показывается *редактор объектов*.", + "preset_townhall": "В верхней части редактора объектов отображается тип объекта. Эта точка имеет тип {preset}.", "fields_townhall": "Средняя часть редактора объектов содержит *поля*, соответствующие свойствам объекта, таким как название и адрес.", - "close_townhall": "**Закройте редактор объекта с помощью клавиши Esc или нажмите кнопку {button} в верхнем углу.**", + "close_townhall": "**Закройте редактор объектов с помощью клавиши Esc или нажмите кнопку {button} в верхнем углу.**", "search_street": "Вы можете искать объекты на видимой части карты или во всём мире. **Попробуйте искать '{name}'.**", "choose_street": "**Выберите {name} из списка чтобы выбрать его.**", - "selected_street": "Отлично! Теперь выбрана {name}.", - "editor_street": "Поля, отображаемые для улицы, отличаются от полей показываемых для здания администрации.{br}Для выбранной улицы редактор объекта покажет поля, характерные для дорог: '{field1}' и '{field2}'. **Закройте редактор объекта нажав escape или кнопку {button}.**", - "play": "Попробуйте подвигать карту и щелкнуть на некоторых других объектах чтобы узнать, какие виды объектов могут быть добавлены на OpenStreetMap. **Когда вы будете готовы перейти к следующей главе, нажмите '{next}'.**" + "selected_street": "Отлично! Теперь {name} выбрана.", + "editor_street": "Поля, отображаемые для улицы, отличаются от полей показываемых для здания администрации.{br}Для выбранной улицы редактор объектов покажет поля, характерные для дорог: '{field1}' и '{field2}'. **Закройте редактор объектов, нажав escape или кнопку {button}.**", + "play": "Попробуйте подвигать карту и щёлкнуть на какие-нибудь другие объекты, чтобы узнать, какие виды объектов могут быть добавлены на OpenStreetMap. **Когда вы будете готовы перейти к следующей главе, нажмите '{next}'.**" }, "points": { "title": "Точки", - "add_point": "Точки можно использовать для отображения таких объектов, как магазины, рестораны и памятники.{br}Они отражают местоположение объекта и описывают его. **Нажмите кнопку {button} Точка, чтобы добавить новую точку.**", - "place_point": "Чтобы разместить точку на карте наведите курсор мыши в то место, где она должна располагаться, затем левый клик мыши или нажмите пробел. **Наведите указатель мышь на здание и нажмите левую кнопку или пробел.**", - "search_cafe": "Точками можно обозначать самые разные объекты.\nСейчас вы добавили точку для кафе. **Найдите «{preset}»**", + "add_point": "*Точки* можно использовать для отображения таких объектов как: магазины, рестораны и памятники.{br}Они отражают местоположение объекта и описывают его. **Нажмите кнопку {button} Точка, чтобы добавить новую точку.**", + "place_point": "Чтобы разместить точку на карте, наведите курсор мыши в то место, где она должна располагаться, затем нажмите левую кнопку мыши или пробел. **Наведите указатель мышь на здание и нажмите левую кнопку или пробел.**", + "search_cafe": "Точками можно обозначать самые разные объекты. Сейчас вы добавили точку для кафе. **Найдите «{preset}»**", "choose_cafe": "**Выберите {preset} из списка.**", - "feature_editor": "Вы пометили точку как кафе. Используя свойства объекта, можно добавить больше информации об этом кафе.", - "add_name": "В OpenStreetMap все поля необязательные и это нормально оставить поле пустым если вы не уверены в его значении.{br}Предположим, у вас есть местное знание об этом кафе и вы знаете его название. **Добавьте название этого кафе.**", - "add_close": "Редактор объекта запомнит все правки автоматически. **Когда вы добавили имя, нажмите Esc, Ввод, или кнопку {button} чтобы закрыть редактор объектов.**", + "feature_editor": "Вы пометили точку как кафе. Используя редактор объектов, можно добавить больше сведений об этом кафе.", + "add_name": "В OpenStreetMap все поля необязательные, и это нормально оставить поле пустым, если вы не уверены в его значении.{br}Предположим, у вас есть местное знание об этом кафе и вы знаете его название. **Добавьте название этого кафе.**", + "add_close": "Редактор объектов запомнит все правки автоматически. **Когда вы добавили имя, нажмите Esc, Ввод, или кнопку {button} чтобы закрыть редактор объектов.**", "reselect": "Часто точки уже нарисованы на карте, но неточно или с ошибками. Мы можем их поправить. **Нажмите на точку кафе, которые вы создали.**", "update": "Давайте добавим значений свойствам этого кафе. Заполните его название, укажите кухню или добавьте адрес. **Заполните свойства кафе.**", "update_close": "**Когда вы закончите обновлять кафе, нажмите Esc, Ввод, или кнопку {button} чтобы закрыть редактор объектов.**", - "rightclick": "Вы можете щелкнуть правой кнопкой мыши по любому объекту, чтобы увидеть *меню редактирования*, в котором показан список операций редактирования, которые могут быть выполнены. ** Щелкните правой кнопкой мыши, чтобы выбрать созданную вами точку и показать меню редактирования. **", - "delete": "Не бойтесь удалять объекты, которых нет в реальном мире.{br}Удаление объекта с OpenStreetMap удаляет его с карты, которой все пользуются, поэтому вы должны убедиться, что объект действительно исчез, прежде чем удалить его. ** Нажмите кнопку {button}, чтобы удалить точку. **", + "rightclick": "Вы можете щёлкнуть правой кнопкой мыши по любому объекту, чтобы увидеть *меню редактирования*, в котором показан список операций редактирования, которые могут быть выполнены. **Щёлкните правой кнопкой мыши, чтобы выбрать созданную вами точку и показать меню редактирования.**", + "delete": "Не бойтесь удалять объекты, которых нет в реальном мире.{br}Удаление объекта с OpenStreetMap удаляет его с карты, которой все пользуются, поэтому вы должны убедиться, что объект действительно исчез, прежде чем удалить его. **Нажмите кнопку {button}, чтобы удалить точку.**", "undo": "Вы всегда можете отменить все изменения перед сохранением Ваших правок в OpenStreetMap. **Нажмите кнопку {button} для отмены удаления точки **.", - "play": "Теперь, когда вы знаете, как добавлять и править точки, попробуйте попрактиковаться и создать еще немного точек! **Когда вы будете готовы перейти к следующей главе, нажмите '{next}'.**" + "play": "Теперь, когда вы знаете, как добавлять и править точки, попробуйте попрактиковаться и создать ещё немного точек! **Когда вы будете готовы перейти к следующей главе, нажмите '{next}'.**" }, "areas": { - "title": "Области", - "start_playground": "Давайте добавим игровую площадку на карту в виде области. Область рисуется размещением точек по периметру объекта. **Щелкните мышью или нажмите пробел для размещения первой точки на одном из углов площадки.**", - "continue_playground": "Продолжайте обводить область, размещая узлы вдоль краёв детской площадки. Будет отлично, если вы присоедините область к уже нарисованным дорожкам.{br}Совет: вы можете держать клавишу '{alt}', чтобы предотвратить привязку к другим элементам. **Продолжайте обводить область детской площадки.**", - "finish_playground": "Завершите обводку, нажав enter или щёлкнув на первом или последнем узле. **Завершите обводку области детской площадки.**", + "title": "Полигоны", + "add_playground": "*Полигоны* используются для отображения границ объектов, таких как: озёра, здания и жилые зоны.{br}Их также можно применять для более детального отображения объектов, которые обычно указываются точками. **Нажмите кнопку Полигон {button} для создания нового полигона.**", + "start_playground": "Давайте добавим игровую площадку на карту в виде полигона. Полигон рисуется размещением *точек* по периметру объекта. **Щёлкните мышью или нажмите пробел для размещения первой точки на одном из углов площадки.**", + "continue_playground": "Продолжайте обводить полигон, размещая узлы вдоль краёв детской площадки. Это ничего, если вы соедините полигон к уже нарисованным пешеходным дорожкам.{br}Совет: вы можете держать клавишу '{alt}', чтобы предотвратить привязку к другим элементам. **Продолжайте обводить полигон детской площадки.**", + "finish_playground": "Завершите полигон, нажав enter или щёлкнув на первом или последнем узле. **Завершите обводку полигона детской площадки.**", "search_playground": "**Искать '{preset}'.**", "choose_playground": "**Выберите {preset} из списка.**", "add_field": "Эта детская площадка не имеет официального названия, поэтому мы не будем добавлять ничего в поле Название.{br}Вместо этого давайте добавим больше подробностей об этой детской площадке в поле Описание. **Откройте список «Добавить поле».**", "choose_field": "**Выберите {field} из списка.**", "retry_add_field": "Вы не выбрали поле {field}. Попробуйте снова.", - "describe_playground": "**Добавьте описание и нажмите кнопку {button}, чтобы завершить редактирование объекта.**", - "play": "Отличная работа! Попробуйте подвигать карту и щелкнуть на некоторых других объектах чтобы узнать, какие виды объектов могут быть добавлены на OpenStreetMap. **Когда вы будете готовы перейти к следующей главе, нажмите '{next}'.**" + "describe_playground": "**Добавьте описание и нажмите кнопку {button}, чтобы закрыть редактор объектов.**", + "play": "Отличная работа! Попробуйте нарисовать ещё полигонов, чтобы узнать, какие типы полигонов могут быть добавлены на OpenStreetMap. **Когда вы будете готовы перейти к следующей главе, нажмите '{next}'.**" }, "lines": { "title": "Линии", - "add_line": "*Линии* используются для обозначения таких объектов как дороги, железные дороги и реки. **Нажми {button} кнопку Линия и добавь новую линию.**", + "add_line": "*Линии* используются для обозначения таких объектов как дороги, железные дороги и реки. **Нажми {button} кнопку Линия, чтобы добавить новую линию.**", "start_line": "Вот дорога, которая не нарисована. Давайте добавим её!{br}В OpenStreetMap линии должны быть нарисованы по центру дороги. Вы можете перетаскивать и масштабировать карту во время рисования, если это необходимо. **Начните новую линию, щёлкнув по верхнему концу этой отсутствующей дороги.**", - "intersect": "Кликните или нажмите пробел для добавления сегментов к линии.{br}Дороги, и многие другие типы линий являются частью более крупной сети. Важно, чтобы эти линии были соединены в правильном порядке для работы приложений навигации. **Кликните на {name} для создания точки пересечения двух линий.**", + "intersect": "Щёлкните или нажмите пробел для добавления сегментов к линии.{br}Дороги, и многие другие типы линий являются частью более крупной сети. Важно, чтобы эти линии были соединены в правильном порядке для работы приложений навигации. **Щёлкните на {name} для создания точки пересечения двух линий.**", "retry_intersect": "Эта дорога должна пересекаться с {name}. Попробуй ещё раз!", - "continue_line": "Продолжайте рисовать линию для новой дороги. Помните, что Вы можете при необходимости перетаскивать и зуммировать карту.{br}Когда закончите рисовать, кликните на последнем сегменте снова. **Завершить рисование дороги.**", + "continue_line": "Продолжайте рисовать линию для новой дороги. Помните, что Вы можете при необходимости перетаскивать и изменять масштаб карты.{br}Когда закончите рисовать, щёлкните на последнем сегменте снова. **Завершить рисование дороги.**", "choose_category_road": "**Выберите {category} из списка.**", "choose_preset_residential": "Существует много различных типов дорог, но в данном случае это дорога вдоль жилых зон. **Выберите тип дороги «{preset}»**", "retry_preset_residential": "Вы не выбрали тип {preset}. **Щёлкните здесь, чтобы выбрать заново.**", - "name_road": "**Дайте этой дороге название, затем нажмите escape, enter или щёлкните кнопку {button}, чтобы закрыть редактор свойств.**", + "name_road": "**Дайте этой дороге название, затем нажмите escape, enter или щёлкните кнопку {button}, чтобы закрыть редактор объектов.**", "did_name_road": "Замечательно! Теперь мы изучим как изменить форму линии.", "update_line": "Иногда вам потребуется изменить форму существующей линии. Вот эта дорога явно выглядит не совсем правильно.", - "add_node": "Мы можем добавить сегментов к этой линии для улучшения ее формы. Один из способов добавить сегмент это двойной клик по линии там, где вы хотите разместить начало нового сегмента. **Двойной клик по линии для создания нового сегмента.**", - "start_drag_endpoint": "Когда линия выделена, можно перетаскивать любой ее сегмент, кликнув и удерживая левую кнопку мыши. **Перетащите конечную точку к месту, где эти дороги должны пересекаться.**", + "add_node": "Мы можем ещё добавить точек к этой линии, чтобы улучшить её форму. Один из способов добавить точку — это двойной щелчок по линии там, где вы хотите её добавить. **Двойной щелчок по линии, чтобы добавить новую точку.**", + "start_drag_endpoint": "Когда линия выделена, можно перетаскивать любую её точку, щёлкнув и удерживая левую кнопку мыши. **Перетащите конечную точку к месту, где эти дороги должны пересекаться.**", "finish_drag_endpoint": "Вот неплохое место. **Отпустите левую кнопку мыши чтобы завершить перемещение.**", - "start_drag_midpoint": "Маленькие треугольники нарисованы по центру сегментов. Другой способ создать новый сегмент - это перетащить точку по центру сегмента на новую позицию. ** Перетащите треугольник в середине сегмента для создания нового сегмента вдоль изгиба дороги.**", - "continue_drag_midpoint": "Линия выглядит намного лучше! Продолжайте уточнять линию двойным кликом или перетаскиванием серединным точек, пока кривая не совпадет с формой дороги. **Когда вы будете удовлетворены формой линии, нажмите ОК**", - "delete_lines": "Удалять линии дорог, которых не существуют в реальным мире — нормально. Здесь вы видите пример того, что город планировал {street}, но так и не построил. Мы можем улучшить эту часть карты, удалив лишние линии.", - "rightclick_intersection": "Последняя построенная улица — {street1}, поэтому мы *разделим* {street2} в точке пересечения и удалим линни сверху. **Нажмите правой кнопкой на точке пересечения.**", - "split_intersection": "**Щелкните кнопку {button} чтобы разделить {street}.**", - "retry_split": "Вы не щелкнули кнопку «Разделить». Попробуйте снова.", - "did_split_multi": "Отличная работа! {street1} теперь разделена на две части. Верхнюю часть можно удалить. **Щелкните на верхней части {street2} чтобы выделить ее.**", - "did_split_single": "**Щелкните на верхней части {street2} чтобы выделить ее.**", + "start_drag_midpoint": "Маленькие треугольники нарисованы *посредине* между точками. Другой способ создать новую точку — это перетащить точку посредине сегмента на новую позицию. **Перетащите треугольник посредине сегмента для создания новой точки вдоль изгиба дороги.**", + "continue_drag_midpoint": "Линия выглядит намного лучше! Продолжайте уточнять линию двойным щелчком или перетаскиванием серединных точек, пока кривая не совпадёт с формой дороги. **Когда вы будете удовлетворены формой линии, нажмите ОК**", + "delete_lines": "Удалять линии дорог, которых не существуют в реальным мире — нормально.{br}Здесь вы видите пример того, что город планировал {street}, но так и не построил. Мы можем улучшить эту часть карты, удалив лишние линии.", + "rightclick_intersection": "Последняя построенная улица — {street1}, поэтому мы *разрежем* {street2} в точке пересечения и удалим всё сверху от неё. **Нажмите правой кнопкой на точке пересечения.**", + "split_intersection": "**Щёлкните кнопку {button} чтобы разрезать {street}.**", + "retry_split": "Вы не щёлкнули кнопку «Разрезать». Попробуйте снова.", + "did_split_multi": "Отличная работа! {street1} теперь разрезана на две части. Верхнюю часть можно удалить. **Щёлкните на верхней части {street2}, чтобы выделить её.**", + "did_split_single": "**Щёлкните на верхней части {street2} чтобы выделить её.**", "multi_select": "Линия {selected} теперь выбрана. Давайте выделим ещё и {other1}. Вы можете выделять несколько линий щелчком с нажатой клавишей Shift. **Нажмите Shift и щёлкните на {other2}.**", - "multi_rightclick": "Хорошо. Теперь выделены обе линии, которые нужно удалить. **Нажмите правой кнопкой мыши на любой из этих линий, чтобы перейти к меню редактирования объекта.**", + "multi_rightclick": "Хорошо! Теперь выделены обе линии, которые нужно удалить. **Нажмите правой кнопкой мыши на любой из этих линий, чтобы перейти к меню редактирования объекта.**", "multi_delete": "**Щёлкните по кнопке {button} чтобы удалить эти линии.**", - "retry_delete": "Вы не щелкнули кнопку «Удалить». Попробуйте снова.", + "retry_delete": "Вы не щёлкнули кнопку «Удалить». Попробуйте снова.", "play": "Великолепно! Используя полученные навыки, потренируйтесь в редактировании других линий. **Когда будете готовы перейти к следующей главе, нажмите '{next}'.**" }, "buildings": { "title": "Здания", - "add_building": "OpenStreetMap — крупнейшая в мире база данных о зданиях.{br}Вы можете добавить ещё не внесенные здания. **Нажмите кнопку {button} Область, чтобы добавить новую область**", - "start_building": "Давайте обведём контур этого дома, чтобы добавить его на карту.{br}Здания нужно обводить по фундаменту с максимальной точностью. **Щелкните или нажмите пробел на одном из углов здания, чтобы создать первую точку.**", - "continue_building": "Добавьте точки на остальные углы дома. Можете увеличить изображение, чтобы видеть больше деталей.{br}Нажмите пробел или еще раз щёлкните на первой или последней точке контура чтобы завершить здание. **Завершите рисование здания.**", + "add_building": "OpenStreetMap — крупнейшая в мире база данных о зданиях.{br}Вы можете добавить ещё не внесенные здания. **Нажмите кнопку {button} Полигон, чтобы добавить новый полигон**", + "start_building": "Давайте обведём контур этого дома, чтобы добавить его на карту.{br}Здания нужно обводить по фундаменту с максимальной точностью. **Щёлкните или нажмите пробел на одном из углов здания, чтобы создать первую точку.**", + "continue_building": "Добавьте точки на остальные углы дома. Можете увеличить изображение, чтобы видеть больше деталей.{br}Нажмите пробел или ещё раз щёлкните на первой или последней точке контура чтобы завершить здание. **Завершите рисование здания.**", "retry_building": "Похоже, что Вы отметили не все углы здания. Попробуйте ещё раз!", "choose_category_building": "**Выберите {category} из списка.**", "choose_preset_house": "Существует много типов зданий, но этот дом точно частный жилой.{br}Если Вы точно не знаете тип дома, можно выбирать *Здание без конкретного типа*. **Выберите тип {preset}.**", - "close": "**Нажмите Esc или кнопку {button} , чтобы закрыть редактор свойств.**", + "close": "**Нажмите Esc или кнопку {button} , чтобы закрыть редактор объектов.**", "rightclick_building": "**Нажмите правой кнопкой мыши на добавленном здании, чтобы перейти к меню редактирования объекта.**", - "square_building": "Дом, который вы только что добавили, будет выглядеть еще лучше с идеально прямыми углами. **Нажмите кнопку {button} чтобы спрямить форму здания.**", - "retry_square": "Вы не щелкнули кнопку «Спрямить углы». Попробуйте снова.", - "done_square": "Видите как углы здания передвинулись на другое место? Давайте освоим еще один полезный приём.", - "add_tank": "Теперь мы обрисуем этот круглый резервуар. **Нажмите {button} кнопку «Область» чтобы добавить новую область.**", - "start_tank": "Не волнуйтесь, не придётся рисовать идеальный круг. Просто нарисуйте область с точками на контуре резервуара. **Щёлкните или нажмите пробел на контуре резервуара, чтобы создать первую точку.**", - "continue_tank": "Добавьте еще несколько точек на контуре. Нарисованные точки образуют круглую область.{br}Нажмите Enter или щёлкните ещё раз на первой или последней точке, чтобы закончить рисование. **Завершите обведение резервуара.**", + "square_building": "Дом, который вы только что добавили, будет выглядеть ещё лучше с идеально прямыми углами. **Нажмите кнопку {button} чтобы спрямить форму здания.**", + "retry_square": "Вы не щёлкнули кнопку «Спрямить углы». Попробуйте снова.", + "done_square": "Видите как углы здания передвинулись на другое место? Давайте освоим ещё один полезный приём.", + "add_tank": "Теперь мы обрисуем этот круглый резервуар. **Нажмите {button} кнопку «Полигон» чтобы добавить новый полигон.**", + "start_tank": "Не волнуйтесь, не придётся рисовать идеальный круг. Просто нарисуйте полигон с точками, касающимися края резервуара. **Щёлкните или нажмите пробел на контуре резервуара, чтобы создать первую точку.**", + "continue_tank": "Добавьте ещё несколько точек на контуре. Круг будет создан снаружи обрисованных точек.{br}Нажмите Enter или щёлкните ещё раз на первой или последней точке, чтобы закончить рисование. **Завершите обведение резервуара.**", "search_tank": "**Искать '{preset}'.**", "choose_tank": "**Выберите {preset} из списка**", "rightclick_tank": "**Нажмите правой кнопкой мыши на добавленном резервуаре, чтобы перейти к меню редактирования объекта.**", "circle_tank": "**Нажмите кнопку {button}, чтобы сделать резервуар круглым.**", - "retry_circle": "Вы не щелкнули кнопку «Скруглить». Попробуйте снова.", + "retry_circle": "Вы не щёлкнули кнопку «Скруглить». Попробуйте снова.", "play": "Замечательно! Потренируйтесь обводить ещё несколько зданий, и попробуйте другие команды в меню редактирования. **Нажмите '{next}' когда будете готовы перейти к следующей главе.**" }, "startediting": { @@ -941,7 +1120,7 @@ "space": "Пробел" }, "gesture": { - "drag": "drag" + "drag": "перетаскивание" }, "or": "-или-", "browsing": { @@ -960,8 +1139,8 @@ }, "display_options": { "title": "Настройки отображения", - "background": "Показать настройки фоновых слоёв", - "background_switch": "Вернуть предыдущий фоновый слой", + "background": "Показать настройки фонового изображения", + "background_switch": "Вернуть предыдущее фоновое изображение", "map_data": "Показать настройки данных карты", "fullscreen": "Перейти в полноэкранный режим", "wireframe": "Переключить режим заливки полигонов", @@ -971,7 +1150,8 @@ "title": "Выделение объектов", "select_one": "Выделить отдельный объект", "select_multi": "Выделить несколько объектов", - "lasso": "Нарисовать область для выделения объектов" + "lasso": "Нарисовать область для выделения объектов", + "search": "Найти объекты, соответствующие поисковому запросу" }, "with_selected": { "title": "Для выделенных объектов", @@ -992,22 +1172,22 @@ "title": "Рисование", "add_point": "Режим “Нанести точку”", "add_line": "Режим “Нанести линию”", - "add_area": "Режим “Нанести область”", + "add_area": "Режим “Добавить полигон”", "place_point": "Добавить точку", "disable_snap": "При удержании отключает режим прилипания точек", - "stop_line": "Завершить линию или область" + "stop_line": "Завершить линию или полигон" }, "operations": { "title": "Действия", - "continue_line": "Продолжить линию", + "continue_line": "Продолжить линию в выделенной точке", "merge": "Объединить выделенные объекты", "disconnect": "Отсоединить объект в выделенной точке", - "split": "Разделить линию в выделенной точке", + "split": "Разрезать линию в выделенной точке", "reverse": "Изменить направление линии", "move": "Переместить выделенные объекты", "rotate": "Повернуть выделенные объекты", - "orthogonalize": "Выпрямить линию / Сделать область прямоугольной", - "circularize": "Сделать замкнутую линию или область кругом", + "orthogonalize": "Выпрямить линию / Спрямить углы полигону", + "circularize": "Сделать замкнутую линию или полигон кругом", "reflect_long": "Отразить объекты по их длинной оси. ", "reflect_short": "Отразить объекты по их короткой оси. ", "delete": "Удалить выделенные объекты" @@ -1026,13 +1206,35 @@ "info": { "title": "Информация", "all": "Переключить все панели информации", - "background": "Переключить панель фона", + "background": "Переключить панель фоновых изображений", "history": "Переключить панель истории", "location": "Переключить панель расположения", "measurement": "Переключить панель измерений" } } }, + "units": { + "feet": "{quantity} фт", + "miles": "{quantity} ми", + "square_feet": "{quantity} кв фт", + "square_miles": "{quantity} кв ми", + "acres": "{quantity} ак", + "meters": "{quantity} м", + "kilometers": "{quantity} км", + "square_meters": "{quantity} м²", + "square_kilometers": "{quantity} км²", + "hectares": "{quantity} га", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "С", + "south": "Ю", + "east": "В", + "west": "З", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -1063,7 +1265,7 @@ "name": "Железнодорожные объекты" }, "category-restriction": { - "name": "Объекты запретов" + "name": "Запреты" }, "category-road": { "name": "Дорожные объекты" @@ -1072,10 +1274,10 @@ "name": "Объекты маршрутов" }, "category-water-area": { - "name": "Водные объекты" + "name": "Водные площадные объекты" }, "category-water-line": { - "name": "Водные объекты" + "name": "Водные линейные объекты" } }, "fields": { @@ -1140,7 +1342,7 @@ "floor": "Этаж", "hamlet": "Деревушка", "housename": "Имя дома (британская адресация)", - "housenumber": "Номер", + "housenumber": "123", "housenumber!jp": "Дом №/Участок №", "neighbourhood": "Микрорайон", "neighbourhood!jp": "Тёмэ/Адза/Коадза", @@ -1201,6 +1403,9 @@ "aeroway": { "label": "Тип" }, + "agrarian": { + "label": "Товары" + }, "amenity": { "label": "Тип" }, @@ -1223,7 +1428,7 @@ "label": "Тип произведения искусства" }, "atm": { - "label": "Банкомат АТМ" + "label": "Банкомат" }, "backrest": { "label": "Спинка" @@ -1278,6 +1483,9 @@ "brand": { "label": "Бренд" }, + "brewery": { + "label": "Бренд пивоварни" + }, "bridge": { "label": "Тип моста", "placeholder": "По умолчанию" @@ -1337,7 +1545,7 @@ "label": "Тип" }, "contact/webcam": { - "label": "Адрес камеры", + "label": "URL-адрес камеры", "placeholder": "http://example.com/" }, "content": { @@ -1355,6 +1563,7 @@ "crane/type": { "label": "Тип крана", "options": { + "floor-mounted_crane": "Закреплённый к полу кран", "portal_crane": "Портальный кран" } }, @@ -1378,34 +1587,34 @@ "label": "Сеть" }, "cycleway": { - "label": "Велосипедные дорожки", + "label": "Велосипедные полосы", "options": { "lane": { - "description": "Велосипедная дорожка отделена от проезжей части разметкой", - "title": "Обычная велосипедная дорожка" + "description": "Велосипедная полоса, отделённая от проезжей части разметкой", + "title": "Обычная велосипедная полоса" }, "none": { - "description": "Нет велосипедной дорожки", + "description": "Нет велосипедной полосы", "title": "Ничего" }, "opposite": { - "description": "Велосипедная дорожка, идущая в обоих направлениях по улице с односторонним движением", - "title": "Велосипедная дорожка, идущая в направлении, противоположном автомобильному, по улице с односторонним движением" + "description": "Велосипедная полоса, идущая в обоих направлениях по улице с односторонним движением", + "title": "Велосипедная полоса, идущая в направлении, противоположном автомобильному, по улице с односторонним движением" }, "opposite_lane": { - "description": "Велосипедная дорожка идущая в направлении, противоположном автомобильному движению", - "title": "Велосипедная дорожка, идущая в направлении, противоположном автомобильному движению" + "description": "Велосипедная полоса, идущая в направлении, противоположном автомобильному движению", + "title": "Велосипедная полоса, идущая в направлении, противоположном автомобильному движению" }, "share_busway": { - "description": "Велосипедная дорожка совмещена с выделенной полосой для общественного транспорта", - "title": "Велосипедная полоса совмещена с автобусной" + "description": "Велосипедная полоса, совмещённая с выделенной полосой для общественного транспорта", + "title": "Велосипедная полоса, совмещённая с выделенной полосой для общественного транспорта" }, "shared_lane": { - "description": "Велосипедная дорожка, не отделённая от проезжей части", - "title": "Велосипедная дорожка, совмещённая с автомобильным трафиком" + "description": "Велосипедная полоса, не отделённая от проезжей части", + "title": "Велосипедная полоса, совмещённая с автомобильным трафиком" }, "track": { - "description": "Велосипедная дорожка, отделённая от автомобильного трафика физическим барьером", + "description": "Велосипедная полоса, отделённая от автомобильного трафика физическим барьером", "title": "Велосипедный дорожка" } }, @@ -1431,11 +1640,55 @@ "label": "Описание" }, "devices": { + "label": "Устройства", "placeholder": "1, 2, 3…" }, "diaper": { "label": "Доступно пеленание" }, + "direction": { + "label": "Направление (градусы по часовой)", + "placeholder": "45, 90, 180, 270" + }, + "direction_cardinal": { + "label": "Направление", + "options": { + "E": "Восток", + "ENE": "Востоко-северо-восток", + "ESE": "Востоко-юго-восток", + "N": "Север", + "NE": "Северо-восток", + "NNE": "Северо-северо-восток", + "NNW": "Северо-северо-запад", + "NW": "Северо-запад", + "S": "Юг", + "SE": "Юго-восток", + "SSE": "Юго-юго-восток", + "SSW": "Юго-юго-запад", + "SW": "Юго-запад", + "W": "Запад", + "WNW": "Западо-северо-запад", + "WSW": "Западо-юго-запад" + } + }, + "direction_clock": { + "label": "Направление", + "options": { + "anticlockwise": "Против часовой", + "clockwise": "По часовой" + } + }, + "direction_vertex": { + "label": "Направление", + "options": { + "backward": "Обратное", + "both": "Оба / Все", + "forward": "Прямое" + } + }, + "dispensing": { + "label": "Лекарства по рецепту" + }, "display": { "label": "Циферблат" }, @@ -1565,7 +1818,7 @@ "label": "Поручни" }, "hashtags": { - "label": "Предлагаемые хештеги", + "label": "Предлагаемые хэштеги", "placeholder": "#пример" }, "healthcare": { @@ -1637,6 +1890,9 @@ "kerb": { "label": "Бордюр" }, + "label": { + "label": "Метка" + }, "lamp_type": { "label": "Тип" }, @@ -1735,15 +1991,18 @@ "memorial": { "label": "Тип памятника" }, + "monitoring_multi": { + "label": "Наблюдение" + }, "mtb/scale": { "label": "Сложность трассы для горного велосипеда", "options": { "0": "0: Укатанный гравий/утоптанная земля, без препятствий, широкие повороты", "1": "1. Местами сыпучее покрытие, небольшие препятствия, широкие повороты", - "2": "2. Много сыпучки , большие препятствия, легкие крутые повороты", + "2": "2. Много сыпучего покрытия, большие препятствия, легкие крутые повороты", "3": "3. Скользкая поверхность, большие препятствия, узкие крутые повороты", - "4": "4. Сплошная сыпучка или валуны, опасные крутые повороты", - "5": "5. Максимальная сложность, каменные поля, оползни", + "4": "4. Сыпучая поверхность или валуны, опасные крутые повороты", + "5": "5. Максимальная сложность, поля камней, оползни", "6": "6. Не пригодно для езды кроме самых лучших маунтинбайкеров" }, "placeholder": "0, 1, 2, 3…" @@ -1823,7 +2082,9 @@ "oneway": { "label": "Одностороннее движение", "options": { + "alternating": "Часто меняется", "no": "Нет", + "reversible": "Меняющееся", "undefined": "Предполагается «нет»", "yes": "Да" } @@ -1831,7 +2092,9 @@ "oneway_yes": { "label": "Одностороннее движение", "options": { + "alternating": "Часто меняется", "no": "Нет", + "reversible": "Меняющееся", "undefined": "Предполагается «да»", "yes": "Да" } @@ -1882,7 +2145,7 @@ "easy": "Простейшая (зелёный круг)", "expert": "Для экспертов (двойной чёрный ромб)", "extreme": "Экстремальный (нужно снаряжение для скалолазания)", - "freeride": "Фрирайд", + "freeride": "Фрирайд (вне трасс)", "intermediate": "Средняя (синий квадрат)", "novice": "Для начинающих (учебная)" }, @@ -1923,6 +2186,9 @@ "label": "Выходная электрическая мощность", "placeholder": "500 МВт, 1000 МВт, 2000 МВт ..." }, + "playground/baby": { + "label": "Сидение для младенцев" + }, "playground/max_age": { "label": "Максимальный возраст" }, @@ -1947,12 +2213,30 @@ "railway": { "label": "Тип" }, + "railway/position": { + "label": "Положение километрового столба", + "placeholder": "Расстояние с точностью до одного знака (123.4)" + }, + "railway/signal/direction": { + "label": "Направление", + "options": { + "backward": "Обратное", + "both": "Оба / Все", + "forward": "Прямое" + } + }, "rating": { "label": "Трансформаторная мощность" }, "recycling_accepts": { "label": "Принимает" }, + "ref": { + "label": "Номер / идентификатор" + }, + "ref/isil": { + "label": "ISIL код" + }, "ref_aeroway_gate": { "label": "Номер ворот" }, @@ -1973,11 +2257,16 @@ "label": "Номер маршрута" }, "ref_runway": { - "label": "Номер полосы" + "label": "Номер полосы", + "placeholder": "например 01L/19R" }, "ref_stop_position": { "label": "Номер остановки" }, + "ref_taxiway": { + "label": "Наименование рулёжной дорожки", + "placeholder": "например А5" + }, "relation": { "label": "Тип отношения" }, @@ -2045,7 +2334,7 @@ } }, "service_times": { - "label": "Время службы" + "label": "Время обслуживания" }, "shelter": { "label": "Укрытие от непогоды" @@ -2137,7 +2426,8 @@ "label": "Тип тоннеля", "options": { "tunnel": "Туннель, арка в доме" - } + }, + "placeholder": "Неизвестный" }, "studio": { "label": "Тип" @@ -2176,7 +2466,8 @@ "options": { "circuit_breaker": "Автоматический выключатель", "disconnector": "Разъединитель", - "earthing": "Заземление" + "earthing": "Заземление", + "mechanical": "Механическое" } }, "tactile_paving": { @@ -2239,6 +2530,14 @@ "traffic_signals": { "label": "Тип" }, + "traffic_signals/direction": { + "label": "Направление", + "options": { + "backward": "Назад", + "both": "В обе/во все стороны", + "forward": "Вперёд" + } + }, "trail_visibility": { "label": "Видимость пути", "options": { @@ -2294,7 +2593,8 @@ "label": "Тип вулкана", "options": { "scoria": "Шлаковый", - "shield": "Щитовидный" + "shield": "Щитовидный", + "stratovolcano": "Стратовулкан" } }, "voltage": { @@ -2331,6 +2631,9 @@ "wheelchair": { "label": "Доступность для инвалидных колясок" }, + "wholesale": { + "label": "Вид продукции" + }, "width": { "label": "Ширина (метры)" }, @@ -2344,7 +2647,10 @@ "windings/configuration": { "label": "Конфигурация обмоток", "options": { + "delta": "\"Треугольник\"", "open": "Открытый", + "open-delta": "\"Незамкнутый треугольник\"", + "star": "\"Звезда\"", "zigzag": "Зиг Заг" } } @@ -2352,11 +2658,11 @@ "presets": { "address": { "name": "Адрес", - "terms": "адрес" + "terms": "адрес, адресная информация, адреска" }, "advertising/billboard": { "name": "Рекламный щит", - "terms": "реклама,объявление,щит,бігборд,борд,информация" + "terms": "реклама,объявление,щит,билборд,информация,транспорант,постер,растяжка" }, "aerialway": { "name": "Подъёмник" @@ -2409,7 +2715,7 @@ }, "aeroway/aerodrome": { "name": "Аэропорт", - "terms": "Аэропорт" + "terms": "аэропорт, аэровокзал" }, "aeroway/apron": { "name": "Перрон", @@ -2444,15 +2750,15 @@ }, "amenity/animal_boarding": { "name": "Передержка животных", - "terms": "передержка домашних животных, зоогостиница" + "terms": "содержание домашних животных, зоогостиница, гостиница для животных, присмотр за животными" }, "amenity/animal_breeding": { "name": "Питомник", - "terms": "Учреждение по выращиванию животных" + "terms": "выращивание животных" }, "amenity/animal_shelter": { "name": "Приют для животных", - "terms": "Приют для безнадзорных животных" + "terms": "приют для животных, зооприют" }, "amenity/arts_centre": { "name": "Центр Искусств", @@ -2467,7 +2773,7 @@ "terms": "Банк" }, "amenity/bar": { - "name": "Бар / рюмочная", + "name": "Бар", "terms": "Бар, рюмочная" }, "amenity/bbq": { @@ -2476,7 +2782,7 @@ }, "amenity/bench": { "name": "Скамейка", - "terms": "Скамейка, лавочка, лавка" + "terms": "Скамейка, лавочка, лавка,скамья,стул" }, "amenity/bicycle_parking": { "name": "Велопарковка", @@ -2492,7 +2798,7 @@ }, "amenity/biergarten": { "name": "Пивной сад (Бавария)", - "terms": "ресторан-пивоварня" + "terms": "ресторан-пивоварня, пивной сад,биргарден,биргартен" }, "amenity/boat_rental": { "name": "Аренда Лодок", @@ -2500,12 +2806,18 @@ }, "amenity/bureau_de_change": { "name": "Пункт обмена валюты", - "terms": "валюта, обмен, деньги, курс, банк, пункт, доллар, евро, рубль, меняла. кантор" + "terms": "валюта, обмен, деньги, курс, банк, пункт, доллар, евро, рубль" + }, + "amenity/bus_station": { + "name": "Автобусная станция/терминал" }, "amenity/cafe": { "name": "Кафе", "terms": "Кафе" }, + "amenity/car_pooling": { + "name": "Карпулинг" + }, "amenity/car_rental": { "name": "Аренда автомобилей", "terms": "Аренда автомобилей, автопрокат" @@ -2520,11 +2832,11 @@ }, "amenity/casino": { "name": "Казино", - "terms": "казино" + "terms": "казино, рулетка" }, "amenity/charging_station": { - "name": "Станция для зарядки", - "terms": "станция зарядки, станция для подзарядки, станция подзарядки, станция для зарядки электромобилей, станция зарядки электромобилей, станция для подзарядки электромобилей, станция подзарядки электромобилей, " + "name": "Станция зарядки", + "terms": "станция зарядки, станция для подзарядки, станция подзарядки, станция для зарядки электромобилей, станция зарядки электромобилей, станция для подзарядки электромобилей, станция подзарядки электромобилей, зарядная станция" }, "amenity/childcare": { "name": "Детская комната", @@ -2535,8 +2847,16 @@ "terms": "кинотеатр, кино, кинозал, киноплекс, моноэкран, миниплекс, мультиплекс, мегаплекс" }, "amenity/clinic": { - "name": "Поликлиника", - "terms": "клиника, поликлиника, больница" + "name": "Клиника", + "terms": "клиника, поликлиника, медицина, лечение, срочная помощь" + }, + "amenity/clinic/abortion": { + "name": "Клиника прерывания беременности", + "terms": "прерывание беременности, аборт" + }, + "amenity/clinic/fertility": { + "name": "Клиника планирования семьи", + "terms": "центр планирования семьи, клиника планирования семьи, репродуктивная клиника, клиника лечения бесплодия" }, "amenity/clock": { "name": "Часы", @@ -2570,16 +2890,16 @@ "terms": "стоматолог, дантист, зубной врач" }, "amenity/doctors": { - "name": "Врачи", - "terms": "врач, доктор,фельдшер,медик" + "name": "Кабинет врача", + "terms": "врач, доктор,фельдшер,медик, небольшая клиника, клиника" }, "amenity/dojo": { "name": "Додзё / Школа боевых искусств", "terms": "Додзё, Школа боевых искусств, Боевые искусства, Школа" }, "amenity/drinking_water": { - "name": "Кранчик с питьевой водой", - "terms": "Питьевая вода" + "name": "Питьевая вода", + "terms": "Питьевая вода, колонка, кран, колодец, ключ, родник" }, "amenity/driving_school": { "name": "Автошкола", @@ -2587,11 +2907,14 @@ }, "amenity/embassy": { "name": "Посольство", - "terms": "посольство" + "terms": "посольство, консульство" }, "amenity/fast_food": { "name": "Фаст-фуд", - "terms": "фастфуд, фаст-фуд, быстрое питание, ресторан быстрого питания, столовая" + "terms": "фастфуд, фаст-фуд, быстрое питание, ресторан быстрого питания, столовая, бистро" + }, + "amenity/ferry_terminal": { + "name": "Пристань/терминал для парома" }, "amenity/fire_station": { "name": "Пожарная часть", @@ -2611,7 +2934,7 @@ }, "amenity/grave_yard": { "name": "Небольшие захоронения при местах служения (церквях и т.п.)", - "terms": "кладбище, кладбище животных" + "terms": "кладбище, кладбище животных, погост, могильник" }, "amenity/grit_bin": { "name": "Ящик с песком и солью (зимой)", @@ -2622,11 +2945,12 @@ "terms": "больница, госпиталь, стационар" }, "amenity/hunting_stand": { - "name": "Охотничья вышка" + "name": "Охотничья вышка", + "terms": "засидка, охотничья вышка" }, "amenity/ice_cream": { - "name": "Кафе-мороженое", - "terms": "мороженое, замороженный йогурт" + "name": "Прилавок с мороженным", + "terms": "мороженое, замороженный йогурт, прилавок" }, "amenity/internet_cafe": { "name": "Интернет-кафе", @@ -2640,6 +2964,9 @@ "name": "Библиотека", "terms": "библиотека" }, + "amenity/love_hotel": { + "terms": "отель любви, отель на одну ночь, отель, на ночь, суточно, посуточно, ночь" + }, "amenity/marketplace": { "name": "Рынок", "terms": "Рынок" @@ -2672,7 +2999,8 @@ "terms": "парковочное место, отдельное парковочное место на стоянке" }, "amenity/pavilion": { - "name": "Павильон" + "name": "Павильон", + "terms": "павильон, киоск" }, "amenity/pharmacy": { "name": "Аптека", @@ -2690,6 +3018,9 @@ "name": "Церковь", "terms": "храм, часовня, молельня, дом божий, капелла, церковь, кафедрарий, место поклонения, культовое сооружение, святое место, мечеть, собор, синагога" }, + "amenity/place_of_worship/hindu": { + "name": "Индуистский храм" + }, "amenity/place_of_worship/jewish": { "name": "Синагога", "terms": "синагога" @@ -2698,6 +3029,16 @@ "name": "Мечеть", "terms": "мечеть" }, + "amenity/place_of_worship/shinto": { + "name": "Дзиндзя" + }, + "amenity/place_of_worship/sikh": { + "name": "Гурдвара" + }, + "amenity/place_of_worship/taoist": { + "name": "Даосский храм", + "terms": "даосский храм" + }, "amenity/planetarium": { "name": "Планетарий", "terms": "астрономия, обсерватория, планетарий" @@ -2719,8 +3060,8 @@ "terms": "тюрьма, следственный изолятор, исправительная колония, СИЗО" }, "amenity/pub": { - "name": "Паб / ресторан", - "terms": "Паб" + "name": "Паб", + "terms": "Паб, пивно ресторан, гастропаб, ресторан, пиво, публичный дом" }, "amenity/public_bath": { "name": "Общественная баня", @@ -2734,6 +3075,10 @@ "name": "Лесничество", "terms": "лес, лесник, лесничество" }, + "amenity/recycling": { + "name": "Контейнер для приёма вторично перерабатываемых отходов", + "terms": "отдоходы, мусор, вторичная переработка, вторичное сырьё, вторсырьё" + }, "amenity/recycling_centre": { "name": "Пункт приёма отходов для переработки", "terms": "пункт приёма вторсырья, переработка, вторичное сырьё" @@ -2746,16 +3091,28 @@ "terms": "Ресторан" }, "amenity/sanitary_dump_station": { - "name": "Ассенизационная сливная станция" + "name": "Слив для туалета трейлеров", + "terms": "слив для туалета, утилизация туалета трейлера" }, "amenity/school": { "name": "Школа", "terms": "школа, лицей, гимназия, СОШ" }, + "amenity/scrapyard": { + "name": "Склад металлолома/свалка" + }, "amenity/shelter": { "name": "Укрытие от непогоды", "terms": "Укрытие, Навес, Защита от непогоды, Беседка" }, + "amenity/shower": { + "name": "Душ", + "terms": "душ, душевая кабина, душевая кабинка, душевая" + }, + "amenity/smoking_area": { + "name": "Место для курения", + "terms": "место для курения, зона для курения" + }, "amenity/social_facility": { "name": "Социальное учреждение", "terms": "соцуслуги, услуги, организация, учреждение, удобства, социальные, дом престарелых, дом инвалидов, детдом, детский дом" @@ -2773,14 +3130,15 @@ "terms": "жильё, приют, бездомный, нужда, помощь" }, "amenity/social_facility/nursing_home": { - "name": "Дом престарелых (устаревший тег)" + "name": "Дом престарелых (устаревший тег)", + "terms": "дом престарелых, дом инвалидов" }, "amenity/studio": { "name": "Студия", "terms": "студия, киностудия, художественная студия, радиостудия" }, "amenity/swimming_pool": { - "name": "Бассейн" + "name": "Бассейн (устаревший тег)" }, "amenity/taxi": { "name": "Стоянка такси", @@ -2811,37 +3169,41 @@ "terms": "Автомат по продаже товаров" }, "amenity/vending_machine/cigarettes": { - "name": "Автомат по продаже сигарет.", + "name": "Автомат по продаже сигарет", "terms": "Автомат по продаже сигарет" }, "amenity/vending_machine/condoms": { - "name": "Автомат по продаже презервативов.", + "name": "Автомат по продаже презервативов", "terms": "Автомат по продаже презервативов" }, "amenity/vending_machine/drinks": { "name": "Автомат по продаже напитков", - "terms": "газировка, напитки" + "terms": "газировка, напитки, вода" }, "amenity/vending_machine/excrement_bags": { "name": "Автомат по продаже мешков для экскрементов", "terms": "экскременты, животные" }, + "amenity/vending_machine/feminine_hygiene": { + "name": "Автомат для продажи средств женской гигиены" + }, "amenity/vending_machine/news_papers": { - "name": "Автомат по продаже газет" + "name": "Автомат по продаже газет (ошибочный тег)" }, "amenity/vending_machine/newspapers": { "name": "Автомат по продаже газет", "terms": "Автомат по продаже газет,Автомат по продаже прессы,Автоматический газетный киоск" }, "amenity/vending_machine/parcel_pickup_dropoff": { - "name": "Автомат для входящих почтовых посылок" + "name": "Автомат для входящих почтовых посылок", + "terms": "автомат посылок, почтомат, почтовый автомат" }, "amenity/vending_machine/parking_tickets": { "name": "Автомат по продаже парковочных билетов", "terms": "паркомат" }, "amenity/vending_machine/public_transport_tickets": { - "name": "Автомат по продаже транзитных билетов" + "name": "Автомат по продаже проездных билетов" }, "amenity/vending_machine/sweets": { "name": "Автомат по продаже батончиков", @@ -2859,7 +3221,7 @@ "terms": "мусорная корзина, урна, мусорка" }, "amenity/waste_disposal": { - "name": "Мусорные баки", + "name": "Мусорный бак", "terms": "мусор, мусорная площадка, помойка" }, "amenity/waste_transfer_station": { @@ -2867,20 +3229,24 @@ "terms": "КНС" }, "amenity/water_point": { - "name": "Резервуар с питьевой водой" + "name": "Питьевая вода для трейлера", + "terms": "резервуар для трейлера, питьевая вода для трейлера, вода для трейлера" }, "amenity/watering_place": { "name": "Водопой для животных", "terms": "Поилка" }, "area": { - "name": "Область", - "terms": "Область" + "name": "Полигон", + "terms": "Полигон, область" }, "area/highway": { "name": "Дорожное покрытие", "terms": "дорожное покрытие" }, + "attraction/amusement_ride": { + "name": "Аттракцион в парке развлечений" + }, "attraction/animal": { "name": "Животные", "terms": "зоопарк, лев, тигр, обезьяна" @@ -2900,12 +3266,28 @@ "name": "Карусель", "terms": "Карусель, Колесо обозрения, Аттракционы" }, + "attraction/dark_ride": { + "name": "Комната страха" + }, + "attraction/drop_tower": { + "name": "Аттракцион \"Свободное падение\"" + }, "attraction/pirate_ship": { "name": "Пиратский корабль" }, + "attraction/river_rafting": { + "name": "Сплав по реке" + }, + "attraction/roller_coaster": { + "name": "Американские горки" + }, "attraction/train": { "name": "Аттракцион \"туристический поезд\"" }, + "attraction/water_slide": { + "name": "Водная горка", + "terms": "водная горка" + }, "barrier": { "name": "Преграда", "terms": "препятствие, преграда, барьер, заграждение" @@ -2915,8 +3297,8 @@ "terms": "Блок, преграда, барьер" }, "barrier/bollard": { - "name": "Барьер", - "terms": "Столб, столбик, преграда, барьер, выдвижная преграда, съемный барьер" + "name": "Боллард (столбик, сфера, тумба)", + "terms": "Столб, столбик, преграда, барьер, выдвижная преграда, съемный барьер, сфера, полусфера, полу-сфера, боллард, тумба" }, "barrier/border_control": { "name": "Пограничный пропускной пункт", @@ -2939,7 +3321,7 @@ "terms": "Траншея" }, "barrier/entrance": { - "name": "Беспрепятственный проход / лаз" + "name": "Проход в преграде / вход" }, "barrier/fence": { "name": "Забор", @@ -2953,6 +3335,10 @@ "name": "Живая изгородь", "terms": "Живая изгородь, Зелёное ограждение, барьер" }, + "barrier/kerb": { + "name": "Бордюр", + "terms": "бордюр, поребрик" + }, "barrier/kissing_gate": { "name": "Преграда для животных", "terms": "Ворота с защитой от животных, Преграда для животных" @@ -2993,6 +3379,13 @@ "name": "Амбар", "terms": "амбар, хранилище, склад, зерно, лабаз" }, + "building/boathouse": { + "name": "Здание для хранения лодок", + "terms": "лодочный док, лодочный сарай, навес для лодок" + }, + "building/bungalow": { + "name": "Бунгало" + }, "building/bunker": { "name": "Бункер" }, @@ -3012,6 +3405,9 @@ "name": "Церковь", "terms": "храм, церковь" }, + "building/civic": { + "name": "Общественное здание" + }, "building/college": { "name": "Здание колледжа", "terms": "пту, техникум, колледж" @@ -3025,22 +3421,23 @@ "terms": "стройка, строительство, сооружение" }, "building/detached": { - "name": "Частный жилой дом" + "name": "Отдельно стоящий частный жилой дом", + "terms": "Частный дом, отдельный дом" }, "building/dormitory": { "name": "Студенческое общежитие", "terms": "Общага, общежитие" }, "building/entrance": { - "name": "Вход/выход" + "name": "Вход/выход (устаревший тег)" }, "building/garage": { - "name": "Один гараж", + "name": "Гараж", "terms": "гараж, ракушка" }, "building/garages": { - "name": "Здания гаражей", - "terms": "Гаражи, гараж, ракушки" + "name": "Гаражи", + "terms": "Гаражи, ракушки" }, "building/greenhouse": { "name": "Теплица", @@ -3070,6 +3467,10 @@ "name": "Здание детского сада / ясель", "terms": "детский сад, дошкольный сад, ясли" }, + "building/mosque": { + "name": "Здание мечети", + "terms": "Здание мечети, мечеть" + }, "building/public": { "name": "Общественное здание", "terms": "общественный центр, здание, клуб, общество" @@ -3086,12 +3487,21 @@ "name": "Здание-крыша / козырёк", "terms": "крыша, кровля, козырёк, укрытие" }, + "building/ruins": { + "name": "Руины здания", + "terms": "Руины здания, разрушенное здание" + }, "building/school": { "name": "Здание школы", "terms": "Здание школы, Школа" }, "building/semidetached_house": { - "name": "Сблокированный дом" + "name": "Сблокированный дом (устаревший тег)", + "terms": "сблокированный дом, парный дом, спаренный дом, сдвоенный дом" + }, + "building/service": { + "name": "Служебное здание", + "terms": "сарай, будка" }, "building/shed": { "name": "Сарай", @@ -3101,17 +3511,27 @@ "name": "Конюшня", "terms": "Конюшня, Хлев, Стойло" }, + "building/stadium": { + "name": "Здание стадиона", + "terms": "Здание стадиона, стадион" + }, "building/static_caravan": { "name": "Стационарный дом на колёсах", "terms": "дом на колёсах" }, + "building/temple": { + "name": "Здание храма" + }, "building/terrace": { - "name": "Блокированные дома", + "name": "Ряд из примыкающих домов", "terms": "рядный дом" }, "building/train_station": { "name": "Железнодорожный вокзал" }, + "building/transportation": { + "name": "Здание транспортного терминала/вокзал" + }, "building/university": { "name": "Здание университета, института ", "terms": "Здание университета, универ, здание института, институт, вуз, здание вуза" @@ -3120,8 +3540,13 @@ "name": "Склад", "terms": " склад, складское помещение, товарный склад, пакгауз, хранилище" }, + "camp_site/camp_pitch": { + "name": "Поляна для кемпинга", + "terms": "тент, палатка, кемпинг" + }, "club": { - "name": "Клуб" + "name": "Клуб", + "terms": "Клуб по интересам, фан-клуб, кружок" }, "craft": { "name": "Мастерская", @@ -3132,11 +3557,11 @@ "terms": "корзинщик" }, "craft/beekeeper": { - "name": "Мастерская пчеловода", + "name": "Пасечник", "terms": "пчеловод, пасечник" }, "craft/blacksmith": { - "name": "Кузница", + "name": "Кузнец", "terms": "ковка, кузнец, кузница, кузня" }, "craft/boatbuilder": { @@ -3148,11 +3573,11 @@ "terms": "переплётчик" }, "craft/brewery": { - "name": "Пивоваренный завод", + "name": "Небольшая независимая пивоварня", "terms": "Пивоварня" }, "craft/carpenter": { - "name": "Мастерская плотника", + "name": "Плотник", "terms": "плотник, столяр" }, "craft/carpet_layer": { @@ -3163,12 +3588,20 @@ "name": "Организация банкетов", "terms": "поставки, еда, банкет, обслуживание, кейтеринг " }, + "craft/chimney_sweeper": { + "name": "Трубочист", + "terms": "трубочист" + }, "craft/clockmaker": { - "name": "Мастерская часовщика", + "name": "Часовщик", "terms": "часовщик" }, "craft/confectionery": { - "name": "Кондитерская" + "name": "Кондитер", + "terms": "изготовление конфет, кондитер" + }, + "craft/distillery": { + "name": "Завод крепких алкогольных напитков" }, "craft/dressmaker": { "name": "Портной", @@ -3179,7 +3612,8 @@ "terms": "электрик" }, "craft/electronics_repair": { - "name": "Мастерская по ремонту электроники" + "name": "Ремонт электроники", + "terms": "ремонт компьютеров, ремонт телефонов, ремонт ноутбуков" }, "craft/gardener": { "name": "Ландшафтный дизайнер или садовник", @@ -3198,21 +3632,21 @@ "terms": "отопление, вентиляция, кондиционирование, воздух" }, "craft/insulator": { - "name": "Утеплитель", + "name": "Мастерская теплоизоляции", "terms": "утеплитель, изоляция, здание, тепло" }, "craft/jeweler": { - "name": "Мастерская ювелира" + "name": "Ювелир" }, "craft/key_cutter": { - "name": "Изготовление ключей", - "terms": "ключ, изготовление, мастер" + "name": "Изготовление дубликатов ключей", + "terms": "ключ, изготовление, дубликат" }, "craft/locksmith": { - "name": "Изготовление замков и ключе" + "name": "Мастер по работе с замками и ключами" }, "craft/metal_construction": { - "name": "Металлоконструкции", + "name": "Металлоработы", "terms": "металл, строительство, конструкции" }, "craft/optician": { @@ -3223,11 +3657,11 @@ "terms": "маляр, художник, краска, декоратор" }, "craft/photographer": { - "name": "Мастерская фотографа", + "name": "Фотограф", "terms": "фотограф, фото оператор" }, "craft/photographic_laboratory": { - "name": "Печать фото / проявка", + "name": "Фотолаборатория", "terms": "фото, заказ, печать, свадьба, событие, документы, проявка" }, "craft/plasterer": { @@ -3266,9 +3700,13 @@ "name": "Изготовление или продажа строительных лесов", "terms": "такелаж, груз, строительные леса, блок, трос" }, + "craft/sculptor": { + "name": "Скульптор", + "terms": "скульптор, ваятель" + }, "craft/shoemaker": { - "name": "Мастерская сапожника", - "terms": "сапожник, башмачник" + "name": "Сапожник", + "terms": "сапожник, башмачник, мастерская сапожника, ремонт обуви" }, "craft/stonemason": { "name": "Каменщик", @@ -3290,7 +3728,7 @@ "terms": "драпировщики, обойщик, мебель" }, "craft/watchmaker": { - "name": "Мастерская часовщика", + "name": "Часовщик", "terms": "часовщик, ремонт часов" }, "craft/window_construction": { @@ -3306,7 +3744,7 @@ "terms": "насыпь" }, "emergency/ambulance_station": { - "name": "Станция Скорой Помощи", + "name": "Станция скорой помощи", "terms": "Пункт Скорой Помощи, Амбулатория, Пункт Первой Помощи" }, "emergency/defibrillator": { @@ -3338,6 +3776,9 @@ "emergency/private": { "name": "Доступ экстренных служб по пропускам" }, + "emergency/water_tank": { + "name": "Пожарный бассейн/резервуар" + }, "emergency/yes": { "name": "Доступ экстренных служб разрешён" }, @@ -3346,16 +3787,22 @@ "terms": "вход, выход" }, "footway/crossing": { - "name": "Пересечение улиц", + "name": "Пешеходный переход (линия)", "terms": "перекресток, переезд, пересечение, скрещение" }, + "footway/crossing-raised": { + "name": "Приподнятый пешеходный переход (линия)" + }, "footway/crosswalk": { - "name": "Пешеходный переход", + "name": "Пешеходный переход (зебра, британский тег)", "terms": "переход, пешеходный переход, зебра, светофор" }, + "footway/crosswalk-raised": { + "name": "Приподнятый пешеходный переход (зебра, британский тег)" + }, "footway/sidewalk": { "name": "Тротуар", - "terms": "Тротуар, Тротуарчик, Пешеходная обочина" + "terms": "Тротуар" }, "ford": { "name": "Брод", @@ -3398,7 +3845,16 @@ "name": "Водная преграда" }, "healthcare": { - "name": "Здравоохранение" + "name": "Медицинские учреждения" + }, + "healthcare/alternative": { + "name": "Альтернативная медицина" + }, + "healthcare/alternative/chiropractic": { + "name": "Хиропрактика" + }, + "healthcare/audiologist": { + "name": "Аудиолог" }, "healthcare/birthing_center": { "name": "Роддом", @@ -3410,6 +3866,30 @@ "healthcare/hospice": { "name": "Хоспис" }, + "healthcare/midwife": { + "name": "Акушерство" + }, + "healthcare/occupational_therapist": { + "name": "Эрготерапист" + }, + "healthcare/optometrist": { + "name": "Оптометрист" + }, + "healthcare/physiotherapist": { + "name": "Физиотерапевт" + }, + "healthcare/podiatrist": { + "name": "Подиатр" + }, + "healthcare/psychotherapist": { + "name": "Психотерапевт" + }, + "healthcare/rehabilitation": { + "name": "Реабилитационный центр" + }, + "healthcare/speech_therapist": { + "name": "Логопед" + }, "highway": { "name": "Дорога" }, @@ -3417,21 +3897,34 @@ "name": "Конная тропа", "terms": "Конная тропа, Дорога для верховой езды, Дорога для конной езды" }, + "highway/bus_guideway": { + "name": "Направляемый автобус", + "terms": "шпурбус" + }, + "highway/bus_stop": { + "name": "Автобусная платформа" + }, "highway/corridor": { "name": "Внутренний коридор", "terms": "проход, коридор" }, "highway/crossing": { - "name": "Пересечение улиц", + "name": "Пешеходный переход", "terms": "перекресток, переезд, пересечение, скрещение" }, + "highway/crossing-raised": { + "name": "Приподнятый пешеходный переход" + }, "highway/crosswalk": { - "name": "Пешеходный переход", + "name": "Пешеходный переход (британский тег)", "terms": "переход, пешеходный переход, зебра, светофор" }, + "highway/crosswalk-raised": { + "name": "Приподнятый пешеходный переход (зебра, британский тег)" + }, "highway/cycleway": { "name": "Велодорожка", - "terms": "велодорожка, велосипедная дорожка" + "terms": "велодорожка, велосипедная дорожка, велопешеходная дорожка" }, "highway/elevator": { "name": "Лифт" @@ -3465,7 +3958,13 @@ }, "highway/path": { "name": "Тропа", - "terms": "Тропа, Тропинка, Тропка" + "terms": "Тропа, Тропинка, Тропка, пешеходная дорога для немоторизованного траспорта" + }, + "highway/pedestrian_area": { + "name": "Пешеходная зона" + }, + "highway/pedestrian_line": { + "name": "Пешеходная улица" }, "highway/primary": { "name": "Дорога регионального значения", @@ -3476,18 +3975,18 @@ "terms": "съезд" }, "highway/raceway": { - "name": "Гоночный трек, трасса для гонок" + "name": "Гоночный авто- мото- трек", + "terms": "мототрек, гоночный трек, мотогонки, автогонки, автотрек" }, "highway/residential": { - "name": "Дорога вдоль жилых зон", - "terms": "Улица, Жилая улица" + "name": "Дорога вдоль жилых зон" }, "highway/rest_area": { "name": "Зона отдыха без инфраструктуры", "terms": "привал, стоянка" }, "highway/road": { - "name": "Неизвестный тип дороги.", + "name": "Неизвестный тип дороги", "terms": "неизвестная, Неизвестный тип дороги" }, "highway/secondary": { @@ -3507,7 +4006,7 @@ "terms": "Служебный проезд, Сервисный проезд, Второстепенный проезд" }, "highway/service/drive-through": { - "name": "Сервис не выходя из машины", + "name": "Проезд для обслуживания, не выходя из машины", "terms": "Сервис не выходя из машины, Обслуживание не выходя из машины" }, "highway/service/driveway": { @@ -3515,23 +4014,24 @@ "terms": "Подъездная дорога, Подъезд к чему-либо" }, "highway/service/emergency_access": { - "name": "Неотложная помощь", + "name": "Проезд для экстренных служб", "terms": "Эвакуационный выход, Аварийный выход" }, "highway/service/parking_aisle": { "name": "Парковочный проезд", - "terms": "парковочный проезд" + "terms": "парковочный проезд, проезд на парковке" }, "highway/services": { "name": "Места для починки автомобиля и отдыха водителей", "terms": "зона обслуживания, сервис" }, "highway/speed_camera": { - "name": "Камера для замера скорости" + "name": "Камера для замера скорости", + "terms": "камера, радар" }, "highway/steps": { "name": "Лестница", - "terms": "лестница, ступени, ступеньки" + "terms": "лестница, ступени, ступеньки, лесенка" }, "highway/stop": { "name": "Знак \"Стоп\"", @@ -3539,14 +4039,14 @@ }, "highway/street_lamp": { "name": "Уличный фонарь", - "terms": "фонарь" + "terms": "фонарь, лампа, освещение" }, "highway/tertiary": { "name": "Местная дорога", "terms": "дорога" }, "highway/tertiary_link": { - "name": "Съезд", + "name": "Съезд с местной дороги", "terms": "съезд" }, "highway/track": { @@ -3619,7 +4119,8 @@ "terms": "Придорожная часовня" }, "junction": { - "name": "Перекрёсток" + "name": "Перекрёсток", + "terms": "перекресток, перекрёсток" }, "landuse": { "name": "Землепользование" @@ -3636,6 +4137,10 @@ "name": "Хранилище сточных вод", "terms": "Бассейн, Искусственный водоём, Копаный пруд" }, + "landuse/brownfield": { + "name": "Снос/расчистка территории под строительство", + "terms": "стройка, строительство, снос, расчистка, зачистка, застройка" + }, "landuse/cemetery": { "name": "Кладбище", "terms": "кладбище" @@ -3650,10 +4155,10 @@ }, "landuse/construction": { "name": "Стройплощадка", - "terms": "стройка, строительство" + "terms": "стройка, строительство, строительная площадка" }, "landuse/farm": { - "name": "Сельскохозяйственные угодья" + "name": "Сельскохозяйственные угодья (устаревший тег)" }, "landuse/farmland": { "name": "Сельскохозяйственные угодья", @@ -3664,23 +4169,38 @@ "terms": "ферма, сельхоз, совхоз" }, "landuse/forest": { - "name": "Обслуживаемый лес / деревья.", + "name": "Обслуживаемый лес / деревья", "terms": "лес, лесной массив" }, + "landuse/garages": { + "name": "Территория гаражей" + }, "landuse/grass": { "name": "Газон", "terms": "Газон, Искусственный газон, Земля используемая под газон" }, + "landuse/greenfield": { + "name": "Территория под первичную застройку" + }, + "landuse/greenhouse_horticulture": { + "name": "Земля для выращивания растений в теплицах" + }, "landuse/harbour": { "name": "Порт" }, "landuse/industrial": { "name": "Промышленная зона", - "terms": "промзона, завод" + "terms": "промзона, завод, склад, складские территории, депо, фабрика" + }, + "landuse/industrial/scrap_yard": { + "name": "Склад металлолома/свалка" + }, + "landuse/industrial/slaughterhouse": { + "name": "Скотобойня" }, "landuse/landfill": { "name": "Свалка", - "terms": "свалка, отходы" + "terms": "свалка, отходы, полигон бытовых отходов" }, "landuse/meadow": { "name": "Луг (пастбище, сенокосный луг)", @@ -3722,7 +4242,8 @@ "terms": "Военные административные здания" }, "landuse/military/range": { - "name": "Военный полигон" + "name": "Военный полигон", + "terms": "стрельбище, стрелковый полигон" }, "landuse/military/training_area": { "name": "Испытательный военный полигон", @@ -3748,12 +4269,15 @@ "name": "Зона отдыха", "terms": "Рекреационная зона, площадка для отдыха" }, + "landuse/religious": { + "name": "Религиозная территория" + }, "landuse/residential": { - "name": "Жилая зона", + "name": "Жилая территория", "terms": "квартал" }, "landuse/retail": { - "name": "Торговая зона", + "name": "Торговая территория", "terms": "розничная торговля, ряды, базар" }, "landuse/vineyard": { @@ -3765,6 +4289,9 @@ "terms": "Территории для отдыха" }, "leisure/adult_gaming_centre": { + "name": "Игровые автоматы (азартные, на деньги)" + }, + "leisure/amusement_arcade": { "name": "Игровые автоматы" }, "leisure/bird_hide": { @@ -3783,7 +4310,7 @@ "terms": "Танцевальная студия, танцевальная школа, танцевальная площадка" }, "leisure/dog_park": { - "name": "Площадка для Выгула Собак", + "name": "Площадка для выгула собак", "terms": "собачья площадка" }, "leisure/firepit": { @@ -3791,7 +4318,7 @@ "terms": "огонь, яма, очаг" }, "leisure/fitness_centre": { - "name": "Спортзал, фитнес центр", + "name": "Спортзал, фитнес-центр", "terms": "спорт, фитнес" }, "leisure/fitness_centre/yoga": { @@ -3799,9 +4326,35 @@ "terms": "Йога" }, "leisure/fitness_station": { - "name": "Спортплощадка - тренажёры, турник, брусья", + "name": "Спортплощадка — тренажёры, турник, брусья", "terms": "спортплощадка, турники, брусья, спортивная площадка, площадка для фитнеса, фитнес станция, воркаут, workout, тренажёр, тренажерная площадка" }, + "leisure/fitness_station/balance_beam": { + "name": "Бревно для балансирования" + }, + "leisure/fitness_station/horizontal_bar": { + "name": "Перекладина", + "terms": "турник, подтягивания" + }, + "leisure/fitness_station/hyperextension": { + "name": "Тренажер для гиперэкстензии" + }, + "leisure/fitness_station/parallel_bars": { + "name": "Брусья" + }, + "leisure/fitness_station/push-up": { + "name": "Тренажер для отжиманий" + }, + "leisure/fitness_station/rings": { + "name": "Атлетические кольца" + }, + "leisure/fitness_station/sign": { + "name": "Информационный знак об упражнения" + }, + "leisure/fitness_station/sit-up": { + "name": "Тренажер для скручивания на пресс", + "terms": "пресс, подъемы, скручивания" + }, "leisure/garden": { "name": "Сад", "terms": "Парк, Сквер" @@ -3810,6 +4363,10 @@ "name": "Площадка для гольфа", "terms": "Поле для гольфа, Гольфполе" }, + "leisure/hackerspace": { + "name": "Хакерспейс", + "terms": "хакспейс" + }, "leisure/horse_riding": { "name": "Площадка для верховой езды" }, @@ -3818,7 +4375,7 @@ "terms": "каток, лед, коньки, фигурное катание" }, "leisure/marina": { - "name": "Яхтклуб", + "name": "Стоянка для яхт", "terms": "Марина, Стоянка для яхт" }, "leisure/miniature_golf": { @@ -3830,7 +4387,7 @@ }, "leisure/park": { "name": "Парк отдыха", - "terms": "парк" + "terms": "парк, рекреация, место для отдыха" }, "leisure/picnic_table": { "name": "Стол для пикника", @@ -3855,8 +4412,13 @@ "leisure/pitch/beachvolleyball": { "name": "Площадка для пляжного волейбола" }, + "leisure/pitch/boules": { + "name": "Бочче/Петанк", + "terms": "петанк, боулинг, бочче" + }, "leisure/pitch/bowls": { - "name": "Площадка для боулинга" + "name": "Площадка для игры в боулз", + "terms": "боулз, боулинг, шары" }, "leisure/pitch/cricket": { "name": "Поля для крикета" @@ -3881,7 +4443,8 @@ "terms": "футбольное поле" }, "leisure/pitch/table_tennis": { - "name": "Настольный тенис" + "name": "Стол для пинг-понга", + "terms": "пинг-понг, настольный теннис" }, "leisure/pitch/tennis": { "name": "Теннисный корт", @@ -3912,11 +4475,11 @@ "terms": "Стапель" }, "leisure/sports_centre": { - "name": "Спортивный Комплекс", + "name": "Спортивный центр/комплекс", "terms": "спорткомплекс, спортивный центр, спортивный комплекс" }, "leisure/sports_centre/swimming": { - "name": "Бассейн", + "name": "Бассейн (спортивный центр)", "terms": "Плавательный бассейн" }, "leisure/stadium": { @@ -3924,11 +4487,12 @@ "terms": "спортивная арена" }, "leisure/swimming_pool": { - "name": "Бассейн", + "name": "Бассейн (его водная поверхность)", "terms": "плавательный бассейн, плавательный бассеин" }, "leisure/track": { - "name": "Гоночный трек (не автоспорт)" + "name": "Гоночный трек (не автоспорт)", + "terms": "бег, велосипед, собачьи бега, лошадиные бега" }, "leisure/water_park": { "name": "Аквапарк", @@ -3939,7 +4503,7 @@ "terms": "Линия" }, "man_made": { - "name": "Сооружения", + "name": "Рукотворное", "terms": "рукотворное" }, "man_made/adit": { @@ -3951,7 +4515,8 @@ "terms": "Мол, Оградительное гидросооружение" }, "man_made/bridge": { - "name": "Мост" + "name": "Контур моста", + "terms": "мост" }, "man_made/chimney": { "name": "Дымовая труба", @@ -3970,7 +4535,7 @@ }, "man_made/flagpole": { "name": "Флагшток", - "terms": "флагшток" + "terms": "флагшток, флаг, знамя, герб" }, "man_made/gasometer": { "name": "Газгольдер", @@ -3987,6 +4552,10 @@ "man_made/mast": { "name": "Мачта" }, + "man_made/monitoring_station": { + "name": "Станция наблюдения/контроля", + "terms": "Станция мониторинга, контроля, наблюдения" + }, "man_made/observation": { "name": "Смотровая башня", "terms": "Смотровая башня, Обзорная башня" @@ -4015,11 +4584,12 @@ "terms": "контейнер, танк, танкер" }, "man_made/surveillance": { - "name": "Камера наблюдения", - "terms": "Система наблюдения" + "name": "Система наблюдения", + "terms": "камера наблюдения, охранные системы" }, "man_made/surveillance_camera": { - "name": "Камера наблюдения" + "name": "Камера наблюдения", + "terms": "cctv, охрана" }, "man_made/survey_point": { "name": "Тригонометрический пункт", @@ -4056,7 +4626,8 @@ "terms": "Фабрика" }, "manhole": { - "name": "Люк" + "name": "Люк", + "terms": "крышка люка" }, "manhole/drain": { "name": "Дренажный колодец" @@ -4101,11 +4672,11 @@ }, "natural/grassland": { "name": "Трава", - "terms": "Травяной луг, Луговина, Лужок, Выкос, Перелесье" + "terms": "Травяной луг, Луговина, Лужок, Выкос, Перелесье, травяной покров, травянистый поуров" }, "natural/heath": { "name": "Вересковая пустошь", - "terms": "Вереск" + "terms": "Вереск, пустошь" }, "natural/peak": { "name": "Вершина", @@ -4166,7 +4737,7 @@ "terms": "болото, заболоченная территория" }, "natural/wood": { - "name": "Лес / деревья - предпочитаемый", + "name": "Лес / деревья — предпочитаемый", "terms": "Лес, Деревья, Роща, Чаща" }, "noexit/yes": { @@ -4176,11 +4747,35 @@ "name": "Офисы", "terms": "Офисы, Офис, Контора, Канцелярия" }, + "office/accountant": { + "name": "Бухгалтер", + "terms": "бухгалтер, бухгалтерия" + }, "office/administrative": { "name": "Местная администрация и надзирающие органы" }, + "office/adoption_agency": { + "name": "Агенство по усыновлению" + }, "office/advertising_agency": { - "name": "Рекламное агенство" + "name": "Рекламное агенство", + "terms": "реклама, рекламное агенство" + }, + "office/architect": { + "name": "Архитектурное бюро", + "terms": "архитектор" + }, + "office/association": { + "name": "Ассоциация (союз)", + "terms": "НКО, некоммерческая организация, добровольное объединение" + }, + "office/charity": { + "name": "Благотворительная организация", + "terms": "благотворительность, благотворительный фонд" + }, + "office/company": { + "name": "Частная компания", + "terms": "компания, фирма, офис" }, "office/coworking": { "name": "Коворкинг" @@ -4191,7 +4786,10 @@ }, "office/employment_agency": { "name": "Кадровое агентство", - "terms": "Центр занятости, Биржа труда, Агентство по трудоустройству" + "terms": "Центр занятости, Биржа труда, Агентство по трудоустройству, агенство по найму" + }, + "office/energy_supplier": { + "name": "Поставщик топлива" }, "office/estate_agent": { "name": "Агентство недвижимости", @@ -4201,6 +4799,12 @@ "name": "Финансовая организация", "terms": "финансовая организация" }, + "office/forestry": { + "name": "Лесоводство" + }, + "office/foundation": { + "name": "Фонд" + }, "office/government": { "name": "Государственное учреждение", "terms": "финансы, отделение, банк, департамент" @@ -4209,12 +4813,20 @@ "name": "ЗАГС / регистраторы смерти и браков", "terms": "ЗАГС" }, + "office/government/tax": { + "name": "Налоговая" + }, + "office/guide": { + "name": "Туристические гиды", + "terms": "экскурсии, экскурсовод, гид" + }, "office/insurance": { "name": "Страховая компания", "terms": "Страховой агент, Страхование, Автострахование, Полис, ОМС, КАСКО, ОСАГО, Страховка," }, "office/it": { - "name": "Офис IT компании" + "name": "Офис IT-компании", + "terms": "информационные технологии" }, "office/lawyer": { "name": "Юридические услуги", @@ -4223,6 +4835,10 @@ "office/lawyer/notary": { "name": "Нотариус" }, + "office/moving_company": { + "name": "Помощь при переезде", + "terms": "Перевозка, переезд" + }, "office/newspaper": { "name": "Редакция газеты" }, @@ -4231,7 +4847,8 @@ "terms": "Общественное движение, НКО, Неправительственная организация, Некоммерческая организация, Общественный фонд, Общественное учреждение," }, "office/notary": { - "name": "Нотариус" + "name": "Нотариус", + "terms": "нотариус, нотариальное бюро, нотариальные услуги" }, "office/physician": { "name": "Врач" @@ -4244,16 +4861,33 @@ "name": "Частный сыщик", "terms": "Частный сыщик" }, + "office/quango": { + "name": "Полу-независимая некоммерческая организация", + "terms": "Полу-независимая НКО, НКО, некоммерческая организация" + }, "office/research": { "name": "Научно-исследовательская организация", "terms": "Научно-исследовательская организация, Научно-исследовательский институт, Центр передовых исследований и разработки, нии" }, + "office/surveyor": { + "name": "Организация оценки и статистики", + "terms": "опросы, оценка, статистика, замеры" + }, + "office/tax_advisor": { + "name": "Офис консультанта по налогам" + }, "office/telecommunication": { "name": "Офис телекоммуникационной компании", "terms": "Телеком" }, + "office/therapist": { + "name": "Офис терапевта" + }, "office/travel_agent": { - "name": "Турагентство" + "name": "Турагентство (устаревший тег)" + }, + "office/water_utility": { + "name": "Офис водопроводной компании" }, "piste": { "name": "Трек/Лыжная трасса", @@ -4275,11 +4909,11 @@ }, "place/island": { "name": "Остров", - "terms": "Остров" + "terms": "Остров, большой остров" }, "place/islet": { "name": "Островок", - "terms": "Островок" + "terms": "Островок, маленький остров, небольшой остров" }, "place/isolated_dwelling": { "name": "Хутор", @@ -4293,6 +4927,10 @@ "name": "Исторический район со сложившимся именем", "terms": "местность, район" }, + "place/plot": { + "name": "Земельный участок", + "terms": "участок, частная земля, частная собственность" + }, "place/quarter": { "name": "Подрайон / квартал" }, @@ -4310,6 +4948,52 @@ "name": "Село (более 300 жителей)", "terms": "Село, Станица, Поселение, Посёлок городского типа" }, + "playground/balance_beam": { + "name": "Бревно для балансирования (детская площадка)" + }, + "playground/basket_spinner": { + "name": "Корзина-крутилка" + }, + "playground/basket_swing": { + "name": "Корзина-качели" + }, + "playground/climbing_frame": { + "name": "Паутинка", + "terms": "конструкция для лазанья" + }, + "playground/cushion": { + "name": "Надувной батут" + }, + "playground/horizontal_bar": { + "name": "Перекладина (детская площадка)", + "terms": "турник" + }, + "playground/rocker": { + "name": "Пружинка" + }, + "playground/roundabout": { + "name": "Карусель" + }, + "playground/sandpit": { + "name": "Песочница" + }, + "playground/seesaw": { + "name": "Качели-качалка", + "terms": "качели, качалка" + }, + "playground/slide": { + "name": "Горка" + }, + "playground/structure": { + "name": "Составная конструкция", + "terms": "Составная игровая конструкция, игровая конструкция" + }, + "playground/swing": { + "name": "Качели (подвесные)" + }, + "playground/zipwire": { + "name": "Зиплайн" + }, "point": { "name": "Точка", "terms": "точка" @@ -4350,14 +5034,151 @@ "name": "Подстанция", "terms": "подстанция, электроподстанция, транформаторная" }, + "power/switch": { + "name": "Электрический выключатель", + "terms": "рубильник, разъединитель" + }, "power/tower": { "name": "Опора ЛЭП", - "terms": "Опора ЛЭП, Опора линии электропередачи" + "terms": "Опора ЛЭП, Опора линии электропередачи, башня" }, "power/transformer": { "name": "Отдельный трансформатор", "terms": "трансформатор" }, + "public_transport/linear_platform": { + "name": "Платформа", + "terms": "платформа, место ожидания транспорта, общественный транспорт" + }, + "public_transport/linear_platform_aerialway": { + "name": "Платформа канатной дороги" + }, + "public_transport/linear_platform_bus": { + "name": "Автобусная платформа" + }, + "public_transport/linear_platform_ferry": { + "name": "Пристань для парома", + "terms": "пристань, причал, пирс, паром, платформа, общественный транспорт" + }, + "public_transport/linear_platform_light_rail": { + "name": "Платформа легкорельсового транспорта" + }, + "public_transport/linear_platform_monorail": { + "name": "Платформа монорельса" + }, + "public_transport/linear_platform_subway": { + "name": "Платформа метро" + }, + "public_transport/linear_platform_train": { + "name": "Железнодорожная платформа" + }, + "public_transport/linear_platform_tram": { + "name": "Трамвайная платформа" + }, + "public_transport/linear_platform_trolleybus": { + "name": "Троллейбусная платформа" + }, + "public_transport/platform": { + "name": "Платформа" + }, + "public_transport/platform_aerialway": { + "name": "Платформа канатной дороги" + }, + "public_transport/platform_bus": { + "name": "Автобусная платформа" + }, + "public_transport/platform_ferry": { + "name": "Пристань для парома", + "terms": "пристань, причал, пирс, паром, платформа, общественный транспорт" + }, + "public_transport/platform_light_rail": { + "name": "Платформа легкорельсового транспорта" + }, + "public_transport/platform_monorail": { + "name": "Платформа монорельса" + }, + "public_transport/platform_subway": { + "name": "Платформа метро" + }, + "public_transport/platform_train": { + "name": "Железнодорожная платформа" + }, + "public_transport/platform_tram": { + "name": "Трамвайная платформа" + }, + "public_transport/platform_trolleybus": { + "name": "Троллейбусная платформа" + }, + "public_transport/station": { + "name": "Транспортная станция" + }, + "public_transport/station_aerialway": { + "name": "Станция канатной дороги" + }, + "public_transport/station_bus": { + "name": "Автобусная станция/терминал" + }, + "public_transport/station_ferry": { + "name": "Пристань/терминал для парома", + "terms": "пристань, причал, пирс, паром, платформа, общественный транспорт" + }, + "public_transport/station_light_rail": { + "name": "Станция легкорельсового транспорта" + }, + "public_transport/station_monorail": { + "name": "Станция монорельса" + }, + "public_transport/station_subway": { + "name": "Станция метро", + "terms": "метро, станция метро, станция подземной дороги" + }, + "public_transport/station_train": { + "name": "Железнодорожная станция" + }, + "public_transport/station_train_halt": { + "name": "Остановочный пункт (маленькая станция)" + }, + "public_transport/station_tram": { + "name": "Трамвайная станция" + }, + "public_transport/station_trolleybus": { + "name": "Троллейбусная станция/терминал" + }, + "public_transport/stop_area": { + "name": "Транспортный хаб/место пересадки", + "terms": "хаб, общественный транспорт, место пересадки, место отсанвоки" + }, + "public_transport/stop_position": { + "name": "Место остановки транспорта", + "terms": "место остановки, общественный транспорт" + }, + "public_transport/stop_position_aerialway": { + "name": "Место остановки канатной дороги" + }, + "public_transport/stop_position_bus": { + "name": "Место остановки автобуса" + }, + "public_transport/stop_position_ferry": { + "name": "Место остановки парома" + }, + "public_transport/stop_position_light_rail": { + "name": "Место остановки легкорельсового транспорта" + }, + "public_transport/stop_position_monorail": { + "name": "Место остановки монорельса" + }, + "public_transport/stop_position_subway": { + "name": "Место остановки метро" + }, + "public_transport/stop_position_train": { + "name": "Место остановки ж/д транспорта" + }, + "public_transport/stop_position_tram": { + "name": "Место остановки трамвая" + }, + "public_transport/stop_position_trolleybus": { + "name": "Место остановки троллейбуса" + }, "railway": { "name": "Железная дорога" }, @@ -4382,9 +5203,21 @@ "name": "Фуникулёр", "terms": "фуникулёр, канатная дорога" }, + "railway/halt": { + "name": "Остановочный пункт (маленькая станция)" + }, "railway/level_crossing": { "name": "Железнодорожный переезд" }, + "railway/light_rail": { + "name": "Легкорельсовый транспорт" + }, + "railway/milestone": { + "name": "Километровый железнодорожный столбик" + }, + "railway/miniature": { + "name": "Мини-железная дорога" + }, "railway/monorail": { "name": "Монорельс", "terms": "монорельсовая железная дорога, монорельс" @@ -4393,6 +5226,9 @@ "name": "Узкоколейная железная дорога", "terms": "узкоколейная железная дорога, узкоколейка, узкоколейная ЖД" }, + "railway/platform": { + "name": "Железнодорожная платформа" + }, "railway/rail": { "name": "Рельсовый путь", "terms": "рельсы, вокзал, железнодорожный" @@ -4400,9 +5236,12 @@ "railway/signal": { "name": "Железнодорожная сигнализация" }, + "railway/station": { + "name": "Железнодорожная станция" + }, "railway/subway": { "name": "Метро", - "terms": "Метро, Подземка, " + "terms": "Метро, Подземка, Метрополитен" }, "railway/subway_entrance": { "name": "Вход в метро", @@ -4411,10 +5250,16 @@ "railway/switch": { "name": "Железнодорожная стрелка" }, + "railway/train_wash": { + "name": "Мойка для поездов/вагонов" + }, "railway/tram": { "name": "Трамвайные пути", "terms": "трамвай" }, + "railway/tram_stop": { + "name": "Место остановки трамвая" + }, "relation": { "name": "Отношение", "terms": "отношение" @@ -4430,6 +5275,9 @@ "name": "Неопределённый магазин", "terms": "Магазин, Торговая лавка, Точка продаж" }, + "shop/agrarian": { + "name": "Сельскохозяйственный магазин" + }, "shop/alcohol": { "name": "Алкогольный магазин", "terms": "Вино-водочный магазин, горилка, пиво, пивной" @@ -4447,7 +5295,7 @@ }, "shop/art": { "name": "Магазин произведений искусства", - "terms": "арт, арт-галлерея" + "terms": "арт, арт-галерея, магазин картин" }, "shop/baby_goods": { "name": "Магазин детских товаров", @@ -4458,8 +5306,8 @@ "terms": "сумка, саквояж, багаж, тележка" }, "shop/bakery": { - "name": "Хлебный", - "terms": "Булочная, Хлебный магазин" + "name": "Булочная", + "terms": "булочная, хлебный магазин, пекарня" }, "shop/bathroom_furnishing": { "name": "Магазин продающий мебель для ванных комнат", @@ -4470,7 +5318,8 @@ "terms": "салон красоты, маникюрный салон, солярий, массаж, спа" }, "shop/beauty/nails": { - "name": "Маникюрный салон" + "name": "Маникюрный салон", + "terms": "маникюр, педикюр, маникюрный салон" }, "shop/beauty/tanning": { "name": "Солярий" @@ -4497,11 +5346,11 @@ }, "shop/boutique": { "name": "Бутик", - "terms": "Бутик, Фирменный магазин" + "terms": "Бутик, магазин изысканных товаров, премиум класс, модные товары" }, "shop/butcher": { "name": "Мясной", - "terms": "мясной, мясная лавка, мясник" + "terms": "мясной, мясная лавка, мясник, колбасы, фарш, вырезка, стейки" }, "shop/candles": { "name": "Свечной магазин", @@ -4540,12 +5389,12 @@ "terms": "шоколад" }, "shop/clothes": { - "name": "Одежда", - "terms": "магазин одежды" + "name": "Магазин одежды", + "terms": "одежда" }, "shop/coffee": { "name": "Магазин кофе", - "terms": "Кофейня" + "terms": "кофе, кофейные аксессуары, кофейная техника, кофейное оборудование" }, "shop/computer": { "name": "Компьютерный магазин", @@ -4553,11 +5402,11 @@ }, "shop/confectionery": { "name": "Кондитерская", - "terms": "кондитерская" + "terms": "кондитерская, пирожные, торты, конфеты" }, "shop/convenience": { "name": "Магазин у дома", - "terms": "Продуктовый магазин, Магазин шаговой доступности" + "terms": "Продуктовый магазин, Магазин шаговой доступности,небольшой магазин" }, "shop/copyshop": { "name": "Магазин копирования, печати", @@ -4584,12 +5433,12 @@ "terms": "деликатесы" }, "shop/department_store": { - "name": "Молл", - "terms": "молл, торговый центр, дом быта" + "name": "Универсальный магазин (с отделами)", + "terms": "торговый центр, дом быта, тц, универсальный магазин" }, "shop/doityourself": { - "name": "Магазин «Сделай сам»", - "terms": "Магазин «Сделай Сам», Всё для ремонта" + "name": "Строительный гипермаркет", + "terms": "Всё для ремонта, гипермакерт, стройка, леруа-мерлен" }, "shop/dry_cleaning": { "name": "Химчистка", @@ -4624,7 +5473,7 @@ }, "shop/florist": { "name": "Цветочный магазин", - "terms": "Цветочный магазин" + "terms": "Цветочный магазин, цветы, букет" }, "shop/frame": { "name": "Магазин рамок для фотографий и картин", @@ -4635,7 +5484,7 @@ "terms": "Бюро похоронных услуг, кремация, ритуальные услуги" }, "shop/furnace": { - "name": "Магазин систем отопления" + "name": "Магазин систем отопления (устаревший тег)" }, "shop/furniture": { "name": "Мебельный магазин", @@ -4659,11 +5508,15 @@ }, "shop/hairdresser": { "name": "Парикмахерская", - "terms": "Парикмахерская, Парикмахер, Парикмахерский салон, Стилист" + "terms": "Парикмахерская, Парикмахер, Парикмахерский салон, Стилист, барбершоп" }, "shop/hardware": { - "name": "Магазин крепежа, винтов и крючков", - "terms": "винты, шурупы, гвозди, крючки, крепёж" + "name": "Строительный магазин", + "terms": "винты, шурупы, гвозди, крючки, крепёж, инструмент, метриалы" + }, + "shop/health_food": { + "name": "Магазин здорового питания", + "terms": "здоровая еда, здоровая пища, органические продукты, чистая продукция" }, "shop/hearing_aids": { "name": "Магазин по продаже слуховых аппаратов", @@ -4678,19 +5531,24 @@ "terms": "Техника Hi-fi, Акустика Hi-fi, домашний кинотеатр" }, "shop/houseware": { - "name": "Магазин посуды, столовых приборов" + "name": "Магазин посуды, столовых приборов", + "terms": "посуда, магазин посуды" }, "shop/interior_decoration": { - "name": "Магазин дизайнера интерьеров", + "name": "Магазин предметов интерьера", "terms": "интерьер" }, "shop/jewelry": { "name": "Ювелирный магазин", - "terms": "ювелир" + "terms": "ювелирные товары, драгоценности, обручальные кольца" + }, + "shop/kiosk": { + "name": "Магазин в виде киоска", + "terms": "киоск, павильон" }, "shop/kitchen": { - "name": "Кухонная студия", - "terms": "кухонная фурнитура, установка кухонь, кухни на заказ, планировка кухни, кухни" + "name": "Магазин кухонь", + "terms": "кухонная фурнитура, установка кухонь, кухни на заказ, планировка кухни, кухни, Кухонная студия" }, "shop/laundry": { "name": "Прачечная", @@ -4705,8 +5563,8 @@ "terms": "ключи, изготовление ключей" }, "shop/lottery": { - "name": "Лотерея ", - "terms": "розыгрыш, выйграш, " + "name": "Продажа лотерейных билетов", + "terms": "лотерея, билеты, бинго, лото" }, "shop/mall": { "name": "Торговый центр", @@ -4717,11 +5575,11 @@ "terms": "массаж, массажный" }, "shop/medical_supply": { - "name": "Медтехника", + "name": "Медицинские принадлежности", "terms": "магазин, медицина, техника, оборудование, препараты, медицинские принадлежности" }, "shop/mobile_phone": { - "name": "Магазин телефонов и аксессуаров", + "name": "Магазин мобильных телефонов и аксессуаров", "terms": "Салон сотовой связи, Продажа сотовых телефонов" }, "shop/money_lender": { @@ -4734,15 +5592,15 @@ }, "shop/music": { "name": "Музыкальный магазин", - "terms": "Музыкальный магазин, Аудио салон" + "terms": "Музыкальный магазин, Аудио салон, винил, компакт диски, аудио диски, постеры, журналы" }, "shop/musical_instrument": { "name": "Магазин музыкальных инструментов", "terms": "гитары, барабаны, пианино, ноты, струны, песенники" }, "shop/newsagent": { - "name": "Магазин предлагающий в основном газеты и журналы", - "terms": "газеты, журналы" + "name": "Газеты/пресса/журналы", + "terms": "газеты, журналы, пресса, сопутствующие товары, киоск, лоток, стенд" }, "shop/nutrition_supplements": { "name": "Магазин пищевых добавок" @@ -4764,7 +5622,7 @@ "terms": "лаки, краски" }, "shop/pastry": { - "name": "Булочная", + "name": "Пироги", "terms": "Выпечка, штрудели, бисквиты, пирожки, пироги" }, "shop/pawnbroker": { @@ -4772,14 +5630,14 @@ "terms": "ломбард" }, "shop/perfumery": { - "name": "Парфюмерия" + "name": "Парфюмерный" }, "shop/pet": { "name": "Зоомагазин", "terms": "зоомагазин, для животных" }, "shop/photo": { - "name": "Магазин фототоваров и фотоуслуг", + "name": "Фототовары", "terms": "Фототовары, Фототехника, фото на паспорт, паспорт, фото" }, "shop/pyrotechnics": { @@ -4795,8 +5653,8 @@ "terms": "иконы, ларёк" }, "shop/scuba_diving": { - "name": "Магазин подводного плавания", - "terms": "маски, акваланги, кислород" + "name": "Магазин подводного снаряжения", + "terms": "маски, акваланги, кислород, подводное плаванье, снаряжение, оборудование" }, "shop/seafood": { "name": "Магазин морепродуктов", @@ -4804,7 +5662,7 @@ }, "shop/second_hand": { "name": "Магазин секонд хенда", - "terms": "секондхенд, секонд хенд, секонд" + "terms": "секондхенд, секонд хенд, секонд, комиссионный" }, "shop/shoes": { "name": "Обувной", @@ -4815,7 +5673,7 @@ "terms": "магазин спорттоваров, Спорттовары, Спортивные товары" }, "shop/stationery": { - "name": "Канцелярский магазин", + "name": "Канцелярские товары", "terms": "Канцелярский магазин, Канцтовары" }, "shop/storage_rental": { @@ -4841,6 +5699,9 @@ "name": "Билетная касса", "terms": "концертные билеты, билетная касса, проездные билеты" }, + "shop/tiles": { + "name": "Магазин плитки" + }, "shop/tobacco": { "name": "Табачный магазин", "terms": "сигареты, сигары, табак, трубки, табачный магазин" @@ -4849,6 +5710,9 @@ "name": "Игрушки", "terms": "магазин игрушек" }, + "shop/trade": { + "name": "Оптовая база" + }, "shop/travel_agency": { "name": "Бюро путешествий", "terms": "Турагенство" @@ -4858,7 +5722,7 @@ "terms": "Шины, Покрышки, Автопокрышки, Автошины" }, "shop/vacant": { - "name": "Закрытый магазин" + "name": "Помещение под открытие магазина" }, "shop/vacuum_cleaner": { "name": "Магазин по продаже пылесосов", @@ -4884,11 +5748,14 @@ "terms": "спорт, товары, плавание, очки, костюм, купальник, плавки, ласты" }, "shop/weapons": { - "name": "Магазин оружия", + "name": "Оружейный магазин", "terms": "магазин оружия, оружейный магазин" }, + "shop/wholesale": { + "name": "Оптовый магазин" + }, "shop/window_blind": { - "name": "Магазин продающий шторы, жалюзи", + "name": "Магазин жалюзей", "terms": "шторы, жалюзи" }, "shop/wine": { @@ -4922,12 +5789,16 @@ "terms": "кемпинг, туристический приют" }, "tourism/caravan_site": { - "name": "Стоянка автодомов", - "terms": "караван-парк" + "name": "Стоянка трейлеров", + "terms": "караван-парк, стоянка автодомов, стоянка трейлеров" + }, + "tourism/chalet": { + "name": "Коттедж под аренду", + "terms": "Дом на выходные, арендуемая дача" }, "tourism/gallery": { - "name": "Картинная галерея", - "terms": "Галерея искусств" + "name": "Художественная галерея", + "terms": "галерея искусств, картинная галерея, выставочный центр, художественный музей" }, "tourism/guest_house": { "name": "Гостевой дом", @@ -4954,14 +5825,16 @@ "terms": "указатель" }, "tourism/information/map": { - "name": "Карта" + "name": "Карта", + "terms": "стенд с картой" }, "tourism/information/office": { - "name": "Туристский информационный центр " + "name": "Туристский информационный центр ", + "terms": "туринформация, информационный центр" }, "tourism/motel": { "name": "Мотель", - "terms": "мотель" + "terms": "мотель, автодорожный отель, придорожный отель" }, "tourism/museum": { "name": "Музей", @@ -4973,11 +5846,11 @@ }, "tourism/theme_park": { "name": "Парк развлечений", - "terms": "тема, парк, отдых, развлечения, тематический парк, парк аттракционов, аттракционы" + "terms": "парк, отдых, развлечения, тематический парк, парк аттракционов, аттракционы" }, "tourism/viewpoint": { "name": "Обзорная точка", - "terms": "площадка, обозрение, точка обзора, смотровая площадка" + "terms": "площадка, обозрение, точка обзора, смотровая площадка, хороший вид" }, "tourism/wilderness_hut": { "name": "Охотничий домик", @@ -4985,39 +5858,47 @@ }, "tourism/zoo": { "name": "Зоопарк", - "terms": "зоопарк" + "terms": "зоопарк, зоосад" }, "traffic_calming": { - "name": "Дорожное препятствие" + "name": "Успокоение движения", + "terms": "искусственная неровность, лежачий полицейский, шумовые полосы" }, "traffic_calming/bump": { - "name": "Лежачий полицейский", - "terms": "полицейский, лежачий" + "name": "Искусственная неровность", + "terms": "полицейский, лежачий, искусственная неровность" }, "traffic_calming/chicane": { - "name": "Мошенничество на дорогах" + "name": "Шикана", + "terms": "искусственные повороты" }, "traffic_calming/choker": { - "name": "Ухудшенный траффик" + "name": "Заужение дороги", + "terms": "сужение дороги" }, "traffic_calming/cushion": { - "name": "Снизить скорость" + "name": "Искусственная неровность с разрывами", + "terms": "лежачий полицейский с разрывами" }, "traffic_calming/dip": { - "name": "Уклон" + "name": "Выемка в дороге" }, "traffic_calming/hump": { - "name": "Широкий лежачий полицейский ", + "name": "Широкая искусственная неровность", "terms": "широкий лежачий полицейский " }, "traffic_calming/island": { - "name": "Островок безопасности", - "terms": "островок безопасности" + "name": "Островок между проезжими частями", + "terms": "остров безопасности" }, "traffic_calming/rumble_strip": { - "name": "Стиральная доска", + "name": "Шумовые полосы", "terms": "стиральная доска" }, + "traffic_calming/table": { + "name": "Широкая искусственная неровность с плоским верхом", + "terms": "приподнятый пешеходный переход" + }, "type/boundary": { "name": "Граница", "terms": "Граница" @@ -5031,7 +5912,7 @@ }, "type/restriction": { "name": "Ограничение манёвра", - "terms": "Ограничение, Ограничение направлений движения, Ограничение манёвра, Запрет на поворот, Запрет поворота" + "terms": "Ограничение, Ограничение направлений движения, Ограничение манёвра, Запрет на поворот, Запрет поворота, манёвра" }, "type/restriction/no_left_turn": { "name": "Поворот налево запрещён (3.18.2)", @@ -5043,7 +5924,7 @@ }, "type/restriction/no_straight_on": { "name": "Движение направо или налево (4.1.4)", - "terms": "Движение прямо запрещено, Движение прямо или направо, 4.1.4" + "terms": "Движение прямо запрещено, Движение налево или направо, 4.1.4" }, "type/restriction/no_u_turn": { "name": "Разворот запрещён (3.19)", @@ -5074,8 +5955,8 @@ "terms": "Автобусный маршрут" }, "type/route/detour": { - "name": "Объезд", - "terms": "объезд" + "name": "Объездной маршрут", + "terms": "объезд, маршрут объезда, объездная дорога, объездной маршрут" }, "type/route/ferry": { "name": "Паромный маршрут", @@ -5086,17 +5967,23 @@ "terms": "Пеший маршрут, Пешеходный маршрут" }, "type/route/hiking": { - "name": "Пешеходный Маршрут", + "name": "Маршрут пешего туризма", "terms": "туризм, туристическая прогулка, маршрут" }, "type/route/horse": { "name": "Конно-верховой маршрут", "terms": "Маршрут верхом" }, + "type/route/light_rail": { + "name": "Маршрут легкорельсового транспорта" + }, "type/route/pipeline": { "name": "Трубопроводный маршрут", "terms": "трубопровод" }, + "type/route/piste": { + "name": "Лыжный маршрут" + }, "type/route/power": { "name": "Маршрут электроэнергии", "terms": "электропередачи, электроэнергетика" @@ -5105,6 +5992,9 @@ "name": "Дорожный маршрут", "terms": "автомобильный маршрут, " }, + "type/route/subway": { + "name": "Маршрут метро" + }, "type/route/train": { "name": "Железнодорожный маршрут", "terms": "железнодорожный маршрут" @@ -5114,8 +6004,7 @@ "terms": "Трамвайный маршрут" }, "type/route_master": { - "name": "Транспортный маршрут", - "terms": "транспортный маршрут" + "name": "Мастер-маршрут" }, "type/site": { "name": "Место", @@ -5144,8 +6033,8 @@ "terms": "дамба, плотина" }, "waterway/ditch": { - "name": "Оросительная канава", - "terms": "канава, ров" + "name": "Сточная канава", + "terms": "канава, ров, сточные воды, орошение" }, "waterway/dock": { "name": "Плавучий док/сухой док", @@ -5153,7 +6042,7 @@ }, "waterway/drain": { "name": "Дренажный канал", - "terms": "Канава, Дождевая канава" + "terms": "Канава, Дождевая канава, сточный канал, водоотводный канал" }, "waterway/fuel": { "name": "АЗС для водного транспорта", @@ -5164,7 +6053,7 @@ "terms": "река" }, "waterway/riverbank": { - "name": "Поверхность реки", + "name": "Берег реки", "terms": "Урез берега реки" }, "waterway/sanitary_dump_station": { @@ -5179,8 +6068,7 @@ "name": "Пересыхающий ручей" }, "waterway/water_point": { - "name": "Морская питьевая вода", - "terms": "Морская питьевая вода" + "name": "Место для пополнения запасов воды для лодок" }, "waterway/waterfall": { "name": "Водопад", @@ -5207,7 +6095,9 @@ "DigitalGlobe-Premium-vintage": { "attribution": { "text": "Условия и обратная связь" - } + }, + "description": "Границы подложек и даты съемки. Надписи появляются на 14 зуме и выше.", + "name": "Премиум снимки DigitalGlobe (Vintage)." }, "DigitalGlobe-Standard": { "attribution": { @@ -5219,7 +6109,9 @@ "DigitalGlobe-Standard-vintage": { "attribution": { "text": "Условия и обратная связь" - } + }, + "description": "Границы подложек и даты съемки. Надписи появляются на 14 зуме и выше.", + "name": "Стандартные снимки DigitalGlobe (Vintage)" }, "EsriWorldImagery": { "attribution": { @@ -5228,6 +6120,13 @@ "description": "Всемирные снимки Esri", "name": "Всемирные снимки Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Условия и обратная связь" + }, + "description": "Архивная подложка Esri, может быть чище и аккуратнее чем не-архивная.", + "name": "Всемирные снимки Esri (Clarity)" + }, "MAPNIK": { "attribution": { "text": "© Участники OpenStreetMap, CC-BY-SA" @@ -5264,7 +6163,7 @@ "attribution": { "text": "© Geofabrik GmbH, участники OpenStreetMap, CC-BY-SA" }, - "name": "OSM Inspector: Область" + "name": "OSM Inspector: Полигон" }, "OSM_Inspector-Places": { "attribution": { @@ -5284,19 +6183,45 @@ }, "name": "OSM Inspector: Теги" }, + "US-TIGER-Roads-2012": { + "name": "TIGER дороги 2012" + }, + "US-TIGER-Roads-2014": { + "description": "На зумах 16+ — общедостпуные картографические данные отUS Census. На меньших зумах — только изменения с 2006 за вычетом изменений, включённых в OpenStreetMap", + "name": "TIGER дороги 2014" + }, + "US-TIGER-Roads-2017": { + "description": "Жёлтым = общедоступные картографические данные от US Census. Красным = данные, отсутствующие в OpenStreetMap", + "name": "TIGER дороги 2017" + }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, участники OpenStreetMap, CC by-SA 3.0" + }, "name": "Путевые маршруты: Велосипед" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, участники OpenStreetMap, CC by-SA 3.0" + }, "name": "Путевые маршруты: Пеший туризм" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, участники OpenStreetMap, CC by-SA 3.0" + }, "name": "Путевые маршруты: Горный велосипед" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, участники OpenStreetMap, CC by-SA 3.0" + }, "name": "Путевые маршруты: Коньки" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, участники OpenStreetMap, CC by-SA 3.0" + }, "name": "Путевые маршруты: Зимние виды спорта" }, "basemap.at": { @@ -5359,13 +6284,13 @@ }, "skobbler": { "attribution": { - "text": "© Плитки карты: skobbler, данные карты: участники OpenStreetMap, ODbL 1.0" + "text": "© Тайлы: skobbler Картографические данные: участники OpenStreetMap" }, "name": "skobbler" }, "stamen-terrain-background": { "attribution": { - "text": "Плитки карты: Stamen Design, по CC BY 3.0" + "text": "Тайлы: Stamen Design, под CC BY 3.0" }, "name": "Stamen Ландшафт" }, diff --git a/dist/locales/si.json b/dist/locales/si.json index 7d48e8a71..2c6fa87bc 100644 --- a/dist/locales/si.json +++ b/dist/locales/si.json @@ -176,12 +176,6 @@ "connected_to_hidden": "මෙය සෙගවුන ලක්ෂණයකට සම්බන්ද බැවින් දෙකට බෙදිය නොහැක." }, "restriction": { - "help": { - "select": "මාර්ග කොටස තේරීම සදහා එය මත ක්ලික් කරන්න", - "toggle": "හැරවීම් තහනම වෙනස් කිරීම සදහා ක්ලික් කරන්න", - "toggle_on": "\"{restriction}\" හරවීම් තහනම එකතු කිරීම සදහා ක්ලික් කරන්න", - "toggle_off": "\"{restriction}\" හැරවීම් තහනම ඉවත් කිරීම සදහා ක්ලික් කරන්න" - }, "annotation": { "create": "හැරවීම තහනමක් එක කරන ලදී", "delete": "හැරවීම් තහනම ඉවත් කිරන ලදී" diff --git a/dist/locales/sk.json b/dist/locales/sk.json index 0673475f4..92c8e3860 100644 --- a/dist/locales/sk.json +++ b/dist/locales/sk.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Tento objekt nemôžno rozdeliť, pretože je spojený so skrytým objektom." }, "restriction": { - "help": { - "select": "Kliknite pre výber segmentu cesty.", - "toggle": "Kliknite pre prepnutie zákazov odbočenia.", - "toggle_on": "Kliknite pre pridanie \"{restriction}\" obmedzenia.", - "toggle_off": "Kliknite pre odstránenie \"{restriction}\" obmedzenia," - }, "annotation": { "create": "Pridať zákaz odbočenia", "delete": "Odstrániť zákaz odbočenia" diff --git a/dist/locales/sl.json b/dist/locales/sl.json index 70d0a8074..6290f19ed 100644 --- a/dist/locales/sl.json +++ b/dist/locales/sl.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Predmeta ni mogoče razdeliti, ker je povezan s skritim predmetom." }, "restriction": { - "help": { - "select": "Kliknite za izbiro odseka ceste.", - "toggle": "Kliknite za preklop omejitev zavijanja.", - "toggle_on": "Kliknite za dodajanje omejitve »{restriction}«.", - "toggle_off": "Kliknite za odstranjevanje omejitve »{restriction}«." - }, "annotation": { "create": "dodajanje omejitve zavijanja ×", "delete": "odstranjevanje omejitev zavijanja ×" @@ -671,7 +665,7 @@ "view_on_mapillary": "Pokaži sliko na spletišču Mapillary" }, "openstreetcam_images": { - "tooltip": "Ulične fotografije z OpenStreetCama", + "tooltip": "Ulične fotografije prek sistema OpenStreetCam", "title": "Plast s fotografijami (OpenStreetCam)" }, "openstreetcam": { @@ -682,7 +676,10 @@ "key": "H", "help": { "title": "Pomoč", - "welcome": "Dobrodošli v urejevalniku iD za [OpenStreetMap](https://www.openstreetmap.org/). S tem urejevalnikom lahko OpenStreetMap posodobite neposredno iz svojega brskalnika." + "welcome": "Dobrodošli v urejevalniku iD za [OpenStreetMap](https://www.openstreetmap.org/). S tem urejevalnikom lahko OpenStreetMap posodobite neposredno iz brskalnika." + }, + "overview": { + "features_h": "Značilnosti zemljevida" } }, "intro": { diff --git a/dist/locales/sq.json b/dist/locales/sq.json index 3619e139b..6e5aa4f0e 100644 --- a/dist/locales/sq.json +++ b/dist/locales/sq.json @@ -172,11 +172,6 @@ "connected_to_hidden": "Kjo nuk mund të ndahet sepse është lidhur me një tipar të fshehur." }, "restriction": { - "help": { - "select": "Klikoni për të zgjedhur një segment rrugor.", - "toggle_on": "Klikoni për të shtuar një kufizim \"{restriction}\".", - "toggle_off": "Klikoni për të hequr kufizimin \"{restriction}\"." - }, "annotation": { "create": "U shtu një kufizim kthesësh.", "delete": "U fshi një kufizim kthesësh." diff --git a/dist/locales/sr.json b/dist/locales/sr.json index fb91222e4..63b076d67 100644 --- a/dist/locales/sr.json +++ b/dist/locales/sr.json @@ -282,12 +282,6 @@ "connected_to_hidden": "Ово не може бити раздвојено, јер је повезано са сакривеним обележјем." }, "restriction": { - "help": { - "select": "Кликните да бисте изабрали део пута.", - "toggle": "Кликните да бисте укључили / искључили ограничења скретања.", - "toggle_on": "Кликните да бисте додали \"{restriction}\" ограничење.", - "toggle_off": "Кликните да бисте улонили \"{restriction}\" ограничење." - }, "annotation": { "create": "Додато ограничење скретања", "delete": "Уклоњено ограничење скретања" diff --git a/dist/locales/sv.json b/dist/locales/sv.json index f6447301c..fdc38a998 100644 --- a/dist/locales/sv.json +++ b/dist/locales/sv.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Detta kan inte delas då det är kopplat till ett dolt objekt." }, "restriction": { - "help": { - "select": "Klicka för att välja ett vägsegment.", - "toggle": "Klicka för att växla svängrestriktioner.", - "toggle_on": "Klicka för att lägga till en \"{restriction}\"-restriktion.", - "toggle_off": "Klicka för att ta bort \"{restriction}\"-restriktionen." - }, "annotation": { "create": "Lade till en svängrestriktion", "delete": "Tog bort en svängrestriktion" @@ -1084,6 +1078,28 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{area1} ({area2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "N", + "south": "S", + "east": "Ö", + "west": "V", + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" + }, "presets": { "categories": { "category-barrier": { @@ -5079,9 +5095,6 @@ "name": "Affär", "terms": "Affär, shop, butik" }, - "shop/agrarian": { - "name": "Jordbruksaffär" - }, "shop/alcohol": { "name": "Vin-och-spritaffär", "terms": "Vinaffär, spritaffär, vin- och sprit, vin- och spritaffär, systemet, systembolaget, bolaget, alkohol, öl, vin, sprit" diff --git a/dist/locales/te.json b/dist/locales/te.json index 5b0149cb8..39729472c 100644 --- a/dist/locales/te.json +++ b/dist/locales/te.json @@ -191,11 +191,6 @@ }, "not_eligible": "గీత మొదలు లేదా ఆఖరిన విడగొట్టడానికి వీలు లేదు.", "multiple_ways": "చాలా గీతాలు ఉన్నందు వల్ల విడగొట్టడం కుదరదు." - }, - "restriction": { - "help": { - "select": "రోడ్డు ఎంచుకొనుటకు క్లిక్ చేయండి " - } } }, "undo": { diff --git a/dist/locales/tl.json b/dist/locales/tl.json index 4132cbdc8..3210ccac7 100644 --- a/dist/locales/tl.json +++ b/dist/locales/tl.json @@ -258,12 +258,6 @@ "connected_to_hidden": "Hindi masibak dahil dahil may nakatagong feature na konektado dito." }, "restriction": { - "help": { - "select": "I-click upang pumili ng isang segment ng kalsada.", - "toggle": "I-click upang i-toggle ang mga \"turn restrictions\".", - "toggle_on": "I-click upang magdagdag ng \"{restriction}\" restriction.", - "toggle_off": "I-click upang alisin ang \"{restriction}\" restriction." - }, "annotation": { "create": "Idinagdag isang \"turn restriction\"", "delete": "Tinanggal ang isang \"turn restriction\"" diff --git a/dist/locales/tr.json b/dist/locales/tr.json index 21b53f47e..4dbdb85c9 100644 --- a/dist/locales/tr.json +++ b/dist/locales/tr.json @@ -25,6 +25,9 @@ }, "draw_line": { "tail": "Çizgiye daha fazla bağlantı noktası eklemek için tıkla. Bu çizgiyi diğer çizgilere bağlamak için üstlerine tıkla ve bitirmek için de son noktaya çift tıkla." + }, + "drag_node": { + "connected_to_hidden": "Bu düzenlenemez, çünkü gizli bir özellikle ile bağlantısı var." } }, "operations": { @@ -282,12 +285,6 @@ "connected_to_hidden": "Bu bölünemez, çünkü gizli bir nesneye bağlı." }, "restriction": { - "help": { - "select": "Yolun bir bölümünü seçmek için tıkla.", - "toggle": "Dönüş kısıtlamalarını açıp kapamak için tıkla.", - "toggle_on": "Bir \"{restriction}\" kısıtlamasını göstermek için tıkla.", - "toggle_off": "\"{restriction}\" kısıtlamasını kaldırmak için tıkla." - }, "annotation": { "create": "Bir dönüş kısıtlaması eklendi.", "delete": "Bir dönüş kısıtlaması silindi" @@ -349,7 +346,9 @@ "truncated_list": "{users} ve {count} başka kişi tarafından yapılmış değişiklikler" }, "info_panels": { + "key": "I", "background": { + "key": "B", "title": "Arkaplan", "zoom": "Yakınlaştırma", "vintage": "Görüntü Yılı", @@ -364,6 +363,7 @@ "hide_vintage": "Görüntü Yılını Gizle" }, "history": { + "key": "H", "title": "Geçmiş", "selected": "{n} seçildi", "version": "Versiyon", @@ -374,13 +374,17 @@ "link_text": "openstreetmap.org üzerindeki geçmiş" }, "location": { + "key": "L", "title": "Konum", "unknown_location": "Bilinmeyen Konum" }, "measurement": { + "key": "M", "title": "Ölçüm", "selected": "{n} seçildi", "geometry": "Geometri", + "closed_line": "kapalı hat", + "closed_area": "kapalı alan", "center": "Merkez", "perimeter": "Çevre", "length": "Uzunluk", @@ -462,12 +466,15 @@ "custom": "Özel", "custom_button": "Özel arka planı düzenle", "overlays": "Katmanlar", + "imagery_source_faq": "İmge Bilgisi / Problem Bildir", "reset": "sıfırla", + "display_options": "Görüntüleme Seçenekleri", "brightness": "Parlaklık", "contrast": "Karşıtlık", "saturation": "Doygunluk", "sharpness": "Keskinlik", "minimap": { + "description": "Küçük Haritayı Göster", "tooltip": "Şu an ekrandaki bölgeden uzaklaşarak üzerinde çalıştığın alanı haritada bul.", "key": "/" }, @@ -742,6 +749,7 @@ }, "areas": { "title": "Alanlar", + "intro": "Alanlar göl, bina ve mahallelerin sınırlarını göstermek için kullanılır. Alanlar, temsil ettikleri özelliğin kenarında, örneğin bir binanın tabanının etrafında izlenmelidir.", "point_or_area_h": "Noktalar mı yoksa Alanlar mı?", "add_area_h": "Alanların Eklenmesi", "add_area_finish": "Bir alanı tamamlamak için `{return}` tuşuna basınız veya ilk ya da son düğüme tekrar tıklayınız.", @@ -1080,6 +1088,26 @@ } } }, + "units": { + "feet": "{quantity} ft", + "miles": "{quantity} mi", + "square_feet": "{quantity} sq ft", + "square_miles": "{quantity} sq mi", + "acres": "{quantity} ac", + "meters": "{quantity} m", + "kilometers": "{quantity} km", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", + "hectares": "{quantity} ha", + "area_pair": "{alan1} ({alan2})", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", + "north": "K", + "south": "G", + "east": "D", + "west": "B" + }, "presets": { "categories": { "category-barrier": { @@ -2043,6 +2071,9 @@ "forward": "İleri" } }, + "rating": { + "label": "Güç Düzeyi" + }, "recycling_accepts": { "label": "Kabul Ediyor" }, @@ -2235,6 +2266,7 @@ "placeholder": "Bilinmiyor" }, "structure_waterway": { + "label": "Yapı", "options": { "tunnel": "Tünel" }, @@ -2243,6 +2275,9 @@ "studio": { "label": "Tür" }, + "substance": { + "label": "Madde" + }, "substation": { "label": "Tür" }, @@ -2269,6 +2304,15 @@ "surveillance/zone": { "label": "Güvenli Alan" }, + "switch": { + "label": "Tür", + "options": { + "circuit_breaker": "Şalter", + "disconnector": "Ayırıcı", + "earthing": "Topraklama", + "mechanical": "Mekanik" + } + }, "tactile_paving": { "label": "Döşeme" }, @@ -2356,6 +2400,9 @@ "auxiliary": "Yardımcı", "converter": "Dönüştürücü", "distribution": "Dağıtım", + "generator": "Üreteç", + "phase_angle_regulator": "Faz Açısı Düzenleyici", + "traction": "Çekme", "yes": "Bilinmeyen" } }, @@ -2388,12 +2435,23 @@ "volcano/type": { "label": "Yanardağ Türü", "options": { - "scoria": "Lav külü" + "scoria": "Lav külü", + "shield": "Koruyucu", + "stratovolcano": "Katmanlı yanardağ" } }, "voltage": { "label": "Gerilim" }, + "voltage/primary": { + "label": "Birincil Gerilim" + }, + "voltage/secondary": { + "label": "İkincil Gerilim" + }, + "voltage/tertiary": { + "label": "Üçüncül Gerilim" + }, "wall": { "label": "Tür" }, @@ -2416,6 +2474,9 @@ "wheelchair": { "label": "Tekerlekli Sandalye Erişimi" }, + "wholesale": { + "label": "Toptan satış" + }, "width": { "label": "Genişlik (metre)" }, @@ -2423,6 +2484,7 @@ "label": "Vikipedi" }, "windings": { + "label": "Bobinler", "placeholder": "1, 2, 3..." }, "windings/configuration": { @@ -2894,6 +2956,10 @@ "name": "Banyo", "terms": "Banyo, Duş" }, + "amenity/smoking_area": { + "name": "Sigara İçme Alanı", + "terms": "Sigara İçme Alanı" + }, "amenity/social_facility": { "name": "Okul Tesisleri", "terms": "Okul Tesisleri" @@ -3052,6 +3118,9 @@ "name": "Atlı Karınca", "terms": "Atlı Karınca" }, + "attraction/dark_ride": { + "name": "Korku Tüneli" + }, "attraction/pirate_ship": { "name": "Korsan Gemisi", "terms": "Korsan Gemisi" @@ -3119,6 +3188,9 @@ "name": "Koruma Duvarı", "terms": "Koruma Duvarı" }, + "barrier/kerb": { + "name": "Bordür" + }, "barrier/kissing_gate": { "name": "Sadece İnsanlar İçin Giriş Kapısı", "terms": "Sadece İnsanlar İçin Giriş Kapısı" @@ -3159,6 +3231,9 @@ "name": "Samanlık", "terms": "Samanlık" }, + "building/boathouse": { + "name": "Kayıkhane" + }, "building/bungalow": { "name": "Tek Katlı Müstakil Ev", "terms": "Tek Katlı Müstakil Ev" @@ -3209,10 +3284,6 @@ "building/entrance": { "name": "Giriş/Çıkış" }, - "building/farm": { - "name": "Çiftlik", - "terms": "Çiftlik" - }, "building/garage": { "name": "Garaj", "terms": "Garaj" @@ -3328,6 +3399,9 @@ "name": "Kamp Ateş Alanı", "terms": "Kamp Ateş Alanı" }, + "circular": { + "name": "Dönel Kavşak" + }, "club": { "name": "Klüb", "terms": "Bar, Kulüp" @@ -3372,10 +3446,16 @@ "name": "Gıda Dağıtım Şirketi", "terms": "Gıda Dağıtım Şirketi" }, + "craft/chimney_sweeper": { + "name": "Baca Temizleyicisi" + }, "craft/clockmaker": { "name": "Saatçi", "terms": "Saatçi" }, + "craft/confectionery": { + "name": "Şekerci" + }, "craft/distillery": { "name": "İçki İmalathanesi", "terms": "İçki İmalathanesi, İçki Fabrikası" @@ -3477,6 +3557,9 @@ "name": "İskeleci", "terms": "İskeleci, Yapı Kurma Ustası" }, + "craft/sculptor": { + "name": "Yontucu" + }, "craft/shoemaker": { "name": "Ayakkabıcı", "terms": "Ayakkabıcı" @@ -3534,6 +3617,9 @@ "name": "Yangın Musluğu", "terms": "Yangın Musluğu" }, + "emergency/life_ring": { + "name": "Can Simidi" + }, "emergency/no": { "name": "Acil Erişim Yok" }, @@ -3547,6 +3633,9 @@ "emergency/private": { "name": "Kısıtlı Acil Erişim" }, + "emergency/water_tank": { + "name": "Acil Su Deposu" + }, "emergency/yes": { "name": "Acil Erişim" }, @@ -3558,10 +3647,16 @@ "name": "Geçit", "terms": "Geçit" }, + "footway/crossing-raised": { + "name": "Üst Geçit" + }, "footway/crosswalk": { "name": "Yaya Geçidi", "terms": "Yaya Geçidi" }, + "footway/crosswalk-raised": { + "name": "Yaya Üst Geçidi" + }, "footway/sidewalk": { "name": "Kaldırım", "terms": "Kaldırım" @@ -3677,6 +3772,12 @@ "name": "At Yolu", "terms": "At Yolu, At Yürüyüş Yolu" }, + "highway/bus_guideway": { + "name": "Otobüs Tercihli Yolu" + }, + "highway/bus_stop": { + "name": "Otobüs Durağı" + }, "highway/corridor": { "name": "Koridor", "terms": "Koridor, Geçit" @@ -3685,10 +3786,16 @@ "name": "Geçit", "terms": "Yaya Geçidi, Geçit" }, + "highway/crossing-raised": { + "name": "Üst Geçit" + }, "highway/crosswalk": { "name": "Yaya Geçidi", "terms": "Yaya Geçidi, Geçit" }, + "highway/crosswalk-raised": { + "name": "Yaya Üst Geçidi" + }, "highway/cycleway": { "name": "Bisiklet Yolu", "terms": "Bisiklet Yolu" @@ -3729,6 +3836,9 @@ "name": "Patika", "terms": "Patika, Yol" }, + "highway/pedestrian_area": { + "name": "Yaya Bölgesi" + }, "highway/pedestrian_line": { "name": "Yaya Yolu" }, @@ -3943,6 +4053,12 @@ "name": "Çimenlik", "terms": "Çimenlik, Yeşil Alan" }, + "landuse/greenfield": { + "name": "Yeşil alan" + }, + "landuse/greenhouse_horticulture": { + "name": "Sera çiçeçiliği" + }, "landuse/harbour": { "name": "Liman", "terms": "Liman" @@ -3951,6 +4067,9 @@ "name": "Sanayi Bölgesi", "terms": "Sanayi Bölgesi, Sanayi Alanı" }, + "landuse/industrial/scrap_yard": { + "name": "Hurdalık" + }, "landuse/industrial/slaughterhouse": { "name": "Kesimevi" }, @@ -4030,6 +4149,9 @@ "name": "Antreman Sahası", "terms": "Antreman Sahası" }, + "landuse/religious": { + "name": "Dinsel Alan" + }, "landuse/residential": { "name": "Yerleşim Alanı", "terms": "Yerleşim Alanı" @@ -4050,6 +4172,9 @@ "name": "Yetişkin Oyun Merkezi", "terms": "Yetişkin Oyun Merkezi" }, + "leisure/amusement_arcade": { + "name": "Oyun Salonu" + }, "leisure/bird_hide": { "name": "Vahşi Yaşam Gözetleme Kulesi", "terms": "Vahşi Yaşam Gözetleme Kulesi" @@ -4194,6 +4319,9 @@ "name": "Yarış Pisti (motor spor hariç)", "terms": "Koşu Pisti" }, + "leisure/sauna": { + "name": "Sauna" + }, "leisure/slipway": { "name": "Gemi Kızağı", "terms": "Gemi Kızağı" @@ -4246,6 +4374,9 @@ "name": "Baca", "terms": "Baca" }, + "man_made/crane": { + "name": "Vinç" + }, "man_made/cutline": { "name": "Yangın Durduma Hattı", "terms": "Yangın Durduma Hattı" @@ -4345,6 +4476,9 @@ "name": "Fabrika", "terms": "Fabrika, Sanayi" }, + "manhole": { + "name": "Rogar" + }, "natural": { "name": "Doğal", "terms": "Doğal, Tabii" @@ -5756,6 +5890,11 @@ "description": "Esri Uydu Görüntüleri", "name": "Esri Uydu Görüntüleri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Şartlar ve Geri Bildirim" + } + }, "MAPNIK": { "attribution": { "text": "© OpenStreetMap destekçileri, CC-BY-SA" @@ -5824,18 +5963,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap destekçileri, CC by-SA 3.0" + }, "name": "Waymarked Trails: Bisiklet" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap destekçileri, CC by-SA 3.0" + }, "name": "Waymarked Trails: Yürüyüş" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap destekçileri, CC by-SA 3.0" + }, "name": "Waymarked Trails: Dağ Bisikleti" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap destekçileri, CC by-SA 3.0" + }, "name": "Waymarked Trails: Kaykay" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap destekçileri, CC by-SA 3.0" + }, "name": "Waymarked Trails: Kış Sporları" }, "basemap.at": { diff --git a/dist/locales/uk.json b/dist/locales/uk.json index f4395772e..2e33f1a75 100644 --- a/dist/locales/uk.json +++ b/dist/locales/uk.json @@ -285,18 +285,48 @@ "connected_to_hidden": "Об’єкт неможливо розділити, оскільки мається з’єднання з прихованим об’єктом." }, "restriction": { - "help": { - "select": "Клацніть для вибору відрізку дороги", - "toggle": "Клацніть для вибору обмеження маневра", - "toggle_on": "Клацніть для додавання заборони \"{restriction}\".", - "toggle_off": "Клацніть для видалення заборони \"{restriction}\"." - }, "annotation": { "create": "Додано заборону повороту", "delete": "Заборону повороту видалено" } } }, + "restriction": { + "controls": { + "distance": "Відстань", + "distance_up_to": "До {distance}", + "via": "Via", + "via_node_only": "Тільки точка", + "via_up_to_one": "Не більше 1 лінії", + "via_up_to_two": "Не більше 2 ліній" + }, + "help": { + "indirect": "(опосередковано)", + "turn": { + "no_left_turn": "Поворот ліворуч заборонено {indirect}", + "no_right_turn": "Поворот праворуч заборонено {indirect}", + "no_u_turn": "Розворот заборонено {indirect}", + "no_straight_on": "Рух заборонено {indirect}", + "only_left_turn": "Тільки ліворуч {indirect}", + "only_right_turn": "Тільки праворуч {indirect}", + "only_u_turn": "Тільки розворот {indirect}", + "only_straight_on": "Тільки прямо {indirect}", + "allowed_left_turn": "Поворот ліворуч {indirect}", + "allowed_right_turn": "Поворот праворуч {indirect}", + "allowed_u_turn": "Розворот {indirect}", + "allowed_straight_on": "Рух прямо {indirect}" + }, + "from": "З", + "via": "ЧЕРЕЗ", + "to": "ДО", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Клацніть для виділення відрізку {from}", + "select_from_name": "Клацніть для виділення {from} {fromName}", + "toggle": "Клацніть для \"{turn}\"" + } + }, "undo": { "tooltip": "Скасувати: {action}", "nothing": "Нема чого скасовувати." @@ -352,9 +382,9 @@ "truncated_list": "Редагували: {users} та {count} інших" }, "info_panels": { - "key": "Ш", + "key": "I", "background": { - "key": "И", + "key": "B", "title": "Фон", "zoom": "Масштаб", "vintage": "Період", @@ -369,7 +399,7 @@ "hide_vintage": "Приховати період" }, "history": { - "key": "Р", + "key": "H", "title": "Історія", "selected": "{n} виділено", "version": "Версія", @@ -380,12 +410,12 @@ "link_text": "Історія на openstreetmap.org" }, "location": { - "key": "Д", + "key": "L", "title": "Місцезнаходження", "unknown_location": "Невідома позиція" }, "measurement": { - "key": "Ь", + "key": "M", "title": "Вимірювання", "selected": "{n} виділено", "geometry": "Геометрія", @@ -499,7 +529,7 @@ "title": "Дані OpenStreetMap" } }, - "fill_area": "Заливати полігони", + "fill_area": "Заливка полігонів", "map_features": "Об’єкти на мапі", "autohidden": "Ці об’єкти були автоматично приховані, щоб не захаращувати мапу на екрані. Ви можете наблизитись щоб редагувати їх.", "osmhidden": "Ці об'єкти були автоматично приховані, бо шар OpenStreetMap є скритим." @@ -745,7 +775,7 @@ "fields_add_field": "Ви також можете обрати у списку \"Додати поле\" інше потрібне поле, таке як Опис, Вікіпедія, можливості доступу людей на інвалідних візках та таке інше.", "tags_h": "Теґи", "tags_all_tags": "Під розділом з полями, ви можете розгорнути розділ \"Всі теґи\", щоб мати можливість змінювати *теґи* OpenStreetMap у виділеного об'єкта. Кожен теґ складається з пари *ключ* та *значення*. Теґи визначають чим є елемент даних. В OpenStreetMap кожен об'єкт описується за допомогою наборів теґів.", - "tags_resources": "Безпосереднє редагування теґів вимагає наявності досвіду роботи з OpenStreetMap вище середнього. Ви можете отримати додаткову інформацію з таких джерел як [OpenStreetMap Вікі](https://wiki.openstreetmap.org/wiki/Main_Page) або [Taginfo](https://taginfo.openstreetmap.org/), для того щоб дізнатися про усталені підходи щодо теґування об'єктів в OpenStreetMap." + "tags_resources": "Безпосереднє редагування теґів вимагає наявності досвіду роботи з OpenStreetMap вище середнього. Ви можете отримати додаткову інформацію з таких джерел як [OpenStreetMap Вікі](https://wiki.openstreetmap.org/wiki/Uk:Main_Page) або [Taginfo](https://taginfo.openstreetmap.org/), для того щоб дізнатися про усталені підходи щодо теґування об'єктів в OpenStreetMap." }, "points": { "title": "Точки", @@ -785,7 +815,7 @@ }, "areas": { "title": "Полігони", - "intro": "*Полігони* використовуються для показу меж об'єктів таких як озера, будівлі або житлові квартали. Полігони потрібно креслити по зовнішньому краю об'єкта, яких вони представляють, наприклад, навколо фундаменту будівлі.", + "intro": "*Полігони* використовуються для показу меж об'єктів таких як озера, будівлі або житлові квартали. Полігони потрібно креслити по зовнішньому краю об'єкта, який вони представляють, наприклад, навколо фундаменту будівлі.", "point_or_area_h": "Точка чи Полігон?", "point_or_area": "Багато об'єктів можуть бути нанесені на мапу як у вигляді точок, так і у вигляді полігонів. Треба надавати перевагу кресленню будівель у вигляді полігонів, якщо таке можливо. Ставте точки в середині контурів будівель для позначення об'єктів, які знаходяться в них – офісів, магазинів та таке інше.", "add_area_h": "Додавання полігонів", @@ -846,12 +876,50 @@ }, "gps": { "title": "GPS треки", - "intro": "Зібрані учасниками GPS треки є дуже важливим джерелом даних для OpenStreetMap. Реактор підтримує показ локальних *.gpx*, *.geojson*, та *.kml* файлів. Ви можете записувати GPS треки за допомогою смартфона, фітнес-трекерів та інших GSP-приладів.", + "intro": "Зібрані учасниками GPS треки є дуже важливим джерелом даних для OpenStreetMap. Реактор підтримує показ локальних *.gpx*, *.geojson*, та *.kml* файлів. Ви можете записувати GPS треки за допомогою смартфона, фітнес-трекерів та інших GPS-приладів.", "survey": "Щоб дізнатись, як використовувати GPS під час дослідження місцевості, прочитайте [Збір даних за допомогою смартфона, GPS та аркуша паперу](http://learnosm.org/en/mobile-mapping/).", "using_h": "Використання GPS треків", "using": "Для використання GPS треку для мапінгу, перетягніть файл у вікно з мапою. Якщо все добре, ваш трек буде показано у вигляді світло-фіолетової лінії. Клацніть на кнопку {data} **Дані мапи** збоку мапи, щоб відкрити панель де ви зможете показати або приховати трек, а також мати можливість змінити масштаб для перегляду всього треку на мапі.", "tracing": "У цім випадку GPS трек не надсилається до OpenStreetMap. Ви можете використовувати його як напрямну лінію для додавання нових та уточнення наявних об'єктів.", "upload": "Також ви можете [завантажити ваші GPS треки на сервер OpenStreetMap](https://www.openstreetmap.org/trace/create) для того, щоб й інші могли скористатись ними для уточнення даних." + }, + "field": { + "restrictions": { + "title": "Довідка з обмеження маневрів", + "about": { + "title": "Про програму", + "about": "В цьому редакторі ви можете перевірити, а також змінити обмеження маневрів. Він показує модель перехрестя, включаючи дороги, які ведуть до нього.", + "from_via_to": "Зв'язок обмеження маневрів завжди містить: одну лінію з роллю **FROM**, одну лінію з роллю **TO**, та одну точку з роллю **VIA** або одну чи більше ліній, що мають роль **VIA** у цьому зв'язку.", + "maxdist": "За допомоги бігунка \"{distField}\" ви можете встановити, як далеко від перехрестя шукати прилеглі дороги.", + "maxvia": "Бігунок \"{viaField}\" встановлює кількість ліній з роллю via можуть бути включені в пошук. (Порада: чим простіше - тим краще)" + }, + "inspecting": { + "title": "Перевірка", + "about": "Наведіть вказівник миші на будь-який відрізок, що може мати роль *FROM**, щоб подивитись чи він є членом будь-якого зв'язку обмеження маневрів. Кожен можливий член зв'язку, що матиме роль **TO**, буде підсвічено, що дасть можливість подивитись чи тут є обмеження.", + "from_shadow": "{fromShadow} **відрізок FROM**", + "allow_shadow": "{allowShadow} **відрізок TO - рух дозволено**", + "restrict_shadow": "{restrictShadow} **відрізок TO - рух заборонено**", + "only_shadow": "{onlyShadow} **відрізок TO - рух тільки в цьому напрямку**", + "restricted": "\"Рух заборонено\" означає, що в напрямку цього відрізка зробити поворот без порушення правил дорожнього руху неможливо, для позначення цього використовується зв'язок, наприклад: \"No Left Turn\" ", + "only": "\"Рух тільки в цьому напрямку\" означає, що це єдиний дозволений напрямок руху транспортних засобів, наприклад: \"Only Straight On\"." + }, + "modifying": { + "title": "Редагування", + "about": "Для зміни зв'язків обмеження маневрів, спочатку клацніть на відрізок, що матиме роль **FROM**, від якого починає діяти обмеження. Виділений відрізок почне блимати та з'являться усі можливі варіанти відрізків **TO**, у вигляді стрілок.", + "indicators": "Потім, клацайте на стрілку для перемикання режимів \"Дозволено\", \"Заборонено\", \"Тільки в цьому напрямку\".", + "allow_turn": "{allowTurn} **відрізок TO - рух дозволено**", + "restrict_turn": "{restrictTurn} *відрізок TO - рух заборонено**", + "only_turn": "{onlyTurn} **відрізок TO - рух тільки в цьому напрямку**" + }, + "tips": { + "title": "Поради", + "simple": "**Надавайте перевагу простим зв'язкам.**", + "simple_example": "Наприклад, не створюйте зв'язок що містить відрізок-via, якщо є можливість створити простіший зв'язок з точкою-via.", + "indirect": "**Деякі зв'язки позначено текстом \"(опосередковано)\" та підсічено світлішим кольором.**", + "indirect_example": "Ці обмеження виникають опосередковано через наявність інших обмежень поруч. Наприклад, обмеження \"Рух тільки прямо\" опосередковано має на увазі наявність заборони розвороту для всіх інших шляхів, що проходять через перехрестя.", + "indirect_noedit": "Ви можете не додавати опосередковані обмеження. Замість цього додайте безпосередні обмеження на здійснення маневрів." + } + } } }, "intro": { @@ -1188,18 +1256,18 @@ }, "operations": { "title": "Операції", - "continue_line": "Продовжити лінію від видаленої точки", + "continue_line": "Продовжити лінію від виділеної точки", "merge": "Обʼєднати (злити) виділені обʼєкти", "disconnect": "Розʼєднати обʼєкти у виділеній точці", "split": "Розрізати лінію на дві у виділеній точці", "reverse": "Розвернути напрямок лінії", "move": "Перемістити виділені обʼєкти", - "rotate": "Обертання вибілених обʼєктів", + "rotate": "Обертання виділених обʼєктів", "orthogonalize": "Спрямлення лініий / Випрямленя кутів", "circularize": "Зробити коло із замкненої лінії", "reflect_long": "Віддзеркалення обʼєктів через їх довгі сторони.", "reflect_short": "Віддзеркалення обʼєктів через їх короткі сторони.", - "delete": "Вилучення виділенних обʼєктів" + "delete": "Вилучення виділених обʼєктів" }, "commands": { "title": "Команди", @@ -1697,6 +1765,9 @@ "forward": "За напрямком лінії" } }, + "dispensing": { + "label": "За рецептом" + }, "display": { "label": "Циферблат" }, @@ -2639,6 +2710,9 @@ "wheelchair": { "label": "Для інвалідних візків" }, + "wholesale": { + "label": "Товар" + }, "width": { "label": "Ширина (метрів)" }, @@ -3461,8 +3535,12 @@ "name": "Вхід/Вихід" }, "building/farm": { - "name": "Ферма", - "terms": "будинок,ферма" + "name": "Житловий будинок на фермі", + "terms": "будинок,ферма,дім,житло" + }, + "building/farm_auxiliary": { + "name": "Господарчі споруди на фермі", + "terms": "споруда,ферма,пташник,комора,сховище,телятник,свинарник,конюшня,майстерня" }, "building/garage": { "name": "Гараж", @@ -4377,6 +4455,10 @@ "name": "Гральні автомати", "terms": "азарт,ставки,гроші,виграш,програш,атомат,казіно" }, + "leisure/amusement_arcade": { + "name": "Ігрові автомати", + "terms": "один-на-один,ігра,автомат,відео,симулятор,пінбол" + }, "leisure/bird_hide": { "name": "Пункт спостереження", "terms": "птахи,звіри,природа,тварини" @@ -5704,6 +5786,10 @@ "name": "Господарські товари", "terms": "Hardware Store, ujcgjlfhcmrs njdfhb, промтовари" }, + "shop/health_food": { + "name": "Магазин здорового харчування", + "terms": "харчові добавки,вітаміни,вегеріанский,веганський" + }, "shop/hearing_aids": { "name": "Слухові апарати", "terms": "магазин, вади, слух, підсилення, апарат" @@ -5943,6 +6029,10 @@ "name": "Зброя", "terms": "Зброя, рушниця, мисливство, набої, пістолет, ніж, спорядження" }, + "shop/wholesale": { + "name": "Гуртова торгівля", + "terms": "кеш-енд-кері,опт,гурт,товар" + }, "shop/window_blind": { "name": "Жалюзі, ролети", "terms": "магазин, жалюзі, ролети, занавіски" @@ -6317,7 +6407,14 @@ "text": "Умови використання та Відгуки" }, "description": "Знімки Esri.", - "name": "Esri World Imagery" + "name": "Знімки Esri" + }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Умови використання та Відгуки" + }, + "description": "Архівні знімки Esri які можуть бути чіткішими та більш точними ніж знімки зі звичайного шару.", + "name": "Знімки Esri (Прозорі) бета" }, "MAPNIK": { "attribution": { diff --git a/dist/locales/vi.json b/dist/locales/vi.json index bcbbb504e..3052a63d9 100644 --- a/dist/locales/vi.json +++ b/dist/locales/vi.json @@ -285,12 +285,6 @@ "connected_to_hidden": "Không thể chia cắt đối tượng này vì nó nối liền với một đối tượng ẩn." }, "restriction": { - "help": { - "select": "Nhấn chuột để chọn một khúc đường.", - "toggle": "Nhấn chuột để thêm hoặc bỏ hạn chế rẽ.", - "toggle_on": "Nhấn chuột để thêm hạn chế “{restriction}”.", - "toggle_off": "Bấm để bỏ hạn chế “{restriction}”." - }, "annotation": { "create": "thêm hạn chế rẽ", "delete": "bỏ hạn chế rẽ" @@ -655,6 +649,7 @@ "untagged_area_tooltip": "Chọn loại vùng.", "untagged_relation": "Quan hệ không có thẻ", "untagged_relation_tooltip": "Chọn loại quan hệ.", + "many_deletions": "Bạn có chắc chắn muốn xóa {n} đối tượng, tính cả {p} nốt, {l} đường kẻ, {a} vùng, và {r} quan hệ? Các đối tượng này sẽ bị xóa khỏi bản đồ công cộng tại openstreetmap.org.", "tag_suggests_area": "Thẻ {tag} có lẽ dành cho vùng nhưng được gắn vào đường kẻ", "deprecated_tags": "Không khuyến khích sử dụng các thẻ: {tags}" }, @@ -1601,6 +1596,9 @@ "forward": "Tiến" } }, + "dispensing": { + "label": "Phát Thuốc" + }, "display": { "label": "Kiểu Hiển thị" }, @@ -2543,6 +2541,9 @@ "wheelchair": { "label": "Đi Xe lăn Được" }, + "wholesale": { + "label": "Bán buôn" + }, "width": { "label": "Chiều ngang (Mét)" }, @@ -3364,10 +3365,6 @@ "building/entrance": { "name": "Cửa Ra vào" }, - "building/farm": { - "name": "Nhà ở Nông trại", - "terms": "nhà ở nông trại, căn nhà nông trại, nha o nong trai, can nha nong trai" - }, "building/garage": { "name": "Ga ra", "terms": "ga ra, ga-ra" @@ -4281,6 +4278,10 @@ "name": "Trung tâm Đánh bạc", "terms": "trung tâm đánh bạc, máy đánh bạc, trung tam danh bac, may danh bac" }, + "leisure/amusement_arcade": { + "name": "Khu Trò chơi Điện tử", + "terms": "khu trò chơi điện tử, trung tâm trò chơi điện tử, trò chơi cảm giác mạnh, trò chơi video, trò chơi bắn bóng, pinball, trò chơi lái xe ảo, khu tro choi dien tu, trung tam tro choi dien tu, tro choi cam giac manh, tro choi video, tro choi ban bong, tro choi lai xe ao" + }, "leisure/bird_hide": { "name": "Căn nhà Quan sát Chim", "terms": "căn nhà quan sát chim, căn nhà quan sát động vật, can nha quan sat chim, can nha quan sat dong vat" @@ -5367,8 +5368,8 @@ "terms": "cửa hàng, tiệm, cửa hiệu, cửa buôn bán, nhà bán hàng, nhà buôn bán, nơi bán hàng, cua hang, tiem, cua hieu, cua buon ban, nha ban hang, nha buon ban, noi ban hang" }, "shop/agrarian": { - "name": "Tiệm Nông thôn", - "terms": "tiệm nông nghiệp, cửa hàng nông nghiệp, quán nông nghiệp, hạt, thuốc trừ dịch hại, dụng cụ nông nghiệp, tiem nong nghiep, cua hang nong nghiep, quan nong nghiep, hat, thuoc tru dich hai, dung cu nong nghiep" + "name": "Tiệm Nông nghiệp", + "terms": "tiệm nông nghiệp, cửa hàng nông nghiệp, hạt, thuốc trừ dịch hại, dụng cụ nông nghiệp, tiem nong nghiep, cua hang nong nghiep, hat, thuoc tru dich hai, dung cu nong nghiep" }, "shop/alcohol": { "name": "Tiệm Rượu", @@ -5608,6 +5609,10 @@ "name": "Tiệm Ngũ kim", "terms": "khu vực bán đồ ngũ kim, chỗ bán đồ ngũ kim, tiệm bán đồ ngũ kim, nơi bán đồ ngũ kim, cửa hàng bán đồ ngũ kim, cửa hiệu bán đồ ngũ kim, quầy bán đồ ngũ kim, nơi đồ ngũ kim, cửa tiệm đồ ngũ kim, đồ xây dựng, vít, đinh, ốc, sơn, đèn, pin, khu vuc ban do ngu kim, cho ban do ngu kim, tiem ban do ngu kim, noi ban do ngu kim, cua hang ban do ngu kim, cua hieu ban do ngu kim, quay ban do ngu kim, noi do ngu kim, cua tiem do ngu kim, do xay dung, vit, dinh, oc, son, den" }, + "shop/health_food": { + "name": "Tiệm Thực phẩm Tự nhiên", + "terms": "tiệm thực phẩm tự nhiên, cửa hàng thực phẩm tự nhiên, tiệm thực phẩm bổ dưỡng, cửa hàng thực phẩm bổ dưỡng, tiem thuc pham tu nhien, cua hang thuc pham tu nhien, tiem thuc pham bo duong, cua hang thuc pham bo duong" + }, "shop/hearing_aids": { "name": "Tiệm Ống nghe", "terms": "tiệm ống nghe, cửa hàng ống nghe, cửa hiệu ống nghe, điếc tai, tiem ong nghe, cua hang ong nghe, cua hieu ong nghe, diec tai" @@ -5847,6 +5852,10 @@ "name": "Tiệm Súng", "terms": "tiệm súng, cửa hàng súng, cửa hiệu súng, quán súng, tiem sung, cua hang sung, cua hieu sung, quan sung" }, + "shop/wholesale": { + "name": "Tiệm Bán buôn", + "terms": "tiệm bán buôn, cửa hàng bán buôn, tiệm bán sỉ, cửa hàng bán sỉ, tiem ban buon, cua hang ban buon, tiem ban si, cua hang ban si" + }, "shop/window_blind": { "name": "Tiệm Mành", "terms": "tiệm mành mành, cửa hàng mành mành, cửa hiệu mành mành, tiệm màn sáo, cửa hàng màn sáo, cửa hiệu màn sáo, tiem manh manh, cua hang manh manh, cua hieu manh manh, tiem man sao, cua hang man sao, cua hieu man sao" @@ -6223,6 +6232,13 @@ "description": "Hình ảnh thế giới Esri.", "name": "Hình ảnh Thế giới Esri" }, + "EsriWorldImageryClarity": { + "attribution": { + "text": "Điều khoản & Phản hồi" + }, + "description": "Hình ảnh lưu trữ Esri có thể rõ hơn và chính xác hơn lớp mặc định.", + "name": "Hình ảnh Thế giới Esri (Clarity) Beta" + }, "MAPNIK": { "attribution": { "text": "© những người đóng góp vào OpenStreetMap, CC BY-SA" @@ -6291,18 +6307,33 @@ "name": "Đường sá TIGER 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, những người đóng góp vào OpenStreetMap, CC BY-SA 3.0" + }, "name": "Waymarked Trails: Xe đạp" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, những người đóng góp vào OpenStreetMap, CC BY-SA 3.0" + }, "name": "Waymarked Trails: Đường Đi bộ Dài" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, những người đóng góp vào OpenStreetMap, CC BY-SA 3.0" + }, "name": "Waymarked Trails: Xe đạp Leo núi" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, những người đóng góp vào OpenStreetMap, CC BY-SA 3.0" + }, "name": "Waymarked Trails: Trượt băng" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, những người đóng góp vào OpenStreetMap, CC BY-SA 3.0" + }, "name": "Waymarked Trails: Thể thao Mùa đông" }, "basemap.at": { diff --git a/dist/locales/yue.json b/dist/locales/yue.json index a9763f7da..2874ca4d8 100644 --- a/dist/locales/yue.json +++ b/dist/locales/yue.json @@ -207,12 +207,6 @@ "connected_to_hidden": "無得分,佢連咗去隠藏地貌。" }, "restriction": { - "help": { - "select": "撳一下揀段車道", - "toggle": "撳一下限制車道轉向", - "toggle_on": "撳一下加條則,限制車道轉向 {restriction}", - "toggle_off": "撳一下減條則,限制車道轉向 {restriction}" - }, "annotation": { "create": "加咗一則,限制車道轉向", "delete": "減咗一則,限制車道轉向" diff --git a/dist/locales/zh-CN.json b/dist/locales/zh-CN.json index db3a17479..1157d4bc8 100644 --- a/dist/locales/zh-CN.json +++ b/dist/locales/zh-CN.json @@ -285,12 +285,6 @@ "connected_to_hidden": "无法打断,因为其与一隐藏要素相连。" }, "restriction": { - "help": { - "select": "单击以选中一条路。", - "toggle": "点击切换转向限制。", - "toggle_on": "单击以添加一个\"{restriction}\"限制。", - "toggle_off": "单击以删除一个\"{restriction}\"限制。" - }, "annotation": { "create": "添加转向限制", "delete": "删除转向限制" @@ -719,7 +713,18 @@ "select_right_click": "{rightclick}使用次鼠标键(常见为右键)点击一个要素可以显示编辑菜单,其中给出了可用的指令,如旋转、移动和删除等等。", "multiselect_h": "多选", "multiselect_shift_click": "`{shift}`+{leftclick} 左键以选中多个要素。这样能使移动或删除多个要素变得更为方便。", - "save_h": "保存" + "multiselect_lasso": "另一种选择多个要素的方式是按住 `{shift}` 键不放,然后按住 {leftclick} 鼠标左键并拖动以绘制一根拉索。所有在拉索中的节点都会被选中。", + "undo_redo_h": "撤销和重做", + "undo_redo": "您的编辑都会被本地保存在您的浏览器中,直到您选择保存它们至 OpenStreetMap 服务器。您可以点击 {undo} **撤销** 按钮撤销编辑,或点击 {redo} **重做** 按钮重做编辑。", + "save_h": "保存", + "save": "点击 {save} **保存** 以完成您的编辑并发送至 OpenStreetMap。请您牢记:要经常保存您的编辑!", + "save_validation": "在保存界面,您有机会再次检查您所做的编辑。iD 也会做相应的基本检查确保无数据缺失,并且会在不适当的地方提供有用的建议或警告。", + "upload_h": "上传", + "upload": "在上传您所做的修改之前,您必须输入一段 [修改集合注释](https://wiki.openstreetmap.org/wiki/Good_changeset_comments) 。接着点击 **上传** 将您的编辑发送至 OpenStreetMap,之后它们将会被合并到地图并且对所有人公开可见。", + "backups_h": "自动备份", + "backups": "如果您一时无法结束您的编辑,例如您的计算机宕机或者关闭了浏览器标签页,您所做的编辑仍会被保存在浏览器存储中。您可以稍后回来(在相同的计算机和浏览器上),然后由 iD 恢复您之前的编辑。", + "keyboard_h": "键盘快捷键", + "keyboard": "您可以按下 `?` 键以查看键盘快捷键列表。" }, "feature_editor": { "title": "要素编辑器" @@ -737,7 +742,14 @@ "title": "关系" }, "imagery": { - "title": "背景影像" + "title": "背景影像", + "intro": "显示在地图数据下方的背景影像,是绘图过程中的重要资源。它们可以收集自卫星、飞机和无人机的航空照片,或扫描自历史地图,或来自其他可自由使用的数据源。", + "sources_h": "影像来源", + "choosing": "要查看可适用于编辑的影像资源,请点击地图侧边 {layers} **背景设定** 按钮。", + "sources": "[必应地图](https://www.bing.com/maps/) 卫星图层被设定为默认背景影像。基于您编辑的所处位置,也会有其他影像可供使用。其中有些会较新或有更高清晰度,所以建议先检查哪个图层最适合作为绘图参考。", + "offsets_h": "调整影像偏移", + "offset": "有时候影像相较于准确地图数据会有轻微的偏移。如果您看见大量的道路或建筑物偏移了背景影像,那可能是由影像不正确导致,这时请不要全部移动它们来匹配背景。相反,您可以在背景设置的底部找到“调整影像偏移”版块,通过增加偏移来调整背景,从而使它与既有数据吻合。", + "offset_change": "点击小三角以微小的幅度调整影像偏移;或者在灰色矩形内按住鼠标左键并拖动,以校准影像。" }, "streetlevel": { "title": "街景照片" @@ -923,6 +935,7 @@ }, "areas": { "title": "区域", + "add_playground": "*区域* 用来显示诸如湖泊、建筑物或居民区等要素的边界。{br}他们亦可作为一种更细致的绘制方式,以替代普通地用点来标记的方式。 **点击 {button} 区域按钮来添加一个新的区域。**", "start_playground": "让我们用描绘一个区域的方式来添加这个游乐场吧。区域是通过在要素的外部轮廓上放置若干 *节点* 来描绘。 **点击或按空格键,在游乐场的其中一角放置一个起始节点。**", "continue_playground": "继续在游乐场的轮廓上放置更多的节点来绘制该区域。如果遇到既有的人行道,你也可以将区域连接到人行道上。{br}提示:您可以按下{alt}键以防止节点连接到其他要素上。 **继续绘制游乐场区域。**", "finish_playground": "按回车键、或再次点击起始/结束节点来结束绘制该区域。 **完成勾画该游乐场的轮廓。**", @@ -1117,8 +1130,8 @@ "units": { "feet": "{quantity} ft", "miles": "{quantity} mi", - "square_feet": "{quantity} sq ft", - "square_miles": "{quantity} sq mi", + "square_feet": "{quantity} ft²", + "square_miles": "{quantity} mi²", "acres": "{quantity} ac", "meters": "{quantity} m", "kilometers": "{quantity} km", @@ -2515,6 +2528,9 @@ "wheelchair": { "label": "轮椅通道" }, + "wholesale": { + "label": "批发" + }, "width": { "label": "宽度 (米)" }, @@ -5654,6 +5670,9 @@ "name": "武器店", "terms": "武器店" }, + "shop/wholesale": { + "name": "批发市场" + }, "shop/window_blind": { "name": "百叶窗店", "terms": "百叶窗店" diff --git a/dist/locales/zh-HK.json b/dist/locales/zh-HK.json index 3d746fd32..02da4ec8a 100644 --- a/dist/locales/zh-HK.json +++ b/dist/locales/zh-HK.json @@ -282,12 +282,6 @@ "connected_to_hidden": "未能分割這個因為它連接著一個隱藏的特徵。" }, "restriction": { - "help": { - "select": "於地圖上按一下選擇一段道路。", - "toggle": "按一下改變轉彎限制", - "toggle_on": "按一下新增\"{restriction}\"限制。", - "toggle_off": "按一下移除\"{restriction}\"限制。" - }, "annotation": { "create": "已新增轉彎限制", "delete": "已刪除轉彎限制" diff --git a/dist/locales/zh-TW.json b/dist/locales/zh-TW.json index 13d3598e8..828bd4f65 100644 --- a/dist/locales/zh-TW.json +++ b/dist/locales/zh-TW.json @@ -285,12 +285,6 @@ "connected_to_hidden": "這個沒辦法切割,因為與其他隱藏的圖徵相連." }, "restriction": { - "help": { - "select": "點選選擇一段道路", - "toggle": "點選切換轉向限制。", - "toggle_on": "點選增加\"{restriction}\"的限制。", - "toggle_off": "點選移除\"{restriction}\"的限制。" - }, "annotation": { "create": "已增加轉向限制", "delete": "已移除轉向限制" @@ -1697,6 +1691,9 @@ "forward": "前進" } }, + "dispensing": { + "label": "發放處方" + }, "display": { "label": "顯示" }, @@ -1772,7 +1769,7 @@ "label": "設備類型" }, "fixme": { - "label": "修復我" + "label": "修正我" }, "ford": { "label": "類型", @@ -2639,6 +2636,9 @@ "wheelchair": { "label": "輪椅通道" }, + "wholesale": { + "label": "批發" + }, "width": { "label": "寬度 (公尺)" }, @@ -3464,6 +3464,10 @@ "name": "農舍", "terms": "農舍" }, + "building/farm_auxiliary": { + "name": "農場建築物", + "terms": "農場建築物" + }, "building/garage": { "name": "車庫", "terms": "車庫" @@ -4377,6 +4381,10 @@ "name": "成人遊戲中心", "terms": "成人遊樂場" }, + "leisure/amusement_arcade": { + "name": "遊樂場", + "terms": "遊樂場" + }, "leisure/bird_hide": { "name": "鳥類棲息處", "terms": "鳥類棲息處,鳥類棲地,鳥類藏身處" @@ -5463,8 +5471,8 @@ "terms": "商店,商行" }, "shop/agrarian": { - "name": "農用品店", - "terms": "農用品店" + "name": "農業用品補給店", + "terms": "農用品店 " }, "shop/alcohol": { "name": "酒類專賣店", @@ -5704,6 +5712,10 @@ "name": "五金店", "terms": "五金行" }, + "shop/health_food": { + "name": "健康食品店", + "terms": "保康食品店" + }, "shop/hearing_aids": { "name": "助聽器店", "terms": "助聽器商店" @@ -5943,6 +5955,10 @@ "name": "武器店", "terms": "武器商店,槍店" }, + "shop/wholesale": { + "name": "批發商", + "terms": "批發商,批發店" + }, "shop/window_blind": { "name": "窗廉店", "terms": "窗廉商店" From 0f7ef99dbc4429f39480b581dcbe553e55a2130c Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 2 Mar 2018 17:54:38 -0500 Subject: [PATCH 111/157] v2.7.0 --- modules/core/context.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index f36da5420..ed3c69c2f 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -53,7 +53,7 @@ export function setAreaKeys(value) { export function coreContext() { var context = {}; - context.version = '2.6.1'; + context.version = '2.7.0'; // create a special translation that contains the keys in place of the strings var tkeys = _cloneDeep(dataEn); diff --git a/package.json b/package.json index 4694376c8..1c9d26e1e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iD", - "version": "2.6.1", + "version": "2.7.0", "description": "A friendly editor for OpenStreetMap", "main": "iD.js", "repository": "openstreetmap/iD", From 7f7bccddc0425194b17cce034778002b84f92506 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 3 Mar 2018 23:28:23 -0500 Subject: [PATCH 112/157] Add flow-coverage report - `npm run flow:coverage` --- .flowcoverageconfig | 11 +++++++++++ package.json | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 .flowcoverageconfig diff --git a/.flowcoverageconfig b/.flowcoverageconfig new file mode 100644 index 000000000..d30d340c2 --- /dev/null +++ b/.flowcoverageconfig @@ -0,0 +1,11 @@ +{ + "concurrentFiles": 20, + "excludeGlob": [ + "node_modules/**" + ], + "includeGlob": [ + "modules/**/*.js" + ], + "threshold": 10, + "type": "text" +} diff --git a/package.json b/package.json index 4d27d9a1a..a819e512d 100644 --- a/package.json +++ b/package.json @@ -18,13 +18,14 @@ "dist:min": "uglifyjs dist/iD.js -c warnings=false -m -o dist/iD.min.js", "dist:svg:maki": "svg-sprite --symbol --symbol-dest . --symbol-sprite dist/img/maki-sprite.svg node_modules/@mapbox/maki/icons/*.svg", "dist:svg:id": "node svg/spriteify.js --svg svg/iD-sprite.src.svg --json svg/iD-sprite.json > dist/img/iD-sprite.svg", + "flow": "flow", + "flow:coverage": "flow-coverage-report --config .flowcoverageconfig", "imagery": "node data/update_imagery", "lint": "eslint *.js js/id test/spec modules", "start": "node development_server.js develop", "test": "npm-run-all -s lint build test:**", "test:phantom": "phantomjs --web-security=no node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html spec", - "translations": "node data/update_locales", - "flow": "flow" + "translations": "node data/update_locales" }, "dependencies": { "@mapbox/sexagesimal": "1.1.0", @@ -50,6 +51,7 @@ "eslint": "^4.3.0", "eslint-plugin-flowtype": "^2.46.1", "flow-bin": "^0.66.0", + "flow-coverage-report": "^0.5.0", "flow-remove-types": "^1.2.3", "gaze": "^1.1.1", "glob": "^7.1.0", From a5d6928726175f4031f47dffc934abddbfd354fe Mon Sep 17 00:00:00 2001 From: hikemaniac <31667811+hikemaniac@users.noreply.github.com> Date: Sun, 4 Mar 2018 10:57:12 +0100 Subject: [PATCH 113/157] Add preset for dancing school. --- data/presets.yaml | 5 ++++ data/presets/presets.json | 29 +++++++++++++++++++ .../presets/leisure/dancing_school.json | 29 +++++++++++++++++++ data/taginfo.json | 4 +++ dist/locales/en.json | 4 +++ 5 files changed, 71 insertions(+) create mode 100644 data/presets/presets/leisure/dancing_school.json diff --git a/data/presets.yaml b/data/presets.yaml index b367bee15..18a81c9fc 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3613,6 +3613,11 @@ en: name: Dance Hall # 'terms: ballroom,jive,swing,tango,waltz' terms: '' + leisure/dancing_school: + # leisure=dance, dance:teaching=yes + name: Dancing School + # 'terms: jive,swing,tango,waltz,dance teaching' + terms: '' leisure/dog_park: # leisure=dog_park name: Dog Park diff --git a/data/presets/presets.json b/data/presets/presets.json index 57635ddfb..ceb7ffe1b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -9408,6 +9408,35 @@ }, "name": "Dance Hall" }, + "leisure/dancing_school": { + "icon": "school", + "fields": [ + "name", + "operator", + "address", + "opening_hours" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "jive", + "swing", + "tango", + "waltz", + "dance teaching" + ], + "tags": { + "leisure": "dance" + "dance:teaching": "yes" + }, + "reference": { + "key": "leisure", + "value": "dance" + }, + "name": "Dancing School" + }, "leisure/dog_park": { "icon": "dog-park", "geometry": [ diff --git a/data/presets/presets/leisure/dancing_school.json b/data/presets/presets/leisure/dancing_school.json new file mode 100644 index 000000000..a316a26cf --- /dev/null +++ b/data/presets/presets/leisure/dancing_school.json @@ -0,0 +1,29 @@ +{ + "icon": "school", + "fields": [ + "name", + "operator", + "address", + "opening_hours" + ], + "geometry": [ + "point", + "area" + ], + "terms": [ + "jive", + "swing", + "tango", + "waltz", + "dance teaching" + ], + "tags": { + "leisure": "dance", + "dance:teaching": "yes" + }, + "reference": { + "key": "leisure", + "value": "dance" + }, + "name": "Dancing School" +} diff --git a/data/taginfo.json b/data/taginfo.json index d206b8f4c..0119433de 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1777,6 +1777,10 @@ "key": "leisure", "value": "dance" }, + { + "key": "dance:teaching", + "value": "yes" + }, { "key": "leisure", "value": "dog_park" diff --git a/dist/locales/en.json b/dist/locales/en.json index bf48be27f..255166457 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4453,6 +4453,10 @@ "name": "Dance Hall", "terms": "ballroom,jive,swing,tango,waltz" }, + "leisure/dancing_school": { + "name": "Dancing School", + "terms": "jive,swing,tango,waltz,dance teaching" + }, "leisure/dog_park": { "name": "Dog Park", "terms": "" From 05c9f49a7f13424a25c16ecfd4b4640c8337a97e Mon Sep 17 00:00:00 2001 From: hikemaniac <31667811+hikemaniac@users.noreply.github.com> Date: Sun, 4 Mar 2018 14:07:16 +0100 Subject: [PATCH 114/157] Added a missing comma. --- data/presets/presets.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index ceb7ffe1b..ba5e28de1 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -9428,7 +9428,7 @@ "dance teaching" ], "tags": { - "leisure": "dance" + "leisure": "dance", "dance:teaching": "yes" }, "reference": { From 837b297ec61daf94e2a2de71a626edfaa4153b35 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 5 Mar 2018 01:01:22 -0500 Subject: [PATCH 115/157] Add Dance Styles field, change icon to music notes (re: https://github.com/openstreetmap/iD/pull/4846#issuecomment-370317305) --- data/presets.yaml | 9 ++++++--- data/presets/fields.json | 5 +++++ data/presets/fields/dance/style.json | 5 +++++ data/presets/presets.json | 7 ++++--- data/presets/presets/leisure/dancing_school.json | 7 ++++--- dist/locales/en.json | 5 ++++- 6 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 data/presets/fields/dance/style.json diff --git a/data/presets.yaml b/data/presets.yaml index 1cb8247d6..15da6dba4 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -402,6 +402,9 @@ en: types: 'cycleway:left': Left side 'cycleway:right': Right side + dance/style: + # 'dance:style=*' + label: Dance Styles date: # date=* label: Date @@ -3618,10 +3621,10 @@ en: # 'terms: ballroom,jive,swing,tango,waltz' terms: '' leisure/dancing_school: - # leisure=dance, dance:teaching=yes - name: Dancing School + # 'leisure=dance, dance:teaching=yes' + name: Dance School # 'terms: jive,swing,tango,waltz,dance teaching' - terms: '' + terms: '' leisure/dog_park: # leisure=dog_park name: Dog Park diff --git a/data/presets/fields.json b/data/presets/fields.json index 24ad0e858..6b9369f03 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -548,6 +548,11 @@ } } }, + "dance/style": { + "key": "dance:style", + "type": "semiCombo", + "label": "Dance Styles" + }, "date": { "key": "date", "type": "check", diff --git a/data/presets/fields/dance/style.json b/data/presets/fields/dance/style.json new file mode 100644 index 000000000..38e2513cc --- /dev/null +++ b/data/presets/fields/dance/style.json @@ -0,0 +1,5 @@ +{ + "key": "dance:style", + "type": "semiCombo", + "label": "Dance Styles" +} diff --git a/data/presets/presets.json b/data/presets/presets.json index da6f01fa8..4deab4ccd 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -9425,12 +9425,13 @@ "name": "Dance Hall" }, "leisure/dancing_school": { - "icon": "school", + "icon": "music", "fields": [ "name", "operator", "address", - "opening_hours" + "opening_hours", + "dance/style" ], "geometry": [ "point", @@ -9451,7 +9452,7 @@ "key": "leisure", "value": "dance" }, - "name": "Dancing School" + "name": "Dance School" }, "leisure/dog_park": { "icon": "dog-park", diff --git a/data/presets/presets/leisure/dancing_school.json b/data/presets/presets/leisure/dancing_school.json index a316a26cf..af8bbb9a2 100644 --- a/data/presets/presets/leisure/dancing_school.json +++ b/data/presets/presets/leisure/dancing_school.json @@ -1,10 +1,11 @@ { - "icon": "school", + "icon": "music", "fields": [ "name", "operator", "address", - "opening_hours" + "opening_hours", + "dance/style" ], "geometry": [ "point", @@ -25,5 +26,5 @@ "key": "leisure", "value": "dance" }, - "name": "Dancing School" + "name": "Dance School" } diff --git a/dist/locales/en.json b/dist/locales/en.json index a0796fd6c..ca16b9f29 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1703,6 +1703,9 @@ } } }, + "dance/style": { + "label": "Dance Styles" + }, "date": { "label": "Date" }, @@ -4526,7 +4529,7 @@ "terms": "ballroom,jive,swing,tango,waltz" }, "leisure/dancing_school": { - "name": "Dancing School", + "name": "Dance School", "terms": "jive,swing,tango,waltz,dance teaching" }, "leisure/dog_park": { From 5534f1edc5e5cc83431b82f0a35db952b3101b3d Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Mon, 5 Mar 2018 23:21:03 +0100 Subject: [PATCH 116/157] prefer tms sources over wms if duplicates exist with same name --- data/update_imagery.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/update_imagery.js b/data/update_imagery.js index be5a02a00..fd0e6e61c 100644 --- a/data/update_imagery.js +++ b/data/update_imagery.js @@ -59,6 +59,9 @@ sources.concat(whitelist).forEach(function(source) { }) }); if (source.type === 'wms' && supportedProjection === undefined) return; + if (source.type === 'wms' && sources.some(function(otherSource) { + return otherSource.name === source.name && otherSource.type !== source.type; + })) return; var im = { id: source.id, From 13789cc86e1671dcc65221cdcd0c3b376b6bb898 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 6 Mar 2018 15:37:36 -0500 Subject: [PATCH 117/157] Hardcode `ckb` as RTL and `ku` as LTR (closes #4783) --- data/locales.json | 4 ++-- data/update_locales.js | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/data/locales.json b/data/locales.json index d7b95f1c5..4b1041a23 100644 --- a/data/locales.json +++ b/data/locales.json @@ -28,7 +28,7 @@ "rtl": false }, "ckb": { - "rtl": false + "rtl": true }, "cs": { "rtl": false @@ -124,7 +124,7 @@ "rtl": false }, "ku": { - "rtl": true + "rtl": false }, "lij": { "rtl": false diff --git a/data/update_locales.js b/data/update_locales.js index e464cf99e..c89391921 100644 --- a/data/update_locales.js +++ b/data/update_locales.js @@ -51,7 +51,14 @@ asyncMap(resources, getResource, function(err, locales) { obj[code] = locale[code]; fs.writeFileSync(outdir + code + '.json', JSON.stringify(obj, null, 4)); getLanguageInfo(code, function(err, info) { - dataLocales[code] = { rtl: info && info.rtl }; + var rtl = info && info.rtl; + // exceptions: see #4783 + if (code === 'ckb') { + rtl = true; + } else if (code === 'ku') { + rtl = false; + } + dataLocales[code] = { rtl: rtl }; done(); }); } From e8ce9a2cf7512e8e98334e5d8496d607fd9eb8c5 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Tue, 6 Mar 2018 15:40:40 -0500 Subject: [PATCH 118/157] npm run translations --- dist/locales/ar.json | 53 +- dist/locales/de.json | 35 +- dist/locales/eo.json | 89 ++++ dist/locales/es.json | 12 + dist/locales/fr.json | 6 +- dist/locales/he.json | 1077 ++++++++++++++++++++++++++++++++++++--- dist/locales/it.json | 79 ++- dist/locales/ja.json | 39 +- dist/locales/ku.json | 56 ++ dist/locales/ru.json | 168 ++++-- dist/locales/sv.json | 57 +++ dist/locales/vi.json | 179 ++++++- dist/locales/zh-CN.json | 46 ++ dist/locales/zh-TW.json | 15 + 14 files changed, 1735 insertions(+), 176 deletions(-) diff --git a/dist/locales/ar.json b/dist/locales/ar.json index 49456c689..264d3f9ea 100644 --- a/dist/locales/ar.json +++ b/dist/locales/ar.json @@ -653,7 +653,7 @@ }, "mapillary_signs": { "tooltip": "العلامات المرورية من Mapillary (يجب تفعيل تراكب الصور)", - "title": "صورة الخلفية لاشارات المرور من خدمة (Mapillary)" + "title": "صورة الخلفية للعلامات المرورية من خدمة (Mapillary)" }, "mapillary": { "view_on_mapillary": "اعرض هذه الصورة في Mapillary" @@ -682,10 +682,57 @@ "overview": { "title": "نظرة عامة", "navigation_h": "التنقل بين عناصر المحرر", - "navigation_drag": "يمكنك تحريك وسحب الخريطة عن طريق الضغط عليها بزر الفأرة الأيسر {leftclick} مع الاستمرار على الضغط مع تحريك الفأرة. يمكنك أيضا استخدام مفاتيح الأسهم `↓`, `↑`, `←`, `→` على لوحة مفاتيحك لنفس الغرض." + "navigation_drag": "يمكنك تحريك وسحب الخريطة عن طريق الضغط عليها بزر الفأرة الأيسر {leftclick} مع الاستمرار على الضغط مع تحريك الفأرة. يمكنك أيضا استخدام مفاتيح الأسهم `↓`, `↑`, `←`, `→` على لوحة مفاتيحك لنفس الغرض.", + "navigation_zoom": "بإمكانك تكبير وتصغير الخريطة عن طريق تدوير عجلة الفأرة أو ما يقابلها في لوحة اللمس في الحواسيب اللوحية، أو عن طريق الضغط على أزرار {plus} / {minus} على جانب الخريطة. يمكنك أيضا استخدام مفاتيح `+`, `-` على لوحة المفاتيح.", + "features_h": "عناصر الخريطة", + "features": "نحن نستخدم المصطلح *عناصر* لوصف الأشياء الظاهرة على الخريطة، مثل الطُرق، والبنايات، أو النقاط.\nأي شيء في العالم الحقيقي يمكن وصفه كعنصر في خرائط OpenStreetMap.\nعناصر الخريطة يمكن تمثيلها في هذه الخرائط باستخدام ثلاثة أشياء وهي: *النقاط*، و*الخطوط*، و*المساحات*.", + "nodes_ways": "في خرائط OpenStreetMap، قد نُطلق على النقطة في بعض الأحيان مصطلح *عُقدة*، كما قد نُطلق على الخطوط والمساحات في بعض الأحيان مصطلح *طُرق*" }, "editing": { - "upload": "قبل رفع تغييراتك ينبغي عليك إدخال [تعليق على التغييرات](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). ثم اضغط على **رفع** لإرسال تغييراتك إلى خرائط OpenStreetMap, حيث ستدمج هذه التغييرات مع الخرائط وتكون مرئية للجميع." + "title": "التعديل والحفظ", + "select_h": "الاختيار", + "multiselect_h": "الاختيار المتعدد", + "undo_redo_h": "التراجع والإعادة", + "save_h": "الحفظ", + "upload_h": "الرفع", + "upload": "قبل رفع تغييراتك ينبغي عليك إدخال [تعليق على التغييرات](https://wiki.openstreetmap.org/wiki/Good_changeset_comments). ثم اضغط على **رفع** لإرسال تغييراتك إلى خرائط OpenStreetMap, حيث ستدمج هذه التغييرات مع الخرائط وتكون مرئية للجميع.", + "backups_h": "النسخ الاحتياطي التلقائي", + "keyboard_h": "اختصارات لوحة المفاتيح" + }, + "feature_editor": { + "title": "محرر العناصر", + "type_h": "نوع العنصر", + "fields_h": "الحقول", + "tags_h": "الوسوم" + }, + "points": { + "title": "النقاط", + "add_point_h": "إضافة النقاط", + "move_point_h": "تحريك ونقل النقاط", + "delete_point_h": "حذف وإزالة النقاط" + }, + "lines": { + "title": "الخطوط", + "add_line_h": "إضافة الخطوط", + "modify_line_h": "تعديل الخطوط", + "connect_line_h": "وصل الخطوط", + "disconnect_line_h": "فصل الخطوط", + "move_line_h": "تحريك ونقل الخطوط", + "delete_line_h": "حذف وإزالة الخطوط" + }, + "areas": { + "title": "المساحات", + "point_or_area_h": "نقاط أو مساحات؟", + "add_area_h": "إضافة المساحات", + "square_area_h": "تربيع الأركان", + "modify_area_h": "تعديل المساحات", + "delete_area_h": "حذف وإزالة المساحات" + }, + "relations": { + "title": "العلاقات", + "edit_relation_h": "تعديل العلاقات", + "relation_types_h": "أنواع العلاقات", + "multipolygon_h": "المضلعات المتعددة" }, "imagery": { "title": "صور الخلفية" diff --git a/dist/locales/de.json b/dist/locales/de.json index d7631a5e3..94577433a 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -4,7 +4,7 @@ "add_area": { "title": "Fläche", "description": "Parks, Gebäude, Seen oder andere Flächen zur Karte hinzufügen.", - "tail": "Klicke auf die Karte, um das Zeichnen einer Fläche wie einen Park, eines Sees oder eines Gebäudes zu starten." + "tail": "Klicke auf die Karte, um das Zeichnen einer Fläche wie eines Parks, eines Sees oder eines Gebäudes zu starten." }, "add_line": { "title": "Linie", @@ -294,10 +294,10 @@ "restriction": { "controls": { "distance": "Entfernung", - "distance_up_to": "Bis zu {distance}", + "distance_up_to": "bis zu {distance}", "via": "Über", - "via_node_only": "Nur ein Knoten", - "via_up_to_one": "Nur ein Weg", + "via_node_only": "nur ein Knoten", + "via_up_to_one": "nur ein Weg", "via_up_to_two": "maximal zwei Wege" }, "help": { @@ -888,7 +888,7 @@ "title": "Abbiegebeschränkungen Hilfe", "about": { "title": "Informationen", - "about": "Dieses Feld erlaubt es Abbiegebeschränkungen zu prüfen und zu ändern. Es zeigt ein Model der ausgewählten Kreuzung, inklusive angrenzender Straßen.", + "about": "Dieses Feld erlaubt es Abbiegebeschränkungen zu prüfen und zu ändern. Es zeigt ein Modell der ausgewählten Kreuzung mit den angrenzenden Straßen.", "from_via_to": "Eine Abbiegebeschränkung beinhaltet immer: einen **VON Weg**, einen **Nach Weg** und entweder einen **VIA Knoten** oder einen oder mehrere **VIA Wege**.", "maxdist": "Die \"{distField}\" Schieberegler bestimmen, wie weit nach angrenzenden Straßen gesucht wird.", "maxvia": "Die \"{viaField}\" Schieberegler bestimmen, wie viele Zwischenwege in die Suche einbezogen werden. (Tipp: Einfacher ist besser)" @@ -908,13 +908,13 @@ "about": "Um Abbiegebeschränkungen zu ändern, klicke zuerst auf eine **VON** Straße, um sie auszuwählen. Die ausgewählte Straße wird pulsieren und alle möglichen **NACH** Straßen werden als Abbiegesymbole erscheinen.", "indicators": "Dann klickt man auf ein Abbiegesymbol, um es zwischen \"Erlaubt\", \"Verboten\" und \"Nur\" zu ändern.", "allow_turn": "{allowTurn} **NACH erlaubt**", - "restrict_turn": "{restrictTurn} **NACH beschränkt**", + "restrict_turn": "{restrictTurn} **NACH verboten**", "only_turn": "{onlyTurn} **nur NACH**" }, "tips": { "title": "Tipps", "simple": "**Bevorzuge einfache anstatt komplexe Beschränkungen.**", - "simple_example": "Zum Beispiel vermeidet man Beschränkungen \"über Wege\", wenn es eine einfache \"über Knoten\" Abbiegebeschränkung auch tut.", + "simple_example": "Vermeide beispielsweise Abbiegebeschränkungen \"über Wege\", wenn die Modellierung auch mit einfachen Abbiegebeschränkungen \"über Knoten\" möglich ist.", "indirect": "**Einige Beschränkungen zeigen den Text \"(indirekt)\" an und sind heller gezeichnet.**", "indirect_example": "Diese Beschränkungen existieren wegen einer anderen Beschränkung in der Nähe. Zum Beispiel werden durch eine \"Nur Geradeaus\" Beschränkung indirekt ür alle anderen Wege über die Kreuzung \"Keine Kehrtwende\" Beschränkungen erstellt.", "indirect_noedit": "Indirekte Beschränkungen sollte man nicht ändern. Stattdessen sollte man die angrenzende, direkte Beschränkung ändern." @@ -1703,6 +1703,9 @@ "cycleway:right": "Rechte Seite" } }, + "dance/style": { + "label": "Tanzstile" + }, "date": { "label": "Datum" }, @@ -4344,8 +4347,8 @@ "terms": "Hafenanlage, Seehafen" }, "landuse/industrial": { - "name": "Fabrikgelände", - "terms": "Industriegebiet, Industriegelände, Industriegegend, Industrie, Fabriken" + "name": "Industriegebiet", + "terms": "Fabrikgelände, Industriegelände, Industriegegend, Industrie, Fabriken" }, "landuse/industrial/scrap_yard": { "name": "Schrottplatz", @@ -4440,7 +4443,7 @@ "terms": "Wohngebiet,Wohnanlage,Wohngegend,Wohnregion,Wohnhäuser,Siedlungsfläche" }, "landuse/retail": { - "name": "Geschäftsgebiet", + "name": "Einzelhandel", "terms": "Einzelhandelsgebiet, Einzelhandelsfläche, Geschäfte" }, "landuse/vineyard": { @@ -4468,13 +4471,17 @@ "terms": "Bowlingbahn, Kegelbahn" }, "leisure/common": { - "name": "öffentliche Fläche, Allmende", - "terms": "öffentliche Grünfläche, Allmende, Allmeind" + "name": "Öffentliche Fläche, Allmende", + "terms": "Öffentliche Grünfläche, Allmende, Allmeind" }, "leisure/dance": { "name": "Tanzsaal", "terms": "Tanzlokal, Tanzhalle, Tanzboden, Tanzdiele, Tanzpalast, Tanzsaal, Tanzhaus" }, + "leisure/dancing_school": { + "name": "Tanzschule", + "terms": "Tanzschule" + }, "leisure/dog_park": { "name": "Hundepark", "terms": "Hundefreilaufzone, Hundeauslaufzone, Hundezone, Hundeauslaufplatz" @@ -4891,7 +4898,7 @@ "terms": "Sand" }, "natural/scree": { - "name": "Hangschutt", + "name": "Geröll", "terms": "Schutthalde, Schuttkegel, Schuttfuß, Schuttrampe, Talus" }, "natural/scrub": { @@ -5125,7 +5132,7 @@ "terms": "Kleine Insel, Inselchen" }, "place/isolated_dwelling": { - "name": "abgelegene Siedlung", + "name": "Einzelsiedlung", "terms": "frei stehendes Haus, Einzelhaus, Einöde" }, "place/locality": { diff --git a/dist/locales/eo.json b/dist/locales/eo.json index bb11b9fe1..d7420c034 100644 --- a/dist/locales/eo.json +++ b/dist/locales/eo.json @@ -291,6 +291,42 @@ } } }, + "restriction": { + "controls": { + "distance": "Distanco", + "distance_up_to": "Maksimume {distance}", + "via": "Tra", + "via_node_only": "Nur nodo", + "via_up_to_one": "Maks. 1 vojo", + "via_up_to_two": "Maks 2 vojoj" + }, + "help": { + "indirect": "(pera limigo)", + "turn": { + "no_left_turn": "SEN turno maldekstren {indirect}", + "no_right_turn": "SEN turno dekstren {indirect}", + "no_u_turn": "SEN turno malantaŭen {indirect}", + "no_straight_on": "SEN veturo rekten {indirect}", + "only_left_turn": "NUR turno maldekstren {indirect}", + "only_right_turn": "NUR turno dekstren {indirect}", + "only_u_turn": "NUR turno malantaŭen {indirect}", + "only_straight_on": "NUR veturo rekten {indirect}", + "allowed_left_turn": "Turno maldekstren permesata {indirect}", + "allowed_right_turn": "Turno dekstren permesata {indirect}", + "allowed_u_turn": "Turno malantaŭen permesata {indirect}", + "allowed_straight_on": "Veturo rekten permesata {indirect}" + }, + "from": "EL", + "via": "TRA", + "to": "AL", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Klaku por elekti segmenton {from}", + "select_from_name": "Klaku por elekti {from} {fromName}", + "toggle": "Klaku por “{turn}”" + } + }, "undo": { "tooltip": "Malfari: {action}", "nothing": "Nenio por malfari." @@ -844,6 +880,44 @@ "using": "Por uzi GPS-spuron por mapigi, ŝovu kaj demetu dosieron en la map-redaktilo. Se ĝi estos legita, ĝi montriĝos sur la mapo kiel hela violkolora linio. Klaku la panelon {data} **map-datumoj** flanke de la mapo por montri, kaŝi aŭ pligrandigi al viaj GPS-datumoj.", "tracing": "La GPS-spuro ne estas sendata al OpenStreetMap – la plej bona maniero por uzi ĝin estas desegni sur la mapo uzante ĝin kiel gvidilon por novaj objektoj por aldoni.", "upload": "Vi ankaŭ povas [alŝuti viajn GPS-datumoj al OpenStreetMap](https://www.openstreetmap.org/trace/create) por ke aliaj uzantoj povu uzi ilin." + }, + "field": { + "restrictions": { + "title": "Helpo pri turnaj limigoj", + "about": { + "title": "Pri", + "about": "Tiu ĉi kampo ebligas al vi kontroli kaj modifi turnajn limigojn. Ĝi montras skizon de elektita vojkruciĝo kun proksimaj konektitaj vojoj.", + "from_via_to": "Turna limigo ĉiam enhavas unu **vojon EL**, unu **vojon AL**, kaj aŭ unu **nodo TRA** aŭ almenaŭ unu **vojo TRA**.", + "maxdist": "La ŝovilo “{distField}” ebligas agordi kiel malproksime serĉi pliajn konektitajn vojojn.", + "maxvia": "La ŝovilo “{viaField}” ebligas agordi kiom da vojoj inkluzivi dum serĉi. (Konsilo: ju pli simple des pli bone.)" + }, + "inspecting": { + "title": "Kontroli", + "about": "Musumu supre iu segmento **EL** por vidigi ĉu ĝi havas iujn turnajn limigojn. Ĉiu ebla elveturo **AL** estos kolore markita se limigo ekzistas.", + "from_shadow": "{fromShadow} **segmento EL**", + "allow_shadow": "{allowShadow} **AL permesata**", + "restrict_shadow": "{restrictShadow} **AL malpermesata**", + "only_shadow": "{onlyShadow} **nur AL**", + "restricted": "“Malpermesata” signifas, ke veturo tien estas malpermesata, ekzemple “sen turno maldekstren”.", + "only": "“Nur” signifas, ke veturilo sekvanta tiun vojon povas nur veturi tien, ekzemple “nur veturo rekten”." + }, + "modifying": { + "title": "Modifi", + "about": "Por modifi turnajn limigojn, unue klaku iun segmenton **EL** por ĝin elekti. La elektita segmento estos markita per pulsanta lumo kaj eblaj elveturoj **AL** aperos kiel turn-simboloj.", + "indicators": "Sekve klaku turn-simbolon por baskuli inter “permesata”, “malpermesata” kaj “nur”.", + "allow_turn": "{allowTurn} **AL permesata**", + "restrict_turn": "{restrictTurn} **AL malpermesata**", + "only_turn": "{onlyTurn} **nur AL**" + }, + "tips": { + "title": "Konsiloj", + "simple": "**Preferu simplajn turnajn limigojn ol malsimplaj.**", + "simple_example": "Ekzemple evitu krei limigon tra-vojo, se pli simpla tra-noda limigo funkcius.", + "indirect": "**Ĉe kelkaj limigoj montriĝas teksto \"(indirect)\" kaj estas markitaj pli hele.**", + "indirect_example": "Tiuj limigoj ekzistas pro alia proksima limigo. Ekzemple limigo “nur veturo rekten” pere kreos limigojn “sen turno” por ĉiuj vojoj tra la vojkruciĝo.", + "indirect_noedit": "Vi ne povas redakti perajn limigojn. Anstataŭ redaktu proksiman senperan limigon." + } + } } }, "intro": { @@ -1627,6 +1701,9 @@ "cycleway:right": "Dekstra flanko" } }, + "dance/style": { + "label": "Stiloj de danco" + }, "date": { "label": "Dato" }, @@ -3458,6 +3535,14 @@ "building/entrance": { "name": "Enirejo/elirejo" }, + "building/farm": { + "name": "Ĉefarma domo", + "terms": "kampodomo,kampara domo,somerdomo,farmo,farmodomo" + }, + "building/farm_auxiliary": { + "name": "Ĉefarma konstruaĵo", + "terms": "kampodomo,kampara domo,somerdomo,farmo,farmodomo" + }, "building/garage": { "name": "Garaĝo", "terms": "garagho,garagxo,aŭtejo,autejo,auxtejo,aŭtomobilejo" @@ -4391,6 +4476,10 @@ "name": "Dancejo", "terms": "diskoteko,diskejo" }, + "leisure/dancing_school": { + "name": "Danca lernejo", + "terms": "danclernejo,dancolernejo" + }, "leisure/dog_park": { "name": "Hund-parko", "terms": "hundparko,hundoparko,hunda parko" diff --git a/dist/locales/es.json b/dist/locales/es.json index 28d5444a7..8bd3bb4ff 100644 --- a/dist/locales/es.json +++ b/dist/locales/es.json @@ -1629,6 +1629,9 @@ "cycleway:right": "Lado derecho" } }, + "dance/style": { + "label": "Estilos de baile" + }, "date": { "label": "Fecha" }, @@ -3460,6 +3463,12 @@ "building/entrance": { "name": "Entrada/Salida" }, + "building/farm": { + "name": "Casa de Campo" + }, + "building/farm_auxiliary": { + "name": "Edificio agrícola" + }, "building/garage": { "name": "Garaje privado", "terms": "garaje,cochera" @@ -4393,6 +4402,9 @@ "name": "Salón de baile", "terms": "sala de baile, pista de baile, baile de salón, bolero, conga, cha-cha-chá, fox-trot, mambo, son cubano, meregue, milonga, pasodoble, polka, rock and roll, rumba, swing, tango, vals, jive" }, + "leisure/dancing_school": { + "name": "Escuela de baile" + }, "leisure/dog_park": { "name": "Parque canino", "terms": "perro, can, parque de perros" diff --git a/dist/locales/fr.json b/dist/locales/fr.json index ea9983c48..f6f20fe84 100644 --- a/dist/locales/fr.json +++ b/dist/locales/fr.json @@ -745,8 +745,8 @@ "editing": { "title": "Modifier et sauvegarder", "select_h": "Selectionner", - "select_left_click": "{clic gauche} Cliquez avec le bouton gauche de la souris sur une fonctionnalité pour la sélectionner. Ceci le mettra en surbrillance, et la barre latérale affichera des détails de cette fonctionnalité, tels que son nom ou son adresse.", - "select_right_click": "{rightclick} Le click droit sur un élément affiche le menu d'édition, qui permet d'effectuer certaines opérations sur cet élément comme le tourner, le déplacer ou le supprimer.", + "select_left_click": "{leftclick} Cliquez avec le bouton gauche de la souris sur une fonctionnalité pour la sélectionner. Ceci le mettra en surbrillance, et la barre latérale affichera des détails de cette fonctionnalité, tels que son nom ou son adresse.", + "select_right_click": "{rightclick} Le clic droit sur un élément affiche le menu d'édition, qui permet d'effectuer certaines opérations sur cet élément comme le tourner, le déplacer ou le supprimer.", "multiselect_h": "Sélection multiple", "multiselect_shift_click": "`{shift}`+{leftclick} permet de sélectionner plusieurs éléments en même temps. Cela permet de déplacer ou de supprimer plusieurs objets d'un coup.", "multiselect_lasso": "Pour sélectionner plusieurs éléments vous pouvez aussi maintenir la touche `{shift}` pressée, rester appuyé avec le {leftclick} bouton gauche de la souris et glisser la souris pour dessiner un lasso de sélection. Tous les points dans le lasso seront sélectionnés.", @@ -760,7 +760,7 @@ "backups_h": "Sauvegarde automatique", "backups": "Si vous ne pouvez pas terminer vos modifications tout de suite, par exemple si votre ordinateur s’éteint ou si vous fermez votre navigateur, votre travail est enregistré. Vous pouvez revenir plus tard (avec le même navigateur, sur la même ordinateur) et iD vous proposera de reprendre là où vous vous étiez arrêté.", "keyboard_h": "Raccourcis clavier", - "keyboard": "Vous pouvez voir une liste de raccourcis clavier en pressant la touche '?'." + "keyboard": "Vous pouvez voir une liste de raccourcis clavier en pressant la touche `?`." }, "feature_editor": { "title": "Éditeur d'élément", diff --git a/dist/locales/he.json b/dist/locales/he.json index 7a086aad0..d898d07dc 100644 --- a/dist/locales/he.json +++ b/dist/locales/he.json @@ -786,6 +786,7 @@ "edit_relation_h": "עריכת יחסים", "maintain_relation_h": "שימור יחסים", "relation_types_h": "סוגי יחסים", + "multipolygon_h": "מולטיפוליגון", "turn_restriction_h": "הגבלות פנייה", "route_h": "נתיבים", "boundary_h": "גבולות" @@ -1246,12 +1247,15 @@ "label": "הכניסה מותרת", "options": { "designated": { + "description": "הגיש מותרת לפי שילוט", "title": "מיועד" }, "destination": { + "description": "הגישה מותרת רק כדי להגיע לאזור בהמשך", "title": "יעד" }, "dismount": { + "description": "הגישה מותרת ללא רכיבה", "title": "ירידה מסוס\\אופניים" }, "no": { @@ -1259,6 +1263,7 @@ "title": "הכניסה אסורה" }, "permissive": { + "description": "הגישה מותרת כל עוד בעל המקום עוד מרשה זאת", "title": "מתירני" }, "private": { @@ -1493,7 +1498,8 @@ "label": "זמני איסוף" }, "comment": { - "label": "הערה על ערכת שינויים" + "label": "הערה על ערכת שינויים", + "placeholder": "הסבר בקצרה על התרומות שלך (חובה)" }, "communication_multi": { "label": "סוגי התקשורת" @@ -1511,6 +1517,9 @@ "country": { "label": "מדינה" }, + "covered": { + "label": "מכוסה" + }, "craft": { "label": "סוג" }, @@ -1574,12 +1583,21 @@ "cycleway:right": "צד ימין" } }, + "dance/style": { + "label": "סוגי ריקוד" + }, "date": { "label": "תאריך" }, "delivery": { "label": "משלוח" }, + "denomination": { + "label": "פלג" + }, + "denotation": { + "label": "אזכור" + }, "description": { "label": "תיאור" }, @@ -1591,7 +1609,7 @@ "label": "יש החלפת חיתולים" }, "direction": { - "label": "כיוון (מעלות עם כיוון השעון", + "label": "כיוון (מעלות עם כיוון השעון)", "placeholder": "45, 90, 180, 270" }, "direction_cardinal": { @@ -1626,6 +1644,7 @@ "label": "כיוון", "options": { "backward": "אחורה", + "both": "שניהם \\ כולם", "forward": "קדימה" } }, @@ -1651,6 +1670,9 @@ "yes": "יש (לא צוין)" } }, + "elevation": { + "label": "גובה" + }, "email": { "label": "דוא״ל", "placeholder": "example@example.com" @@ -1749,6 +1771,9 @@ "handrail": { "label": "מעקה" }, + "hashtags": { + "placeholder": "#דוגמא" + }, "healthcare": { "label": "סוג" }, @@ -1809,6 +1834,9 @@ "internet_access/ssid": { "label": "SSID (שם הרשת)" }, + "kerb": { + "label": "מדרכה" + }, "label": { "label": "תווית" }, @@ -1834,7 +1862,8 @@ }, "leaf_type": { "options": { - "leafless": "ללא עלים" + "leafless": "ללא עלים", + "mixed": "מעורב" } }, "leaf_type_singular": { @@ -1856,6 +1885,9 @@ "label": "רמות", "placeholder": "2, 4, 6" }, + "lit": { + "label": "דלוק" + }, "location": { "label": "מיקום" }, @@ -1888,6 +1920,9 @@ "memorial": { "label": "סוג" }, + "monitoring_multi": { + "label": "פיקוח" + }, "mtb/scale": { "label": "רמת קושי באופניים", "options": { @@ -1896,7 +1931,19 @@ }, "placeholder": "0, 1, 2, 3..." }, + "mtb/scale/imba": { + "label": "דרגת קושי בלתי אפשרי", + "options": { + "0": "הכי קל (עיגול לבן)", + "1": "קל (עיגול ירוק)", + "2": "בינוני (עיגול כחול)", + "3": "קשה (יהלום שחור)", + "4": "קשה מאוד (שני יהלומים שחורים)" + }, + "placeholder": "קל, בינוני, קשה..." + }, "mtb/scale/uphill": { + "label": "רמת קושי אופני הרים", "placeholder": "0, 1, 2, 3..." }, "name": { @@ -1916,7 +1963,8 @@ "lcn": "מקומי", "ncn": "לאומי", "rcn": "אזורי" - } + }, + "placeholder": "מקומי,אזורי, לאומי, בינלאומי" }, "network_foot": { "label": "סוג רשת", @@ -1925,7 +1973,8 @@ "lwn": "מקומי", "nwn": "לאומי", "rwn": "אזורי" - } + }, + "placeholder": "מקומי,אזורי, לאומי, בינלאומי" }, "network_horse": { "label": "סוג רשת", @@ -1934,25 +1983,35 @@ "lhn": "מקומי", "nhn": "לאומי", "rhn": "אזורי" - } + }, + "placeholder": "מקומי,אזורי, לאומי, בינלאומי" }, "network_road": { "label": "רשת" }, + "note": { + "label": "הערה" + }, "office": { "label": "סוג" }, "oneway": { "label": "חד־סטרי", "options": { + "alternating": "נתיב מתחלף", "no": "אין", + "reversible": "יכול להיתפך", + "undefined": "כנראה שלא", "yes": "יש" } }, "oneway_yes": { "label": "חד־סטרי", "options": { + "alternating": "נתיב מתחלף", "no": "אין", + "reversible": "יכול להיתפך", + "undefined": "כנרא שכן", "yes": "יש" } }, @@ -1966,6 +2025,7 @@ "label": "ישיבה בחוץ" }, "par": { + "label": "ערך", "placeholder": "3, 4, 5..." }, "park_ride": { @@ -1985,26 +2045,67 @@ "placeholder": "‎+972 3 777 777" }, "piste/difficulty": { - "label": "דרגת קושי" + "label": "דרגת קושי", + "options": { + "easy": "קל (עיגול ירוק)", + "expert": "קשה מאוד (שני יהלומים שחורים)", + "extreme": "קיצוני (דורש ציוד טיפוס)", + "intermediate": "בינוני (ריבוע כחול)", + "novice": "קל מאוד (למטרות לימוד)" + }, + "placeholder": "קל, בינוני, קשה..." + }, + "piste/grooming": { + "label": "טיפוח", + "options": { + "classic": "קלאסי", + "mogul": "סקי מוגול'", + "scooter": "קורקינט\\רכב שלג", + "skating": "סקייטינג" + } }, "piste/type": { - "label": "סוג" + "label": "סוג", + "options": { + "downhill": "מורד", + "ice_skate": "החלקרח", + "snow_park": "פארק שלג" + } }, "place": { "label": "סוג" }, + "plant": { + "label": "תחנת כוח" + }, "plant/output/electricity": { + "label": "הספק חשמל", "placeholder": "500 MW, 1000 MW, 2000 MW..." }, + "playground/baby": { + "label": "כיסא תינוקות" + }, "playground/max_age": { "label": "גיל מרבי" }, "playground/min_age": { "label": "גיל מינימלי" }, + "population": { + "label": "אוכלוסיה" + }, "power": { "label": "סוג" }, + "power_supply": { + "label": "הספק חשמל" + }, + "produce": { + "label": "ירקות" + }, + "product": { + "label": "מוצרים" + }, "railway": { "label": "סוג" }, @@ -2013,7 +2114,11 @@ "forward": "קדימה" } }, + "ref_aeroway_gate": { + "label": "מספר שער" + }, "ref_golf_hole": { + "label": "מספר חור", "placeholder": "1-18" }, "ref_highway_junction": { @@ -2025,11 +2130,19 @@ "ref_road_number": { "label": "מספר כביש" }, + "ref_route": { + "label": "מספר שביל" + }, + "ref_runway": { + "label": "מספר מסלול", + "placeholder": "e.g. 01L/19R" + }, "ref_stop_position": { "label": "מספר תחנה" }, "ref_taxiway": { - "label": "שם דרך מוניות" + "label": "שם דרך מוניות", + "placeholder": "e.g. A5" }, "relation": { "label": "סוג" @@ -2052,6 +2165,9 @@ "route_master": { "label": "סוג" }, + "seasonal": { + "label": "עונתי" + }, "second_hand": { "options": { "no": "אין", @@ -2075,6 +2191,9 @@ "service_times": { "label": "שעות השירות" }, + "shelter": { + "label": "מקלט" + }, "shelter_type": { "label": "סוג" }, @@ -2133,6 +2252,7 @@ "label": "מבנה", "options": { "bridge": "גשר", + "ford": "מקום צליחה", "tunnel": "מנהרה" }, "placeholder": "לא ידוע" @@ -2177,7 +2297,10 @@ "label": "אזור מעקב" }, "switch": { - "label": "סוג" + "label": "סוג", + "options": { + "mechanical": "מכני" + } }, "takeaway": { "label": "איסוף עצמי", @@ -2190,6 +2313,7 @@ }, "toilets/disposal": { "options": { + "bucket": "דלי", "chemical": "כימיים", "flush": "הדחה" } @@ -2221,8 +2345,21 @@ "traffic_signals": { "label": "סוג" }, + "traffic_signals/direction": { + "label": "כיוון", + "options": { + "backward": "אחורה" + } + }, + "trail_visibility": { + "placeholder": "מצוין, טוב, רע..." + }, "transformer": { - "label": "סוג" + "label": "סוג", + "options": { + "generator": "גנרטור", + "yes": "לא ידוע" + } }, "trees": { "label": "עצים" @@ -2234,14 +2371,41 @@ "vending": { "label": "סוגי הטובין" }, + "visibility": { + "label": "ראות", + "options": { + "area": "מעל 20 מטר", + "house": "עד 5 מטר", + "street": "בין 5 ל20 מטר" + } + }, "volcano/status": { "label": "מצב הר געש", "options": { - "active": "פעיל" + "active": "פעיל", + "dormant": "הר געש רדום", + "extinct": "הר געש כבוי" } }, "volcano/type": { - "label": "סוג הר הגעש" + "label": "סוג הר הגעש", + "options": { + "scoria": "סיג", + "shield": "מגן", + "stratovolcano": "הר געש שכבתי" + } + }, + "voltage": { + "label": "וולטג'" + }, + "voltage/primary": { + "label": "וולטג' מרכזי" + }, + "voltage/secondary": { + "label": "וולטג' משני" + }, + "voltage/tertiary": { + "label": "וולטג' גיבוי" }, "wall": { "label": "סוג" @@ -2249,11 +2413,15 @@ "water": { "label": "סוג" }, + "water_point": { + "label": "נקודת מים" + }, "waterway": { "label": "סוג" }, "website": { - "label": "אתר" + "label": "אתר", + "placeholder": "http://example.com/" }, "wetland": { "label": "סוג" @@ -2261,6 +2429,9 @@ "wheelchair": { "label": "גישה לכסא גלגלים" }, + "wholesale": { + "label": "סיטונאי" + }, "width": { "label": "רוחב (מטרים)" }, @@ -2269,6 +2440,14 @@ }, "windings": { "placeholder": "1, 2, 3..." + }, + "windings/configuration": { + "options": { + "delta": "דלטא", + "open": "פתוח", + "open-delta": "דלטא פתוח", + "zigzag": "זיגזג" + } } }, "presets": { @@ -2284,6 +2463,9 @@ "aerialway/gondola": { "name": "גונדולה" }, + "aerialway/magic_carpet": { + "name": "מעלית שטיח מעופף" + }, "aeroway/aerodrome": { "name": "נמל תעופה", "terms": "שדה תעופה, נתב״ג, נתב\"ג" @@ -2292,6 +2474,37 @@ "name": "שער נמל תעופה", "terms": "שער שדה תעופה, שער טיסה" }, + "aeroway/hangar": { + "name": "הנגר", + "terms": "הנגר" + }, + "aeroway/helipad": { + "name": "מנחת מסוקים", + "terms": "מנחת מסוקים" + }, + "aeroway/runway": { + "name": "מסלול המראה", + "terms": "מסלול המראה" + }, + "aeroway/taxiway": { + "name": "מסלול הסעה", + "terms": "מסלול הסעה" + }, + "aeroway/terminal": { + "name": "טרמינל שדה תעופה", + "terms": "טרמינל שדה תעופה" + }, + "amenity": { + "name": "נוחיות" + }, + "amenity/animal_boarding": { + "name": "מתקן עליה לבעלי חיים", + "terms": "מתקן עליה לבעלי חיים" + }, + "amenity/animal_breeding": { + "name": "מתקן רבייה לבעלי חיים", + "terms": "מתקן רבייה לבעלי חיים" + }, "amenity/animal_shelter": { "name": "בית מחסה לחיות מחמד", "terms": "תנו לחיות לחיות, צער בעלי חיים, מקלט לחיות" @@ -2301,38 +2514,83 @@ "terms": "מתנ״ס, מתנ\"ס, מתנס, אשכול פיס" }, "amenity/atm": { - "name": "כספומט" + "name": "כספומט", + "terms": "כספומט" + }, + "amenity/bank": { + "name": "בנק", + "terms": "בנק" + }, + "amenity/bar": { + "name": "בר", + "terms": "בר" + }, + "amenity/bbq": { + "name": "ברביקיו", + "terms": "ברביקיו" }, "amenity/bench": { - "name": "ספסל" + "name": "ספסל", + "terms": "ספסל" }, "amenity/bicycle_parking": { - "name": "חניית אופניים" + "name": "חניית אופניים", + "terms": "חניית אופניים" }, "amenity/bicycle_rental": { - "name": "השכרת אופניים" + "name": "השכרת אופניים", + "terms": "השכרת אופניים" }, "amenity/bicycle_repair_station": { - "name": "עמדת תיקון אופניים" + "name": "עמדת תיקון אופניים", + "terms": "עמדת תיקון אופניים" + }, + "amenity/biergarten": { + "name": "גן בירה", + "terms": "גן בירה" + }, + "amenity/boat_rental": { + "name": "השכרת סירה", + "terms": "השכרת סירה" }, "amenity/bureau_de_change": { "name": "המרת מט״ח", "terms": "חלפן כספים, צ׳יינג׳, צ'יינג', המרת כסף זר, המרת מט\"ח" }, + "amenity/bus_station": { + "name": "תחנת אוטובוס" + }, "amenity/cafe": { - "name": "בית קפה" + "name": "בית קפה", + "terms": "בית קפה" + }, + "amenity/car_pooling": { + "name": "קארפול", + "terms": "קארפול" }, "amenity/car_rental": { - "name": "השכרת רכב" + "name": "השכרת רכב", + "terms": "השכרת רכב" + }, + "amenity/car_sharing": { + "name": "קארפול", + "terms": "קארפול" }, "amenity/car_wash": { - "name": "שטיפת רכב" + "name": "שטיפת רכב", + "terms": "שטיפת רכב" }, "amenity/casino": { - "name": "קזינו" + "name": "קזינו", + "terms": "קזינו" }, "amenity/charging_station": { - "name": "תחנת טעינה" + "name": "תחנת טעינה", + "terms": "תחנת טעינה" + }, + "amenity/childcare": { + "name": "גנון", + "terms": "גנון" }, "amenity/cinema": { "name": "קולנוע", @@ -2343,23 +2601,40 @@ "terms": "קליניקה" }, "amenity/clinic/abortion": { - "name": "מרפאת הפלות" + "name": "מרפאת הפלות", + "terms": "מרפאת הפלות" }, "amenity/clinic/fertility": { - "name": "מרפאת פוריות" + "name": "מרפאת פוריות", + "terms": "מרפאת פוריות" }, "amenity/clock": { - "name": "שעון" + "name": "שעון", + "terms": "שעון" + }, + "amenity/college": { + "name": "גן המכללה", + "terms": "גן המכללה" }, "amenity/community_centre": { - "name": "מרכז קהילתי" + "name": "מרכז קהילתי", + "terms": "מרכז קהילתי" }, "amenity/compressed_air": { - "name": "אוויר דחוס" + "name": "אוויר דחוס", + "terms": "אוויר דחוס" + }, + "amenity/courthouse": { + "name": "בית משפט", + "terms": "בית משפט" }, "amenity/coworking_space": { "name": "מתחם עבודה שיתופי" }, + "amenity/crematorium": { + "name": "משרפה", + "terms": "משרפה" + }, "amenity/dentist": { "name": "מרפאת שיניים", "terms": "רופא שיניים, רופאת שיניים" @@ -2368,57 +2643,96 @@ "name": "רופא", "terms": "רופאה" }, + "amenity/dojo": { + "name": "דוג'ו", + "terms": "דוג'ו" + }, "amenity/drinking_water": { - "name": "מי שתייה" + "name": "מי שתייה", + "terms": "מי שתייה" }, "amenity/driving_school": { - "name": "בית ספר לנהיגה" + "name": "בית ספר לנהיגה", + "terms": "בית ספר לנהיגה" }, "amenity/embassy": { - "name": "שגרירות" + "name": "שגרירות", + "terms": "שגרירות" }, "amenity/fast_food": { "name": "מזון מהיר", "terms": "פאסט פוד" }, + "amenity/ferry_terminal": { + "name": "מסוף מעבורת" + }, "amenity/fire_station": { "name": "תחנת כיבוי אש", "terms": "תחנת מכבי אש" }, "amenity/food_court": { - "name": "מתחם מזון" + "name": "מתחם מזון", + "terms": "מתחם מזון" }, "amenity/fountain": { - "name": "מזרקה" + "name": "מזרקה", + "terms": "מזרקה" }, "amenity/fuel": { - "name": "תחנת דלק" + "name": "תחנת דלק", + "terms": "תחנת דלק" }, "amenity/grave_yard": { "name": "בית עלמין", "terms": "בית קברות" }, + "amenity/grit_bin": { + "name": "סל חצץ", + "terms": "סל חצץ" + }, + "amenity/hospital": { + "name": "גן בית חולים", + "terms": "גן בית חולים" + }, "amenity/hunting_stand": { - "name": "עמדת ציד" + "name": "עמדת ציד", + "terms": "עמדת ציד" }, "amenity/ice_cream": { - "name": "חנות גלידה" + "name": "חנות גלידה", + "terms": "חנות גלידה" + }, + "amenity/internet_cafe": { + "name": "קפה אינטרנט", + "terms": "קפה אינטרנט" + }, + "amenity/kindergarten": { + "name": "גן חובה", + "terms": "גן חובה" }, "amenity/library": { - "name": "ספרייה" + "name": "ספריה", + "terms": "ספריה" + }, + "amenity/love_hotel": { + "name": "מלון לפי שעות", + "terms": "מלון לפי שעות" }, "amenity/marketplace": { - "name": "שוק" + "name": "שוק", + "terms": "שוק" }, "amenity/motorcycle_parking": { - "name": "חניית אופנועים" + "name": "חניית אופנועים", + "terms": "חניית אופנועים" }, "amenity/music_school": { "name": "בית ספר למוזיקה", "terms": "בית ספר למוסיקה, ביצפר למוזיקה, ביצפר למוסיקה, קונסרבטוריון" }, "amenity/nightclub": { - "name": "מועדון לילה" + "name": "מועדון לילה", + "terms": "מועדון לילה" }, "amenity/nursing_home": { "name": "בית אבות" @@ -2427,17 +2741,36 @@ "name": "חניית מכוניות", "terms": "מגרש חנייה, חנייה" }, + "amenity/parking_entrance": { + "name": "כניסה לחניון", + "terms": "כניסה לחניון" + }, + "amenity/parking_space": { + "name": "אזור חניה", + "terms": "אזור חניה" + }, + "amenity/pavilion": { + "name": "ביתן", + "terms": "ביתן" + }, "amenity/pharmacy": { "name": "בית מרקחת", "terms": "סופר פארם, פארמה, ניופארם" }, + "amenity/place_of_worship": { + "name": "בית תפילה", + "terms": "בית תפילה" + }, "amenity/place_of_worship/buddhist": { - "name": "מקדש בודהיסטי" + "name": "מקדש בודהיסטי", + "terms": "מקדש בודהיסטי" }, "amenity/place_of_worship/christian": { - "name": "כנסייה" + "name": "כנסייה", + "terms": "כנסייה" }, "amenity/place_of_worship/hindu": { + "name": "מקדש הודי", "terms": "מקדש הודי" }, "amenity/place_of_worship/jewish": { @@ -2534,73 +2867,171 @@ "name": "אזור עישון", "terms": "אזור עישון" }, + "amenity/social_facility": { + "name": "מתקן שירותי רווחה", + "terms": "מתקן שירותי רווחה" + }, "amenity/social_facility/food_bank": { - "name": "בנק אוכל" + "name": "בנק אוכל", + "terms": "בנק אוכל" + }, + "amenity/social_facility/group_home": { + "name": "בית אבות", + "terms": "בית אבות" }, "amenity/social_facility/homeless_shelter": { "name": "בית מחסה למחוסרי דיור", "terms": "מקלט להומלסים, בית מחסה להומלסים, מקלט למחוסרי דיור" }, "amenity/social_facility/nursing_home": { - "name": "בית אבות" + "name": "בית אבות", + "terms": "בית אבות" }, "amenity/studio": { - "name": "סטודיו" + "name": "סטודיו", + "terms": "סטודיו" }, "amenity/swimming_pool": { "name": "בריכת שחייה" }, "amenity/taxi": { - "name": "עמדת מוניות" + "name": "עמדת מוניות", + "terms": "עמדת מוניות" }, "amenity/telephone": { - "name": "טלפון" + "name": "טלפון", + "terms": "טלפון" }, "amenity/theatre": { - "name": "תאטרון" + "name": "תאטרון", + "terms": "תאטרון" }, "amenity/toilets": { - "name": "בתי שימוש" + "name": "בתי שימוש", + "terms": "בתי שימוש" + }, + "amenity/townhall": { + "name": "בניין עיריה", + "terms": "בניין עיריה" + }, + "amenity/vending_machine": { + "name": "אוטומט מכירות", + "terms": "אוטומט מכירות" + }, + "amenity/vending_machine/cigarettes": { + "name": "אוטומט מכירת סיגריות", + "terms": "אוטומט מכירת סיגריות" + }, + "amenity/vending_machine/condoms": { + "name": "אוטומט מכירת קונדומים", + "terms": "אוטומט מכירת קונדומים" + }, + "amenity/vending_machine/drinks": { + "name": "אוטומט מכירת שתיה", + "terms": "אוטומט מכירת שתיה" + }, + "amenity/vending_machine/excrement_bags": { + "name": "אוטומט מכירת שקיות פסולת", + "terms": "אוטומט מכירת שקיות פסולת" + }, + "amenity/vending_machine/feminine_hygiene": { + "name": "אוטומט מכירת היגינה נשית", + "terms": "אוטומט מכירת היגינה נשית" + }, + "amenity/vending_machine/news_papers": { + "name": "עמדת חלוקת עיתונים" + }, + "amenity/vending_machine/newspapers": { + "name": "עמדת חלוקת עיתונים", + "terms": "עמדת חלוקת עיתונים" + }, + "amenity/vending_machine/parcel_pickup_dropoff": { + "name": "עמדת חלוקת חבילות", + "terms": "עמדת חלוקת חבילות" + }, + "amenity/vending_machine/parking_tickets": { + "name": "אוטומט מכירת כרטיסי חניה", + "terms": "אוטומט מכירת כרטיסי חניה" + }, + "amenity/vending_machine/public_transport_tickets": { + "name": "אוטומט מכירת כרטיסי רכבת", + "terms": "אוטומט מכירת כרטיסי רכבת" + }, + "amenity/vending_machine/sweets": { + "name": "אוטומט מכירת חטיפים", + "terms": "אוטומט מכירת חטיפים" }, "amenity/veterinary": { - "name": "וטרינר" + "name": "וטרינר", + "terms": "וטרינר" + }, + "amenity/waste/dog_excrement": { + "name": "שקי-קקי", + "terms": "שקי-קקי" + }, + "amenity/waste_basket": { + "name": "פח אשפה", + "terms": "פח אשפה" + }, + "amenity/waste_disposal": { + "name": "פח אשפה", + "terms": "פח אשפה" }, "area": { - "name": "שטח" + "name": "שטח", + "terms": "שטח" + }, + "area/highway": { + "name": "משטח כביש", + "terms": "משטח כביש" + }, + "attraction/amusement_ride": { + "name": "מתקן שעשועים", + "terms": "מתקן שעשועים" }, "attraction/animal": { "name": "חיה", "terms": "חיה" }, "attraction/big_wheel": { - "name": "גלגל ענק" + "name": "גלגל ענק", + "terms": "גלגל ענק" }, "attraction/bumper_car": { - "name": "מכוניות מתנגשות" + "name": "מכוניות מתנגשות", + "terms": "מכוניות מתנגשות" }, "attraction/bungee_jumping": { - "name": "באנג׳י" + "name": "באנג׳י", + "terms": "באנג׳י" }, "attraction/carousel": { - "name": "קרוסלה" + "name": "קרוסלה", + "terms": "קרוסלה" }, "attraction/pirate_ship": { - "name": "ספינת פיראטים" + "name": "ספינת פיראטים", + "terms": "ספינת פיראטים" }, "attraction/river_rafting": { - "name": "חתירה בנהר" + "name": "חתירה בנהר", + "terms": "חתירה בנהר" }, "attraction/roller_coaster": { - "name": "רכבת הרים" + "name": "רכבת הרים", + "terms": "רכבת הרים" }, "attraction/train": { - "name": "רכבת תיירים" + "name": "רכבת תיירים", + "terms": "רכבת תיירים" }, "attraction/water_slide": { - "name": "מגלשת מים" + "name": "מגלשת מים", + "terms": "מגלשת מים" }, "barrier": { - "name": "מחסום" + "name": "מחסום", + "terms": "מחסום" }, "barrier/border_control": { "name": "משמר הגבול", @@ -2611,16 +3042,93 @@ "terms": "מעבר פרות" }, "barrier/city_wall": { - "name": "חומת עיר" + "name": "חומת עיר", + "terms": "חומת עיר" + }, + "barrier/ditch": { + "name": "תעלה", + "terms": "תעלה" }, "barrier/entrance": { "name": "כניסה" }, "barrier/fence": { - "name": "גדר" + "name": "גדר", + "terms": "גדר" }, "barrier/gate": { - "name": "שער" + "name": "שער", + "terms": "שער" + }, + "barrier/hedge": { + "name": "גדר", + "terms": "גדר" + }, + "barrier/kerb": { + "name": "אבן שפה", + "terms": "אבן שפה" + }, + "barrier/kissing_gate": { + "name": "מחסום חיות", + "terms": "מחסום חיות" + }, + "barrier/lift_gate": { + "name": "שער הרמה", + "terms": "שער הרמה" + }, + "barrier/stile": { + "name": "מדרגות למעבר מעל גדר", + "terms": "מדרגות למעבר מעל גדר" + }, + "barrier/toll_booth": { + "name": "תא אגרה", + "terms": "תא אגרה" + }, + "barrier/wall": { + "name": "קיר\\חומה", + "terms": "קיר\\חומה" + }, + "boundary/administrative": { + "name": "גבול ניהולי", + "terms": "גבול ניהולי" + }, + "building": { + "name": "בניין", + "terms": "בניין" + }, + "building/apartments": { + "name": "דירה", + "terms": "דירה" + }, + "building/barn": { + "name": "אסם", + "terms": "אסם" + }, + "building/bungalow": { + "name": "בונגלו", + "terms": "בונגלו" + }, + "building/bunker": { + "name": "בונקר" + }, + "building/cabin": { + "name": "בקתה", + "terms": "בקתה" + }, + "building/cathedral": { + "name": "קתדרל", + "terms": "קתדרל" + }, + "building/chapel": { + "name": "קפלה", + "terms": "קפלה" + }, + "building/church": { + "name": "כניסיה", + "terms": "כניסיה" + }, + "building/entrance": { + "name": "כניסה\\יציאה" }, "building/garage": { "name": "מוסך", @@ -2643,13 +3151,20 @@ "terms": "מלון" }, "building/house": { - "name": "בית" + "name": "בית", + "terms": "בית" }, "building/hut": { - "name": "בקתה" + "name": "בקתה", + "terms": "בקתה" }, "building/industrial": { - "name": "בניין תעשייתי" + "name": "בניין תעשייתי", + "terms": "בניין תעשייתי" + }, + "building/kindergarten": { + "name": "גן חובה", + "terms": "גן חובה" }, "building/mosque": { "name": "מסגד", @@ -2660,14 +3175,16 @@ "terms": "בניין ציבורי" }, "building/roof": { - "name": "גג" + "name": "גג", + "terms": "גג" }, "building/school": { "name": "בניין בית ספר", "terms": "מבנה בית ספר, בניין ביצפר, מבנה ביצפר" }, "building/stable": { - "name": "אורווה" + "name": "אורווה", + "terms": "אורווה" }, "building/stadium": { "name": "אצטדיון", @@ -2680,12 +3197,16 @@ "name": "בניין אוניברסיטה", "terms": "בניין אוניברסיטה" }, + "building/warehouse": { + "name": "מחסן", + "terms": "מחסן" + }, "circular": { "name": "מעגל תנועה" }, "club": { "name": "מועדון", - "terms": "מעגל תנועה" + "terms": "מועדון" }, "craft/basket_maker": { "name": "מייצר סלים", @@ -2695,6 +3216,93 @@ "name": "כוורן", "terms": "כוורן" }, + "craft/blacksmith": { + "name": "נפח", + "terms": "נפח" + }, + "craft/boatbuilder": { + "name": "בונה סירות", + "terms": "בונה סירות" + }, + "craft/brewery": { + "name": "מבשלת בירה", + "terms": "מבשלת בירה" + }, + "craft/caterer": { + "name": "הסעדה", + "terms": "הסעדה" + }, + "craft/chimney_sweeper": { + "name": "מנקה ארובות", + "terms": "מנקה ארובות" + }, + "craft/clockmaker": { + "name": "שען", + "terms": "שען" + }, + "craft/confectionery": { + "name": "חנות ממתקים", + "terms": "חנות ממתקים" + }, + "craft/distillery": { + "name": "מזקקה", + "terms": "מזקקה" + }, + "craft/electrician": { + "name": "חשמלאי", + "terms": "חשמלאי" + }, + "craft/gardener": { + "name": "גנן", + "terms": "גנן" + }, + "craft/hvac": { + "name": "שירות מיזוג מרכזי", + "terms": "שירות מיזוג מרכזי" + }, + "craft/key_cutter": { + "name": "שכפול מפתחות", + "terms": "שכפול מפתחות" + }, + "craft/optician": { + "name": "אופטיקאי" + }, + "craft/painter": { + "name": "צבעי", + "terms": "צבעי" + }, + "craft/photographer": { + "name": "צלם", + "terms": "צלם" + }, + "craft/photographic_laboratory": { + "name": "מעבדת צילום", + "terms": "מעבדת צילום" + }, + "craft/plumber": { + "name": "שרברב", + "terms": "שרברב" + }, + "craft/sculptor": { + "name": "פסל", + "terms": "פסל" + }, + "craft/winery": { + "name": "יקב", + "terms": "יקב" + }, + "emergency/ambulance_station": { + "name": "תחנת אמבולנס", + "terms": "תחנת אמבולנס" + }, + "emergency/fire_hydrant": { + "name": "ברז כיבוי אש", + "terms": "ברז כיבוי אש" + }, + "healthcare/hospice": { + "name": "הוספיס", + "terms": "הוספיס" + }, "healthcare/midwife": { "name": "מיילדת", "terms": "מיילדת" @@ -2704,8 +3312,8 @@ "terms": "פזיווטרפיה" }, "healthcare/psychotherapist": { - "name": "ב", - "terms": "Psychotherapist" + "name": "פסיכוטרפיסט", + "terms": "פסיכוטרפיסט" }, "healthcare/rehabilitation": { "name": "מוסד שיקומי", @@ -2714,23 +3322,60 @@ "highway": { "name": "כביש בין-עירוני" }, + "highway/footway": { + "name": "דרך רגל", + "terms": "דרך רגל" + }, + "highway/path": { + "name": "שביל", + "terms": "שביל" + }, + "historic/castle": { + "name": "טירה", + "terms": "טירה" + }, "landuse/allotments": { "name": "גינה קהילתית" }, + "landuse/cemetery": { + "name": "בית קברות", + "terms": "בית קברות" + }, + "landuse/orchard": { + "name": "פרדס", + "terms": "פרדס" + }, + "landuse/quarry": { + "name": "מחצבה", + "terms": "מחצבה" + }, + "leisure/bowling_alley": { + "name": "אולם כדורת", + "terms": "אולם כדורת" + }, + "leisure/common": { + "name": "אזור משותף", + "terms": "אזור משותף" + }, "leisure/dog_park": { - "name": "פארק כלבים" + "name": "פארק כלבים", + "terms": "פארק כלבים" }, "leisure/fitness_centre": { - "name": "מכון כושר" + "name": "מכון כושר", + "terms": "מכון כושר" }, "leisure/fitness_centre/yoga": { - "name": "מכון יוגה" + "name": "מכון יוגה", + "terms": "מכון יוגה" }, "leisure/garden": { - "name": "גן" + "name": "גן", + "terms": "גן" }, "leisure/golf_course": { - "name": "מגרש גולף" + "name": "מגרש גולף", + "terms": "מגרש גולף" }, "leisure/hackerspace": { "name": "משרד משותף היי טק", @@ -2752,6 +3397,14 @@ "name": "מיני-גולף", "terms": "מיני-גולף" }, + "leisure/nature_reserve": { + "name": "שמורת טבע", + "terms": "שמורת טבע" + }, + "leisure/park": { + "name": "פארק", + "terms": "פארק" + }, "leisure/picnic_table": { "name": "שולחן פיקניק", "terms": "שולחן פיקניק" @@ -2769,12 +3422,33 @@ "terms": "מגרש כדורסל" }, "leisure/pitch/beachvolleyball": { - "name": "מגרש כדור-עף חוף" + "name": "מגרש כדור-עף חוף", + "terms": "מגרש כדור-עף חוף" }, "leisure/pitch/cricket": { "name": "מגרש קריקט", "terms": "מגרש קריקט" }, + "leisure/pitch/rugby_league": { + "name": "מגרש רוגבי", + "terms": "מגרש רוגבי" + }, + "leisure/pitch/rugby_union": { + "name": "מגרש רוגבי", + "terms": "מגרש רוגבי" + }, + "leisure/pitch/skateboard": { + "name": "סקייטפארק", + "terms": "סקייטפארק" + }, + "leisure/pitch/soccer": { + "name": "מגרש כדורגל", + "terms": "מגרש כדורגל" + }, + "leisure/pitch/table_tennis": { + "name": "שולחן פינג פונג", + "terms": "שולחן פינג פונג" + }, "leisure/playground": { "name": "גן שעשועים", "terms": "גן שעשועים" @@ -2799,10 +3473,18 @@ "name": "בריכת שחייה", "terms": "בריכת שחייה" }, + "leisure/track": { + "name": "מסלול מרוץ (לא מונע)", + "terms": "מסלול מרוץ (לא מונע)" + }, "leisure/water_park": { "name": "פארק מים", "terms": "פארק מים" }, + "line": { + "name": "קו", + "terms": "קו" + }, "man_made/bridge": { "name": "גשר", "terms": "גשר" @@ -2819,10 +3501,18 @@ "name": "מגדלור", "terms": "מגדלור" }, + "man_made/petroleum_well": { + "name": "באר נפט", + "terms": "באר נפט" + }, "man_made/pumping_station": { "name": "תחנת שאיבה", "terms": "תחנת שאיבה" }, + "man_made/silo": { + "name": "סילו", + "terms": "סילו" + }, "man_made/tower": { "name": "מגדל", "terms": "מגדל" @@ -2871,6 +3561,10 @@ "name": "מאפייני טבע", "terms": "מאפייני טבע" }, + "natural/bare_rock": { + "name": "סלע חסוף", + "terms": "סלע חסוף" + }, "natural/bay": { "name": "מפרץ", "terms": "מפרץ" @@ -2879,14 +3573,30 @@ "name": "חוף", "terms": "חוף" }, + "natural/cave_entrance": { + "name": "כניסה למערה", + "terms": "כניסה למערה" + }, + "natural/cliff": { + "name": "צוק", + "terms": "צוק" + }, "natural/coastline": { "name": "מישור חוף", "terms": "מישור חוף" }, + "natural/fell": { + "name": "תל", + "terms": "תל" + }, "natural/glacier": { "name": "קרחון", "terms": "קרחון" }, + "natural/heath": { + "name": "שדה בור", + "terms": "שדה בור" + }, "natural/peak": { "name": "פסגה", "terms": "פסגה" @@ -2919,6 +3629,18 @@ "name": "בריכת דגים\\נוי", "terms": "בריכת דגים\\נוי" }, + "natural/water/reservoir": { + "name": "מאגר", + "terms": "מאגר" + }, + "natural/wetland": { + "name": "ביצה", + "terms": "ביצה" + }, + "natural/wood": { + "name": "יער", + "terms": "יער" + }, "noexit/yes": { "name": "אין יציאה", "terms": "אין יציאה" @@ -2931,6 +3653,9 @@ "name": "משרד רואה חשבון", "terms": "משרד רואה חשבון" }, + "office/administrative": { + "name": "משרד אדמינסטרטיבי" + }, "office/adoption_agency": { "name": "סוכנות אימוץ", "terms": "סוכנות אימוץ" @@ -2944,13 +3669,17 @@ "terms": "משרד אדריכלים" }, "office/association": { - "name": "ארגון ללא מטרת רווח (משרדים)", + "name": "ארגון ללא מטרת רווח", "terms": "ארגון ללא מטרת רווח" }, "office/charity": { "name": "משרד צדקה", "terms": "משרד צדקה" }, + "office/company": { + "name": "משרד תאגידי", + "terms": "משרד תאגידי" + }, "office/coworking": { "name": "משרדים משותפים", "terms": "משרדים משותפים" @@ -2975,18 +3704,38 @@ "name": "משרד פיננסי", "terms": "משרד פיננסי" }, + "office/forestry": { + "name": "משרד יעור", + "terms": "משרד יעור" + }, + "office/foundation": { + "name": "משרד קרן", + "terms": "משרד קרן" + }, "office/government": { "name": "משרד ממשלתי", "terms": "משרד ממשלתי" }, + "office/government/register_office": { + "name": "משרד רישום", + "terms": "משרד רישום" + }, "office/government/tax": { "name": "משרד עריכת מס", "terms": "משרד עריכת מס" }, + "office/guide": { + "name": "משרד תיירות", + "terms": "משרד תיירות" + }, "office/insurance": { "name": "משרד ביטוח", "terms": "משרד ביטוח" }, + "office/it": { + "name": "משרד IT", + "terms": "משרד IT" + }, "office/lawyer": { "name": "משרד עורכי דין", "terms": "משרד עורכי דין" @@ -2998,6 +3747,10 @@ "name": "משרד מעבירי רכוש", "terms": "משרד מעבירי רכוש" }, + "office/newspaper": { + "name": "משרד עיתונאות", + "terms": "משרד עיתונאות" + }, "office/ngo": { "name": "משרד ארגון לא ממשלתי", "terms": "משרד ארגון לא ממשלתי" @@ -3006,6 +3759,9 @@ "name": "משרד נוטריון", "terms": "משרד נוטריון" }, + "office/physician": { + "name": "רופא" + }, "office/political_party": { "name": "משרד מפלגה פוליטית", "terms": "משרד מפלגה פוליטית" @@ -3045,6 +3801,10 @@ "name": "משרד לשירות ציבורי - מים", "terms": "משרד לשירות ציבורי - מים" }, + "piste": { + "name": "מסלול לגלישת סקי", + "terms": "מסלול לגלישת סקי" + }, "place": { "name": "מקום" }, @@ -3135,6 +3895,10 @@ "name": "אומגה", "terms": "אומגה" }, + "power/generator": { + "name": "גנרטור", + "terms": "גנרטור" + }, "power/generator/source_nuclear": { "name": "תחנת כוח גרעינית", "terms": "תחנת כוח גרעינית" @@ -3147,10 +3911,38 @@ "name": "מתג חשמל", "terms": "מתג חשמל" }, + "public_transport/linear_platform": { + "name": "תחנת רכבת \\ רציף", + "terms": "תחנת רכבת \\ רציף" + }, + "public_transport/linear_platform_bus": { + "name": "תחנת אוטובוס \\ רציף", + "terms": "תחנת אוטובוס \\ רציף" + }, + "public_transport/linear_platform_ferry": { + "name": "תחנת מעבורת \\ רציף", + "terms": "תחנת מעבורת \\ רציף" + }, + "public_transport/linear_platform_light_rail": { + "name": "תחנת רכבת קלה \\ רציף", + "terms": "תחנת רכבת קלה \\ רציף" + }, + "public_transport/linear_platform_monorail": { + "name": "תחנת מונורייל \\ רציף", + "terms": "תחנת מונורייל \\ רציף" + }, "public_transport/linear_platform_subway": { "name": "תחנת רכבת תחתית \\ רציף", "terms": "תחנת רכבת תחתית \\ רציף" }, + "public_transport/linear_platform_train": { + "name": "תחנת רכבת \\ רציף", + "terms": "תחנת רכבת \\ רציף" + }, + "public_transport/linear_platform_tram": { + "name": "תחנת חשמלית \\ רציף", + "terms": "תחנת חשמלית \\ רציף" + }, "public_transport/platform_bus": { "name": "תחנת אוטובוס \\ רציף", "terms": "תחנת אוטובוס \\ רציף" @@ -3179,6 +3971,10 @@ "name": "תחנת חשמלית \\ רציף", "terms": "תחנת חשמלית \\ רציף" }, + "public_transport/platform_trolleybus": { + "name": "תחנת חשמלית \\ רציף", + "terms": "תחנת חשמלית \\ רציף" + }, "public_transport/station_bus": { "name": "תחנת אוטובוס", "terms": "תחנת אוטובוס" @@ -3203,6 +3999,10 @@ "name": "תחנת רכבת", "terms": "תחנת רכבת" }, + "public_transport/station_train_halt": { + "name": "תחנת רכבת", + "terms": "תחנת רכבת" + }, "public_transport/stop_position_bus": { "name": "תחנת אוטובוס", "terms": "תחנת אוטובוס" @@ -3227,6 +4027,12 @@ "name": "תחנת רכבת", "terms": "תחנת רכבת" }, + "railway": { + "name": "מסילת רכבת" + }, + "railway/abandoned": { + "name": "מסילת רכבת לא בשימוש" + }, "railway/disused": { "name": "מסילת רכבת לא בשימוש", "terms": "מסילת רכבת לא בשימוש" @@ -3275,6 +4081,10 @@ "roundabout": { "name": "מעגל תנועה" }, + "route/ferry": { + "name": "נתיב מעבורת", + "terms": "נתיב מעבורת" + }, "shop": { "name": "חנות", "terms": "חנות" @@ -3323,6 +4133,10 @@ "name": "חנות מוצרי יופי\\טיפוח", "terms": "חנות מוצרי יופי\\טיפוח" }, + "shop/beauty/nails": { + "name": "סלון ציפורניים", + "terms": "סלון ציפורניים" + }, "shop/beauty/tanning": { "name": "מכון שיזוף", "terms": "מכון שיזוף" @@ -3339,6 +4153,22 @@ "name": "חנות אופניים", "terms": "חנות אופניים" }, + "shop/books": { + "name": "חנות ספרים", + "terms": "חנות ספרים" + }, + "shop/butcher": { + "name": "קצב", + "terms": "קצב" + }, + "shop/candles": { + "name": "חנות נרות", + "terms": "חנות נרות" + }, + "shop/car": { + "name": "סוכנות רכב", + "terms": "סוכנות רכב" + }, "shop/car_parts": { "name": "חנות חלקי מכוניות", "terms": "חנות חלקי מכוניות" @@ -3501,6 +4331,14 @@ "name": "חנות מכשירי שמיעה", "terms": "חנות מכשירי שמיעה" }, + "shop/herbalist": { + "name": "הרבליסט", + "terms": "הרבליסט" + }, + "shop/jewelry": { + "name": "תכשיטן", + "terms": "תכשיטן" + }, "shop/kiosk": { "name": "קיוסק", "terms": "קיוסק" @@ -3533,6 +4371,10 @@ "name": "מכון מסג'", "terms": "מכון מסג'" }, + "shop/medical_supply": { + "name": "חנות ציוד רפואי", + "terms": "חנות ציוד רפואי" + }, "shop/mobile_phone": { "name": "חנות טלפונים ניידים", "terms": "חנות טלפונים ניידים" @@ -3971,6 +4813,10 @@ "name": "נתיב חשמלית", "terms": "נתיב חשמלית" }, + "type/route_master": { + "name": "נתיב על", + "terms": "נתיב על" + }, "type/site": { "name": "אתר", "terms": "אתר" @@ -4091,6 +4937,7 @@ "attribution": { "text": "תנאים ומשוב" }, + "description": "מידע מESRI שיתכן ויותר ברור ומדיוק משכבת הבררת מחדל", "name": "ESRI תצלומי אוויר (Clarity Beta)" }, "MAPNIK": { @@ -4149,6 +4996,60 @@ }, "name": "חוקר OSM: תיוג" }, + "US-TIGER-Roads-2012": { + "name": "מידע טופולוגי ארה\"ב 2012" + }, + "US-TIGER-Roads-2014": { + "name": "מידע טופולוגי ארה\"ב 2014" + }, + "US-TIGER-Roads-2017": { + "description": "צהוב = מידע ציבורי מממשלת ארה\"ב\nאדום = מידע שלא נמצא בOSM", + "name": "מידע טופולוגי ארה\"ב 2017" + }, + "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "שבילים מסומנים: אופניים" + }, + "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "שבילים מסומנים: טיול רגל" + }, + "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "שבילים מסומנים: אופני הרים" + }, + "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "שבילים מסומנים: החלקה" + }, + "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap contributors, CC by-SA 3.0" + }, + "name": "שבילים מסומנים: ספורט חורף" + }, + "basemap.at": { + "attribution": { + "text": "basemap.at" + }, + "description": "מפת אוסטריה מבוסס על מידע ממשלתי", + "name": "basemap.at" + }, + "basemap.at-orthofoto": { + "attribution": { + "text": "basemap.at" + }, + "description": "אורטופוטו basemap.at", + "name": "אורטופוטו basemap.at" + }, "hike_n_bike": { "attribution": { "text": "מתנדבי © OpenStreetMap" @@ -4158,7 +5059,9 @@ "mapbox_locator_overlay": { "attribution": { "text": "תנאים ומשוב" - } + }, + "description": "מראה סממנים מרכזים כדי להתמצא", + "name": "צפיה תוחם" }, "openpt_map": { "attribution": { @@ -4188,7 +5091,8 @@ "qa_no_address": { "attribution": { "text": "Simon Poole, נתונים באדיבות מתנדבי ©OpenStreetMap" - } + }, + "name": "QA אין כתובת" }, "skobbler": { "attribution": { @@ -4199,15 +5103,20 @@ "stamen-terrain-background": { "attribution": { "text": "אריחי מפה מאת Stamen Design, תחת הרשיון CC BY 3.0" - } + }, + "name": "תווי שטח מסטודיו Stamen" }, "tf-cycle": { + "attribution": { + "text": "מפות מThunderforest" + }, "name": "Thunderforest OpenCycleMap" }, "tf-landscape": { "attribution": { "text": "מפות © Thunderforest, נתונים באדיבות מתנדבי © OpenStreetMap" - } + }, + "name": "תווי שטח מThunderforest" } } } diff --git a/dist/locales/it.json b/dist/locales/it.json index f6e8bb7a4..44d3ddb5b 100644 --- a/dist/locales/it.json +++ b/dist/locales/it.json @@ -291,6 +291,42 @@ } } }, + "restriction": { + "controls": { + "distance": "Distanza", + "distance_up_to": "Fino a {distance}", + "via": "Via", + "via_node_only": "Solo nodi", + "via_up_to_one": "Al più un percorso", + "via_up_to_two": "Non più di 2 percorsi" + }, + "help": { + "indirect": "(indiretto)", + "turn": { + "no_left_turn": "Divieto di svolta a sinistra {indirect}", + "no_right_turn": "Divieto di svolta a destra {indirect}", + "no_u_turn": "Divieto di inversione a U {indirect}", + "no_straight_on": "Divieto di proseguire diritto {indirect}", + "only_left_turn": "Obbligo di svolta a sinistra {indirect}", + "only_right_turn": "Obbligo di svolta a destra {indirect}", + "only_u_turn": "Obbligo di inversione a U {indirect}", + "only_straight_on": "Obbligo di proseguire diritto {indirect}", + "allowed_left_turn": "È consentita la svolta a sinistra {indirect}", + "allowed_right_turn": "È consentita la svolta a destra {indirect}", + "allowed_u_turn": "È consentita l'inversione di marcia {indirect}", + "allowed_straight_on": "È consentito proseguire diritto {indirect}" + }, + "from": "DA", + "via": "VIA", + "to": "VERSO", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Clicca per selezionare un segmento {from}", + "select_from_name": "Clicca per selezionare {from}{fromName}", + "toggle": "Clicca per \"{turn}\"" + } + }, "undo": { "tooltip": "Annulla: {action}", "nothing": "Niente da ripristinare." @@ -846,6 +882,15 @@ "using": "Per usare una traccia GPS durante la mappatura, trascina e rilascia il file dei dati sull'editor della mappa. Se riconosciuto, il file verrà automaticamente mostrato sulla mappa con un linea viola. Clicca il pannello {data} **Dati mappa** a lato della mappa per abilitare, disabilitare o ingrandire i tuoi dati GPS.", "tracing": "La traccia GPS non viene inviata ad OpenStreetMap: il modo migliore di procedere è di disegnare sulla mappa, usandola come riferimento per i nuovi elementi da aggiungere.", "upload": "Puoi anche [caricare i tuoi dati GPS su OpenStreetMap](https://www.openstreetmap.org/trace/create) affinché anche gli altri utenti possano usarli." + }, + "field": { + "restrictions": { + "title": "Aiuto per i divieti di svolta", + "about": { + "title": "Informazioni", + "about": "Questo campo permette di esaminare e modificare i divieti di svolta. Viene mostrato un modello dell'intersezione selezionata con incluse le relative strade." + } + } } }, "intro": { @@ -1127,7 +1172,7 @@ }, "or": "-o-", "browsing": { - "title": "Navigando", + "title": "Naviga", "navigation": { "title": "Navigazione", "pan": "Scorrere la mappa", @@ -1170,9 +1215,9 @@ } }, "editing": { - "title": "Modificando", + "title": "Modifica", "drawing": { - "title": "Disegnando", + "title": "Disegna", "add_point": "modo 'aggiungi punto'", "add_line": "modo 'aggiungi linea'", "add_area": "modo 'aggiungi area'", @@ -1217,26 +1262,26 @@ } }, "units": { - "feet": "{quantità} piedi", - "miles": "{quantità} miglia", - "square_feet": "{quantità} piedi quadrati", - "square_miles": "{quantità} miglia quadrate", - "acres": "{quantità} acri", - "meters": "{quantità} metri", - "kilometers": "{quantità} chilometri", - "square_meters": "{quantità} m²", - "square_kilometers": "{quantità} km²", + "feet": "{quantity} piedi", + "miles": "{quantity} miglia", + "square_feet": "{quantity} piedi quadrati", + "square_miles": "{quantity} miglia quadrate", + "acres": "{quantity} acri", + "meters": "{quantity} metri", + "kilometers": "{quantity} chilometri", + "square_meters": "{quantity} m²", + "square_kilometers": "{quantity} km²", "hectares": "{quantity} acri", "area_pair": "{area1} ({area2})", - "arcdegrees": "{quantità}°", - "arcminutes": "{quantità}′", - "arcseconds": "{quantità}″", + "arcdegrees": "{quantity}°", + "arcminutes": "{quantity}′", + "arcseconds": "{quantity}″", "north": "Nord", "south": "Sud", "east": "Est", "west": "Ovest", - "coordinate": "{coordinata}{direzione}", - "coordinate_pair": "{latitudine}, {longitudine}" + "coordinate": "{coordinate}{direction}", + "coordinate_pair": "{latitude}, {longitude}" }, "presets": { "categories": { diff --git a/dist/locales/ja.json b/dist/locales/ja.json index ce73a2e20..c453c1a77 100644 --- a/dist/locales/ja.json +++ b/dist/locales/ja.json @@ -1703,6 +1703,9 @@ "cycleway:right": "右側" } }, + "dance/style": { + "label": "ダンススタイル" + }, "date": { "label": "日付" }, @@ -3912,7 +3915,7 @@ }, "footway/crossing-raised": { "name": "隆起横断歩道", - "terms": "隆起横断歩道, 横断歩道, 交通安全" + "terms": "隆起横断歩道, 横断歩道, 交通安全, 交通静穏化, 道路設備, 減速" }, "footway/crosswalk": { "name": "横断歩道(ゼブラあり)", @@ -3920,7 +3923,7 @@ }, "footway/crosswalk-raised": { "name": "隆起横断歩道(ゼブラあり)", - "terms": "隆起横断歩道, 横断歩道, 交通安全, ゼブラ" + "terms": "隆起横断歩道, 横断歩道, 交通安全, ゼブラ, 交通静穏化, 道路設備, 減速" }, "footway/sidewalk": { "name": "歩道(車道の脇)", @@ -4054,7 +4057,7 @@ }, "highway/crossing-raised": { "name": "隆起横断歩道", - "terms": "隆起横断歩道, 横断歩道, 交通安全" + "terms": "隆起横断歩道, 横断歩道, 交通安全, 交通静穏化, 道路設備, 減速" }, "highway/crosswalk": { "name": "横断歩道(ノード用、ゼブラあり)", @@ -4062,7 +4065,7 @@ }, "highway/crosswalk-raised": { "name": "隆起横断歩道(ゼブラあり)", - "terms": "隆起横断歩道, 横断歩道, 交通安全" + "terms": "隆起横断歩道, 横断歩道, 交通安全, 交通静穏化, 道路設備, 減速" }, "highway/cycleway": { "name": "自転車道", @@ -4078,7 +4081,7 @@ }, "highway/give_way": { "name": "ゆずれ標識", - "terms": "ゆずれ, 譲れ" + "terms": "ゆずれ, 譲れ, 道路設備, 標識, 道路標識" }, "highway/living_street": { "name": "Living Street (日本では使用しない)", @@ -4182,7 +4185,7 @@ }, "highway/stop": { "name": "一時停止標識", - "terms": "一時停止標識, 一旦停止, 止まれ, とまれ, 道路標識" + "terms": "一時停止標識, 一旦停止, 止まれ, とまれ, 道路標識, 道路設備" }, "highway/street_lamp": { "name": "街路灯", @@ -4475,6 +4478,10 @@ "name": "ダンスホール", "terms": "ダンスホール, 娯楽" }, + "leisure/dancing_school": { + "name": "ダンススクール", + "terms": "ダンススクール, 舞踏, 日本舞踊, タンゴ, 社交ダンス, ワルツ, ダンス教室, 稽古, 練習, 習い事, 学校" + }, "leisure/dog_park": { "name": "ドッグパーク", "terms": "ドッグパーク, ドッグラン, 犬, 動物, ペット" @@ -6143,43 +6150,43 @@ }, "traffic_calming": { "name": "交通静穏化設備(全般)", - "terms": "交通静穏化, 交通安全" + "terms": "交通静穏化, 交通安全, 道路設備, 減速" }, "traffic_calming/bump": { "name": "スピードバンプ", - "terms": "スピードバンプ, 交通安全" + "terms": "スピードバンプ, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/chicane": { "name": "シケイン", - "terms": "シケイン, 交通安全" + "terms": "シケイン, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/choker": { "name": "チョーカー", - "terms": "チョーカー, 交通安全" + "terms": "チョーカー, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/cushion": { "name": "スピードクッション", - "terms": "スピードクッション, 交通安全" + "terms": "スピードクッション, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/dip": { "name": "ディップ", - "terms": "ディップ, 交通安全" + "terms": "ディップ, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/hump": { "name": "スピードハンプ", - "terms": "スピードハンプ, 交通安全" + "terms": "スピードハンプ, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/island": { "name": "交通島", - "terms": "交通島, 交通安全" + "terms": "交通島, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/rumble_strip": { "name": "ランブルストリップ", - "terms": "ランブルストリップ, 交通安全" + "terms": "ランブルストリップ, 交通安全, 交通静穏化, 道路設備, 減速" }, "traffic_calming/table": { "name": "隆起台(減速用)", - "terms": "隆起台, スピードテーブル, 減速テーブル, 交通安全" + "terms": "隆起台, スピードテーブル, 減速テーブル, 交通安全, 交通静穏化, 道路設備, 減速" }, "type/boundary": { "name": "境界", diff --git a/dist/locales/ku.json b/dist/locales/ku.json index c4613968a..cb12885d0 100644 --- a/dist/locales/ku.json +++ b/dist/locales/ku.json @@ -3,6 +3,62 @@ "modes": { "add_area": { "title": "Herêm" + }, + "add_line": { + "title": "Xêz" + }, + "add_point": { + "title": "Nuqte" + } + }, + "operations": { + "continue": { + "key": "A", + "title": "Bidomîne" + }, + "circularize": { + "key": "O" + }, + "orthogonalize": { + "title": "Çarçik", + "key": "S" + }, + "delete": { + "title": "Jê bibe" + } + }, + "translate": { + "localized_translation_name": "Nav" + }, + "login": "têkeve", + "logout": "derkeve", + "commit": { + "save": "Bar bike", + "cancel": "Betal bike" + }, + "info_panels": { + "history": { + "title": "Dîrok" + } + }, + "inspector": { + "search": "Lêbigere", + "check": { + "yes": "Erê", + "no": "Na" + } + }, + "help": { + "title": "Alîkarî", + "help": { + "title": "Alîkarî" + }, + "editing": { + "save_h": "Qeyd bike", + "upload_h": "Bar bike" + }, + "points": { + "title": "Nuqte" } } } diff --git a/dist/locales/ru.json b/dist/locales/ru.json index 2590d0dcd..bcdcc9620 100644 --- a/dist/locales/ru.json +++ b/dist/locales/ru.json @@ -291,6 +291,42 @@ } } }, + "restriction": { + "controls": { + "distance": "Расстояние", + "distance_up_to": "до {distance}", + "via": "Через", + "via_node_only": "только точку", + "via_up_to_one": "до 1 линии", + "via_up_to_two": "до 2 линий" + }, + "help": { + "indirect": "(косвенно)", + "turn": { + "no_left_turn": "ЗАПРЕТ левого поворота {indirect}", + "no_right_turn": "ЗАПРЕТ правого поворота {indirect}", + "no_u_turn": "ЗАПРЕТ разворота {indirect}", + "no_straight_on": "ЗАПРЕТ проезда прямо {indirect}", + "only_left_turn": "ТОЛЬКО левый поворот {indirect}", + "only_right_turn": "ТОЛЬКО правый поворот {indirect}", + "only_u_turn": "ТОЛЬКО разворот {indirect}", + "only_straight_on": "ТОЛЬКО прямо {indirect}", + "allowed_left_turn": "Левый поворот разрешен {indirect}", + "allowed_right_turn": "Правый поворот разрешен {indirect}", + "allowed_u_turn": "Разворот разрешен {indirect}", + "allowed_straight_on": "Проезд прямо разрешен {indirect}" + }, + "from": "ИЗ", + "via": "ЧЕРЕЗ", + "to": "В", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Щёлкните для выбора {from} участка", + "select_from_name": "Щёлкните для выбора {from} {fromName}", + "toggle": "Щёлкните для \"{turn}\"" + } + }, "undo": { "tooltip": "Отмена: {action}", "nothing": "Отменять нечего." @@ -351,7 +387,7 @@ "key": "B", "title": "Фоновое изображение", "zoom": "Масштаб", - "vintage": "Vintage", + "vintage": "Дата снимка", "source": "Источник", "description": "Описание", "resolution": "Разрешение", @@ -359,8 +395,8 @@ "unknown": "Неизвестно", "show_tiles": "Показать тайлы", "hide_tiles": "Спрятать тайлы", - "show_vintage": "Показать Vintage", - "hide_vintage": "Скрыть Vintage" + "show_vintage": "Показать дату снимков", + "hide_vintage": "Скрыть дату снимков" }, "history": { "key": "H", @@ -398,7 +434,7 @@ }, "geometry": { "point": "точка", - "vertex": "вершина", + "vertex": "точка", "line": "линия", "area": "полигон", "relation": "отношение" @@ -509,7 +545,7 @@ }, "service_roads": { "description": "Служебные проезды", - "tooltip": "Служебные проезды, проезды на стоянках, грунтовки и т.д." + "tooltip": "Служебные проезды, проезды на парковке, грунтовки и т.д." }, "paths": { "description": "Пути", @@ -571,7 +607,7 @@ }, "save": { "title": "Сохранить", - "help": "Проверьте внесенные изменения и загрузите их в OpenStreetMaps, чтобы сделать их видимыми для других пользователей.", + "help": "Проверьте внесённые изменения и загрузите их в OpenStreetMaps, чтобы сделать их видимыми для других пользователей.", "no_changes": "Сохранять нечего.", "error": "Во время сохранения произошла ошибка", "status_code": "Получен ответ сервера с кодом {code}", @@ -690,7 +726,7 @@ "title": "Справка", "welcome": "Добро пожаловать в редактор iD для [OpenStreetMap](https://www.openstreetmap.org/). С этим редактором вы можете обновлять OpenStreetMap прямо из вашего браузера.", "open_data_h": "Открытые данные", - "open_data": "Правки, что вы делает на этой карте будут видны всем, кто использует OpenStreetMap. Ваши правки могут основываться на личных знаниеях, исследовании на местности, или изображениях, сделанных с воздуха, или с уличных фотографий. Использовать коммерческие источники, такие как Google Карты, 2GIS, Яндекса Карт (ЯК: за исключением панорам) [строго запрещено](https://www.openstreetmap.org/copyright).", + "open_data": "Правки, что вы делает на этой карте будут видны всем, кто использует OpenStreetMap. Ваши правки могут основываться на личных знаниях, исследовании на местности, или изображениях, сделанных с воздуха, или с уличных фотографий. Использовать коммерческие источники, такие как Google Карты, 2GIS, Яндекса Карт (ЯК: за исключением панорам) [строго запрещено](https://www.openstreetmap.org/copyright).", "before_start_h": "Прежде чем начать", "before_start": "Вам следует немного разобраться в OpenStreetMap и в этом редакторе перед тем как делать правки. iD содержит пошаговый учебник, чтобы обучить вас основам редактирование OpenStreetMap. Щёлкните \"Начать обучение\" на экране — это займет всего лишь 15 минут.", "open_source_h": "Открытый исходный код", @@ -701,7 +737,7 @@ "title": "Основное", "navigation_h": "Перемещение по карте", "navigation_drag": "Вы можете перетаскивать карту, удерживая нажатой {leftclick} левую кнопку мыши, передвигая саму мышь. Вы также можете использовать `↓`, `↑`, `←`, `→` клавиши со стрелками на клавиатуре.", - "navigation_zoom": "Вы можете приближать или отдалять при помощи прокурчивания колесика мышки или трекпада, или щёлкая по {plus} / {minus} кнопкам вдоль с краю от карты. Вы также можете использовать клавиши `+`, `-` на клавиатуре.", + "navigation_zoom": "Вы можете приближать или отдалять при помощи прокурчивания колесика мышки или трекпада, или щёлкая по {plus} / {minus} кнопкам с краю от карты. Вы также можете использовать клавиши `+`, `-` на клавиатуре.", "features_h": "Объекты на карте", "features": "Мы используем слово *объекты* для описания вещей, которые отображаются на карте, такие как: дороги, здания или точки интереса (POI). Всё что угодно из реального мира может быть отражено в виде объекта в OpenStreetMap. Объекты карты представлены на карте при помощи *точек*, *линий* или *полигонов*.", "nodes_ways": "В OpenStreetMap, точки иногда называют *узлами*, а линии и полигоны иногда называют *путями*." @@ -718,11 +754,11 @@ "undo_redo": "Ваши правки хранятся локально, в вашем браузере, пока вы не отрпавите их на сервер OpenStreetMap. Вы можете отменить правки, щёлкнув кнопку {undo} **Отмена**, и повторить — щёлкнув кнопку {redo} **Повтор**.", "save_h": "Сохранить", "save": "Щёлкните {save} **Сохранить**, чтобы закончить редактирование и отправить изменения в OpenStreetMap. Стоит не забывать сохранять свою работу регулярно!", - "save_validation": "На экране сохранения у вас будет возможность проверить то, что вы сделали. iD также проведёт некоторые простые проверки отсутствующей информации и может предоставить полезные подсказки и предупреждения, если что-то не так.", + "save_validation": "На экране сохранения у вас будет возможность проверить то, что вы сделали. iD также проведёт некоторые простые проверки отсутствующей информации и может предоставить полезные подсказки и предупреждения, если что-то не так.", "upload_h": "Передать на сервер", "upload": "Перед отправкой измеений вам нужно ввести [комментарий к пакету правок](https://wiki.openstreetmap.org/wiki/RU:Good_changeset_comments). Затем щёлкнуть **Сохранить** для отправки изменений в OpenStreetMap, где они объединятся с картой и будут видны всем.", "backups_h": "Автоматические резервные копии", - "backups": "Если у вас не получается завершить правки в один присест, например вашш компьютер завис или вы закрыли вкладку в браузере, ваши правки останутся сохраненнёными в хранилище вашего браузера. Вы можете вернуться позже (на том же браузере и компьютере), и iD предложит восстановить ваши труды.", + "backups": "Если у вас не получается завершить правки в один присест, например ваш компьютер завис или вы закрыли вкладку в браузере, ваши правки останутся сохранёнными в хранилище вашего браузера. Вы можете вернуться позже (на том же браузере и компьютере), и iD предложит восстановить ваши труды.", "keyboard_h": "Горячие клавиши", "keyboard": "Вы можете посмотреть список горячих клавиш, нажав на клавишу `?`." }, @@ -732,7 +768,7 @@ "definitions": "Верхняя область отображает тип объекта. Средняя — содержит *поля*, отображающие аттрибуты объекта, такие как его название или адрес.", "type_h": "Тип объекта", "type": "Вы можете щёлкнуть по типу объекта, чтобы изменить тип у объекта на другой. Всё, что существует в реальном мире, может быть добавлено в OpenStreetMap, так что в списке тысячи типов объектов для выбора.", - "type_picker": "В списке типов отображаются наиболее распространнёные типы объектов, такие как: парки, больницы, рестораны, дороги и здания. Вы можете использовать поиск, напечатав то, что хотите найти, в поле для поиска. Вы также можете щёлкнуть по {inspect} **Info** иконке рядом с типом объекта, чтобы узнать подробности о нём.", + "type_picker": "В списке типов отображаются наиболее распространённые типы объектов, такие как: парки, больницы, рестораны, дороги и здания. Вы можете использовать поиск, напечатав то, что хотите найти, в поле для поиска. Вы также можете щёлкнуть по иконке {inspect} **Инфо** рядом с типом объекта, чтобы узнать подробности о нём.", "fields_h": "Поля", "fields_all_fields": "Область \"Все поля\" содержит все детали объекта, которые можно отредактировать. В OpenStreetMap, все поля необязательные, и это нормально оставить их пустыми, если вы неуверенны.", "fields_example": "У каждого типа объекта отображается свой набор полей. Например, у дорог отображается поле о дорожном покрытии и ограничении скорости, а у ресторанов могут отображаться поля о кухне, услугах и времени работы.", @@ -748,16 +784,16 @@ "add_point": "Чтобы добавить точку, щёлкинте по кнопку {point} **Точка** на панели инструментов вверху карту или нажмите клавишу `1` на клавиатуре. Это изменит курсор мыши на символ перекрестия.", "add_point_finish": "Чтобы разместить новую точку на карте, поместите курсор мыши в место, где будет располагаться точка. Затем щёлкните левой кнопкой мыши {leftclick} или нажмите `Пробел`.", "move_point_h": "Перемещение точек", - "move_point": "Чтобы переместить точку, поместите курсор мыши над точкой, зажмите левую кнопку мыши {leftclick} и перетащите перетащите точку на новоё место.", + "move_point": "Чтобы переместить точку, поместите курсор мыши над точкой, зажмите левую кнопку мыши {leftclick} и перетащите точку на новое место.", "delete_point_h": "Удаление точек", "delete_point": "Нет ничего плохого в том, чтобы удалить объекты, которых не существует в реальном мире. Удаление объекта из OpenStreetMap удаляет его с общей карты, так что вам следует быть уверенным, действительно ли объекта больше не существует перед тем, как удалять его.", - "delete_point_command": "Чтобы удалить точку, щёлкните правой кнопкой {rightclick} по точке, чтобы выбрать её и отобразить меню редактирования. Затем используйте команду **Удалить** {delete}." + "delete_point_command": "Чтобы удалить точку, щёлкните правой кнопкой {rightclick} по точке, чтобы выбрать её и отобразить меню редактирования. Затем используйте команду {delete} **Удалить**." }, "lines": { "title": "Линии", "intro": "*Линии* используются для отображения такие объектов как: автомобильные дороги, железные дорогие и реки. Линии должны быть нарисованы по центру объектов, которые они отражают.", "add_line_h": "Создание линий", - "add_line": "Чтобы добавить линию, нажмитие кнопку **Линия** {line} на панели инструментов вверху карты, или используете сочетание клавиш `2`. Это изменит курсор мыши на символ перекрестия.", + "add_line": "Чтобы добавить линию, нажмите кнопку {line} **Линия** на панели инструментов вверху карты, или используйте сочетание клавиш `2`. Это изменит курсор мыши на символ перекрестия.", "add_line_draw": "Теперь поместите курсор мыши туда, где линия должна начаться и щёлкните мышью {leftclick} или нажмите `Пробел`, чтобы разместить первую точку линии. Продолжайте добавлять точки, щёлкая мышью или нажимая `Пробел`. Во время рисования вы можете приближать или перемещаться по карте, чтобы добиться большей детальности.", "add_line_finish": "Чтобы завершить линию, нажмите `{return}` или щёлкните ещё раз по последней точке.", "modify_line_h": "Изменение линий", @@ -765,7 +801,7 @@ "modify_line_addnode": "Вы также можете создать новые точки на линии, или щёлкнув по ней дважды {leftclick}**x2**, или потянув за маленький треугольник посредине между точками.", "connect_line_h": "Соединение линий", "connect_line": "Связность дорожного графа — важно и необходимо для получения информации о возможности проехать по дороге.", - "connect_line_display": "Соединения дорог отображаются в виде серых кружков. Крайние точки линии отображаются более крупными белыми кружыками, если они не соединены ни с чем другим.", + "connect_line_display": "Соединения дорог отображаются в виде серых кружков. Крайние точки линии отображаются более крупными белыми кружками, если они не соединены ни с чем другим.", "connect_line_drag": "Чтобы соединить линию с другим объектом, перетащите одну из точек линии на другой объект, пока оба объекта не притянутся друг к другу. Совет: вы можете удерживать клавишу `{alt}`, чтобы предотвратить присоединение точек к другим объектам.", "connect_line_tag": "Если вам известно, что в месте соединения есть светофор или пешеходный переход, вы можете обозначить их, выбрав точку соединения и используя редактор объектов для выбора подходящего типа объекта.", "disconnect_line_h": "Разъединение линий", @@ -774,17 +810,17 @@ "move_line_command": "Для перемещения линии целиком щёлкните правой кнопкой {rightclick} на линию и выберетие команду **Переместить** {move} в меню редактирования. Затем переместите курсор и щёлкните левой кнопкой {leftclick}, чтобы разместить линию в новом месте.", "move_line_connected": "Линии, присоединённые к другим объектам, останутся присоединёнными к ним, когда вы перемещаете линию на новое место. iD может предотвратить перемещение линии через другую присоединённую линию.", "delete_line_h": "Удаление линий", - "delete_line": "Если линия польностью неверна, например дорога, не существующая в реальном мире, такую линию можно смело удалять. Но будьте осторожны, когда удаляете объекты: спутниковые снимки могут быть устарелые, и дорога, которая выглядит неправильной, может быть попросту построена недавно.", + "delete_line": "Если линия полностью неверна, например дорога, не существующая в реальном мире, такую линию можно смело удалять. Но будьте осторожны, когда удаляете объекты: спутниковые снимки могут быть устарелые, и дорога, которая выглядит неправильной, может быть попросту построена недавно.", "delete_line_command": "Чтобы удалить линию щёлкните правой кнопкой {rightclick} по линии, чтобы выбрать её и отобразить меню редактирования, затем выберите команду **Удалить** {delete}." }, "areas": { "title": "Полигоны", "intro": "*Полигоны* используются для отображения границ объектов, таких как: озёра, здания и жилые зоны. Полигоны следует отрисовывать по краю объекта, который они отражают, например, по основанию здания.", "point_or_area_h": "Точки или полигоны?", - "point_or_area": "Существует множество объектов, которые можно описать и при помощи точек и при помощи полигонов. Здания следует отрисовывать при помощи полоигна, если это возможно сделать. Кафе, офисы и прочие объекты внутри здания стоит отметить при помощи точек, расположенных внутри полигона здания.", + "point_or_area": "Существует множество объектов, которые можно описать и при помощи точек и при помощи полигонов. Здания следует отрисовывать при помощи полигона, если это возможно сделать. Кафе, офисы и прочие объекты внутри здания стоит отметить при помощи точек, расположенных внутри полигона здания.", "add_area_h": "Добавление полигонов", - "add_area_command": "Чтобы добавить полигон щёлкните по кнопке **Полигон** {area} на панели инструментов вверху карты или нажмите клавишу `3`. Курсор приобретёт вид перекрестия.", - "add_area_draw": "Затем разместите курсор мыши на углу объекта и щёлкните левой кнопкой {leftclick} или нажмите `Пробел`, чтобы начать расставлять точки по периметру области. Продолжайте добавлять новые точки, щёлкая левой кнопкой или нажимая `Пробле`. Во время рисования, вы можете приближать или перемещать карту, чтобы добиться большей детализованности.", + "add_area_command": "Чтобы добавить полигон щёлкните по кнопке {area} **Полигон** на панели инструментов вверху карты или нажмите клавишу `3`. Курсор приобретёт вид перекрестия.", + "add_area_draw": "Затем разместите курсор мыши на углу объекта и щёлкните левой кнопкой {leftclick} или нажмите `Пробел`, чтобы начать расставлять точки по периметру области. Продолжайте добавлять новые точки, щёлкая левой кнопкой или нажимая `Пробел`. Во время рисования, вы можете приближать или перемещать карту, чтобы добиться большей детализованности.", "add_area_finish": "Чтобы завершить полигон, нажмите `{return}` или щёлкните ещё раз по первой или последней точке.", "square_area_h": "Спрямление углов", "square_area_command": "Многие полигоны, такие как здания, имеют прямые углы. Чтобы сделать углыми полигона прямыми щёлкните правой кнопкой {rightclick} по краю полигона и выберите команду **Спрямить углы** {orthogonalize} в меню редактирования.", @@ -792,7 +828,7 @@ "modify_area_dragnode": "Часто вы будете замечать полигоны, форма которых не верна. Например, здание не соответствует тому, что на спутниковом снимке. Чтобы скорректировать форму полигона сначала выделите его, щёлкнув по нему {leftclick}. Все точки, принадлежащие полигону, станут отражены небольшими кружчкми. Вы можете перетащить точки в более подходящие места.", "modify_area_addnode": "Вы также можете создать новые точки в полигоне, щёлкнув дважды {leftclick}**x2** по краю полигона или потянув за маленький треугольник посредине между точками.", "delete_area_h": "Удаление полигонов", - "delete_area": "Если полигон неверн полностью, например, здания больше не существует в реальном мире, такой полигон можно удалить. Но будьте осторожны, удаляя объекты — спутниковое изображение может быть устарелым, а здание, казавшееся неверным, недавно построено.", + "delete_area": "Если полигон неверен полностью, например, здания больше не существует в реальном мире, такой полигон можно удалить. Но будьте осторожны, удаляя объекты — спутниковое изображение может быть устарелым, а здание, казавшееся неверным, недавно построено.", "delete_area_command": "Чтобы удалить полигон, щёлкните правой кнопкой {rightclick} по полигону, чтобы выбрать его и отобразить меню редактирования, затем примените команду **Удалить** {delete}." }, "relations": { @@ -800,7 +836,7 @@ "intro": "*Отношение* — это специальный тип объекта OpenStreetMap для объединения других объектов. Объекты, входящие в отношение, называются *участниками отношения*, а каждый из участников отношения может иметь *роль* в отношении.", "edit_relation_h": "Редактирование отношений", "edit_relation": "В нижней части редактора объектов вы можете раскрыть область \"Все отношения\", чтобы посмотреть, является ли выбранный объект участником какого-либо отношения. Вы можете щёлкнуть по отношению, чтобы выбрать и отредактировать его.", - "edit_relation_add": "Чтобы добавить объект к отношению, выберите объект, затем щёлкните по кнопке \"+\" {plus} в разделе \"Все отношения\" редактора объектов. Вы можете выбрать из списка ближайщих к выбранному объекту отношений или же вариант \"Новое отношение...\".", + "edit_relation_add": "Чтобы добавить объект к отношению, выберите объект, затем щёлкните по кнопке {plus} в разделе \"Все отношения\" редактора объектов. Вы можете выбрать из списка ближайщих к выбранному объекту отношений или же вариант \"Новое отношение...\".", "edit_relation_delete": "Вы можете щёлкнуть по кнопке **Удалить** {delete}, чтобы удалить выбранный объект из отношения. Если из отношения удалить всех его участников, само отношение автоматически удалится.", "maintain_relation_h": "Поддерживание отношений в порядке", "maintain_relation": "В большинстве случаев iD будет поддерживать в порядке отношения автоматически, пока вы редактируете. Но вам стоит быть внимательным, когда вы заменяете объекты, которые могут быть участинками отношений. Например, вы удаляете участок дороги и рисуете его заново взамен удаленного, в таком случае вам следует добавить вновь отрисованный участок дороги к тем же отношениям, в которых числился удалённый (маршруты, ограничения на поворт и тому подобное).", @@ -827,7 +863,7 @@ "choosing": "Чтобы узнать, какие подложки доступны для редактирования, щёлкните на {layers} **Настройка фонового изображения** кнопку сбоку от карты.", "sources": "По умолчанию фоновым изображением является слой спутниковых снимков из [Карт Bing](https://www.bing.com/maps/). В зависимости от того, где вы редактируете, могут быть доступны другие источники подложек. Некоторые из них могут оказаться новее или иметь более высокое разрешение, так что всегда полезно проверить и посмотреть, какая из подложек наиболее подходит для обрисовки.", "offsets_h": "Настройка смещения подложки", - "offset": "Подложка часто имеет небольшой сдвиг (смещение) относительно объектов в реальности. Если вы видите множество дорого или зданий, сдвинутых относительно изображения с подложки, возможно это потому что изображение некорректно. В таком случае не сдвигайте отрисованные объекты под изображение с подложки. Вместо этого, убедитесь, что нет необходимости выставить смещение спутниковому снимку. Скорректировать фоновое изображение можно, раскрыв область \"Установка смещения слоя\" внизу панели настройки фоновых изображений.", + "offset": "Подложка часто имеет небольшой сдвиг (смещение) относительно объектов в реальности. Если вы видите множество дорог или зданий, сдвинутых относительно изображения с подложки, возможно это потому что изображение некорректно. В таком случае не сдвигайте отрисованные объекты под изображение с подложки. Вместо этого, убедитесь, что нет необходимости выставить смещение спутниковому снимку. Скорректировать фоновое изображение можно, раскрыв область \"Установка смещения слоя\" внизу панели настройки фоновых изображений.", "offset_change": "Щёлкните на маленькие треугольники, чтобы скорректировать сдвиг подложики небольшими шагами, или зажмите левую кнопку мыши и перетаскивайте внутри серого квадрата, чтобы сдвинуть подложку до сопоставления с данными." }, "streetlevel": { @@ -844,8 +880,46 @@ "survey": "Об информации о тому, как проводить GPS разведку, прочтите [Mapping with a smartphone, GPS, or paper](http://learnosm.org/en/mobile-mapping/).", "using_h": "Использование GPS треков", "using": "Для использование GPS треков с целью картографирования перетащите файл с треком в окно редактора карты. Если файл подходящий, трек будет отображен на карте яркой фиолетовой линией. Щёлкните на панель {data} **Данные карты** сбоку от карты, чтобы выключить, выключить или приблизить ваши GPS данные.", - "tracing": "GPS трек не передаёся в OpenStreetMap. Лучший способ использовать его — это отрисовать по нему карту, используя его как подсказку для новых объектов, что вы добавляете.", + "tracing": "GPS трек не передаётся в OpenStreetMap. Лучший способ использовать его — это отрисовать по нему карту, используя его как подсказку для новых объектов, что вы добавляете.", "upload": "Вы также можете [загрузить ваши GPS треки в OpenStreetMap](https://www.openstreetmap.org/trace/create), чтобы и другие участники смогли ими пользоваться." + }, + "field": { + "restrictions": { + "title": "Помощь по запретам манёвров", + "about": { + "title": "Об этом", + "about": "Это поле позволяет вам исследовать и редактировать запреты манёвров. Здесь отображается модель выбранного перекрестка, включая ближайшие примыкающие дороги.", + "from_via_to": "Запрет манёвра всегда содержит: одну **ИЗ линию**, одну **В линию** и либо одну **ЧЕРЕЗ точку**, либо одну и более **ЧЕРЕЗ линию**.", + "maxdist": "Ползунок \"{distField}\" указывает, как далеко производится поиск дополнительных смежных дорог.", + "maxvia": "Ползунок \"{viaField}\" указывает, как много \"через линий\" может быть включено в поиск. (Совет: чем проще, тем лучше)" + }, + "inspecting": { + "title": "Исследование", + "about": "Наведите курсор на любой **ИЗ** участок, чтобы увидеть, имеет ли он запрет манёвров. Каждое возможное **В** направление будет отрисовано цветной тенью, отображающей существующий запрет.", + "from_shadow": "{fromShadow} **ИЗ участка**", + "allow_shadow": "{allowShadow} **В разрешено**", + "restrict_shadow": "{restrictShadow} **В запрещено**", + "only_shadow": "{onlyShadow} **В только**", + "restricted": "\"Запрещено\" означает, что там существует запрет манёвра. Например \"Запрет левого поворота\".", + "only": "\"Только\" означает, что транспортное средство может передвигаться только в указанном направлении. Например \"Только прямо\"." + }, + "modifying": { + "title": "Редактирование", + "about": "Для редактирования запрета манёвров сперва щёлкните по любому начальному **ИЗ** участку, чтобы выбрать его. Выбранный участок начнёт пульсировать, и все возможные **В** направления обозначатся символами поворотов.", + "indicators": "Затем щёлкниет по символову поворота, чтобы переключить его между \"Разрешено\", \"Запрещено\" и \"Только\".", + "allow_turn": "{allowTurn} **В разрешено**", + "restrict_turn": "{restrictTurn} **В запрещено**", + "only_turn": "{onlyTurn} **В только**" + }, + "tips": { + "title": "Советы", + "simple": "**Предпочтительно использовать простые запреты вместо сложных.**", + "simple_example": "Например, избегайте создания запрета с участником ЧЕРЕЗ в виде линии, если возможно использовать вместо неё точку.", + "indirect": "**Некоторые запреты отображаются с текстом \"(косвенно)\" и нарисованы светлее.**", + "indirect_example": "Эти запреты существуют из-за запретов поблизости. Например, запрет \"Только прямо\" косвенно подразумевает ограничение \"Разворот запрещён\" для всх других путей через перекрёсток.", + "indirect_noedit": "У вас не получится отредактировать косвенные запреты. Вместо этого отредактируйте прямой запрет поблизости." + } + } } }, "intro": { @@ -1065,7 +1139,7 @@ }, "buildings": { "title": "Здания", - "add_building": "OpenStreetMap — крупнейшая в мире база данных о зданиях.{br}Вы можете добавить ещё не внесенные здания. **Нажмите кнопку {button} Полигон, чтобы добавить новый полигон**", + "add_building": "OpenStreetMap — крупнейшая в мире база данных о зданиях.{br}Вы можете добавить ещё не внесённые здания. **Нажмите кнопку {button} Полигон, чтобы добавить новый полигон**", "start_building": "Давайте обведём контур этого дома, чтобы добавить его на карту.{br}Здания нужно обводить по фундаменту с максимальной точностью. **Щёлкните или нажмите пробел на одном из углов здания, чтобы создать первую точку.**", "continue_building": "Добавьте точки на остальные углы дома. Можете увеличить изображение, чтобы видеть больше деталей.{br}Нажмите пробел или ещё раз щёлкните на первой или последней точке контура чтобы завершить здание. **Завершите рисование здания.**", "retry_building": "Похоже, что Вы отметили не все углы здания. Попробуйте ещё раз!", @@ -1075,7 +1149,7 @@ "rightclick_building": "**Нажмите правой кнопкой мыши на добавленном здании, чтобы перейти к меню редактирования объекта.**", "square_building": "Дом, который вы только что добавили, будет выглядеть ещё лучше с идеально прямыми углами. **Нажмите кнопку {button} чтобы спрямить форму здания.**", "retry_square": "Вы не щёлкнули кнопку «Спрямить углы». Попробуйте снова.", - "done_square": "Видите как углы здания передвинулись на другое место? Давайте освоим ещё один полезный приём.", + "done_square": "Видите, как углы здания передвинулись на другое место? Давайте освоим ещё один полезный приём.", "add_tank": "Теперь мы обрисуем этот круглый резервуар. **Нажмите {button} кнопку «Полигон» чтобы добавить новый полигон.**", "start_tank": "Не волнуйтесь, не придётся рисовать идеальный круг. Просто нарисуйте полигон с точками, касающимися края резервуара. **Щёлкните или нажмите пробел на контуре резервуара, чтобы создать первую точку.**", "continue_tank": "Добавьте ещё несколько точек на контуре. Круг будет создан снаружи обрисованных точек.{br}Нажмите Enter или щёлкните ещё раз на первой или последней точке, чтобы закончить рисование. **Завершите обведение резервуара.**", @@ -1624,6 +1698,9 @@ "cycleway:right": "Правая сторона" } }, + "dance/style": { + "label": "Танцевальные стили" + }, "date": { "label": "Дата" }, @@ -1747,7 +1824,7 @@ "options": { "green": "Газон", "lane": "на проезжей части", - "parking_lot": "на стоянке", + "parking_lot": "на парковке", "sidewalk": "на тротуаре" } }, @@ -2691,6 +2768,9 @@ "name": "Ковёр-лифт", "terms": "ленточный подъёмник, конвейерный подъёмник" }, + "aerialway/mixed_lift": { + "name": "Смешанный подъёмник" + }, "aerialway/platter": { "name": "Тарельчатый подъёмник", "terms": "тарельчатый подъёмник, тарелочный подъёмник" @@ -2972,7 +3052,7 @@ "terms": "Рынок" }, "amenity/motorcycle_parking": { - "name": "Стоянка для мотоциклов", + "name": "Парковка для мотоциклов", "terms": "мотопарковка, мотопаркинг, парковка для мотоциклов, паркинг для мотоциклов, мотостоянка" }, "amenity/music_school": { @@ -2991,11 +3071,11 @@ "terms": "парковка, паркинг, автостоянка, автомобильная парковка" }, "amenity/parking_entrance": { - "name": "Въезд/Выезд с автостоянки", + "name": "Въезд/Выезд с автопарковки", "terms": "стоянка, въезд, выезд, автомобиль, машина, парковка, паркинг" }, "amenity/parking_space": { - "name": "Отдельное парковочное место на стоянке", + "name": "Отдельное парковочное место на парковке", "terms": "парковочное место, отдельное парковочное место на стоянке" }, "amenity/pavilion": { @@ -3431,6 +3511,12 @@ "building/entrance": { "name": "Вход/выход (устаревший тег)" }, + "building/farm": { + "name": "Жилое здание на ферме" + }, + "building/farm_auxiliary": { + "name": "Нежилое здание на ферме" + }, "building/garage": { "name": "Гараж", "terms": "гараж, ракушка" @@ -4203,7 +4289,7 @@ "terms": "свалка, отходы, полигон бытовых отходов" }, "landuse/meadow": { - "name": "Луг (пастбище, сенокосный луг)", + "name": "Cенокосный луг (пастбище)", "terms": "луг, пашня, пастбище, сенокосный луг" }, "landuse/military": { @@ -4309,6 +4395,9 @@ "name": "Танцевальный зал", "terms": "Танцевальная студия, танцевальная школа, танцевальная площадка" }, + "leisure/dancing_school": { + "name": "Школа танцев" + }, "leisure/dog_park": { "name": "Площадка для выгула собак", "terms": "собачья площадка" @@ -4443,7 +4532,7 @@ "terms": "футбольное поле" }, "leisure/pitch/table_tennis": { - "name": "Стол для пинг-понга", + "name": "Площадка для пинг-понга", "terms": "пинг-понг, настольный теннис" }, "leisure/pitch/tennis": { @@ -4483,7 +4572,7 @@ "terms": "Плавательный бассейн" }, "leisure/stadium": { - "name": "Стадион с трибунами", + "name": "Стадион (территория)", "terms": "спортивная арена" }, "leisure/swimming_pool": { @@ -4671,7 +4760,7 @@ "terms": "ледник" }, "natural/grassland": { - "name": "Трава", + "name": "Луг", "terms": "Травяной луг, Луговина, Лужок, Выкос, Перелесье, травяной покров, травянистый поуров" }, "natural/heath": { @@ -4814,7 +4903,8 @@ "terms": "ЗАГС" }, "office/government/tax": { - "name": "Налоговая" + "name": "Налоговая", + "terms": "налоги, налоговая инспекция" }, "office/guide": { "name": "Туристические гиды", @@ -4874,7 +4964,8 @@ "terms": "опросы, оценка, статистика, замеры" }, "office/tax_advisor": { - "name": "Офис консультанта по налогам" + "name": "Офис консультанта по налогам", + "terms": "налоговый консультант" }, "office/telecommunication": { "name": "Офис телекоммуникационной компании", @@ -5251,7 +5342,8 @@ "name": "Железнодорожная стрелка" }, "railway/train_wash": { - "name": "Мойка для поездов/вагонов" + "name": "Мойка для поездов/вагонов", + "terms": "мойка вагонов, мойка поездов" }, "railway/tram": { "name": "Трамвайные пути", @@ -5861,7 +5953,7 @@ "terms": "зоопарк, зоосад" }, "traffic_calming": { - "name": "Успокоение движения", + "name": "Элемент успокоения движения", "terms": "искусственная неровность, лежачий полицейский, шумовые полосы" }, "traffic_calming/bump": { @@ -6187,7 +6279,7 @@ "name": "TIGER дороги 2012" }, "US-TIGER-Roads-2014": { - "description": "На зумах 16+ — общедостпуные картографические данные отUS Census. На меньших зумах — только изменения с 2006 за вычетом изменений, включённых в OpenStreetMap", + "description": "На зумах 16+ — общедостпуные картографические данные от US Census. На меньших зумах — только изменения с 2006 за вычетом изменений, включённых в OpenStreetMap", "name": "TIGER дороги 2014" }, "US-TIGER-Roads-2017": { diff --git a/dist/locales/sv.json b/dist/locales/sv.json index fdc38a998..50ac65fa7 100644 --- a/dist/locales/sv.json +++ b/dist/locales/sv.json @@ -1491,6 +1491,9 @@ "cycleway:right": "Höger sida" } }, + "dance/style": { + "label": "Dansstilar" + }, "date": { "label": "Datum" }, @@ -1553,6 +1556,9 @@ "forward": "Framåt" } }, + "dispensing": { + "label": "Receptbelagda läkemedel " + }, "display": { "label": "Visning" }, @@ -1946,7 +1952,9 @@ "oneway": { "label": "Enkelriktat", "options": { + "alternating": "Växlande", "no": "Nej", + "reversible": "Vändbar", "undefined": "Förväntas vara Nej", "yes": "Ja" } @@ -1954,7 +1962,9 @@ "oneway_yes": { "label": "Enkelriktat", "options": { + "alternating": "Växlande", "no": "Nej", + "reversible": "Vändbar", "undefined": "Förväntas vara Ja", "yes": "Ja" } @@ -2491,6 +2501,9 @@ "wheelchair": { "label": "Handikappanpassat" }, + "wholesale": { + "label": "Grosist" + }, "width": { "label": "Bredd (meter)" }, @@ -2678,6 +2691,10 @@ "name": "Café", "terms": "kaffeservering, kaffestuga, kafeteria, cafeteria, servering, konditori, kondis, fik, kaffe, te, bistro" }, + "amenity/car_pooling": { + "name": "Bilpool", + "terms": "Bilpool, hyrbil, lånebil" + }, "amenity/car_rental": { "name": "Biluthyrning", "terms": "Biluthyrning, billån, billeasing, lånebil, hyrbil" @@ -2824,6 +2841,10 @@ "name": "Bibliotek", "terms": "Bibliotek, boksamling, bokskatt, bokrum, läsesal, bibbla, bok, böcker" }, + "amenity/love_hotel": { + "name": "Kärlekshotell", + "terms": "Kärlekshotell, sexhotell, korttidshotell, hotell" + }, "amenity/marketplace": { "name": "Marknadsplats", "terms": "Saluhall, torg, marknad, salutorg" @@ -2969,6 +2990,10 @@ "name": "Dusch", "terms": "Dusch, duschutrymme, duschkabin, duschbad, badrum, duschrum" }, + "amenity/smoking_area": { + "name": "Rökområde", + "terms": "rökrum, rökområde, rökruta, rökning tillåten, rökning, röka, cigarett" + }, "amenity/social_facility": { "name": "Social inrättning", "terms": "Social inrättning, social hjälp, social, socialen, uteliggare, hjälparbete, välgörenhetsorganisationer, välgörenhet" @@ -3202,6 +3227,10 @@ "name": "Häck", "terms": "Häck, buskar" }, + "barrier/kerb": { + "name": "Trottoarkant", + "terms": "trottoarkant, kant, kantsten" + }, "barrier/kissing_gate": { "name": "Grind vid betesmark", "terms": "Grind vid betesmark, Kryssgrind" @@ -3242,6 +3271,14 @@ "name": "Lada", "terms": "Lada, ladugård, loge, magasin, skjul, skulle, lagård" }, + "building/boathouse": { + "name": "Båthus", + "terms": "Båthus, sjöbod, strandbod" + }, + "building/bungalow": { + "name": "Bungalow", + "terms": "Bungalow, stuga, sommarstuga, fristående hus, villa, semesterhus" + }, "building/bunker": { "name": "Bunker" }, @@ -3261,6 +3298,10 @@ "name": "Kyrkobyggnad", "terms": "Kyrka, kyrkobyggnad, kyrkbyggnad, kyrksal, andaktssal, missionshus, gudstjänst, gudstjänstslokal, andaktslokal, gudshus" }, + "building/civic": { + "name": "Kommunal byggnad", + "terms": "Civil, kommunal, publik, stadshus, kommunhus, medborgarhus" + }, "building/college": { "name": "Collegebyggnad", "terms": "Gymnasie, gymnasium, gymnasiebyggnad, universitet" @@ -3284,6 +3325,14 @@ "building/entrance": { "name": "Entré/utgång" }, + "building/farm": { + "name": "Mangårdsbyggnad (bostadshus på gård)", + "terms": "Mangårdsbyggnad, bostad, hus, bostadshus, gård, lantbruk" + }, + "building/farm_auxiliary": { + "name": "Gårdsbyggnader", + "terms": "Gårdsbyggnader, ekonomibyggnader, gårdshus, ladugård, stall, lantbruksbyggnader, gård, lantbruk" + }, "building/garage": { "name": "Garage", "terms": "garage, bilstall, bilskjul, carport, parkeringshus, varmgarage, kallgarage" @@ -3340,6 +3389,10 @@ "name": "Tak", "terms": "Tak, övertäckning, valv, överbyggnad, regnskydd" }, + "building/ruins": { + "name": "Ruinbyggnad", + "terms": "Ruinbyggnad, ruin, raserad, husrest, förfallen, ödehus, huslämning, fornlämning" + }, "building/school": { "name": "Skolbyggnad", "terms": "Skolbyggnad, skola, läroanstalt, undervisningsanstalt, lärosäte, grundskola, gymnasium, folkhögskola, läroverk, skolhus, skolväsen, undervisning, utbildning, mellanstadium, lågstadium, högstadium, komvux" @@ -4178,6 +4231,10 @@ "name": "Dansbana", "terms": "Dansbana, danshus, rotunda, folkets park, bal, balsal, bugg, foxtrot, salsa, jive, swing, tango, valls, gammaldans" }, + "leisure/dancing_school": { + "name": "Dansskola", + "terms": "Dansskola, bugg, foxtrot, gamaldans, swing, jive, vals, dans, danskurs, dansutbildning, tiodans, salsa, tango" + }, "leisure/dog_park": { "name": "Hundpark", "terms": "Hundpark, hundrastgård, hund, rastgård, hundgård, kennel" diff --git a/dist/locales/vi.json b/dist/locales/vi.json index 3052a63d9..0b9acd7a4 100644 --- a/dist/locales/vi.json +++ b/dist/locales/vi.json @@ -291,6 +291,42 @@ } } }, + "restriction": { + "controls": { + "distance": "Tầm xa", + "distance_up_to": "Cho tới {distance}", + "via": "Theo", + "via_node_only": "Chỉ nốt", + "via_up_to_one": "Cho tới 1 lối", + "via_up_to_two": "Cho tới 2 lối" + }, + "help": { + "indirect": "(gián tiếp)", + "turn": { + "no_left_turn": "CẤM Rẽ Trái {indirect}", + "no_right_turn": "CẤM Rẽ Phải {indirect}", + "no_u_turn": "CẤM Quay ngược {indirect}", + "no_straight_on": "CẤM Chạy thẳng {indirect}", + "only_left_turn": "CHỈ Rẽ Trái {indirect}", + "only_right_turn": "CHỈ Rẽ Phải {indirect}", + "only_u_turn": "CHỈ Quay ngược {indirect}", + "only_straight_on": "CHỈ Chạy thẳng {indirect}", + "allowed_left_turn": "Cho phép Rẽ Trái {indirect}", + "allowed_right_turn": "Cho phép Rẽ Phải {indirect}", + "allowed_u_turn": "Cho phép Quay ngược {indirect}", + "allowed_straight_on": "Cho phép Chạy thẳng {indirect}" + }, + "from": "TỪ", + "via": "THEO", + "to": "ĐẾN", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "Nhấn chuột để chọn khúc đường {from}", + "select_from_name": "Nhấn chuột để chọn {from} {fromName}", + "toggle": "Nhấn chuột cho “{turn}”" + } + }, "undo": { "tooltip": "Hoàn tác việc {action}.", "nothing": "Không có gì để hoàn tác." @@ -846,6 +882,44 @@ "using": "Để sử dụng một tuyến GPS trong việc vẽ bản đồ, kéo thả tập tin GPS vào chương trình vẽ bản đồ này. Nếu chương trình nhận ra tuyến đường, tuyến đường sẽ được tô màu hồng sẫm trên bản đồ. Bấm nút {data} **Dữ liệu Bản đồ** ở bên phải của bản đồ để bật, tắt, hoặc thu phóng vừa dữ liệu GPS do bạn thu thập.", "tracing": "Tuyến đường GPX không được tải trực tiếp lên OpenStreetMap. Cách tốt nhất để sử dụng nó là vạch đường mới theo nó trên bản đồ.", "upload": "Bạn cũng có thể [tải dữ liệu GPS của bạn lên OpenStreetMap](https://www.openstreetmap.org/trace/create) để cho người khác sử dụng." + }, + "field": { + "restrictions": { + "title": "Trợ giúp về Hạn chế Rẽ", + "about": { + "title": "Giới thiệu", + "about": "Hộp này cho phép kiểm tra và thay đổi các hạn chế rẽ. Nó hiển thị mô hình của giao lộ được chọn, bao gồm các đường sá nối liền.", + "from_via_to": "Một hạn chế rẽ luôn có: một **lối TỪ**, một **lối ĐẾN**; và một **nốt THEO** hoặc một **lối THEO** trở lên.", + "maxdist": "Con trượt “{distField}” điều khiển tầm xa tìm kiếm các đường sá nối liền.", + "maxvia": "Con trượt “{viaField}” điều khiển số lối theo được bao gồm khi tìm đường sá. (Mẹo vặt: càng đơn giản càng tốt.)" + }, + "inspecting": { + "title": "Kiểm tra", + "about": "Rê chuột lên khúc **TỪ** nào đó để xem nó có hạn chế rẽ hay không. Mỗi khúc có thể đi **ĐẾN** sẽ được tô màu cho biết nó có hạn chế rẽ hay không.", + "from_shadow": "{fromShadow} **TỪ khúc**", + "allow_shadow": "{allowShadow} **Cho phép ĐẾN**", + "restrict_shadow": "{restrictShadow} **Cấm ĐẾN**", + "only_shadow": "{onlyShadow} **Chỉ ĐẾN**", + "restricted": "“Cấm” có nghĩa hạn chế rẽ, ví dụ “Cấm Rẽ Trái”.", + "only": "“Chỉ” có nghĩa rằng một xe đi đường này chỉ được phép tiếp tục theo lối đó, ví dụ “Chỉ Chạy thẳng”." + }, + "modifying": { + "title": "Thay đổi", + "about": "Để thay đổi hạn chế rẽ, nhấn chuột vào một khúc **TỪ** ban đầu để chọn nó. Khúc được chọn sẽ chớp chớp, và tất cả các nơi có thể đi **ĐẾN** sẽ xuất hiện hình rẽ.", + "indicators": "Sau đó, nhấn chuột vào hình rẽ để luân chuyển giữa “Cho phép”, “Cấm”, và “Chỉ”.", + "allow_turn": "{allowTurn} **Cho phép ĐẾN**", + "restrict_turn": "{restrictTurn} **Cấm ĐẾN**", + "only_turn": "{onlyTurn} **Chỉ ĐẾN**" + }, + "tips": { + "title": "Mẹo vặt", + "simple": "**Nên tạo hạn chế càng đơn giản càng tốt.**", + "simple_example": "Ví dụ đừng nên tạo hạn chế có lối theo nếu nốt theo đã được.", + "indirect": "**Một số hạn chế có vẻ mờ nhạt và đề chữ “(gián tiếp)”.**", + "indirect_example": "Các hạn chế này tồn tại vì một hạn chế lân cận. Chẳng hạn một hạn chế “Chỉ Chạy thẳng” sẽ gây các hạn chế “Cấm Rẽ” gián tiếp đối với các lối khác đi ngang giao lộ.", + "indirect_noedit": "Bạn không thể sửa đổi các hạn chế gián tiếp. Thay thế, sửa đổi hạn chế trực tiếp lân cận." + } + } } }, "intro": { @@ -866,10 +940,95 @@ "suburb": "", "countrycode": "vn", "name": { + "1st-avenue": "Ngõ 1", + "2nd-avenue": "Ngõ 2", + "4th-avenue": "Ngõ 4", + "5th-avenue": "Ngõ 5", + "6th-avenue": "Ngõ 6", + "6th-street": "Ngũ Đại Hồ", + "7th-avenue": "Ngõ 7", + "8th-avenue": "Ngõ 8", + "9th-avenue": "Ngõ 9", + "10th-avenue": "Ngõ 10", + "11th-avenue": "Ngõ 11", + "12th-avenue": "Ngõ 12", + "access-point-employment": "Văn phòng Giới thiệu Việc làm Tương lai", + "adams-street": "Đệ Nhị", "andrews-elementary-school": "Trường Tiểu học Trần Hưng Đạo", + "andrews-street": "Trần Hưng Đạo", + "armitage-street": "Mỹ Hòa", + "barrows-school": "Trường Hoa Thịnh Đốn", + "battle-street": "Thắng Lợi", + "bennett-street": "Tam Giác", + "bowman-park": "Công viên Cộng đồng", + "collins-drive": "Kiến Thức", "conrail-railroad": "Bắc Bình – Nam Hòa", + "conservation-park": "Công viên Bảo tồn", + "constantine-street": "Ngọc Lân", + "cushman-street": "Cận Đông", + "dollar-tree": "Tiết kiệm", + "douglas-avenue": "Cựu Kim Sơn", + "east-street": "Đông Phương", + "elm-street": "Đu Đủ", + "flower-street": "Bông Hoa", + "foster-street": "Hậu Trường", + "french-street": "Đọc Lập", + "garden-street": "Vườn Hoa", + "gem-pawnbroker": "Vân Vân", + "golden-finch-framing": "Khung tranh Phượng hoàng", + "grant-avenue": "Phú Quốc", + "hoffman-pond": "Hồ Cạn", + "hoffman-street": "Liên Giang", + "hook-avenue": "Liên Hệ", + "jefferson-street": "Tự Do", + "kelsey-street": "Tây Nguyên", + "lafayette-park": "Công viên Tưởng niệm", + "las-coffee-cafe": "Cà phê Mỹ Châu", + "lincoln-avenue": "Hòa Bình", + "lowrys-books": "Văn Chương", + "lynns-garage": "Tiệm sửa xe ABC", + "main-street-barbell": "Cử tạ Tam Giang", + "main-street-cafe": "Cà phê Ngon lành", + "main-street-fitness": "Thể dục Tam Giang", + "main-street": "Thương mại", + "maple-street": "Thích Hợp", + "marina-park": "Công viên Bến Thông Hải", + "market-street": "Chợ", + "memory-isle-park": "Công viên Ngọc Lâm", + "memory-isle": "Đảo Ngọc Lâm", + "michigan-avenue": "Yên Phong", + "middle-street": "Trung Lập", + "millard-street": "Cửa Sông", + "moore-street": "Đoàn Kết", + "morris-avenue": "Tân Anh", + "mural-mall": "Đường dạo Tranh tường", + "paisanos-bar-and-grill": "Bánh cuốn Tây Hồ", + "paisley-emporium": "Tái Hồi", + "paparazzi-tattoo": "Xăm Xăm", + "pealer-street": "Mạc Tư Khoa", + "pine-street": "Cây Thông", + "pizza-hut": "Phở Tàu Bay", + "portage-avenue": "Hương Giang", + "portage-river": "Sông Hương", + "preferred-insurance-services": "Bảo hiểm Nguyễn Văn Lưu", + "railroad-drive": "Xe Lửa", + "river-city-appliance": "Đồ Gia dụng Tam Giang", + "river-drive": "Ngọc Ngà", + "river-road": "Thủy Triều", + "river-street": "Bến Tàu", + "riverside-cemetery": "Nghĩa địa Ven sông", + "riverwalk-trail": "Đường mòn Dọc sông", + "riviera-theatre": "Rạp phim Tam Giang", "rocky-river": "Sông Đá", + "saint-joseph-river": "Sông Thông Hải", + "scidmore-park-petting-zoo": "Vườn thú Tam Giang", + "scidmore-park": "Công viên Tam Giang", + "scouter-park": "Công viên Ngọc Ngà", + "sherwin-williams": "Màu sắc", + "south-street": "Nam Phương", "southern-michigan-bank": "Ngân hàng Bắc Ninh", + "spring-street": "Xuân Lộc", + "sturgeon-river-road": "Tứ Giang", "three-rivers-city-hall": "Tòa thị chính Tam Giang", "three-rivers-elementary-school": "Trường Tiểu học Tam Giang", "three-rivers-fire-department": "Đoàn Cứu hỏa Tam Giang", @@ -878,7 +1037,17 @@ "three-rivers-municipal-airport": "Sân bay Tam Giang", "three-rivers-post-office": "Bưu điện Tam Giang", "three-rivers-public-library": "Thư viện Tam Giang", - "three-rivers": "Tam Giang" + "three-rivers": "Tam Giang", + "unique-jewelry": "Kim Châu", + "walnut-street": "Hạch Đào", + "washington-street": "Hoa Thịnh Đốn", + "water-street": "Trường Sa", + "west-street": "Tây Phương", + "wheeler-street": "Cần Cù", + "william-towing": "Dũng Kéo Xe", + "willow-drive": "Cây Liễu", + "wood-street": "Hai Bà Trưng", + "world-fare": "Bốn Phương" } }, "welcome": { @@ -3365,6 +3534,14 @@ "building/entrance": { "name": "Cửa Ra vào" }, + "building/farm": { + "name": "Nhà ở Nông trại", + "terms": "nhà ở nông trại, căn nhà nông trại, nha o nong trai, can nha nong trai" + }, + "building/farm_auxiliary": { + "name": "Tòa nhà Nông trại", + "terms": "tòa nhà nông trại, toà nhà nông trại, toa nha nong trai" + }, "building/garage": { "name": "Ga ra", "terms": "ga ra, ga-ra" diff --git a/dist/locales/zh-CN.json b/dist/locales/zh-CN.json index 1157d4bc8..e9155a366 100644 --- a/dist/locales/zh-CN.json +++ b/dist/locales/zh-CN.json @@ -291,6 +291,42 @@ } } }, + "restriction": { + "controls": { + "distance": "距离", + "distance_up_to": "{distance} 及以内", + "via": "经由", + "via_node_only": "仅限节点", + "via_up_to_one": "最多 1 路径", + "via_up_to_two": "最多 2 路径" + }, + "help": { + "indirect": "(间接)", + "turn": { + "no_left_turn": "禁止左转{indirect}", + "no_right_turn": "禁止右转{indirect}", + "no_u_turn": "禁止掉头{indirect}", + "no_straight_on": "禁止直行{indirect}", + "only_left_turn": "仅限左转{indirect}", + "only_right_turn": "仅限右转{indirect}", + "only_u_turn": "仅限掉头{indirect}", + "only_straight_on": "仅限直行{indirect}", + "allowed_left_turn": "允许左转{indirect}", + "allowed_right_turn": "允许右转{indirect}", + "allowed_u_turn": "允许掉头{indirect}", + "allowed_straight_on": "允许直行{indirect}" + }, + "from": "从", + "via": "经由", + "to": "至", + "from_name": "{from} {fromName} 起", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "点击选择一个 {from}... 部分", + "select_from_name": "点击选择 {from} {fromName} 起", + "toggle": "点击应用 “{turn}”" + } + }, "undo": { "tooltip": "撤销:{action}", "nothing": "没有可以撤销的操作。" @@ -757,6 +793,16 @@ "gps": { "title": "GPS 轨迹", "upload": "您也可以[将您的 GPS 数据上传至 OpenStreetMap](https://www.openstreetmap.org/trace/create) 以供他人使用。" + }, + "field": { + "restrictions": { + "title": "转向限制帮助", + "about": { + "title": "关于", + "about": "本字段允许您浏览并修改转向限制。一个包含选中的交叉路口以及其邻近连接的道路的模型将会被显示。", + "from_via_to": "一个转向限制总是包含:一条 **从... 路径**(起始路径)、一条 **至... 路径**(结束路径) 和一个 **经由节点** 或单/多条 **经由路径**。" + } + } } }, "intro": { diff --git a/dist/locales/zh-TW.json b/dist/locales/zh-TW.json index 828bd4f65..1f8f895d5 100644 --- a/dist/locales/zh-TW.json +++ b/dist/locales/zh-TW.json @@ -291,6 +291,14 @@ } } }, + "restriction": { + "controls": { + "distance": "距離", + "distance_up_to": "最大 {distance}", + "via": "經由", + "via_node_only": "只有節點" + } + }, "undo": { "tooltip": "復原: {action}", "nothing": "沒有動作可以撤銷。" @@ -1629,6 +1637,9 @@ "cycleway:right": "右側" } }, + "dance/style": { + "label": "舞蹈類型" + }, "date": { "label": "日期" }, @@ -4401,6 +4412,10 @@ "name": "舞廳", "terms": "跳舞場所" }, + "leisure/dancing_school": { + "name": "舞蹈學校", + "terms": "舞蹈學校" + }, "leisure/dog_park": { "name": "狗公園", "terms": "寵物公園" From 846da8483194cea1a1ec25b7d4306cb9eef7a5f5 Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Wed, 7 Mar 2018 23:21:23 +0100 Subject: [PATCH 119/157] add support for 4326 WMS layers --- data/imagery.json | 11802 +++++++++++++++++++++++- data/update_imagery.js | 1 + modules/renderer/background_source.js | 46 +- 3 files changed, 11381 insertions(+), 468 deletions(-) diff --git a/data/imagery.json b/data/imagery.json index 24a8e0ec8..b448864b5 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -11087,6 +11087,1217 @@ "description": "Orthofoto layer provided by basemap.at. \"Successor\" of geoimage.at imagery.", "icon": "https://www.basemap.at/images/logo_basemap.jpg" }, + { + "id": "bavaria-2m", + "name": "Bavaria (2 m)", + "type": "wms", + "template": "http://geodaten.bayern.de/ogc/ogc_dop200_oa.cgi?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=adv_dop200c&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "scaleExtent": [ + 0, + 18 + ], + "polygon": [ + [ + [ + 10.1235886, + 50.568462 + ], + [ + 10.1428576, + 50.5507804 + ], + [ + 10.2028056, + 50.5574195 + ], + [ + 10.2520485, + 50.5179575 + ], + [ + 10.3269835, + 50.4934473 + ], + [ + 10.4104825, + 50.4184762 + ], + [ + 10.6031724, + 50.3310874 + ], + [ + 10.6224414, + 50.2271041 + ], + [ + 10.7252093, + 50.2106649 + ], + [ + 10.7294913, + 50.2476451 + ], + [ + 10.8515282, + 50.2435376 + ], + [ + 10.7187863, + 50.3201525 + ], + [ + 10.7123633, + 50.3652428 + ], + [ + 10.8558102, + 50.3966441 + ], + [ + 10.9371682, + 50.3966441 + ], + [ + 10.9906932, + 50.3666085 + ], + [ + 11.1277171, + 50.3666085 + ], + [ + 11.1791011, + 50.3133169 + ], + [ + 11.1619731, + 50.294172 + ], + [ + 11.24119, + 50.2928042 + ], + [ + 11.249754, + 50.3734364 + ], + [ + 11.24119, + 50.479825 + ], + [ + 11.358945, + 50.5234025 + ], + [ + 11.4381619, + 50.5097889 + ], + [ + 11.4424439, + 50.4893611 + ], + [ + 11.425316, + 50.4771001 + ], + [ + 11.425316, + 50.4416618 + ], + [ + 11.4895459, + 50.4225686 + ], + [ + 11.4916869, + 50.3980089 + ], + [ + 11.5195199, + 50.3980089 + ], + [ + 11.5259429, + 50.3761673 + ], + [ + 11.5987369, + 50.4034677 + ], + [ + 11.6372748, + 50.3884544 + ], + [ + 11.7935678, + 50.4212045 + ], + [ + 11.8363877, + 50.3925494 + ], + [ + 11.9220277, + 50.4280246 + ], + [ + 11.9862577, + 50.3870894 + ], + [ + 11.9841167, + 50.3570478 + ], + [ + 12.0483466, + 50.3310874 + ], + [ + 12.0933076, + 50.3297207 + ], + [ + 12.1297046, + 50.2982751 + ], + [ + 12.1404096, + 50.2722826 + ], + [ + 12.1061536, + 50.255859 + ], + [ + 12.1125766, + 50.2353216 + ], + [ + 12.1489736, + 50.236691 + ], + [ + 12.1982166, + 50.2010728 + ], + [ + 12.2239086, + 50.1640565 + ], + [ + 12.2046396, + 50.1434795 + ], + [ + 12.2067806, + 50.1077916 + ], + [ + 12.2431775, + 50.0995522 + ], + [ + 12.2774335, + 50.0720772 + ], + [ + 12.4936744, + 49.985428 + ], + [ + 12.4979564, + 49.9413559 + ], + [ + 12.5557634, + 49.9220616 + ], + [ + 12.5493404, + 49.8682726 + ], + [ + 12.4808284, + 49.7881677 + ], + [ + 12.4101755, + 49.7577484 + ], + [ + 12.4615594, + 49.7065456 + ], + [ + 12.5471994, + 49.6802313 + ], + [ + 12.5878784, + 49.552613 + ], + [ + 12.6542493, + 49.534553 + ], + [ + 12.6628133, + 49.4330153 + ], + [ + 12.7527353, + 49.4107323 + ], + [ + 12.7976963, + 49.3466124 + ], + [ + 12.9047462, + 49.3563752 + ], + [ + 12.9968092, + 49.3368477 + ], + [ + 13.0546161, + 49.2754251 + ], + [ + 13.1316921, + 49.2195199 + ], + [ + 13.1916401, + 49.1439475 + ], + [ + 13.236601, + 49.1215335 + ], + [ + 13.296549, + 49.1229347 + ], + [ + 13.371484, + 49.0808823 + ], + [ + 13.414304, + 49.0289687 + ], + [ + 13.414304, + 48.9798112 + ], + [ + 13.5791609, + 48.9699739 + ], + [ + 13.6348268, + 48.9432629 + ], + [ + 13.6776468, + 48.8869823 + ], + [ + 13.7375948, + 48.8926132 + ], + [ + 13.7846968, + 48.8334571 + ], + [ + 13.8403627, + 48.774231 + ], + [ + 13.8168118, + 48.7064584 + ], + [ + 13.8446447, + 48.7008065 + ], + [ + 13.8425037, + 48.6003807 + ], + [ + 13.7654278, + 48.5422972 + ], + [ + 13.7525818, + 48.5040106 + ], + [ + 13.6712238, + 48.5054291 + ], + [ + 13.6433908, + 48.5437146 + ], + [ + 13.4571239, + 48.5508013 + ], + [ + 13.4571239, + 48.4159838 + ], + [ + 13.40574, + 48.3605338 + ], + [ + 13.283703, + 48.2751083 + ], + [ + 13.0931541, + 48.2694081 + ], + [ + 12.9582712, + 48.1909669 + ], + [ + 12.8769132, + 48.1852574 + ], + [ + 12.7720043, + 48.0938188 + ], + [ + 12.8640672, + 48.0136764 + ], + [ + 12.8983232, + 47.9549216 + ], + [ + 12.9454252, + 47.9563555 + ], + [ + 12.9968092, + 47.8846147 + ], + [ + 13.0139372, + 47.834337 + ], + [ + 12.9347202, + 47.7321953 + ], + [ + 13.0588981, + 47.7249947 + ], + [ + 13.1188461, + 47.6385093 + ], + [ + 13.0653211, + 47.5692178 + ], + [ + 13.0567571, + 47.473792 + ], + [ + 13.0032322, + 47.4520801 + ], + [ + 12.7677223, + 47.5504355 + ], + [ + 12.7698633, + 47.6327385 + ], + [ + 12.7398893, + 47.6731207 + ], + [ + 12.6670953, + 47.6702373 + ], + [ + 12.5750324, + 47.621195 + ], + [ + 12.4808284, + 47.6197519 + ], + [ + 12.4144575, + 47.6702373 + ], + [ + 12.2431775, + 47.6774455 + ], + [ + 12.2132036, + 47.6918589 + ], + [ + 12.1917936, + 47.6817699 + ], + [ + 12.2132036, + 47.6659119 + ], + [ + 12.2110626, + 47.603875 + ], + [ + 12.1746656, + 47.5952129 + ], + [ + 12.1382686, + 47.603875 + ], + [ + 11.8920537, + 47.603875 + ], + [ + 11.8513747, + 47.5793285 + ], + [ + 11.6394158, + 47.5822169 + ], + [ + 11.5944549, + 47.5489905 + ], + [ + 11.5901729, + 47.5128508 + ], + [ + 11.5173789, + 47.498388 + ], + [ + 11.4403029, + 47.5041736 + ], + [ + 11.395342, + 47.4752392 + ], + [ + 11.427457, + 47.4448409 + ], + [ + 11.346099, + 47.4433929 + ], + [ + 11.279728, + 47.3955873 + ], + [ + 11.2133571, + 47.3883402 + ], + [ + 11.247613, + 47.4318076 + ], + [ + 11.1020251, + 47.3926886 + ], + [ + 10.9650012, + 47.3897897 + ], + [ + 10.9778472, + 47.4361524 + ], + [ + 10.9178992, + 47.4752392 + ], + [ + 10.8707972, + 47.4752392 + ], + [ + 10.8558102, + 47.4940484 + ], + [ + 10.9007712, + 47.5142969 + ], + [ + 10.8729382, + 47.5359831 + ], + [ + 10.8108493, + 47.5128508 + ], + [ + 10.6438513, + 47.5489905 + ], + [ + 10.5946084, + 47.5547705 + ], + [ + 10.5796214, + 47.5287553 + ], + [ + 10.4618664, + 47.5403192 + ], + [ + 10.4661484, + 47.4839212 + ], + [ + 10.4875584, + 47.4781333 + ], + [ + 10.4875584, + 47.4129762 + ], + [ + 10.4597254, + 47.4028333 + ], + [ + 10.4597254, + 47.375293 + ], + [ + 10.4104825, + 47.3738431 + ], + [ + 10.4083415, + 47.3433862 + ], + [ + 10.3205605, + 47.2867768 + ], + [ + 10.2820225, + 47.2780622 + ], + [ + 10.2841635, + 47.2620819 + ], + [ + 10.1471396, + 47.2620819 + ], + [ + 10.1921006, + 47.3027497 + ], + [ + 10.1942416, + 47.3738431 + ], + [ + 10.1664086, + 47.3738431 + ], + [ + 10.1664086, + 47.3462876 + ], + [ + 10.1000376, + 47.3433862 + ], + [ + 10.0614996, + 47.3636928 + ], + [ + 10.0679226, + 47.4187712 + ], + [ + 10.0936146, + 47.426014 + ], + [ + 10.0957556, + 47.4419449 + ], + [ + 9.9780007, + 47.485368 + ], + [ + 9.9565907, + 47.5273097 + ], + [ + 9.8945017, + 47.5287553 + ], + [ + 9.8559637, + 47.5085124 + ], + [ + 9.8174258, + 47.544655 + ], + [ + 9.8217078, + 47.5764399 + ], + [ + 9.7746058, + 47.5822169 + ], + [ + 9.7382088, + 47.525864 + ], + [ + 9.6739788, + 47.5345376 + ], + [ + 9.5840569, + 47.564884 + ], + [ + 9.6397228, + 47.6053186 + ], + [ + 9.7167988, + 47.603875 + ], + [ + 9.8559637, + 47.6760039 + ], + [ + 9.9780007, + 47.6558179 + ], + [ + 10.0293846, + 47.6817699 + ], + [ + 10.1000376, + 47.6673537 + ], + [ + 10.1321526, + 47.6760039 + ], + [ + 10.1428576, + 47.7019459 + ], + [ + 10.0614996, + 47.7725005 + ], + [ + 10.1128836, + 47.8098988 + ], + [ + 10.0829096, + 47.8530173 + ], + [ + 10.1086016, + 47.9090177 + ], + [ + 10.0764866, + 47.9649577 + ], + [ + 10.1300116, + 48.020837 + ], + [ + 10.1342936, + 48.1066872 + ], + [ + 10.1000376, + 48.1281274 + ], + [ + 10.0550766, + 48.2622821 + ], + [ + 9.9694367, + 48.3676462 + ], + [ + 10.0315256, + 48.4259299 + ], + [ + 10.0293846, + 48.461436 + ], + [ + 10.1235886, + 48.4770509 + ], + [ + 10.1535626, + 48.4514968 + ], + [ + 10.2349205, + 48.5125212 + ], + [ + 10.3162785, + 48.516776 + ], + [ + 10.2991505, + 48.6187835 + ], + [ + 10.2456255, + 48.6682961 + ], + [ + 10.2734585, + 48.7064584 + ], + [ + 10.3698035, + 48.6838472 + ], + [ + 10.4318924, + 48.6993935 + ], + [ + 10.4511614, + 48.7276471 + ], + [ + 10.4019185, + 48.7460035 + ], + [ + 10.4404564, + 48.8489571 + ], + [ + 10.4340334, + 48.9587289 + ], + [ + 10.3376885, + 49.0205451 + ], + [ + 10.2499075, + 49.0359872 + ], + [ + 10.2499075, + 49.0738701 + ], + [ + 10.2006646, + 49.1033147 + ], + [ + 10.2520485, + 49.1327418 + ], + [ + 10.1235886, + 49.1971401 + ], + [ + 10.1193066, + 49.2628519 + ], + [ + 10.1514216, + 49.2893915 + ], + [ + 10.1043196, + 49.3452175 + ], + [ + 10.1407166, + 49.3940134 + ], + [ + 10.1086016, + 49.445545 + ], + [ + 10.1107426, + 49.5053651 + ], + [ + 10.0722046, + 49.5331635 + ], + [ + 10.0165387, + 49.4761598 + ], + [ + 9.9266167, + 49.478942 + ], + [ + 9.9244757, + 49.5567797 + ], + [ + 9.8987837, + 49.5817727 + ], + [ + 9.8559637, + 49.5387213 + ], + [ + 9.8067208, + 49.5567797 + ], + [ + 9.8666687, + 49.6067529 + ], + [ + 9.8538227, + 49.6441991 + ], + [ + 9.8174258, + 49.6608327 + ], + [ + 9.8345537, + 49.6899277 + ], + [ + 9.7960158, + 49.7203895 + ], + [ + 9.7574778, + 49.7079302 + ], + [ + 9.7403498, + 49.6857723 + ], + [ + 9.7060938, + 49.7162368 + ], + [ + 9.6782608, + 49.7162368 + ], + [ + 9.6825428, + 49.6885426 + ], + [ + 9.6204539, + 49.6913127 + ], + [ + 9.6461458, + 49.78955 + ], + [ + 9.5583649, + 49.7743431 + ], + [ + 9.5712109, + 49.7356133 + ], + [ + 9.5069809, + 49.7522156 + ], + [ + 9.4919939, + 49.7798735 + ], + [ + 9.4684429, + 49.7605146 + ], + [ + 9.425623, + 49.7784909 + ], + [ + 9.404213, + 49.7646636 + ], + [ + 9.33356, + 49.770195 + ], + [ + 9.329278, + 49.7342295 + ], + [ + 9.408495, + 49.725926 + ], + [ + 9.427764, + 49.6982374 + ], + [ + 9.414918, + 49.6441991 + ], + [ + 9.380662, + 49.6386533 + ], + [ + 9.359252, + 49.6497443 + ], + [ + 9.339983, + 49.6372668 + ], + [ + 9.31215, + 49.648358 + ], + [ + 9.277894, + 49.626173 + ], + [ + 9.284317, + 49.6081403 + ], + [ + 9.241497, + 49.5748315 + ], + [ + 9.0980501, + 49.5720547 + ], + [ + 9.0659351, + 49.6081403 + ], + [ + 9.1001911, + 49.6511305 + ], + [ + 9.0916271, + 49.6926978 + ], + [ + 9.1301651, + 49.7120837 + ], + [ + 9.1387291, + 49.7425316 + ], + [ + 9.1087551, + 49.7563653 + ], + [ + 9.1365881, + 49.7909322 + ], + [ + 9.1001911, + 49.78955 + ], + [ + 9.0723581, + 49.8282367 + ], + [ + 9.0359611, + 49.8351418 + ], + [ + 9.0166922, + 50.0267091 + ], + [ + 8.9631672, + 50.0308352 + ], + [ + 8.9567442, + 50.0597083 + ], + [ + 9.0017052, + 50.0707031 + ], + [ + 9.0209742, + 50.1105378 + ], + [ + 9.1216011, + 50.1228936 + ], + [ + 9.1558571, + 50.1132838 + ], + [ + 9.1965361, + 50.1187753 + ], + [ + 9.1858311, + 50.1352462 + ], + [ + 9.235074, + 50.1475956 + ], + [ + 9.37638, + 50.1270115 + ], + [ + 9.408495, + 50.0816953 + ], + [ + 9.5219679, + 50.095432 + ], + [ + 9.5048399, + 50.1421073 + ], + [ + 9.5326729, + 50.1640565 + ], + [ + 9.4898529, + 50.1695422 + ], + [ + 9.4941349, + 50.2435376 + ], + [ + 9.6140309, + 50.221625 + ], + [ + 9.6654148, + 50.2353216 + ], + [ + 9.6354408, + 50.2490142 + ], + [ + 9.6675558, + 50.2722826 + ], + [ + 9.7424908, + 50.3092151 + ], + [ + 9.7296448, + 50.3584137 + ], + [ + 9.7703238, + 50.4293885 + ], + [ + 9.8688097, + 50.4007384 + ], + [ + 9.9180527, + 50.4089259 + ], + [ + 10.0358076, + 50.479825 + ], + [ + 10.0379486, + 50.5111504 + ], + [ + 10.1235886, + 50.568462 + ] + ] + ] + }, { "id": "bavaria-DOP80", "name": "Bavaria DOP 80cm", @@ -14569,6 +15780,7 @@ ], "terms_url": "http://www.sandre.eaufrance.fr/actualite/la-bd-carthage-en-licence-ouverte-open-licence", "terms_text": "Tiles © cquest@Openstreetmap France, data © Onema - IGN, LO/OL", + "description": "Réseau hydrographique: cours et plans d'eau et POI", "overlay": true }, { @@ -20210,7 +21422,7 @@ "name": "Budapest district XI orthophoto 2015", "type": "wms", "template": "http://terinfo.ujbuda.hu/mapproxy/service?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=orto2015_20160304&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:900913", + "projection": "EPSG:4326", "startDate": "2015-01-01T00:00:00.000Z", "polygon": [ [ @@ -20569,7 +21781,7 @@ "name": "Budapest district XI orthophoto 2017", "type": "wms", "template": "http://terinfo.ujbuda.hu/mapproxy/service?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=orto_2017&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:900913", + "projection": "EPSG:4326", "startDate": "2017-03-01T00:00:00.000Z", "polygon": [ [ @@ -23196,8 +24408,7 @@ "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_Cadastre_Fran%C3%A7ais/Conditions_d%27utilisation", "terms_text": "cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2015", "description": "French land registry", - "icon": "https://svn.openstreetmap.org/applications/editors/josm/plugins/cadastre-fr/images/cadastre_small.png", - "overlay": true + "icon": "https://svn.openstreetmap.org/applications/editors/josm/plugins/cadastre-fr/images/cadastre_small.png" }, { "id": "lu.geoportail.opendata.cadastre", @@ -24958,12 +26169,680 @@ "terms_url": "http://www.seplande.al.gov.br/", "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" }, + { + "id": "Geneve-SITG-2011", + "name": "Canton de Génève 5cm (SITG 2011)", + "type": "wms", + "template": "http://etat.geneve.ch/ags2/services/Orthophotos_2011/MapServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 6.126755, + 46.140923 + ], + [ + 6.137654, + 46.141979 + ], + [ + 6.143259, + 46.146112 + ], + [ + 6.146397, + 46.145461 + ], + [ + 6.150278, + 46.150561 + ], + [ + 6.179239, + 46.16006 + ], + [ + 6.19068, + 46.167201 + ], + [ + 6.188283, + 46.176608 + ], + [ + 6.189304, + 46.180941 + ], + [ + 6.199386, + 46.183905 + ], + [ + 6.207892, + 46.192481 + ], + [ + 6.213824, + 46.193335 + ], + [ + 6.219192, + 46.198334 + ], + [ + 6.223522, + 46.199301 + ], + [ + 6.223947, + 46.201286 + ], + [ + 6.229577, + 46.202887 + ], + [ + 6.234054, + 46.206246 + ], + [ + 6.243581, + 46.204849 + ], + [ + 6.250976, + 46.205426 + ], + [ + 6.257218, + 46.210407 + ], + [ + 6.27856, + 46.216044 + ], + [ + 6.296258, + 46.225677 + ], + [ + 6.311314, + 46.243494 + ], + [ + 6.311526, + 46.251427 + ], + [ + 6.308503, + 46.253043 + ], + [ + 6.311779, + 46.25767 + ], + [ + 6.309369, + 46.258698 + ], + [ + 6.303094, + 46.257032 + ], + [ + 6.297211, + 46.258037 + ], + [ + 6.296141, + 46.259574 + ], + [ + 6.298698, + 46.264455 + ], + [ + 6.297309, + 46.266398 + ], + [ + 6.29208, + 46.265404 + ], + [ + 6.28949, + 46.261738 + ], + [ + 6.283231, + 46.257845 + ], + [ + 6.283958, + 46.256179 + ], + [ + 6.268083, + 46.25019 + ], + [ + 6.262682, + 46.253393 + ], + [ + 6.263327, + 46.256461 + ], + [ + 6.251851, + 46.26392 + ], + [ + 6.240021, + 46.278615 + ], + [ + 6.240599, + 46.28224 + ], + [ + 6.243996, + 46.285534 + ], + [ + 6.25049, + 46.287004 + ], + [ + 6.255025, + 46.291635 + ], + [ + 6.251397, + 46.295795 + ], + [ + 6.250494, + 46.303987 + ], + [ + 6.245616, + 46.306228 + ], + [ + 6.240885, + 46.306036 + ], + [ + 6.241482, + 46.299003 + ], + [ + 6.235141, + 46.290823 + ], + [ + 6.22845, + 46.287853 + ], + [ + 6.21, + 46.267619 + ], + [ + 6.201241, + 46.266946 + ], + [ + 6.197483, + 46.26476 + ], + [ + 6.193593, + 46.258897 + ], + [ + 6.191105, + 46.246299 + ], + [ + 6.193034, + 46.24105 + ], + [ + 6.190084, + 46.234562 + ], + [ + 6.181586, + 46.22644 + ], + [ + 6.175418, + 46.217192 + ], + [ + 6.164591, + 46.210825 + ], + [ + 6.157743, + 46.212251 + ], + [ + 6.154675, + 46.214794 + ], + [ + 6.153646, + 46.218593 + ], + [ + 6.155639, + 46.222746 + ], + [ + 6.151095, + 46.227975 + ], + [ + 6.155884, + 46.246685 + ], + [ + 6.153735, + 46.25231 + ], + [ + 6.163857, + 46.263563 + ], + [ + 6.168381, + 46.263711 + ], + [ + 6.172824, + 46.27372 + ], + [ + 6.173199, + 46.276216 + ], + [ + 6.169149, + 46.282836 + ], + [ + 6.171033, + 46.286509 + ], + [ + 6.173558, + 46.28752 + ], + [ + 6.172275, + 46.29639 + ], + [ + 6.154827, + 46.301212 + ], + [ + 6.142821, + 46.306545 + ], + [ + 6.126372, + 46.319634 + ], + [ + 6.115664, + 46.316386 + ], + [ + 6.010923, + 46.247101 + ], + [ + 5.979715, + 46.219401 + ], + [ + 5.972945, + 46.215415 + ], + [ + 5.9687, + 46.208214 + ], + [ + 5.972311, + 46.20425 + ], + [ + 5.965603, + 46.20153 + ], + [ + 5.963283, + 46.197831 + ], + [ + 5.981455, + 46.191643 + ], + [ + 5.983876, + 46.189335 + ], + [ + 5.990526, + 46.188139 + ], + [ + 5.994304, + 46.183363 + ], + [ + 5.990734, + 46.180491 + ], + [ + 5.988186, + 46.174182 + ], + [ + 5.983853, + 46.176298 + ], + [ + 5.980843, + 46.17465 + ], + [ + 5.979577, + 46.168441 + ], + [ + 5.964504, + 46.147603 + ], + [ + 5.963805, + 46.143652 + ], + [ + 5.965833, + 46.139681 + ], + [ + 5.956025, + 46.134032 + ], + [ + 5.956731, + 46.129325 + ], + [ + 5.974342, + 46.132072 + ], + [ + 5.983657, + 46.138085 + ], + [ + 5.985233, + 46.143589 + ], + [ + 5.988073, + 46.14294 + ], + [ + 5.994177, + 46.144445 + ], + [ + 6.003944, + 46.142112 + ], + [ + 6.017712, + 46.143144 + ], + [ + 6.030847, + 46.13943 + ], + [ + 6.036377, + 46.134682 + ], + [ + 6.040866, + 46.140179 + ], + [ + 6.043575, + 46.141312 + ], + [ + 6.046297, + 46.140367 + ], + [ + 6.049486, + 46.142973 + ], + [ + 6.050433, + 46.147997 + ], + [ + 6.053703, + 46.151663 + ], + [ + 6.075433, + 46.149173 + ], + [ + 6.092211, + 46.152187 + ], + [ + 6.098635, + 46.144226 + ], + [ + 6.12516, + 46.141824 + ], + [ + 6.126755, + 46.140923 + ] + ], + [ + [ + 6.1883445, + 46.3490083 + ], + [ + 6.1869587, + 46.3486226 + ], + [ + 6.1819521, + 46.35015 + ], + [ + 6.1796053, + 46.3520013 + ], + [ + 6.1714248, + 46.3544387 + ], + [ + 6.1702178, + 46.3591128 + ], + [ + 6.1741516, + 46.3603622 + ], + [ + 6.1727212, + 46.3618892 + ], + [ + 6.1734811, + 46.3628764 + ], + [ + 6.1799852, + 46.3654676 + ], + [ + 6.1876963, + 46.3613185 + ], + [ + 6.1944686, + 46.3617504 + ], + [ + 6.1990506, + 46.3608558 + ], + [ + 6.2011339, + 46.3563388 + ], + [ + 6.202582, + 46.3556728 + ], + [ + 6.2079112, + 46.3558251 + ], + [ + 6.213743, + 46.3537853 + ], + [ + 6.2124652, + 46.3508462 + ], + [ + 6.2084644, + 46.3466497 + ], + [ + 6.2085985, + 46.3399069 + ], + [ + 6.2065869, + 46.3379163 + ], + [ + 6.2049329, + 46.3386107 + ], + [ + 6.2034801, + 46.3379318 + ], + [ + 6.1918129, + 46.3433324 + ], + [ + 6.1931763, + 46.3478686 + ], + [ + 6.1907624, + 46.3476988 + ], + [ + 6.1883445, + 46.3490083 + ] + ], + [ + [ + 6.181818, + 46.3428059 + ], + [ + 6.180164, + 46.3431762 + ], + [ + 6.1752021, + 46.3453209 + ], + [ + 6.173414, + 46.3439785 + ], + [ + 6.1732352, + 46.3405377 + ], + [ + 6.1714024, + 46.3395192 + ], + [ + 6.1658818, + 46.3425436 + ], + [ + 6.1656359, + 46.3433922 + ], + [ + 6.1709107, + 46.3505357 + ], + [ + 6.173414, + 46.3502888 + ], + [ + 6.1745763, + 46.3519241 + ], + [ + 6.1758726, + 46.3520476 + ], + [ + 6.1857942, + 46.345934 + ], + [ + 6.181818, + 46.3428059 + ] + ] + ], + "terms_text": "Orthophotos du SITG 2011" + }, { "id": "Canvec", "name": "Canvec", "type": "wms", "template": "http://wms.sst-sw.rncan.gc.ca/wms/toporama_fr?REQUEST=GetMap&SERVICE=wms&VERSION=1.1.1&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS={proj}&FORMAT=image/png&transparent=true&layers=SCW-Toporama&WIDTH={width}&height={height}&BBOX={bbox}", - "projection": "EPSG:900913", + "projection": "EPSG:4326", "polygon": [ [ [ @@ -33731,6 +35610,281 @@ "icon": "data:image/png;base64,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", "overlay": true }, + { + "id": "Erlangen-2011", + "name": "Erlangen Luftbild (2011 5,0 cm)", + "type": "wms", + "template": "https://secure.erlangen.de/arcgiser/services/Luftbilder2011/MapServer/WmsServer?FORMAT=image/bmp&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Erlangen_ratio10_5cm_gk4.jp2&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.909347, + 49.529292 + ], + [ + 10.909347, + 49.65211 + ], + [ + 11.077808, + 49.65211 + ], + [ + 11.077808, + 49.529292 + ], + [ + 10.909347, + 49.529292 + ] + ] + ] + }, + { + "id": "Erlangen-2013", + "name": "Erlangen Luftbild (2013 6,25 cm)", + "type": "wms", + "template": "https://secure.erlangen.de/arcgiser/services/Luftbilder2013/MapServer/WmsServer?FORMAT=image/bmp&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Erlangen_ratio5_6.25cm.jp2&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 10.905885, + 49.529259 + ], + [ + 10.905885, + 49.65197 + ], + [ + 11.060541, + 49.65197 + ], + [ + 11.060541, + 49.529259 + ], + [ + 10.905885, + 49.529259 + ] + ] + ] + }, + { + "id": "Erlangen-2016", + "name": "Erlangen Luftbild (2016 5,0 cm)", + "type": "wms", + "template": "https://secure.erlangen.de/arcgiser/services/Luftbild2016/MapServer/WmsServer?FORMAT=image/bmp&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2016-03-18T00:00:00.000Z", + "startDate": "2016-03-18T00:00:00.000Z", + "polygon": [ + [ + [ + 10.97664, + 49.537646 + ], + [ + 10.9910133, + 49.5339157 + ], + [ + 10.9938879, + 49.538346 + ], + [ + 11.0278442, + 49.532545 + ], + [ + 11.034604, + 49.5346153 + ], + [ + 11.034065, + 49.537588 + ], + [ + 11.0431829, + 49.543213 + ], + [ + 11.035569, + 49.5530346 + ], + [ + 11.0383994, + 49.5584249 + ], + [ + 11.0350756, + 49.569291 + ], + [ + 11.037905, + 49.5865909 + ], + [ + 11.047966, + 49.5902015 + ], + [ + 11.0492241, + 49.5936954 + ], + [ + 11.0574886, + 49.595209 + ], + [ + 11.056231, + 49.5990522 + ], + [ + 11.0512678, + 49.600304 + ], + [ + 11.053513, + 49.609036 + ], + [ + 11.043093, + 49.613809 + ], + [ + 11.040757, + 49.618232 + ], + [ + 11.0284955, + 49.61735 + ], + [ + 11.0192878, + 49.6189603 + ], + [ + 11.0152, + 49.613722 + ], + [ + 11.005813, + 49.6144788 + ], + [ + 11.00639, + 49.6193095 + ], + [ + 11.0008274, + 49.622103 + ], + [ + 10.9856009, + 49.616515 + ], + [ + 10.978369, + 49.617534 + ], + [ + 10.973698, + 49.6249544 + ], + [ + 10.9653888, + 49.6255654 + ], + [ + 10.9606278, + 49.6285622 + ], + [ + 10.9638168, + 49.6317624 + ], + [ + 10.9547438, + 49.6379 + ], + [ + 10.9483658, + 49.636998 + ], + [ + 10.941853, + 49.643775 + ], + [ + 10.9273003, + 49.648371 + ], + [ + 10.9206303, + 49.639631 + ], + [ + 10.9113552, + 49.6377259 + ], + [ + 10.9242909, + 49.6050488 + ], + [ + 10.9220451, + 49.580038 + ], + [ + 10.9122086, + 49.5700778 + ], + [ + 10.914409, + 49.5618046 + ], + [ + 10.9235273, + 49.5584249 + ], + [ + 10.9271206, + 49.559765 + ], + [ + 10.9334537, + 49.55892 + ], + [ + 10.9307139, + 49.544671 + ], + [ + 10.930669, + 49.5322541 + ], + [ + 10.9405953, + 49.533245 + ], + [ + 10.9548785, + 49.5302135 + ], + [ + 10.9719915, + 49.531263 + ], + [ + 10.97664, + 49.537646 + ] + ] + ] + }, { "id": "EsriWorldImagery", "name": "Esri World Imagery", @@ -33761,6 +35915,3112 @@ "description": "Esri archive imagery that may be clearer and more accurate than the default layer.", "icon": "data:image/png;base64,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" }, + { + "id": "maaamet.ee-pohi_vr2", + "name": "Estonia Basemap (Maaamet)", + "type": "wms", + "template": "http://kaart.maaamet.ee/wms/alus-geo?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=pohi_vr2&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 22.3536433, + 58.8538478 + ], + [ + 22.0941083, + 58.8503765 + ], + [ + 22.09179, + 58.8950979 + ], + [ + 22.0050343, + 58.8937111 + ], + [ + 21.9997875, + 58.9837386 + ], + [ + 22.3475423, + 58.9884539 + ], + [ + 22.3453459, + 59.0333735 + ], + [ + 22.5193454, + 59.0353825 + ], + [ + 22.5155628, + 59.1251033 + ], + [ + 22.6901723, + 59.1268565 + ], + [ + 22.6921246, + 59.0821845 + ], + [ + 22.7791243, + 59.0829995 + ], + [ + 22.7808326, + 59.0381447 + ], + [ + 22.8680763, + 59.0387725 + ], + [ + 22.8692965, + 58.9939856 + ], + [ + 22.9562963, + 58.9948656 + ], + [ + 22.954954, + 59.0395885 + ], + [ + 23.1289535, + 59.0409695 + ], + [ + 23.1278553, + 59.0858205 + ], + [ + 23.4767083, + 59.0877011 + ], + [ + 23.4741459, + 59.2672589 + ], + [ + 23.6492435, + 59.2678824 + ], + [ + 23.6488774, + 59.3128106 + ], + [ + 23.7369753, + 59.3129974 + ], + [ + 23.7364872, + 59.3578039 + ], + [ + 23.9115848, + 59.3578661 + ], + [ + 23.9120729, + 59.4027997 + ], + [ + 24.1760005, + 59.4027997 + ], + [ + 24.1763666, + 59.4477979 + ], + [ + 24.2644645, + 59.4476738 + ], + [ + 24.2647085, + 59.4923646 + ], + [ + 24.7060521, + 59.490816 + ], + [ + 24.7089805, + 59.6255274 + ], + [ + 24.7974445, + 59.6249721 + ], + [ + 24.7965903, + 59.5800862 + ], + [ + 24.9732742, + 59.5788506 + ], + [ + 24.9746164, + 59.6238615 + ], + [ + 24.8860304, + 59.6247253 + ], + [ + 24.8872506, + 59.6691818 + ], + [ + 24.9762027, + 59.6686273 + ], + [ + 24.9773008, + 59.7134564 + ], + [ + 25.0660088, + 59.7125949 + ], + [ + 25.0632024, + 59.6230593 + ], + [ + 25.2403743, + 59.621455 + ], + [ + 25.2418385, + 59.6664705 + ], + [ + 25.3305465, + 59.6654845 + ], + [ + 25.3288383, + 59.6207762 + ], + [ + 25.4175462, + 59.6197889 + ], + [ + 25.4193765, + 59.6646834 + ], + [ + 25.6855005, + 59.6614786 + ], + [ + 25.6875748, + 59.7061327 + ], + [ + 25.8651128, + 59.7038552 + ], + [ + 25.8627944, + 59.6590132 + ], + [ + 26.1285523, + 59.6550682 + ], + [ + 26.1257459, + 59.6100991 + ], + [ + 26.3911377, + 59.6056544 + ], + [ + 26.3880872, + 59.5609901 + ], + [ + 26.8296748, + 59.552149 + ], + [ + 26.8262583, + 59.5072897 + ], + [ + 26.9142342, + 59.5054941 + ], + [ + 26.9105736, + 59.4605107 + ], + [ + 27.9668941, + 59.4330327 + ], + [ + 27.9718969, + 59.4778048 + ], + [ + 28.0366891, + 59.4756977 + ], + [ + 28.0437662, + 59.472227 + ], + [ + 28.0476708, + 59.4657804 + ], + [ + 28.0518195, + 59.4634246 + ], + [ + 28.0691462, + 59.4625567 + ], + [ + 28.0845206, + 59.4593946 + ], + [ + 28.1217365, + 59.4409124 + ], + [ + 28.1357687, + 59.4276958 + ], + [ + 28.1371109, + 59.4226684 + ], + [ + 28.1416256, + 59.419006 + ], + [ + 28.1665176, + 59.4120525 + ], + [ + 28.1722525, + 59.4078922 + ], + [ + 28.1927517, + 59.4014954 + ], + [ + 28.2106885, + 59.383603 + ], + [ + 28.2106885, + 59.3799364 + ], + [ + 28.2038555, + 59.3745911 + ], + [ + 28.2105665, + 59.3723533 + ], + [ + 28.2110546, + 59.3693693 + ], + [ + 28.2067839, + 59.3671933 + ], + [ + 28.207028, + 59.3637736 + ], + [ + 28.1997068, + 59.3609133 + ], + [ + 28.2020252, + 59.3573064 + ], + [ + 28.1926297, + 59.3522685 + ], + [ + 28.1939719, + 59.3464212 + ], + [ + 28.1696901, + 59.3335411 + ], + [ + 28.1362568, + 59.2924414 + ], + [ + 28.1251531, + 59.2890141 + ], + [ + 28.1172218, + 59.2889518 + ], + [ + 28.1099006, + 59.2906343 + ], + [ + 28.0535278, + 59.2901981 + ], + [ + 28.0202165, + 59.2833429 + ], + [ + 27.998253, + 59.2753018 + ], + [ + 27.9798281, + 59.2729328 + ], + [ + 27.9643317, + 59.2726834 + ], + [ + 27.95335, + 59.2686307 + ], + [ + 27.9492013, + 59.2653258 + ], + [ + 27.9056404, + 59.2404352 + ], + [ + 27.9011257, + 59.2348807 + ], + [ + 27.9010037, + 59.2263912 + ], + [ + 27.8978312, + 59.2174624 + ], + [ + 27.9023459, + 59.207282 + ], + [ + 27.8923404, + 59.1922244 + ], + [ + 27.8897779, + 59.1837868 + ], + [ + 27.8764779, + 59.1737214 + ], + [ + 27.8718411, + 59.1684062 + ], + [ + 27.8681805, + 59.161589 + ], + [ + 27.8441428, + 59.1481382 + ], + [ + 27.8320629, + 59.1440081 + ], + [ + 27.820349, + 59.133618 + ], + [ + 27.8098553, + 59.1290479 + ], + [ + 27.8059507, + 59.1216592 + ], + [ + 27.8053406, + 59.1127031 + ], + [ + 27.8107095, + 59.1081928 + ], + [ + 27.8100994, + 59.1060627 + ], + [ + 27.8020461, + 59.1028047 + ], + [ + 27.788868, + 59.0908979 + ], + [ + 27.7906983, + 59.0811186 + ], + [ + 27.7937488, + 59.0784226 + ], + [ + 27.7941149, + 59.0756636 + ], + [ + 27.7927727, + 59.0729044 + ], + [ + 27.7930167, + 59.069267 + ], + [ + 27.788502, + 59.06657 + ], + [ + 27.7826451, + 59.0650019 + ], + [ + 27.7750799, + 59.0581013 + ], + [ + 27.7731276, + 59.0510739 + ], + [ + 27.7766661, + 59.0474341 + ], + [ + 27.769833, + 59.0332479 + ], + [ + 27.7660504, + 59.0315527 + ], + [ + 27.7515302, + 59.0301714 + ], + [ + 27.7462833, + 59.0271573 + ], + [ + 27.7456732, + 59.0170459 + ], + [ + 27.7416466, + 59.0095074 + ], + [ + 27.7478696, + 58.9926656 + ], + [ + 27.7427448, + 58.9884539 + ], + [ + 27.7321291, + 58.9854991 + ], + [ + 27.6544028, + 58.9878252 + ], + [ + 27.6550129, + 58.9924142 + ], + [ + 27.3941358, + 58.9996422 + ], + [ + 27.3897431, + 58.9547414 + ], + [ + 27.1293541, + 58.9613481 + ], + [ + 27.1255715, + 58.9163975 + ], + [ + 27.0388158, + 58.9184133 + ], + [ + 27.027102, + 58.784103 + ], + [ + 27.1136136, + 58.7818263 + ], + [ + 27.1093429, + 58.7370852 + ], + [ + 27.1953665, + 58.7351221 + ], + [ + 27.1873132, + 58.6453349 + ], + [ + 27.2730927, + 58.6430491 + ], + [ + 27.2525935, + 58.4188307 + ], + [ + 27.5339699, + 58.4114172 + ], + [ + 27.5552012, + 58.3657519 + ], + [ + 27.5176193, + 58.3326492 + ], + [ + 27.5140807, + 58.322142 + ], + [ + 27.4999265, + 58.3224624 + ], + [ + 27.4868704, + 58.1880305 + ], + [ + 27.528723, + 58.1868727 + ], + [ + 27.592051, + 58.1187543 + ], + [ + 27.6369541, + 58.0973519 + ], + [ + 27.6093777, + 58.053992 + ], + [ + 27.6226778, + 58.0057957 + ], + [ + 27.6448853, + 58.0020458 + ], + [ + 27.6529386, + 58.0064422 + ], + [ + 27.6478138, + 58.0142638 + ], + [ + 27.6478138, + 58.020856 + ], + [ + 27.661724, + 58.0186587 + ], + [ + 27.6685571, + 58.0104502 + ], + [ + 27.6839315, + 58.0084463 + ], + [ + 27.6964995, + 58.0045027 + ], + [ + 27.7006481, + 57.9986189 + ], + [ + 27.6988178, + 57.9882713 + ], + [ + 27.6912527, + 57.9854899 + ], + [ + 27.680637, + 57.9744915 + ], + [ + 27.6821012, + 57.9719031 + ], + [ + 27.6889343, + 57.9718384 + ], + [ + 27.6858838, + 57.9592823 + ], + [ + 27.6589176, + 57.955398 + ], + [ + 27.6675809, + 57.9509954 + ], + [ + 27.6716076, + 57.9462684 + ], + [ + 27.6691672, + 57.9417351 + ], + [ + 27.6764883, + 57.9355171 + ], + [ + 27.6824673, + 57.9365535 + ], + [ + 27.6861278, + 57.9279374 + ], + [ + 27.6824673, + 57.9243737 + ], + [ + 27.7107757, + 57.9239202 + ], + [ + 27.7202932, + 57.9203561 + ], + [ + 27.7205373, + 57.9117361 + ], + [ + 27.7083353, + 57.9061612 + ], + [ + 27.6988178, + 57.9061612 + ], + [ + 27.706139, + 57.9013635 + ], + [ + 27.7289566, + 57.9073929 + ], + [ + 27.7467714, + 57.9016877 + ], + [ + 27.7536045, + 57.9040866 + ], + [ + 27.7573871, + 57.9031789 + ], + [ + 27.7559228, + 57.8980566 + ], + [ + 27.769589, + 57.8956572 + ], + [ + 27.7809368, + 57.8983159 + ], + [ + 27.7989956, + 57.8996128 + ], + [ + 27.8185187, + 57.8957869 + ], + [ + 27.8209591, + 57.890469 + ], + [ + 27.8194949, + 57.8880043 + ], + [ + 27.8105875, + 57.8861232 + ], + [ + 27.8182747, + 57.8824905 + ], + [ + 27.8116856, + 57.8720446 + ], + [ + 27.8158343, + 57.8716552 + ], + [ + 27.8183967, + 57.8651005 + ], + [ + 27.8163224, + 57.8613359 + ], + [ + 27.7987516, + 57.8520525 + ], + [ + 27.7946029, + 57.8463384 + ], + [ + 27.8005819, + 57.8441954 + ], + [ + 27.7957011, + 57.8401688 + ], + [ + 27.788624, + 57.8418575 + ], + [ + 27.7841093, + 57.837246 + ], + [ + 27.7771542, + 57.8325041 + ], + [ + 27.7584853, + 57.8353623 + ], + [ + 27.7416466, + 57.8267869 + ], + [ + 27.7238318, + 57.8317895 + ], + [ + 27.7054069, + 57.8419224 + ], + [ + 27.6877141, + 57.8341931 + ], + [ + 27.6663607, + 57.8365315 + ], + [ + 27.6602598, + 57.8389348 + ], + [ + 27.6481799, + 57.8377007 + ], + [ + 27.636344, + 57.8397792 + ], + [ + 27.6248742, + 57.8375058 + ], + [ + 27.6220677, + 57.8387399 + ], + [ + 27.5979079, + 57.8332836 + ], + [ + 27.5625224, + 57.8302303 + ], + [ + 27.5562994, + 57.8312698 + ], + [ + 27.5522727, + 57.8211338 + ], + [ + 27.5444635, + 57.8220436 + ], + [ + 27.5451956, + 57.8180795 + ], + [ + 27.5505645, + 57.8176896 + ], + [ + 27.5566654, + 57.81366 + ], + [ + 27.5408029, + 57.81288 + ], + [ + 27.5447076, + 57.8080049 + ], + [ + 27.5372644, + 57.8064447 + ], + [ + 27.5395827, + 57.8014386 + ], + [ + 27.5359222, + 57.7966269 + ], + [ + 27.5386066, + 57.7939607 + ], + [ + 27.5292111, + 57.7885626 + ], + [ + 27.5174973, + 57.7887577 + ], + [ + 27.5184734, + 57.7920097 + ], + [ + 27.502977, + 57.7879772 + ], + [ + 27.5000485, + 57.7897333 + ], + [ + 27.4958999, + 57.7886927 + ], + [ + 27.5077357, + 57.783489 + ], + [ + 27.5145688, + 57.7751615 + ], + [ + 27.5081018, + 57.7715827 + ], + [ + 27.5111523, + 57.7641637 + ], + [ + 27.515911, + 57.7639034 + ], + [ + 27.5201817, + 57.7599329 + ], + [ + 27.5281129, + 57.7581753 + ], + [ + 27.5300652, + 57.7536834 + ], + [ + 27.5311634, + 57.7407253 + ], + [ + 27.5480021, + 57.7332999 + ], + [ + 27.5419011, + 57.7303684 + ], + [ + 27.5279909, + 57.7294564 + ], + [ + 27.5235982, + 57.7161637 + ], + [ + 27.5276249, + 57.708994 + ], + [ + 27.5235982, + 57.7080162 + ], + [ + 27.5165211, + 57.7087333 + ], + [ + 27.5106642, + 57.7110147 + ], + [ + 27.5085899, + 57.707234 + ], + [ + 27.4999265, + 57.7049523 + ], + [ + 27.4952898, + 57.7074947 + ], + [ + 27.4871145, + 57.7190963 + ], + [ + 27.4735703, + 57.7154468 + ], + [ + 27.4706419, + 57.7080162 + ], + [ + 27.4614904, + 57.706191 + ], + [ + 27.4480683, + 57.7161637 + ], + [ + 27.4308636, + 57.7075599 + ], + [ + 27.4281792, + 57.6990193 + ], + [ + 27.4134149, + 57.6991498 + ], + [ + 27.4164653, + 57.6952374 + ], + [ + 27.4074359, + 57.6927593 + ], + [ + 27.4023111, + 57.6849328 + ], + [ + 27.3913294, + 57.6853894 + ], + [ + 27.3937698, + 57.679127 + ], + [ + 27.3914514, + 57.676713 + ], + [ + 27.3819339, + 57.6733202 + ], + [ + 27.3777852, + 57.668361 + ], + [ + 27.3836422, + 57.6605944 + ], + [ + 27.3801036, + 57.658832 + ], + [ + 27.3875468, + 57.6555028 + ], + [ + 27.3804697, + 57.6494964 + ], + [ + 27.3835201, + 57.6479947 + ], + [ + 27.3815678, + 57.643685 + ], + [ + 27.3907193, + 57.6430972 + ], + [ + 27.3881569, + 57.6400931 + ], + [ + 27.4008469, + 57.6374154 + ], + [ + 27.4031652, + 57.6290542 + ], + [ + 27.401823, + 57.6237622 + ], + [ + 27.3959661, + 57.6211486 + ], + [ + 27.3902312, + 57.6203644 + ], + [ + 27.3908413, + 57.616901 + ], + [ + 27.401945, + 57.6177506 + ], + [ + 27.4063377, + 57.6154633 + ], + [ + 27.4068258, + 57.6124569 + ], + [ + 27.3857165, + 57.603044 + ], + [ + 27.3782733, + 57.5951327 + ], + [ + 27.35692, + 57.5969636 + ], + [ + 27.3413015, + 57.5898357 + ], + [ + 27.3417896, + 57.5853883 + ], + [ + 27.3288555, + 57.5796974 + ], + [ + 27.3214124, + 57.5789778 + ], + [ + 27.3341024, + 57.5659571 + ], + [ + 27.331784, + 57.5606559 + ], + [ + 27.3377629, + 57.5600668 + ], + [ + 27.3388611, + 57.5467119 + ], + [ + 27.3438639, + 57.5454024 + ], + [ + 27.3547236, + 57.5257533 + ], + [ + 27.3513071, + 57.516318 + ], + [ + 27.3456942, + 57.5210359 + ], + [ + 27.3244628, + 57.5227395 + ], + [ + 27.2966424, + 57.5385919 + ], + [ + 27.2801699, + 57.5364306 + ], + [ + 27.2737028, + 57.5431105 + ], + [ + 27.2643074, + 57.5437654 + ], + [ + 27.2636973, + 57.5484143 + ], + [ + 27.2577183, + 57.5497892 + ], + [ + 27.2479568, + 57.5476941 + ], + [ + 27.2248951, + 57.5538482 + ], + [ + 27.1932922, + 57.5496583 + ], + [ + 27.1614451, + 57.5592159 + ], + [ + 27.1165421, + 57.5611795 + ], + [ + 27.1009236, + 57.5653027 + ], + [ + 27.0850611, + 57.5753796 + ], + [ + 27.0726151, + 57.5773423 + ], + [ + 27.0722491, + 57.5798936 + ], + [ + 27.0558985, + 57.5825102 + ], + [ + 27.052848, + 57.5808749 + ], + [ + 27.0468691, + 57.5804824 + ], + [ + 27.0449168, + 57.5825102 + ], + [ + 27.0332029, + 57.5853229 + ], + [ + 27.0412562, + 57.5876121 + ], + [ + 27.0441847, + 57.596702 + ], + [ + 27.0310066, + 57.604613 + ], + [ + 26.9951329, + 57.604613 + ], + [ + 26.9923265, + 57.6107575 + ], + [ + 26.9869576, + 57.6086659 + ], + [ + 26.9836631, + 57.6117379 + ], + [ + 26.9754878, + 57.6119994 + ], + [ + 26.9709731, + 57.6044822 + ], + [ + 26.9595033, + 57.6062473 + ], + [ + 26.957795, + 57.6046784 + ], + [ + 26.9459592, + 57.6027171 + ], + [ + 26.9396142, + 57.6093195 + ], + [ + 26.951328, + 57.61579 + ], + [ + 26.9499858, + 57.6205605 + ], + [ + 26.9405903, + 57.6197763 + ], + [ + 26.9296086, + 57.6237622 + ], + [ + 26.9264361, + 57.6331044 + ], + [ + 26.906791, + 57.6330391 + ], + [ + 26.8997139, + 57.6305568 + ], + [ + 26.900568, + 57.6291849 + ], + [ + 26.8958093, + 57.6257223 + ], + [ + 26.8884881, + 57.6235662 + ], + [ + 26.8889762, + 57.6219327 + ], + [ + 26.8745779, + 57.6190575 + ], + [ + 26.8727476, + 57.6173585 + ], + [ + 26.8655485, + 57.6159207 + ], + [ + 26.8578613, + 57.6099732 + ], + [ + 26.8646944, + 57.6084044 + ], + [ + 26.8581053, + 57.6004943 + ], + [ + 26.8599356, + 57.5959828 + ], + [ + 26.8643283, + 57.5941518 + ], + [ + 26.8617659, + 57.5910783 + ], + [ + 26.8468795, + 57.5883969 + ], + [ + 26.8350437, + 57.5824448 + ], + [ + 26.8158867, + 57.581529 + ], + [ + 26.8095417, + 57.5847342 + ], + [ + 26.7968517, + 57.5817907 + ], + [ + 26.799292, + 57.5800245 + ], + [ + 26.792947, + 57.573155 + ], + [ + 26.7868461, + 57.5752487 + ], + [ + 26.7765965, + 57.5599359 + ], + [ + 26.7691533, + 57.5603941 + ], + [ + 26.7635404, + 57.563143 + ], + [ + 26.7536569, + 57.5624885 + ], + [ + 26.7581716, + 57.5653027 + ], + [ + 26.7689093, + 57.5704069 + ], + [ + 26.77379, + 57.5747253 + ], + [ + 26.7676891, + 57.5775385 + ], + [ + 26.748044, + 57.5778002 + ], + [ + 26.7531688, + 57.5800899 + ], + [ + 26.7381604, + 57.5877429 + ], + [ + 26.729009, + 57.5801553 + ], + [ + 26.7382824, + 57.5758375 + ], + [ + 26.7307172, + 57.5690328 + ], + [ + 26.7238842, + 57.5724353 + ], + [ + 26.7110721, + 57.5659571 + ], + [ + 26.6997244, + 57.5710612 + ], + [ + 26.697528, + 57.5706032 + ], + [ + 26.697406, + 57.5673314 + ], + [ + 26.6915491, + 57.5661534 + ], + [ + 26.6756866, + 57.5666769 + ], + [ + 26.6710498, + 57.5632739 + ], + [ + 26.671904, + 57.5538482 + ], + [ + 26.6653149, + 57.5528663 + ], + [ + 26.646524, + 57.5539137 + ], + [ + 26.6426194, + 57.546581 + ], + [ + 26.6344441, + 57.5435689 + ], + [ + 26.6144329, + 57.5290944 + ], + [ + 26.6171173, + 57.5088466 + ], + [ + 26.6046714, + 57.5121237 + ], + [ + 26.6047934, + 57.5144175 + ], + [ + 26.5953979, + 57.5137621 + ], + [ + 26.5947878, + 57.5159248 + ], + [ + 26.5880768, + 57.5161869 + ], + [ + 26.5901511, + 57.5251637 + ], + [ + 26.5869786, + 57.5262119 + ], + [ + 26.5877107, + 57.537806 + ], + [ + 26.5838061, + 57.5395743 + ], + [ + 26.5797794, + 57.5369546 + ], + [ + 26.5796574, + 57.5337452 + ], + [ + 26.5612325, + 57.5285048 + ], + [ + 26.5618426, + 57.5226085 + ], + [ + 26.5666014, + 57.5194633 + ], + [ + 26.557938, + 57.5136966 + ], + [ + 26.5258469, + 57.5161869 + ], + [ + 26.4996128, + 57.5245085 + ], + [ + 26.4909494, + 57.5453369 + ], + [ + 26.4699621, + 57.5755104 + ], + [ + 26.4015093, + 57.5723699 + ], + [ + 26.3448924, + 57.5840801 + ], + [ + 26.3347648, + 57.5796974 + ], + [ + 26.3278097, + 57.579632 + ], + [ + 26.3263455, + 57.5827719 + ], + [ + 26.3117032, + 57.5847342 + ], + [ + 26.3085307, + 57.5929094 + ], + [ + 26.3005994, + 57.5934325 + ], + [ + 26.2929122, + 57.5911437 + ], + [ + 26.2835167, + 57.5923208 + ], + [ + 26.2821745, + 57.5951981 + ], + [ + 26.2775378, + 57.5950019 + ], + [ + 26.2703387, + 57.600102 + ], + [ + 26.2702166, + 57.604613 + ], + [ + 26.2542321, + 57.6138294 + ], + [ + 26.247155, + 57.6208219 + ], + [ + 26.2481312, + 57.6277476 + ], + [ + 26.2394678, + 57.6340842 + ], + [ + 26.2420302, + 57.6353906 + ], + [ + 26.2466669, + 57.6355865 + ], + [ + 26.2395898, + 57.6464929 + ], + [ + 26.2323907, + 57.6461011 + ], + [ + 26.2311705, + 57.6490394 + ], + [ + 26.2421522, + 57.6514551 + ], + [ + 26.2362953, + 57.6575265 + ], + [ + 26.2303164, + 57.6580487 + ], + [ + 26.2104272, + 57.6660116 + ], + [ + 26.2137217, + 57.668883 + ], + [ + 26.2109153, + 57.6707102 + ], + [ + 26.2101832, + 57.6790617 + ], + [ + 26.2007877, + 57.6810188 + ], + [ + 26.1989574, + 57.6835629 + ], + [ + 26.1944427, + 57.6851937 + ], + [ + 26.1854133, + 57.6845414 + ], + [ + 26.177116, + 57.687607 + ], + [ + 26.1887078, + 57.6947157 + ], + [ + 26.1985914, + 57.7090592 + ], + [ + 26.2056685, + 57.7148602 + ], + [ + 26.1726013, + 57.7286746 + ], + [ + 26.1409983, + 57.7327788 + ], + [ + 26.1356294, + 57.7392273 + ], + [ + 26.139046, + 57.7454793 + ], + [ + 26.1355074, + 57.7502978 + ], + [ + 26.1053687, + 57.7570036 + ], + [ + 26.0803547, + 57.7654654 + ], + [ + 26.0797446, + 57.7638383 + ], + [ + 26.0732776, + 57.7637081 + ], + [ + 26.0704712, + 57.7655956 + ], + [ + 26.0591234, + 57.7598678 + ], + [ + 26.0489958, + 57.7611046 + ], + [ + 26.0435049, + 57.7670274 + ], + [ + 26.0332553, + 57.7705416 + ], + [ + 26.0237378, + 57.7676131 + ], + [ + 26.0177589, + 57.7722985 + ], + [ + 26.0245919, + 57.7751615 + ], + [ + 26.024958, + 57.7816025 + ], + [ + 26.0225176, + 57.7835541 + ], + [ + 26.0277644, + 57.7897984 + ], + [ + 26.0308149, + 57.7909691 + ], + [ + 26.0333773, + 57.8010485 + ], + [ + 26.0367939, + 57.8059246 + ], + [ + 26.0360617, + 57.8108 + ], + [ + 26.0485077, + 57.8228883 + ], + [ + 26.057049, + 57.8384152 + ], + [ + 26.0555848, + 57.8476372 + ], + [ + 26.0366718, + 57.8492605 + ], + [ + 26.0200772, + 57.8451696 + ], + [ + 26.0095836, + 57.8573112 + ], + [ + 25.9984798, + 57.8581552 + ], + [ + 25.9627282, + 57.8449098 + ], + [ + 25.9310032, + 57.8524421 + ], + [ + 25.8953736, + 57.849715 + ], + [ + 25.8882964, + 57.8459488 + ], + [ + 25.8808533, + 57.8494553 + ], + [ + 25.885734, + 57.8527667 + ], + [ + 25.8842698, + 57.8559479 + ], + [ + 25.8756064, + 57.8579604 + ], + [ + 25.8747523, + 57.8632183 + ], + [ + 25.8594999, + 57.8561427 + ], + [ + 25.8192336, + 57.8641919 + ], + [ + 25.7831159, + 57.8994831 + ], + [ + 25.7862884, + 57.9042811 + ], + [ + 25.7716461, + 57.9120602 + ], + [ + 25.7510248, + 57.9169213 + ], + [ + 25.7372366, + 57.9229482 + ], + [ + 25.7283292, + 57.9213281 + ], + [ + 25.7224723, + 57.9124491 + ], + [ + 25.7035593, + 57.9033086 + ], + [ + 25.6791555, + 57.9046052 + ], + [ + 25.6754949, + 57.9127732 + ], + [ + 25.6620728, + 57.9151066 + ], + [ + 25.6560938, + 57.9143936 + ], + [ + 25.6488947, + 57.9166621 + ], + [ + 25.6498709, + 57.9184119 + ], + [ + 25.638279, + 57.9305937 + ], + [ + 25.5798318, + 57.9441961 + ], + [ + 25.593986, + 57.9596059 + ], + [ + 25.5893493, + 57.9650431 + ], + [ + 25.5823942, + 57.9678261 + ], + [ + 25.5804419, + 57.9720973 + ], + [ + 25.574829, + 57.9741033 + ], + [ + 25.5655556, + 57.9671789 + ], + [ + 25.5660436, + 57.9625835 + ], + [ + 25.5571362, + 57.9603827 + ], + [ + 25.555672, + 57.9671142 + ], + [ + 25.5507912, + 57.9725502 + ], + [ + 25.5372471, + 57.9713855 + ], + [ + 25.5256553, + 57.9718384 + ], + [ + 25.5226048, + 57.9680203 + ], + [ + 25.5163818, + 57.9673731 + ], + [ + 25.5121111, + 57.9697676 + ], + [ + 25.5221167, + 57.9748797 + ], + [ + 25.5194323, + 57.9803146 + ], + [ + 25.4853889, + 57.9747503 + ], + [ + 25.4784338, + 57.9800558 + ], + [ + 25.4784338, + 57.9826436 + ], + [ + 25.4421941, + 57.9961616 + ], + [ + 25.4481731, + 58.0011406 + ], + [ + 25.4664759, + 58.0051492 + ], + [ + 25.4481731, + 58.0169784 + ], + [ + 25.4069306, + 58.0289329 + ], + [ + 25.371545, + 58.0292559 + ], + [ + 25.3637358, + 58.0317109 + ], + [ + 25.3533641, + 58.0433376 + ], + [ + 25.3448228, + 58.0467603 + ], + [ + 25.3360374, + 58.0570909 + ], + [ + 25.3292043, + 58.0585757 + ], + [ + 25.3266419, + 58.0638042 + ], + [ + 25.3198088, + 58.0659987 + ], + [ + 25.3190767, + 58.0692901 + ], + [ + 25.295527, + 58.0816142 + ], + [ + 25.2868636, + 58.0814852 + ], + [ + 25.2811287, + 58.0701936 + ], + [ + 25.2659983, + 58.0671604 + ], + [ + 25.2650222, + 58.0599959 + ], + [ + 25.2799085, + 58.0506346 + ], + [ + 25.2930866, + 58.0466957 + ], + [ + 25.3043124, + 58.0344888 + ], + [ + 25.3011399, + 58.0150395 + ], + [ + 25.2974793, + 58.014587 + ], + [ + 25.3028482, + 58.0001061 + ], + [ + 25.295771, + 57.9997181 + ], + [ + 25.2973573, + 57.9966143 + ], + [ + 25.3035803, + 57.9939628 + ], + [ + 25.3013839, + 57.9927341 + ], + [ + 25.2918664, + 57.9928634 + ], + [ + 25.283081, + 57.9896296 + ], + [ + 25.2672185, + 57.9945449 + ], + [ + 25.2561148, + 57.9938982 + ], + [ + 25.2550166, + 58.0034682 + ], + [ + 25.2454991, + 58.0030157 + ], + [ + 25.2276843, + 58.0178186 + ], + [ + 25.2458652, + 58.0187234 + ], + [ + 25.2356156, + 58.0228592 + ], + [ + 25.2363477, + 58.02441 + ], + [ + 25.2273182, + 58.0243454 + ], + [ + 25.2253659, + 58.0219545 + ], + [ + 25.2190209, + 58.0297728 + ], + [ + 25.2165806, + 58.0408834 + ], + [ + 25.2269522, + 58.0479872 + ], + [ + 25.2281724, + 58.0534755 + ], + [ + 25.2212173, + 58.0530236 + ], + [ + 25.2214613, + 58.0505055 + ], + [ + 25.2178007, + 58.0490849 + ], + [ + 25.2159705, + 58.059544 + ], + [ + 25.2121879, + 58.0622551 + ], + [ + 25.2052328, + 58.0612223 + ], + [ + 25.2038906, + 58.0650951 + ], + [ + 25.2162145, + 58.07413 + ], + [ + 25.2120658, + 58.0805175 + ], + [ + 25.1996199, + 58.0853558 + ], + [ + 25.1894923, + 58.0800659 + ], + [ + 25.1916886, + 58.0761302 + ], + [ + 25.1534966, + 58.0747752 + ], + [ + 25.1515443, + 58.0770335 + ], + [ + 25.1339735, + 58.0797433 + ], + [ + 25.1057871, + 58.0774852 + ], + [ + 25.105177, + 58.0664505 + ], + [ + 25.0766245, + 58.0664505 + ], + [ + 25.0203736, + 58.0176893 + ], + [ + 24.9951156, + 58.010838 + ], + [ + 24.9486263, + 58.0094159 + ], + [ + 24.832342, + 57.9717737 + ], + [ + 24.8080602, + 57.9906644 + ], + [ + 24.7422918, + 57.9818673 + ], + [ + 24.74339, + 57.9649137 + ], + [ + 24.7328963, + 57.9623894 + ], + [ + 24.7150815, + 57.962713 + ], + [ + 24.6918978, + 57.9465274 + ], + [ + 24.6733509, + 57.9589586 + ], + [ + 24.6446764, + 57.9588939 + ], + [ + 24.64187, + 57.9542327 + ], + [ + 24.6457746, + 57.9526788 + ], + [ + 24.6286919, + 57.9419294 + ], + [ + 24.6161239, + 57.943678 + ], + [ + 24.6089248, + 57.9512544 + ], + [ + 24.5846429, + 57.9617421 + ], + [ + 24.5731731, + 57.9543622 + ], + [ + 24.5479151, + 57.9493766 + ], + [ + 24.5435225, + 57.9447789 + ], + [ + 24.5301003, + 57.9470455 + ], + [ + 24.5207049, + 57.9430304 + ], + [ + 24.5183865, + 57.9367478 + ], + [ + 24.5096011, + 57.9344158 + ], + [ + 24.5132617, + 57.9306585 + ], + [ + 24.4625017, + 57.9249569 + ], + [ + 24.445785, + 57.9079764 + ], + [ + 24.4601833, + 57.906615 + ], + [ + 24.4522521, + 57.8994183 + ], + [ + 24.4600613, + 57.8797658 + ], + [ + 24.4113756, + 57.8649058 + ], + [ + 24.4090573, + 57.8719148 + ], + [ + 24.3370659, + 57.8739264 + ], + [ + 24.3382861, + 58.0109027 + ], + [ + 24.4227234, + 58.0109673 + ], + [ + 24.42614, + 58.280018 + ], + [ + 24.5115534, + 58.2796972 + ], + [ + 24.5121635, + 58.324705 + ], + [ + 24.426384, + 58.3250254 + ], + [ + 24.4271161, + 58.3697196 + ], + [ + 24.3418247, + 58.3701675 + ], + [ + 24.3404825, + 58.2354672 + ], + [ + 24.1701436, + 58.2357242 + ], + [ + 24.1701436, + 58.1907961 + ], + [ + 24.0848522, + 58.1909248 + ], + [ + 24.0850962, + 58.2360454 + ], + [ + 24.0006589, + 58.2357884 + ], + [ + 23.9999268, + 58.2809162 + ], + [ + 23.8297099, + 58.2804671 + ], + [ + 23.8294659, + 58.325538 + ], + [ + 23.658639, + 58.3249613 + ], + [ + 23.6579069, + 58.4149324 + ], + [ + 23.5722493, + 58.4146768 + ], + [ + 23.5712732, + 58.5043556 + ], + [ + 23.3993481, + 58.5035906 + ], + [ + 23.4010564, + 58.4139098 + ], + [ + 23.1442059, + 58.4123759 + ], + [ + 23.1456701, + 58.3673518 + ], + [ + 23.0598906, + 58.3670318 + ], + [ + 23.0617209, + 58.3222061 + ], + [ + 22.9756973, + 58.3215653 + ], + [ + 22.9771615, + 58.2768102 + ], + [ + 22.8918701, + 58.2759761 + ], + [ + 22.8935784, + 58.2310348 + ], + [ + 22.808653, + 58.2301996 + ], + [ + 22.8101172, + 58.1853932 + ], + [ + 22.8952866, + 58.1861008 + ], + [ + 22.8966288, + 58.1413032 + ], + [ + 22.726412, + 58.1398218 + ], + [ + 22.7249478, + 58.18475 + ], + [ + 22.555219, + 58.1827558 + ], + [ + 22.5569273, + 58.1374387 + ], + [ + 22.6417307, + 58.1388557 + ], + [ + 22.6434389, + 58.0939986 + ], + [ + 22.3890288, + 58.0909029 + ], + [ + 22.3852462, + 58.1806329 + ], + [ + 22.2999548, + 58.1796678 + ], + [ + 22.3067879, + 58.045275 + ], + [ + 22.2219845, + 58.0435959 + ], + [ + 22.2262552, + 57.9540384 + ], + [ + 22.1420619, + 57.9528083 + ], + [ + 22.1445023, + 57.9080412 + ], + [ + 22.060065, + 57.9068095 + ], + [ + 22.0626274, + 57.8618552 + ], + [ + 21.978068, + 57.8604272 + ], + [ + 21.9683065, + 58.0400438 + ], + [ + 22.0527438, + 58.0413355 + ], + [ + 22.0450566, + 58.1758075 + ], + [ + 21.9603753, + 58.1747137 + ], + [ + 21.9578129, + 58.219405 + ], + [ + 21.78723, + 58.2163845 + ], + [ + 21.7821052, + 58.3063113 + ], + [ + 21.6968137, + 58.304901 + ], + [ + 21.6940073, + 58.3497486 + ], + [ + 21.7794207, + 58.3512212 + ], + [ + 21.7679509, + 58.5307369 + ], + [ + 22.0256555, + 58.5348771 + ], + [ + 22.0279739, + 58.4900096 + ], + [ + 22.1137534, + 58.4916676 + ], + [ + 22.1114351, + 58.5362146 + ], + [ + 22.1970926, + 58.5374247 + ], + [ + 22.1945302, + 58.5822952 + ], + [ + 22.4523568, + 58.5857297 + ], + [ + 22.4463779, + 58.7203003 + ], + [ + 22.3602323, + 58.7191599 + ], + [ + 22.3536433, + 58.8538478 + ] + ], + [ + [ + 23.4741459, + 59.2672589 + ], + [ + 23.2986822, + 59.2663235 + ], + [ + 23.2979501, + 59.3113783 + ], + [ + 23.4729257, + 59.3119388 + ], + [ + 23.4741459, + 59.2672589 + ] + ], + [ + [ + 24.1701436, + 58.1907961 + ], + [ + 24.255069, + 58.1907318 + ], + [ + 24.2545809, + 58.1458112 + ], + [ + 24.1700216, + 58.1458756 + ], + [ + 24.1701436, + 58.1907961 + ] + ], + [ + [ + 24.0848522, + 58.1909248 + ], + [ + 24.0849742, + 58.1012852 + ], + [ + 23.9996827, + 58.1011563 + ], + [ + 23.9999268, + 58.0563162 + ], + [ + 23.9152454, + 58.0561225 + ], + [ + 23.9150014, + 58.1461332 + ], + [ + 23.83032, + 58.1460044 + ], + [ + 23.8297099, + 58.2357242 + ], + [ + 23.9145133, + 58.2358527 + ], + [ + 23.9147573, + 58.1909891 + ], + [ + 24.0848522, + 58.1909248 + ] + ], + [ + [ + 24.6185366, + 59.5361187 + ], + [ + 24.4418254, + 59.5367966 + ], + [ + 24.4430922, + 59.6265878 + ], + [ + 24.6201552, + 59.6258049 + ], + [ + 24.6185366, + 59.5361187 + ] + ], + [ + [ + 26.4040316, + 59.7851966 + ], + [ + 26.3150064, + 59.7866741 + ], + [ + 26.3181415, + 59.8315183 + ], + [ + 26.4073159, + 59.8299428 + ], + [ + 26.4040316, + 59.7851966 + ] + ], + [ + [ + 26.4830816, + 59.6490028 + ], + [ + 26.4864655, + 59.6938311 + ], + [ + 26.5751422, + 59.692023 + ], + [ + 26.5716589, + 59.6471923 + ], + [ + 26.4830816, + 59.6490028 + ] + ], + [ + [ + 23.1594369, + 57.784083 + ], + [ + 23.2434645, + 57.7846083 + ], + [ + 23.2444497, + 57.73971 + ], + [ + 23.3284773, + 57.740311 + ], + [ + 23.3267883, + 57.8299754 + ], + [ + 23.1584517, + 57.8288513 + ], + [ + 23.1594369, + 57.784083 + ] + ] + ], + "terms_text": "Maa-Ameti põhikaart" + }, + { + "id": "maaamet.ee-cir_ngr", + "name": "Estonia Forestry (Maaamet)", + "type": "wms", + "template": "http://kaart.maaamet.ee/wms/alus-geo?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=cir_ngr&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 21.6940073, + 57.5025466 + ], + [ + 21.6940073, + 59.8274564 + ], + [ + 28.2110546, + 59.8274564 + ], + [ + 28.2110546, + 57.5025466 + ], + [ + 21.6940073, + 57.5025466 + ] + ] + ], + "terms_text": "Maa-Ameti metsanduslik ortofoto" + }, + { + "id": "maaamet.ee-reljeef", + "name": "Estonia Hillshading (Maaamet)", + "type": "wms", + "template": "http://kaart.maaamet.ee/wms/alus-geo?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=reljeef&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 21.6940073, + 57.5025466 + ], + [ + 21.6940073, + 59.8274564 + ], + [ + 28.2110546, + 59.8274564 + ], + [ + 28.2110546, + 57.5025466 + ], + [ + 21.6940073, + 57.5025466 + ] + ] + ], + "terms_text": "Maa-Ameti reljeefikaart" + }, { "id": "maaamet.ee-orto", "name": "Estonia Ortho (Maaamet)", @@ -39254,7 +44514,7 @@ "name": "Geobase Hydrography", "type": "wms", "template": "http://ows.geobase.ca/wms/geobase_en?service=wms&request=GetMap&version=1.1.1&SRS={proj}&style=&format=image/png&transparent=true&layers=nhn:hydrography,nhn:network&WIDTH={width}&height={height}&BBOX={bbox}", - "projection": "EPSG:900913", + "projection": "EPSG:4326", "polygon": [ [ [ @@ -40257,7 +45517,7 @@ "name": "Geobase Roads", "type": "wms", "template": "http://ows.geobase.ca/wms/geobase_en?service=wms&request=GetMap&version=1.1.1&SRS={proj}&style=&format=image/png&transparent=true&layers=nrn:addressrange,nrn:streetnames,nrn:streetnames:streetnames_primary,nrn:streetnames:streetnames_secondary,nrn:streetnames:streetnames_other,nhn:hydrography,nrn:roadnetwork&WIDTH={width}&height={height}&BBOX={bbox}", - "projection": "EPSG:900913", + "projection": "EPSG:4326", "polygon": [ [ [ @@ -42537,6 +47797,474 @@ "terms_url": "http://www.seplande.al.gov.br/", "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" }, + { + "id": "GRAFCAN-Canary_Islands", + "name": "GRAFCAN - Canary Islands", + "type": "wms", + "template": "http://idecan1.grafcan.es/ServicioWMS/OrtoUrb?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=OU&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + -17.9291733, + 28.8910589 + ], + [ + -18.0333424, + 28.7998146 + ], + [ + -18.0374275, + 28.7317767 + ], + [ + -17.87811, + 28.4322434 + ], + [ + -17.8311317, + 28.4178731 + ], + [ + -17.7269626, + 28.5632821 + ], + [ + -17.7310476, + 28.6798232 + ], + [ + -17.6840694, + 28.7371497 + ], + [ + -17.7535155, + 28.8678081 + ], + [ + -17.8576846, + 28.860653 + ], + [ + -17.9291733, + 28.8910589 + ] + ], + [ + [ + -18.0781762, + 27.7721138 + ], + [ + -18.1370743, + 27.7875098 + ], + [ + -18.1705392, + 27.7644149 + ], + [ + -18.1779014, + 27.7069523 + ], + [ + -18.1578225, + 27.687989 + ], + [ + -18.0580973, + 27.6790988 + ], + [ + -18.0065614, + 27.6257423 + ], + [ + -17.9610492, + 27.6221843 + ], + [ + -17.9389624, + 27.7081374 + ], + [ + -17.9075054, + 27.7193953 + ], + [ + -17.8619932, + 27.8046798 + ], + [ + -17.872702, + 27.8407872 + ], + [ + -17.9255764, + 27.8680077 + ], + [ + -18.0052228, + 27.8360525 + ], + [ + -18.0139237, + 27.8034958 + ], + [ + -18.0781762, + 27.7721138 + ] + ], + [ + [ + -17.2687764, + 28.2399643 + ], + [ + -17.3340329, + 28.2193251 + ], + [ + -17.3633146, + 28.1536956 + ], + [ + -17.3666611, + 28.0880258 + ], + [ + -17.3306864, + 28.0474233 + ], + [ + -17.2729595, + 28.0068054 + ], + [ + -17.2001735, + 28.0053281 + ], + [ + -17.1441199, + 28.0289625 + ], + [ + -17.0780268, + 28.0835972 + ], + [ + -17.0872296, + 28.1536956 + ], + [ + -17.1826044, + 28.2149019 + ], + [ + -17.2687764, + 28.2399643 + ] + ], + [ + [ + -16.9358012, + 28.3762297 + ], + [ + -16.945004, + 28.3357366 + ], + [ + -16.7199529, + 27.9831662 + ], + [ + -16.6254147, + 27.9831662 + ], + [ + -16.52753, + 28.0164074 + ], + [ + -16.3995269, + 28.146319 + ], + [ + -16.3359437, + 28.3092236 + ], + [ + -16.3300873, + 28.3644515 + ], + [ + -16.1025263, + 28.524082 + ], + [ + -16.0983432, + 28.5814018 + ], + [ + -16.1426842, + 28.6254727 + ], + [ + -16.3392902, + 28.5960942 + ], + [ + -16.4380115, + 28.5314325 + ], + [ + -16.5392427, + 28.4402508 + ], + [ + -16.8395897, + 28.4122923 + ], + [ + -16.9358012, + 28.3762297 + ] + ], + [ + [ + -15.6883306, + 28.2058483 + ], + [ + -15.4739464, + 28.1643685 + ], + [ + -15.424272, + 28.2104562 + ], + [ + -15.3628326, + 28.1724353 + ], + [ + -15.3837481, + 28.0559841 + ], + [ + -15.3314593, + 27.9844367 + ], + [ + -15.3576037, + 27.8042042 + ], + [ + -15.5915962, + 27.6977727 + ], + [ + -15.7000956, + 27.7336471 + ], + [ + -15.7994443, + 27.8030479 + ], + [ + -15.8713415, + 27.9243925 + ], + [ + -15.8478115, + 28.036371 + ], + [ + -15.7471555, + 28.0894335 + ], + [ + -15.7314689, + 28.1839582 + ], + [ + -15.6883306, + 28.2058483 + ] + ], + [ + [ + -14.5088179, + 28.1344754 + ], + [ + -14.4107763, + 28.1344754 + ], + [ + -14.248681, + 28.2427804 + ], + [ + -14.2382232, + 28.3463737 + ], + [ + -14.0395256, + 28.7391056 + ], + [ + -13.8944241, + 28.7826519 + ], + [ + -13.7859248, + 28.7769232 + ], + [ + -13.8212198, + 28.3843326 + ], + [ + -13.9153397, + 28.190946 + ], + [ + -14.1859344, + 28.1356282 + ], + [ + -14.3088131, + 28.0052882 + ], + [ + -14.5401912, + 28.0514443 + ], + [ + -14.5088179, + 28.1344754 + ] + ], + [ + [ + -13.5524989, + 29.3772716 + ], + [ + -13.5086799, + 29.3682409 + ], + [ + -13.4795521, + 29.3872775 + ], + [ + -13.4754312, + 29.4096331 + ], + [ + -13.5003013, + 29.4280698 + ], + [ + -13.5504986, + 29.4071183 + ], + [ + -13.5524989, + 29.3772716 + ] + ], + [ + [ + -13.3976004, + 29.1610205 + ], + [ + -13.4281427, + 29.1215664 + ], + [ + -13.4417378, + 28.9908417 + ], + [ + -13.538995, + 28.9194675 + ], + [ + -13.7084109, + 28.8846777 + ], + [ + -13.7711575, + 28.8086488 + ], + [ + -13.9008338, + 28.8352194 + ], + [ + -13.9071084, + 28.8892559 + ], + [ + -13.8579569, + 28.936858 + ], + [ + -13.8569111, + 29.0365684 + ], + [ + -13.6759918, + 29.1498834 + ], + [ + -13.567231, + 29.1571898 + ], + [ + -13.5542776, + 29.3507259 + ], + [ + -13.399879, + 29.2180634 + ], + [ + -13.3976004, + 29.1610205 + ] + ], + [ + [ + -13.3379231, + 29.2866715 + ], + [ + -13.3503484, + 29.2743558 + ], + [ + -13.3385966, + 29.2653346 + ], + [ + -13.3261713, + 29.2776514 + ], + [ + -13.3379231, + 29.2866715 + ] + ] + ], + "terms_text": "GRAFCAN OrtoExpress Urbana 2009" + }, { "id": "GrandNancy_Orthophotographie_2012", "name": "GrandNancy - Orthophoto - 2012", @@ -43064,6 +48792,495 @@ ] ] }, + { + "id": "Hamburg-DK5", + "name": "Hamburg (DK5)", + "type": "wms", + "template": "http://geodienste.hamburg.de/HH_WMS_Geobasisdaten?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=13&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 8.4825961, + 53.9356013 + ], + [ + 8.4827386, + 53.9092447 + ], + [ + 8.5274957, + 53.9094126 + ], + [ + 8.5279233, + 53.9357691 + ], + [ + 8.4825961, + 53.9356013 + ] + ], + [ + [ + 9.7723167, + 53.543523 + ], + [ + 9.7743354, + 53.5543296 + ], + [ + 9.7631359, + 53.5552115 + ], + [ + 9.7304736, + 53.5578689 + ], + [ + 9.7346453, + 53.5653605 + ], + [ + 9.7579266, + 53.6182757 + ], + [ + 9.7712877, + 53.6313071 + ], + [ + 9.770699, + 53.6160708 + ], + [ + 9.7963361, + 53.6102995 + ], + [ + 9.7899342, + 53.6038562 + ], + [ + 9.8181678, + 53.5859147 + ], + [ + 9.8377278, + 53.5919808 + ], + [ + 9.8449827, + 53.5949795 + ], + [ + 9.8541578, + 53.5980542 + ], + [ + 9.8681371, + 53.6092959 + ], + [ + 9.8693051, + 53.6132263 + ], + [ + 9.885052, + 53.6219916 + ], + [ + 9.8869663, + 53.6252015 + ], + [ + 9.8935594, + 53.6302636 + ], + [ + 9.8963672, + 53.6312186 + ], + [ + 9.8968811, + 53.6349162 + ], + [ + 9.9067823, + 53.6523063 + ], + [ + 9.9311454, + 53.6526154 + ], + [ + 9.9455232, + 53.6527604 + ], + [ + 9.9502445, + 53.6508457 + ], + [ + 9.9515493, + 53.6506547 + ], + [ + 9.9779541, + 53.6488699 + ], + [ + 9.9849181, + 53.6482971 + ], + [ + 9.9873906, + 53.6507159 + ], + [ + 9.9995963, + 53.6815314 + ], + [ + 10.0228185, + 53.6815708 + ], + [ + 10.0433756, + 53.6819823 + ], + [ + 10.0514778, + 53.6775926 + ], + [ + 10.0692494, + 53.679547 + ], + [ + 10.0604009, + 53.6883344 + ], + [ + 10.0709998, + 53.6958498 + ], + [ + 10.0707046, + 53.7099642 + ], + [ + 10.0819849, + 53.7204444 + ], + [ + 10.1190792, + 53.7132448 + ], + [ + 10.1693902, + 53.7389576 + ], + [ + 10.1936896, + 53.7310028 + ], + [ + 10.1779029, + 53.7099228 + ], + [ + 10.1569421, + 53.7045133 + ], + [ + 10.1582858, + 53.6894414 + ], + [ + 10.1434248, + 53.6805732 + ], + [ + 10.1417595, + 53.6774354 + ], + [ + 10.144728, + 53.6761294 + ], + [ + 10.1464311, + 53.6758841 + ], + [ + 10.1495537, + 53.6754497 + ], + [ + 10.1715323, + 53.6686937 + ], + [ + 10.1988496, + 53.6467523 + ], + [ + 10.1897268, + 53.6383796 + ], + [ + 10.2220152, + 53.6334888 + ], + [ + 10.1888726, + 53.6131597 + ], + [ + 10.1923583, + 53.5947431 + ], + [ + 10.2011737, + 53.5839226 + ], + [ + 10.1516942, + 53.5761904 + ], + [ + 10.1506692, + 53.5697309 + ], + [ + 10.1479994, + 53.5639032 + ], + [ + 10.1530759, + 53.5624246 + ], + [ + 10.1594205, + 53.5609125 + ], + [ + 10.1518903, + 53.5416987 + ], + [ + 10.154649, + 53.5365725 + ], + [ + 10.1687379, + 53.5374002 + ], + [ + 10.1632659, + 53.5218549 + ], + [ + 10.1661094, + 53.5201314 + ], + [ + 10.169185, + 53.5196505 + ], + [ + 10.1895059, + 53.5114835 + ], + [ + 10.2104308, + 53.5199588 + ], + [ + 10.218276, + 53.4992345 + ], + [ + 10.2366988, + 53.4962928 + ], + [ + 10.2500849, + 53.4789784 + ], + [ + 10.2659161, + 53.4707878 + ], + [ + 10.2904343, + 53.4551223 + ], + [ + 10.3096151, + 53.4430928 + ], + [ + 10.3122326, + 53.4522908 + ], + [ + 10.3251401, + 53.4497898 + ], + [ + 10.3079865, + 53.4333199 + ], + [ + 10.2559794, + 53.4162256 + ], + [ + 10.2508909, + 53.4102422 + ], + [ + 10.2457816, + 53.402611 + ], + [ + 10.2415493, + 53.3979725 + ], + [ + 10.1655462, + 53.399327 + ], + [ + 10.1450604, + 53.416136 + ], + [ + 10.1094899, + 53.4264876 + ], + [ + 10.1067973, + 53.4265817 + ], + [ + 10.075805, + 53.4543638 + ], + [ + 10.0515477, + 53.4639369 + ], + [ + 10.0351698, + 53.446896 + ], + [ + 10.0144851, + 53.4420285 + ], + [ + 10.0229369, + 53.4322826 + ], + [ + 9.9975402, + 53.4254609 + ], + [ + 9.9824345, + 53.4147804 + ], + [ + 9.9787266, + 53.4142015 + ], + [ + 9.958105, + 53.4270802 + ], + [ + 9.9295317, + 53.4200676 + ], + [ + 9.92552, + 53.4192417 + ], + [ + 9.9066683, + 53.4159559 + ], + [ + 9.9230535, + 53.4363147 + ], + [ + 9.9170421, + 53.4466391 + ], + [ + 9.9043636, + 53.4570665 + ], + [ + 9.8949316, + 53.4558313 + ], + [ + 9.8688468, + 53.4446225 + ], + [ + 9.8621101, + 53.4294212 + ], + [ + 9.8487204, + 53.4411135 + ], + [ + 9.806634, + 53.4664838 + ], + [ + 9.8002119, + 53.4737243 + ], + [ + 9.8028025, + 53.4938287 + ], + [ + 9.7820338, + 53.4923568 + ], + [ + 9.7688507, + 53.5053032 + ], + [ + 9.7710683, + 53.5218512 + ], + [ + 9.7810509, + 53.5183751 + ], + [ + 9.773523, + 53.527956 + ], + [ + 9.7723167, + 53.543523 + ] + ] + ] + }, { "id": "Hampshire-Aerial-FCIR", "name": "Hampshire Aerial FCIR", @@ -44512,6 +50729,250 @@ ] ] }, + { + "id": "Yverdon_les_Bains-HEIG_VD-2007", + "name": "HEIG-VD / Orthophoto Yverdon-les-Bains 25cm (2007)", + "type": "wms", + "template": "http://ogc.heig-vd.ch/mapserver/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=orthophoto_yverdon&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 6.6620704, + 46.7757613 + ], + [ + 6.6593637, + 46.7749931 + ], + [ + 6.6604976, + 46.7745171 + ], + [ + 6.6596563, + 46.7733731 + ], + [ + 6.658242, + 46.7710934 + ], + [ + 6.6580469, + 46.7705088 + ], + [ + 6.6573276, + 46.7693898 + ], + [ + 6.6554865, + 46.7697656 + ], + [ + 6.6548159, + 46.7700412 + ], + [ + 6.6536333, + 46.7702917 + ], + [ + 6.6488782, + 46.7683208 + ], + [ + 6.6473176, + 46.7700579 + ], + [ + 6.6461837, + 46.7696153 + ], + [ + 6.6454034, + 46.7704838 + ], + [ + 6.645001, + 46.7703251 + ], + [ + 6.6435257, + 46.7718115 + ], + [ + 6.6422821, + 46.7712771 + ], + [ + 6.6406239, + 46.7729556 + ], + [ + 6.6403191, + 46.7728303 + ], + [ + 6.6387097, + 46.7744336 + ], + [ + 6.6373929, + 46.7738407 + ], + [ + 6.6355275, + 46.7756778 + ], + [ + 6.6349057, + 46.7753772 + ], + [ + 6.6327598, + 46.777473 + ], + [ + 6.6314308, + 46.776947 + ], + [ + 6.6286875, + 46.7798025 + ], + [ + 6.6241398, + 46.7808713 + ], + [ + 6.6244202, + 46.7813138 + ], + [ + 6.6207868, + 46.7823825 + ], + [ + 6.6210185, + 46.7825995 + ], + [ + 6.6192872, + 46.7832006 + ], + [ + 6.6208722, + 46.7847786 + ], + [ + 6.6188239, + 46.7855216 + ], + [ + 6.6247738, + 46.7909228 + ], + [ + 6.625993, + 46.7903385 + ], + [ + 6.6261271, + 46.7904971 + ], + [ + 6.6306139, + 46.7880344 + ], + [ + 6.6287729, + 46.7912985 + ], + [ + 6.6362834, + 46.7938695 + ], + [ + 6.6373198, + 46.7924838 + ], + [ + 6.6380087, + 46.7927176 + ], + [ + 6.6387158, + 46.7917993 + ], + [ + 6.6396546, + 46.7909187 + ], + [ + 6.6411238, + 46.7892533 + ], + [ + 6.6414896, + 46.7894119 + ], + [ + 6.6443548, + 46.7867321 + ], + [ + 6.6458057, + 46.7875169 + ], + [ + 6.6468543, + 46.7866737 + ], + [ + 6.6473176, + 46.7869158 + ], + [ + 6.6507923, + 46.7842933 + ], + [ + 6.6511115, + 46.7844456 + ], + [ + 6.6533285, + 46.7824158 + ], + [ + 6.6544349, + 46.7828427 + ], + [ + 6.6560687, + 46.7809766 + ], + [ + 6.6567332, + 46.7812522 + ], + [ + 6.6583609, + 46.7793736 + ], + [ + 6.6589722, + 46.7796176 + ], + [ + 6.6620704, + 46.7757613 + ] + ] + ], + "terms_text": "Orthophoto Yverdon 2007 / HEIG-VD" + }, { "id": "IBGE_DF_Addresses", "name": "IBGE Distrito Federal", @@ -58829,13 +65290,1473 @@ "terms_text": "National Library of Scotland Historic Maps", "icon": "data:image/png;base64,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" }, + { + "id": "ITACyL-Castile-and-Leon", + "name": "ITACyL - Castile and León", + "type": "wms", + "template": "http://orto.wms.itacyl.es/WMS?REQUEST=GetMap&SERVICE=WMS&VERSION=1.1.1&LAYERS=Ortofoto_CyL&SRS={proj}&FORMAT=image/jpeg&STYLES=Default&TRANSPARENT=TRUE&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + -1.9357991, + 41.4383441 + ], + [ + -1.8960064, + 41.438692 + ], + [ + -1.895356, + 41.3968709 + ], + [ + -1.9767014, + 41.3961593 + ], + [ + -1.9763916, + 41.376229 + ], + [ + -2.0620081, + 41.3754798 + ], + [ + -2.0626179, + 41.4147091 + ], + [ + -2.104577, + 41.4143421 + ], + [ + -2.103634, + 41.3536716 + ], + [ + -2.1444816, + 41.353314 + ], + [ + -2.1418984, + 41.1868282 + ], + [ + -2.0620415, + 41.1875291 + ], + [ + -2.0617117, + 41.1662438 + ], + [ + -2.0204638, + 41.1666059 + ], + [ + -2.0188653, + 41.0633378 + ], + [ + -2.100826, + 41.0626171 + ], + [ + -2.1011407, + 41.0829596 + ], + [ + -2.2273263, + 41.0818503 + ], + [ + -2.2270424, + 41.0634991 + ], + [ + -2.2691206, + 41.0631291 + ], + [ + -2.2688026, + 41.0425666 + ], + [ + -2.3532519, + 41.0418238 + ], + [ + -2.3535559, + 41.0614821 + ], + [ + -2.3948686, + 41.0611188 + ], + [ + -2.3945738, + 41.0420594 + ], + [ + -2.4372246, + 41.0416842 + ], + [ + -2.4375565, + 41.0631457 + ], + [ + -2.4792811, + 41.0627788 + ], + [ + -2.4799141, + 41.1036906 + ], + [ + -2.5207759, + 41.1033316 + ], + [ + -2.5211004, + 41.1242948 + ], + [ + -2.6041532, + 41.1235652 + ], + [ + -2.6048148, + 41.1662833 + ], + [ + -2.6470964, + 41.1659121 + ], + [ + -2.6480789, + 41.2293052 + ], + [ + -2.728739, + 41.2285978 + ], + [ + -2.7290669, + 41.2497401 + ], + [ + -2.8955197, + 41.2482806 + ], + [ + -2.8964873, + 41.3106325 + ], + [ + -2.9363011, + 41.3102838 + ], + [ + -2.9357117, + 41.2723089 + ], + [ + -3.1469203, + 41.2704576 + ], + [ + -3.1472307, + 41.2904534 + ], + [ + -3.2282807, + 41.2897432 + ], + [ + -3.2276653, + 41.2500782 + ], + [ + -3.3958112, + 41.2486039 + ], + [ + -3.3951828, + 41.2080777 + ], + [ + -3.4349215, + 41.207729 + ], + [ + -3.4342897, + 41.166962 + ], + [ + -3.4787658, + 41.1665716 + ], + [ + -3.4784403, + 41.1455556 + ], + [ + -3.6033615, + 41.1444585 + ], + [ + -3.6026994, + 41.1016871 + ], + [ + -3.6453878, + 41.101312 + ], + [ + -3.6450826, + 41.0815903 + ], + [ + -3.6873474, + 41.0812188 + ], + [ + -3.6867259, + 41.0410356 + ], + [ + -3.7286604, + 41.0406667 + ], + [ + -3.7280287, + 40.9997997 + ], + [ + -3.7689605, + 40.9994394 + ], + [ + -3.7686426, + 40.9788648 + ], + [ + -3.8547306, + 40.9781068 + ], + [ + -3.8543974, + 40.9565345 + ], + [ + -3.8985743, + 40.9561454 + ], + [ + -3.8976421, + 40.8957522 + ], + [ + -3.9390572, + 40.8953871 + ], + [ + -3.9371558, + 40.7720359 + ], + [ + -4.061976, + 40.7709334 + ], + [ + -4.0613345, + 40.7292585 + ], + [ + -4.1037236, + 40.7288838 + ], + [ + -4.1031129, + 40.6891834 + ], + [ + -4.146278, + 40.6888017 + ], + [ + -4.1449778, + 40.6042134 + ], + [ + -4.1902455, + 40.6038125 + ], + [ + -4.1899353, + 40.5836167 + ], + [ + -4.2294603, + 40.5832666 + ], + [ + -4.2297921, + 40.604873 + ], + [ + -4.2705425, + 40.6045122 + ], + [ + -4.2695844, + 40.5421064 + ], + [ + -4.3138364, + 40.5417142 + ], + [ + -4.3116268, + 40.397575 + ], + [ + -4.3937599, + 40.3968455 + ], + [ + -4.3934525, + 40.3767688 + ], + [ + -4.4372265, + 40.3763799 + ], + [ + -4.4362295, + 40.3112251 + ], + [ + -4.5219173, + 40.3104631 + ], + [ + -4.5203662, + 40.2089652 + ], + [ + -4.5613148, + 40.2086005 + ], + [ + -4.5609947, + 40.1876316 + ], + [ + -4.6889523, + 40.1864916 + ], + [ + -4.6893267, + 40.2110086 + ], + [ + -4.7319244, + 40.2106292 + ], + [ + -4.7325206, + 40.2496574 + ], + [ + -4.7683768, + 40.2493382 + ], + [ + -4.7680867, + 40.2303451 + ], + [ + -4.8110432, + 40.2299626 + ], + [ + -4.8114661, + 40.2072641 + ], + [ + -4.8542024, + 40.1841364 + ], + [ + -4.8526373, + 40.1256293 + ], + [ + -4.9369855, + 40.1248771 + ], + [ + -4.9363819, + 40.0852905 + ], + [ + -5.3553832, + 40.0815518 + ], + [ + -5.3560552, + 40.1256221 + ], + [ + -5.4402699, + 40.1248711 + ], + [ + -5.4409085, + 40.1667265 + ], + [ + -5.6038169, + 40.1652746 + ], + [ + -5.6044816, + 40.2088137 + ], + [ + -5.6864643, + 40.2080835 + ], + [ + -5.6871247, + 40.2513133 + ], + [ + -6.0216585, + 40.2483356 + ], + [ + -6.0229464, + 40.3325684 + ], + [ + -6.1043332, + 40.3318449 + ], + [ + -6.1055986, + 40.4145069 + ], + [ + -6.1895128, + 40.4137618 + ], + [ + -6.1901823, + 40.4574544 + ], + [ + -6.2697076, + 40.4567487 + ], + [ + -6.2690913, + 40.4165255 + ], + [ + -6.35192, + 40.41579 + ], + [ + -6.3512834, + 40.374216 + ], + [ + -6.4332493, + 40.3734877 + ], + [ + -6.4326391, + 40.3336127 + ], + [ + -6.5224541, + 40.3328142 + ], + [ + -6.5211648, + 40.2484909 + ], + [ + -6.599422, + 40.2477943 + ], + [ + -6.5988642, + 40.2112799 + ], + [ + -6.8556786, + 40.2089926 + ], + [ + -6.8563443, + 40.2525719 + ], + [ + -6.9362181, + 40.2518609 + ], + [ + -6.9375132, + 40.3365682 + ], + [ + -6.8511064, + 40.3373363 + ], + [ + -6.8600092, + 40.9167165 + ], + [ + -6.9354421, + 40.9160518 + ], + [ + -6.9374109, + 41.0435015 + ], + [ + -6.8548179, + 41.0442279 + ], + [ + -6.8554804, + 41.0870562 + ], + [ + -6.7701541, + 41.0878063 + ], + [ + -6.7724533, + 41.2362299 + ], + [ + -6.6837886, + 41.2370075 + ], + [ + -6.6043553, + 41.2377041 + ], + [ + -6.6052401, + 41.2947359 + ], + [ + -6.5193011, + 41.295489 + ], + [ + -6.5199114, + 41.3347937 + ], + [ + -6.4367251, + 41.3355221 + ], + [ + -6.4380091, + 41.4181379 + ], + [ + -6.3531841, + 41.4188797 + ], + [ + -6.3544684, + 41.501409 + ], + [ + -6.2688882, + 41.5021564 + ], + [ + -6.2707951, + 41.6245018 + ], + [ + -6.3566149, + 41.6237537 + ], + [ + -6.3572432, + 41.6640106 + ], + [ + -6.435477, + 41.663329 + ], + [ + -6.4349024, + 41.6265132 + ], + [ + -6.5227923, + 41.625747 + ], + [ + -6.523426, + 41.6663463 + ], + [ + -6.6034046, + 41.6656495 + ], + [ + -6.60733, + 41.9166043 + ], + [ + -7.0220912, + 41.9130049 + ], + [ + -7.0240633, + 42.0387169 + ], + [ + -7.1054035, + 42.0380124 + ], + [ + -7.1061291, + 42.0842081 + ], + [ + -7.0207976, + 42.0849466 + ], + [ + -7.0227551, + 42.2093958 + ], + [ + -6.9369897, + 42.2101367 + ], + [ + -6.9376312, + 42.25087 + ], + [ + -6.8547973, + 42.2515851 + ], + [ + -6.8554546, + 42.2932892 + ], + [ + -6.7734213, + 42.2939969 + ], + [ + -6.7740277, + 42.3324438 + ], + [ + -6.853255, + 42.3317608 + ], + [ + -6.8552311, + 42.4569007 + ], + [ + -7.1034126, + 42.4547653 + ], + [ + -7.1081086, + 42.7511487 + ], + [ + -7.0219933, + 42.7518861 + ], + [ + -7.0224121, + 42.7782497 + ], + [ + -6.9397569, + 42.7789573 + ], + [ + -6.9419944, + 42.9196184 + ], + [ + -6.7730194, + 42.9210615 + ], + [ + -6.7736331, + 42.959583 + ], + [ + -6.5232855, + 42.9617196 + ], + [ + -6.5239109, + 43.0009499 + ], + [ + -6.4389317, + 43.0016747 + ], + [ + -6.4402391, + 43.0836074 + ], + [ + -5.9378159, + 43.0878866 + ], + [ + -5.9370816, + 43.0418887 + ], + [ + -5.854205, + 43.0425951 + ], + [ + -5.8535667, + 43.0025804 + ], + [ + -5.7723612, + 43.003273 + ], + [ + -5.7736346, + 43.0830757 + ], + [ + -5.6026996, + 43.0845317 + ], + [ + -5.6020243, + 43.0422247 + ], + [ + -5.5216051, + 43.0429102 + ], + [ + -5.5222624, + 43.0840869 + ], + [ + -5.4375994, + 43.084808 + ], + [ + -5.4382655, + 43.1265078 + ], + [ + -5.1044441, + 43.1293491 + ], + [ + -5.1057321, + 43.2099008 + ], + [ + -5.0238581, + 43.2105967 + ], + [ + -5.0245075, + 43.2511672 + ], + [ + -4.9001667, + 43.2522234 + ], + [ + -4.899411, + 43.2050092 + ], + [ + -4.8112607, + 43.2057585 + ], + [ + -4.8096559, + 43.105375 + ], + [ + -4.7697514, + 43.1057148 + ], + [ + -4.7693676, + 43.0816804 + ], + [ + -4.7294463, + 43.0820204 + ], + [ + -4.7288105, + 43.0421933 + ], + [ + -4.5632192, + 43.0436047 + ], + [ + -4.5635281, + 43.0629569 + ], + [ + -4.3959936, + 43.0643843 + ], + [ + -4.395658, + 43.0433568 + ], + [ + -4.3537016, + 43.0437144 + ], + [ + -4.3526592, + 42.978357 + ], + [ + -4.2301346, + 42.9794024 + ], + [ + -4.2291284, + 42.9162469 + ], + [ + -4.1877354, + 42.9166004 + ], + [ + -4.1870583, + 42.8740657 + ], + [ + -4.1055199, + 42.8747626 + ], + [ + -4.1048632, + 42.8334825 + ], + [ + -3.978008, + 42.8345674 + ], + [ + -3.9773335, + 42.7921387 + ], + [ + -3.9374989, + 42.7924796 + ], + [ + -3.9378064, + 42.8118263 + ], + [ + -3.853966, + 42.8125436 + ], + [ + -3.8542743, + 42.8319306 + ], + [ + -3.8957255, + 42.831576 + ], + [ + -3.8960731, + 42.8534282 + ], + [ + -3.9382057, + 42.853068 + ], + [ + -3.9388853, + 42.8957718 + ], + [ + -3.9805995, + 42.8954154 + ], + [ + -3.9809315, + 42.916265 + ], + [ + -4.0221962, + 42.9159125 + ], + [ + -4.0229008, + 42.9601447 + ], + [ + -3.9785114, + 42.9605236 + ], + [ + -3.9794595, + 43.0199892 + ], + [ + -3.938827, + 43.0203357 + ], + [ + -3.9391788, + 43.042387 + ], + [ + -3.8970383, + 43.0427461 + ], + [ + -3.8973798, + 43.0641401 + ], + [ + -3.8542367, + 43.0645077 + ], + [ + -3.8548965, + 43.1058288 + ], + [ + -3.7708592, + 43.1065444 + ], + [ + -3.7711564, + 43.1251478 + ], + [ + -3.7281894, + 43.1255135 + ], + [ + -3.7285258, + 43.1465582 + ], + [ + -3.6871289, + 43.1469104 + ], + [ + -3.6877837, + 43.1878633 + ], + [ + -3.6036492, + 43.1885787 + ], + [ + -3.6033117, + 43.16747 + ], + [ + -3.5227798, + 43.168155 + ], + [ + -3.5224286, + 43.1461867 + ], + [ + -3.3966874, + 43.1472567 + ], + [ + -3.3969871, + 43.1660054 + ], + [ + -3.3544386, + 43.1663674 + ], + [ + -3.3547905, + 43.1883699 + ], + [ + -3.312676, + 43.188728 + ], + [ + -3.3129888, + 43.2082817 + ], + [ + -3.2299295, + 43.2089878 + ], + [ + -3.2295886, + 43.1876784 + ], + [ + -3.1034303, + 43.1887511 + ], + [ + -3.1027407, + 43.1456249 + ], + [ + -3.145455, + 43.1452614 + ], + [ + -3.1451648, + 43.1271 + ], + [ + -3.1061749, + 43.1274319 + ], + [ + -3.1044462, + 43.0191538 + ], + [ + -3.0207548, + 43.0198674 + ], + [ + -3.0201036, + 42.9790294 + ], + [ + -2.9811034, + 42.9793622 + ], + [ + -2.9797722, + 42.8957965 + ], + [ + -3.1047595, + 42.8947286 + ], + [ + -3.1027646, + 42.7692834 + ], + [ + -3.0219949, + 42.7699749 + ], + [ + -3.021675, + 42.7498344 + ], + [ + -2.9802357, + 42.7501893 + ], + [ + -2.9798754, + 42.7275008 + ], + [ + -2.8961284, + 42.7282183 + ], + [ + -2.8967866, + 42.7696661 + ], + [ + -2.853397, + 42.7700376 + ], + [ + -2.854046, + 42.8108748 + ], + [ + -2.6857742, + 42.8123144 + ], + [ + -2.6854448, + 42.7915941 + ], + [ + -2.645233, + 42.7919382 + ], + [ + -2.6448881, + 42.7702354 + ], + [ + -2.5200461, + 42.7713042 + ], + [ + -2.5193626, + 42.7282661 + ], + [ + -2.5607021, + 42.7279119 + ], + [ + -2.5603797, + 42.7075982 + ], + [ + -2.5194387, + 42.7079491 + ], + [ + -2.5181004, + 42.6235669 + ], + [ + -2.6040367, + 42.6228294 + ], + [ + -2.6043876, + 42.6449665 + ], + [ + -2.7715364, + 42.6435327 + ], + [ + -2.7718838, + 42.6654388 + ], + [ + -2.8117632, + 42.6650968 + ], + [ + -2.8120986, + 42.6862446 + ], + [ + -2.8546876, + 42.6858795 + ], + [ + -2.853374, + 42.6030248 + ], + [ + -2.8941263, + 42.602675 + ], + [ + -2.8937924, + 42.581594 + ], + [ + -3.0618985, + 42.5801504 + ], + [ + -3.0603059, + 42.4795203 + ], + [ + -3.0219106, + 42.4798505 + ], + [ + -3.0198987, + 42.3524957 + ], + [ + -3.0625473, + 42.3521282 + ], + [ + -3.0602922, + 42.20906 + ], + [ + -3.101203, + 42.2087066 + ], + [ + -3.1008585, + 42.1868215 + ], + [ + -3.0617541, + 42.1871594 + ], + [ + -3.0611, + 42.1455897 + ], + [ + -3.02029, + 42.1459425 + ], + [ + -3.0196265, + 42.1037456 + ], + [ + -2.8960202, + 42.1048151 + ], + [ + -2.8950131, + 42.0407115 + ], + [ + -2.8122232, + 42.0414286 + ], + [ + -2.8135302, + 42.1246034 + ], + [ + -2.7687117, + 42.1249911 + ], + [ + -2.7690537, + 42.1467421 + ], + [ + -2.7269484, + 42.1471061 + ], + [ + -2.7265985, + 42.1248518 + ], + [ + -2.6870598, + 42.1251938 + ], + [ + -2.6860524, + 42.0610919 + ], + [ + -2.7280396, + 42.0607283 + ], + [ + -2.7273889, + 42.0192954 + ], + [ + -2.6034263, + 42.0203694 + ], + [ + -2.6037558, + 42.0413549 + ], + [ + -2.561002, + 42.0417251 + ], + [ + -2.561982, + 42.1041055 + ], + [ + -2.5226586, + 42.1044458 + ], + [ + -2.5229938, + 42.1257676 + ], + [ + -2.4793313, + 42.1261453 + ], + [ + -2.4796279, + 42.1450019 + ], + [ + -2.3551669, + 42.1460781 + ], + [ + -2.3555034, + 42.1674688 + ], + [ + -2.3118382, + 42.1678462 + ], + [ + -2.3114953, + 42.1460516 + ], + [ + -2.2698957, + 42.1464113 + ], + [ + -2.2692414, + 42.1048011 + ], + [ + -2.2295004, + 42.105145 + ], + [ + -2.2298147, + 42.1251384 + ], + [ + -2.1446652, + 42.1258749 + ], + [ + -2.1443191, + 42.1038592 + ], + [ + -2.1038544, + 42.1042093 + ], + [ + -2.1015605, + 41.958109 + ], + [ + -1.9768889, + 41.9591902 + ], + [ + -1.9765512, + 41.9376488 + ], + [ + -1.9347344, + 41.9380116 + ], + [ + -1.9350441, + 41.9577593 + ], + [ + -1.8945308, + 41.9581106 + ], + [ + -1.8948295, + 41.9771541 + ], + [ + -1.8540002, + 41.9775081 + ], + [ + -1.8530417, + 41.9163796 + ], + [ + -1.8138054, + 41.9167201 + ], + [ + -1.8115061, + 41.7698387 + ], + [ + -1.7705981, + 41.7701945 + ], + [ + -1.7686552, + 41.6458221 + ], + [ + -1.8533513, + 41.645084 + ], + [ + -1.8530483, + 41.6256663 + ], + [ + -1.8947057, + 41.6253032 + ], + [ + -1.8940326, + 41.5821499 + ], + [ + -1.9771633, + 41.5814247 + ], + [ + -1.9768326, + 41.5602127 + ], + [ + -1.9377021, + 41.5605541 + ], + [ + -1.9357991, + 41.4383441 + ] + ] + ], + "terms_text": "ITACyL" + }, { "id": "gsi.go.jp", "name": "Japan GSI ortho Imagery", "type": "tms", - "template": "http://cyberjapandata.gsi.go.jp/xyz/ort/{zoom}/{x}/{y}.jpg", + "template": "https://cyberjapandata.gsi.go.jp/xyz/ort/{zoom}/{x}/{y}.jpg", "scaleExtent": [ - 12, + 5, 19 ], "polygon": [ @@ -59588,7 +67509,7 @@ "id": "Aargau-AGIS-2014", "name": "Kanton Aargau 25cm (AGIS 2014)", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/AGIS2014/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/AGIS2014/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "endDate": "2014-01-01T00:00:00.000Z", "startDate": "2014-01-01T00:00:00.000Z", "scaleExtent": [ @@ -60241,7 +68162,7 @@ "id": "Aargau-AGIS-2016", "name": "Kanton Aargau 25cm (AGIS 2016)", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/AGIS2016/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/AGIS2016/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "endDate": "2016-01-01T00:00:00.000Z", "startDate": "2016-01-01T00:00:00.000Z", "scaleExtent": [ @@ -60895,7 +68816,7 @@ "id": "Basel-Landschaft-2015", "name": "Kanton Basel-Landschaft 10cm (2015)", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/KTBASELLANDSCHAFT2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/KTBASELLANDSCHAFT2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 18, 21 @@ -61764,7 +69685,7 @@ "id": "KTBASELSTADT2015", "name": "Kanton Basel-Stadt 2015", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/KTBASELSTADT2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/KTBASELSTADT2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 8, 21 @@ -61799,7 +69720,7 @@ "id": "KTBASELSTADT2017", "name": "Kanton Basel-Stadt 2017", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/KTBASELSTADT2017/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/KTBASELSTADT2017/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 8, 21 @@ -61997,9 +69918,11 @@ }, { "id": "Solothurn-sogis2014-tms", - "name": "Kanton Solothurn 25cm (SOGIS 2014-2015)", + "name": "Kanton Solothurn (SOGIS)", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/sogis2014/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/sogis2014/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2017-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", "scaleExtent": [ 15, 19 @@ -62007,618 +69930,652 @@ "polygon": [ [ [ - 7.3404127, - 47.2175697 + 7.9559502, + 47.4716195 ], [ - 7.4154818, - 47.2402115 + 7.9823893, + 47.4715536 ], [ - 7.4173645, - 47.2537956 + 7.9823893, + 47.453533 ], [ - 7.4658424, - 47.2646513 + 7.9955263, + 47.453533 ], [ - 7.4946766, - 47.2882287 + 7.995209, + 47.4174733 ], [ - 7.5328638, - 47.294534 + 8.0218003, + 47.4174304 ], [ - 7.5483333, - 47.3163566 + 8.0215465, + 47.3993483 ], [ - 7.5709479, - 47.3263111 + 8.0345565, + 47.3992624 ], [ - 7.5604584, - 47.342492 + 8.0346835, + 47.3902835 ], [ - 7.5388991, - 47.3476266 + 8.0478839, + 47.3902236 ], [ - 7.5396485, - 47.3601134 + 8.0476936, + 47.3722351 ], [ - 7.5217459, - 47.3651488 + 8.0345565, + 47.372321 ], [ - 7.5237238, - 47.3720704 + 8.0343661, + 47.3543954 ], [ - 7.4634937, - 47.3702566 + 8.0211657, + 47.3542664 ], [ - 7.4361035, - 47.3781317 + 8.0207214, + 47.3273881 ], [ - 7.4434011, - 47.4023143 + 7.9944474, + 47.3274741 ], [ - 7.4774682, - 47.4012772 + 7.994257, + 47.318569 ], [ - 7.4792364, - 47.3897076 + 7.9677291, + 47.3186551 ], [ - 7.5022557, - 47.384807 + 7.9676656, + 47.3096624 ], [ - 7.5213659, - 47.3912021 + 7.9412227, + 47.3097751 ], [ - 7.5311724, - 47.4035251 + 7.9413282, + 47.3277752 ], [ - 7.5252352, - 47.4116329 + 7.9148637, + 47.3278613 ], [ - 7.5807413, - 47.414704 + 7.9146733, + 47.3098775 ], [ - 7.5682954, - 47.4223349 + 7.9015998, + 47.3100497 ], [ - 7.5689044, - 47.436897 + 7.9014015, + 47.3009748 ], [ - 7.5812069, - 47.4287807 + 7.8750084, + 47.3010986 ], [ - 7.6157989, - 47.4327479 + 7.8750084, + 47.2922321 ], [ - 7.6260723, - 47.4629139 + 7.861655, + 47.292122 ], [ - 7.6044949, - 47.4704455 + 7.8615371, + 47.2740879 ], [ - 7.6072998, - 47.4893984 + 7.8483207, + 47.2741634 ], [ - 7.640966, - 47.4827341 + 7.8482988, + 47.2652268 ], [ - 7.6559259, - 47.4873946 + 7.8350156, + 47.2651964 ], [ - 7.6521711, - 47.4958144 + 7.8350156, + 47.2562425 ], [ - 7.6661209, - 47.4968682 + 7.7953454, + 47.2563643 ], [ - 7.6683266, - 47.4863467 + 7.7953005, + 47.2474089 ], [ - 7.699761, - 47.4806325 + 7.7292435, + 47.2475612 ], [ - 7.709878, - 47.4693848 + 7.7292884, + 47.2565166 ], [ - 7.6848538, - 47.4478436 + 7.7162295, + 47.2566689 ], [ - 7.6798021, - 47.417514 + 7.7161847, + 47.2655923 ], [ - 7.6327228, - 47.4100311 + 7.7030361, + 47.2655923 ], [ - 7.633317, - 47.382914 + 7.7030361, + 47.2746055 ], [ - 7.6417611, - 47.3804694 + 7.6897529, + 47.2746664 ], [ - 7.6442033, - 47.3672084 + 7.6898875, + 47.2836781 ], [ - 7.7279138, - 47.3688589 + 7.6634108, + 47.2837085 ], [ - 7.751519, - 47.3443275 + 7.6633211, + 47.2746968 ], [ - 7.7935609, - 47.3390523 + 7.6105472, + 47.2747577 ], [ - 7.8021665, - 47.3610959 + 7.6104126, + 47.2478658 ], [ - 7.8788122, - 47.3835105 + 7.6235163, + 47.2477691 ], [ - 7.8691367, - 47.3955143 + 7.6235612, + 47.2387871 ], [ - 7.883332, - 47.4060973 + 7.6498584, + 47.2387566 ], [ - 7.9097377, - 47.398521 + 7.649993, + 47.2297678 ], [ - 7.9550377, - 47.4156057 + 7.6499025, + 47.2208313 ], [ - 7.9618317, - 47.4218343 + 7.6630766, + 47.220732 ], [ - 7.9467846, - 47.4431934 + 7.6631044, + 47.2117803 ], [ - 7.9682836, - 47.4628082 + 7.6629675, + 47.2027317 ], [ - 7.9872707, - 47.4287435 + 7.6761677, + 47.2026985 ], [ - 7.9854653, - 47.4227641 + 7.6762267, + 47.1937182 ], [ - 7.9827035, - 47.4283325 + 7.6893753, + 47.1936878 ], [ - 7.9631993, - 47.4223547 + 7.6892406, + 47.1757237 ], [ - 8.0072617, - 47.4065858 + 7.7024341, + 47.1756017 ], [ - 8.0100022, - 47.395418 + 7.7023444, + 47.14869 ], [ - 8.0265612, - 47.3956224 + 7.6626742, + 47.1488121 ], [ - 8.0313669, - 47.3836856 + 7.6628088, + 47.1397774 ], [ - 8.0038366, - 47.3453146 + 7.6363322, + 47.1398995 ], [ - 8.0051906, - 47.3367516 + 7.6364668, + 47.14869 ], [ - 7.9479701, - 47.3171432 + 7.5967967, + 47.1489341 ], [ - 7.9478307, - 47.3325169 + 7.5968415, + 47.1399606 ], [ - 7.9192088, - 47.3339507 + 7.5704098, + 47.1399911 ], [ - 7.9078055, - 47.341719 + 7.5704216, + 47.1579174 ], [ - 7.889098, - 47.3114878 + 7.5573628, + 47.1579479 ], [ - 7.8611018, - 47.3061239 + 7.5573179, + 47.1488843 ], [ - 7.8418057, - 47.2744707 + 7.5442142, + 47.1489453 ], [ - 7.8166423, - 47.2616706 + 7.5441693, + 47.1399107 ], [ - 7.8028241, - 47.2684079 + 7.5309759, + 47.1399107 ], [ - 7.7861469, - 47.256098 + 7.5309535, + 47.1309652 ], [ - 7.7746009, - 47.267869 + 7.5176703, + 47.1309652 ], [ - 7.7568187, - 47.258095 + 7.5176478, + 47.121959 ], [ - 7.7326672, - 47.2591133 + 7.5176927, + 47.1129198 ], [ - 7.684769, - 47.2939919 + 7.4913057, + 47.1130114 ], [ - 7.6482742, - 47.2819898 + 7.4913506, + 47.1040318 ], [ - 7.5801066, - 47.2763483 + 7.478202, + 47.1040013 ], [ - 7.5936981, - 47.2662199 + 7.4781282, + 47.0770534 ], [ - 7.5959384, - 47.245569 + 7.4649349, + 47.0770839 ], [ - 7.6261802, - 47.2263143 + 7.4649797, + 47.0680676 ], [ - 7.6405558, - 47.2297944 + 7.4255179, + 47.0680065 ], [ - 7.6484666, - 47.2189525 + 7.4254282, + 47.0860069 ], [ - 7.6472258, - 47.2017823 + 7.372789, + 47.0859763 ], [ - 7.6715278, - 47.1949714 + 7.3728787, + 47.1040318 ], [ - 7.6711002, - 47.1845216 + 7.3595955, + 47.1040318 ], [ - 7.6779881, - 47.1819259 + 7.3595506, + 47.1309967 ], [ - 7.6728612, - 47.1683945 + 7.4122796, + 47.1309967 ], [ - 7.6600808, - 47.1684026 + 7.4122347, + 47.1490064 ], [ - 7.6451021, - 47.1489207 + 7.4253833, + 47.1490064 ], [ - 7.6155322, - 47.1565739 + 7.4255179, + 47.1580089 ], [ - 7.5861404, - 47.1475453 + 7.3726992, + 47.157965 ], [ - 7.5810534, - 47.16013 + 7.3726992, + 47.1849769 ], [ - 7.5634674, - 47.1683541 + 7.3462674, + 47.1849159 ], [ - 7.5257686, - 47.162205 + 7.3463572, + 47.2028721 ], [ - 7.5203336, - 47.1588879 + 7.333074, + 47.2029026 ], [ - 7.5297508, - 47.1487369 + 7.333074, + 47.2209598 ], [ - 7.5097234, - 47.1255457 + 7.346142, + 47.2209598 ], [ - 7.4613252, - 47.1082327 + 7.346142, + 47.2299135 ], [ - 7.4750945, - 47.0867101 + 7.3725646, + 47.2299135 ], [ - 7.454461, - 47.074927 + 7.3726992, + 47.2389023 ], [ - 7.4354156, - 47.0801664 + 7.3989964, + 47.2389632 ], [ - 7.4340002, - 47.1005003 + 7.399131, + 47.2479201 ], [ - 7.3820271, - 47.0957398 + 7.4122796, + 47.2479201 ], [ - 7.3704914, - 47.1209312 + 7.4122796, + 47.2659206 ], [ - 7.4401788, - 47.1237276 + 7.45186, + 47.2658901 ], [ - 7.4217922, - 47.1358605 + 7.4519497, + 47.2749033 ], [ - 7.447783, - 47.1550805 + 7.4650534, + 47.2749337 ], [ - 7.4728074, - 47.1525609 + 7.4650983, + 47.2838541 ], [ - 7.4970383, - 47.1700873 + 7.4782918, + 47.2838541 ], [ - 7.4804964, - 47.171738 + 7.4783367, + 47.2929251 ], [ - 7.4708545, - 47.181324 + 7.504596, + 47.2928845 ], [ - 7.4757226, - 47.1906485 + 7.5047307, + 47.3018322 ], [ - 7.4497638, - 47.1895691 + 7.5312002, + 47.3018119 ], [ - 7.4476258, - 47.1810839 + 7.53129, + 47.3197941 ], [ - 7.4332849, - 47.1847269 + 7.5444835, + 47.3198549 ], [ - 7.4118135, - 47.1624212 + 7.5445283, + 47.3287981 ], [ - 7.3842442, - 47.1601249 + 7.5576769, + 47.3288285 ], [ - 7.3821749, - 47.1651186 + 7.5576769, + 47.3378614 ], [ - 7.391911, - 47.1662739 + 7.5312451, + 47.3378614 ], [ - 7.3835137, - 47.1803011 + 7.5313349, + 47.3558617 ], [ - 7.3654609, - 47.1944525 + 7.5180068, + 47.3558313 ], [ - 7.3544799, - 47.1915316 + 7.5180965, + 47.3648291 ], [ - 7.3404127, - 47.2175697 - ] - ], - [ + 7.3987991, + 47.3648373 + ], + [ + 7.3988853, + 47.3918171 + ], + [ + 7.3856422, + 47.391813 + ], + [ + 7.3856361, + 47.4008028 + ], + [ + 7.3723427, + 47.4007987 + ], [ - 7.420816, - 47.4803666 + 7.3723427, + 47.4097769 ], [ - 7.4349836, - 47.4981011 + 7.3458375, + 47.4097769 ], [ - 7.4707584, - 47.480734 + 7.3458375, + 47.4187804 ], [ - 7.487277, - 47.4820136 + 7.3192515, + 47.4187804 ], [ - 7.5116652, - 47.5026958 + 7.3192515, + 47.4457788 ], [ - 7.5317892, - 47.4973989 + 7.4121035, + 47.4457788 ], [ - 7.5366964, - 47.4850517 + 7.4121035, + 47.4907816 ], [ - 7.5274454, - 47.4739062 + 7.4253513, + 47.4907816 ], [ - 7.5306791, - 47.4611886 + 7.4253513, + 47.4998066 ], [ - 7.4565122, - 47.4492558 + 7.4385572, + 47.4998066 ], [ - 7.445214, - 47.4623781 + 7.4385572, + 47.5087647 ], [ - 7.4557367, - 47.4733767 + 7.4917722, + 47.5087647 ], [ - 7.420816, - 47.4803666 - ] - ], - [ + 7.4917832, + 47.6346827 + ], + [ + 7.7844981, + 47.6342779 + ], [ - 7.3759458, - 47.4140995 + 7.7841548, + 47.5712255 ], [ - 7.3821514, - 47.4330266 + 7.8107408, + 47.5711386 ], [ - 7.4209041, - 47.4459442 + 7.8107408, + 47.5621621 ], [ - 7.4378427, - 47.4463232 + 7.8239482, + 47.5620566 ], [ - 7.4555765, - 47.4279232 + 7.8238715, + 47.5441362 ], [ - 7.4437574, - 47.413444 + 7.8636799, + 47.5439699 ], [ - 7.3759458, - 47.4140995 - ] - ], - [ + 7.8636317, + 47.5349751 + ], + [ + 7.8767918, + 47.5349474 + ], + [ + 7.8767504, + 47.5259917 + ], + [ + 7.8900971, + 47.5259637 + ], + [ + 7.8900555, + 47.5169501 + ], + [ + 7.9031858, + 47.5169225 + ], [ - 7.6744234, - 47.1539707 + 7.9031025, + 47.4988609 ], [ - 7.6853662, - 47.1662986 + 7.9164877, + 47.4988327 ], [ - 7.7007985, - 47.1617746 + 7.9164458, + 47.4897557 ], [ - 7.6901531, - 47.1525567 + 7.9561223, + 47.4896722 ], [ - 7.6744234, - 47.1539707 + 7.9559502, + 47.4716195 ] ] ], @@ -62626,11 +70583,1082 @@ "best": true, "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEX///+LKCbMAABycnL+/v7v7+9sbGz39/fz8/Pw8PD8/Pz60siYAAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIGAsXN84mS+sAAAA4SURBVAjXY2AUBAMBBkYlMCCXwcwABgZYGCwGIJo5AMQGAjYgLgYxLICY05iBwRisjsvY2IGBAQAGpQmjMKkg/wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wOC0yNFQxMToyMzo1NS0wNDowMLEFqzIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMDgtMjRUMTE6MjM6NTUtMDQ6MDDAWBOOAAAAAElFTkSuQmCC" }, + { + "id": "Solothurn-infrared-SOGIS", + "name": "Kanton Solothurn Infrarot (SOGIS)", + "type": "wms", + "template": "http://geoweb.so.ch/wms/sogis_orthofoto.wms?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Orthofoto_CIR_SO&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "endDate": "2017-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", + "scaleExtent": [ + 15, + 19 + ], + "polygon": [ + [ + [ + 7.5704216, + 47.1579174 + ], + [ + 7.5573628, + 47.1579479 + ], + [ + 7.5573179, + 47.1488843 + ], + [ + 7.5442142, + 47.1489453 + ], + [ + 7.5441693, + 47.1399107 + ], + [ + 7.5309759, + 47.1399107 + ], + [ + 7.530931, + 47.121959 + ], + [ + 7.5176478, + 47.121959 + ], + [ + 7.5176927, + 47.1129198 + ], + [ + 7.4913057, + 47.1130114 + ], + [ + 7.4913506, + 47.1040318 + ], + [ + 7.478202, + 47.1040013 + ], + [ + 7.4781572, + 47.094959 + ], + [ + 7.4914404, + 47.0949896 + ], + [ + 7.4913955, + 47.0770227 + ], + [ + 7.4781572, + 47.0770533 + ], + [ + 7.478202, + 47.068037 + ], + [ + 7.4255179, + 47.0680065 + ], + [ + 7.4254282, + 47.0860069 + ], + [ + 7.372789, + 47.0859763 + ], + [ + 7.3728787, + 47.1040318 + ], + [ + 7.3595955, + 47.1040318 + ], + [ + 7.3595506, + 47.1309967 + ], + [ + 7.4122796, + 47.1309967 + ], + [ + 7.4122347, + 47.1490064 + ], + [ + 7.4253833, + 47.1490064 + ], + [ + 7.4255179, + 47.1580089 + ], + [ + 7.399131, + 47.1580394 + ], + [ + 7.399131, + 47.1490064 + ], + [ + 7.3726992, + 47.1489758 + ], + [ + 7.3726992, + 47.1849769 + ], + [ + 7.3462674, + 47.1849159 + ], + [ + 7.3463572, + 47.1939124 + ], + [ + 7.333074, + 47.1939429 + ], + [ + 7.333074, + 47.2299135 + ], + [ + 7.3725646, + 47.2299135 + ], + [ + 7.3726992, + 47.2389023 + ], + [ + 7.3989964, + 47.2389632 + ], + [ + 7.399131, + 47.2479201 + ], + [ + 7.4122796, + 47.2479201 + ], + [ + 7.4122796, + 47.2659206 + ], + [ + 7.45186, + 47.2658901 + ], + [ + 7.4519497, + 47.2749033 + ], + [ + 7.4650534, + 47.2749337 + ], + [ + 7.4650983, + 47.2838541 + ], + [ + 7.4782918, + 47.2838541 + ], + [ + 7.4783367, + 47.2929251 + ], + [ + 7.4914852, + 47.2928946 + ], + [ + 7.4916199, + 47.3018423 + ], + [ + 7.5312002, + 47.3018119 + ], + [ + 7.53129, + 47.3197941 + ], + [ + 7.5444835, + 47.3198549 + ], + [ + 7.5445283, + 47.3287981 + ], + [ + 7.5576769, + 47.3288285 + ], + [ + 7.5576769, + 47.3378614 + ], + [ + 7.5312451, + 47.3378614 + ], + [ + 7.5313349, + 47.3558617 + ], + [ + 7.5180068, + 47.3558313 + ], + [ + 7.5180965, + 47.3648291 + ], + [ + 7.4386216, + 47.3649203 + ], + [ + 7.4386665, + 47.3738862 + ], + [ + 7.4253833, + 47.373947 + ], + [ + 7.4254282, + 47.4008052 + ], + [ + 7.3855786, + 47.4008963 + ], + [ + 7.3856683, + 47.4097954 + ], + [ + 7.3591468, + 47.4097954 + ], + [ + 7.3591468, + 47.418784 + ], + [ + 7.3723851, + 47.4188447 + ], + [ + 7.3724748, + 47.4368174 + ], + [ + 7.3857132, + 47.4368174 + ], + [ + 7.3857132, + 47.4410365 + ], + [ + 7.3956307, + 47.4401563 + ], + [ + 7.3963039, + 47.4425844 + ], + [ + 7.4076125, + 47.4410972 + ], + [ + 7.4079267, + 47.4422505 + ], + [ + 7.403125, + 47.442463 + ], + [ + 7.3973809, + 47.4433128 + ], + [ + 7.3983233, + 47.4458318 + ], + [ + 7.412145, + 47.4458318 + ], + [ + 7.4122796, + 47.4547839 + ], + [ + 7.4386665, + 47.454875 + ], + [ + 7.4388012, + 47.47053 + ], + [ + 7.450065, + 47.4694076 + ], + [ + 7.450065, + 47.4722287 + ], + [ + 7.4464749, + 47.4722287 + ], + [ + 7.4464749, + 47.473806 + ], + [ + 7.4429297, + 47.473897 + ], + [ + 7.4428848, + 47.4755349 + ], + [ + 7.439205, + 47.4755956 + ], + [ + 7.439205, + 47.4772032 + ], + [ + 7.4355701, + 47.4772941 + ], + [ + 7.4354803, + 47.4789926 + ], + [ + 7.4173954, + 47.4789623 + ], + [ + 7.4174403, + 47.4857254 + ], + [ + 7.4209855, + 47.4857254 + ], + [ + 7.4210752, + 47.4908199 + ], + [ + 7.4276271, + 47.4907289 + ], + [ + 7.4285246, + 47.4934882 + ], + [ + 7.4309928, + 47.4964293 + ], + [ + 7.4348521, + 47.4988852 + ], + [ + 7.4418976, + 47.4955197 + ], + [ + 7.4466544, + 47.4945495 + ], + [ + 7.4501098, + 47.4917599 + ], + [ + 7.4508727, + 47.4906986 + ], + [ + 7.4645149, + 47.4907289 + ], + [ + 7.4645598, + 47.4890308 + ], + [ + 7.4681947, + 47.4890005 + ], + [ + 7.4681947, + 47.4856648 + ], + [ + 7.4718746, + 47.4857254 + ], + [ + 7.4719194, + 47.4823288 + ], + [ + 7.4826896, + 47.4823895 + ], + [ + 7.4826447, + 47.4838755 + ], + [ + 7.4862348, + 47.4839665 + ], + [ + 7.4863694, + 47.4856648 + ], + [ + 7.4899146, + 47.4856648 + ], + [ + 7.4900043, + 47.4906986 + ], + [ + 7.4996975, + 47.4907289 + ], + [ + 7.4996526, + 47.491396 + ], + [ + 7.4917545, + 47.4919418 + ], + [ + 7.4917545, + 47.4951256 + ], + [ + 7.4982166, + 47.494792 + ], + [ + 7.4988897, + 47.4958533 + ], + [ + 7.4956587, + 47.4962777 + ], + [ + 7.4917096, + 47.4962474 + ], + [ + 7.4917994, + 47.4997341 + ], + [ + 7.5050377, + 47.4997038 + ], + [ + 7.5050377, + 47.5087377 + ], + [ + 7.5447976, + 47.5087074 + ], + [ + 7.5447426, + 47.4548204 + ], + [ + 7.4916868, + 47.4546917 + ], + [ + 7.4917503, + 47.445808 + ], + [ + 7.4652859, + 47.4457651 + ], + [ + 7.4652224, + 47.409829 + ], + [ + 7.4915599, + 47.409786 + ], + [ + 7.4917503, + 47.3919161 + ], + [ + 7.5048873, + 47.3918302 + ], + [ + 7.5048873, + 47.40068 + ], + [ + 7.5182147, + 47.4007659 + ], + [ + 7.5183416, + 47.4187616 + ], + [ + 7.5579431, + 47.4187187 + ], + [ + 7.5581335, + 47.445808 + ], + [ + 7.5845344, + 47.4457222 + ], + [ + 7.5844075, + 47.4366653 + ], + [ + 7.6109354, + 47.4366224 + ], + [ + 7.6109988, + 47.4637025 + ], + [ + 7.5976714, + 47.4637025 + ], + [ + 7.5979253, + 47.4996448 + ], + [ + 7.6243263, + 47.4996877 + ], + [ + 7.6244532, + 47.4905972 + ], + [ + 7.6377806, + 47.4905543 + ], + [ + 7.6378441, + 47.4996019 + ], + [ + 7.6775724, + 47.4994733 + ], + [ + 7.6774455, + 47.4904686 + ], + [ + 7.7038465, + 47.4904257 + ], + [ + 7.7039099, + 47.4814623 + ], + [ + 7.7171104, + 47.4812907 + ], + [ + 7.7171104, + 47.45452 + ], + [ + 7.7039734, + 47.45452 + ], + [ + 7.7038465, + 47.4455934 + ], + [ + 7.6904556, + 47.4455076 + ], + [ + 7.6903287, + 47.4095713 + ], + [ + 7.6771282, + 47.4094854 + ], + [ + 7.6771282, + 47.40068 + ], + [ + 7.6506638, + 47.40068 + ], + [ + 7.6504734, + 47.3736534 + ], + [ + 7.6770647, + 47.3735674 + ], + [ + 7.6770647, + 47.3825062 + ], + [ + 7.7166661, + 47.3825062 + ], + [ + 7.7167931, + 47.3734385 + ], + [ + 7.7430671, + 47.3733955 + ], + [ + 7.7430671, + 47.3553843 + ], + [ + 7.7562041, + 47.3553413 + ], + [ + 7.7563311, + 47.3463979 + ], + [ + 7.7826051, + 47.3462689 + ], + [ + 7.7829224, + 47.3643262 + ], + [ + 7.7961229, + 47.3642832 + ], + [ + 7.7961863, + 47.3732666 + ], + [ + 7.8226508, + 47.3731376 + ], + [ + 7.8227142, + 47.3822914 + ], + [ + 7.8491152, + 47.3821195 + ], + [ + 7.8492421, + 47.3910568 + ], + [ + 7.8625061, + 47.3909709 + ], + [ + 7.862633, + 47.4090559 + ], + [ + 7.8758969, + 47.40897 + ], + [ + 7.8760239, + 47.4180316 + ], + [ + 7.9024248, + 47.4179457 + ], + [ + 7.9024248, + 47.40897 + ], + [ + 7.9288892, + 47.4087982 + ], + [ + 7.9291431, + 47.4178169 + ], + [ + 7.9421532, + 47.4176881 + ], + [ + 7.9426609, + 47.4627586 + ], + [ + 7.9559248, + 47.462587 + ], + [ + 7.9561152, + 47.4716394 + ], + [ + 7.9823893, + 47.4715536 + ], + [ + 7.9823893, + 47.453533 + ], + [ + 7.9955263, + 47.453533 + ], + [ + 7.995209, + 47.4174733 + ], + [ + 8.0218003, + 47.4174304 + ], + [ + 8.0215465, + 47.3993483 + ], + [ + 8.0345565, + 47.3992624 + ], + [ + 8.0346835, + 47.3902835 + ], + [ + 8.0478839, + 47.3901546 + ], + [ + 8.0476936, + 47.3722351 + ], + [ + 8.0345565, + 47.372321 + ], + [ + 8.0343661, + 47.3543954 + ], + [ + 8.0211657, + 47.3542664 + ], + [ + 8.0207214, + 47.3273881 + ], + [ + 7.9944474, + 47.3274741 + ], + [ + 7.994257, + 47.318569 + ], + [ + 7.9677291, + 47.3186551 + ], + [ + 7.9676656, + 47.3096624 + ], + [ + 7.9412012, + 47.3099206 + ], + [ + 7.9413282, + 47.3277752 + ], + [ + 7.9148637, + 47.3278613 + ], + [ + 7.9146733, + 47.3098775 + ], + [ + 7.9015998, + 47.3100497 + ], + [ + 7.9014015, + 47.3009748 + ], + [ + 7.8750084, + 47.3010986 + ], + [ + 7.8750084, + 47.2922321 + ], + [ + 7.861655, + 47.292122 + ], + [ + 7.8615371, + 47.2740879 + ], + [ + 7.8484334, + 47.2741488 + ], + [ + 7.8482988, + 47.2652268 + ], + [ + 7.8350156, + 47.2651964 + ], + [ + 7.8350156, + 47.2562425 + ], + [ + 7.7953454, + 47.2563643 + ], + [ + 7.7953005, + 47.2474089 + ], + [ + 7.7292435, + 47.2475612 + ], + [ + 7.7292884, + 47.2565166 + ], + [ + 7.7162295, + 47.2566689 + ], + [ + 7.7161847, + 47.2655923 + ], + [ + 7.7030361, + 47.2655923 + ], + [ + 7.7030361, + 47.2746055 + ], + [ + 7.6897529, + 47.2746664 + ], + [ + 7.6898875, + 47.2836781 + ], + [ + 7.6634108, + 47.2837085 + ], + [ + 7.6633211, + 47.2746968 + ], + [ + 7.6105472, + 47.2747577 + ], + [ + 7.6104126, + 47.2478658 + ], + [ + 7.6235163, + 47.2476526 + ], + [ + 7.6235612, + 47.2387871 + ], + [ + 7.6498584, + 47.2387566 + ], + [ + 7.649993, + 47.2297678 + ], + [ + 7.6630518, + 47.2297068 + ], + [ + 7.6631044, + 47.2117803 + ], + [ + 7.6762081, + 47.2116888 + ], + [ + 7.6762267, + 47.1937182 + ], + [ + 7.6893753, + 47.1936878 + ], + [ + 7.6892406, + 47.1757237 + ], + [ + 7.7024341, + 47.1756017 + ], + [ + 7.702479, + 47.1666326 + ], + [ + 7.7156724, + 47.1666326 + ], + [ + 7.7155827, + 47.1576926 + ], + [ + 7.7023892, + 47.1576621 + ], + [ + 7.7023444, + 47.14869 + ], + [ + 7.6626742, + 47.1488121 + ], + [ + 7.6628088, + 47.1397774 + ], + [ + 7.6363322, + 47.1398995 + ], + [ + 7.6364668, + 47.14869 + ], + [ + 7.5967967, + 47.1489341 + ], + [ + 7.5968415, + 47.1399606 + ], + [ + 7.5704098, + 47.1399911 + ], + [ + 7.5704216, + 47.1579174 + ] + ] + ], + "terms_text": "Orthofoto WMS Solothurn", + "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAIVBMVEX///+LKCbMAABycnL+/v7v7+9sbGz39/fz8/Pw8PD8/Pz60siYAAAAAWJLR0QAiAUdSAAAAAd0SU1FB+AIGAsXN84mS+sAAAA4SURBVAjXY2AUBAMBBkYlMCCXwcwABgZYGCwGIJo5AMQGAjYgLgYxLICY05iBwRisjsvY2IGBAQAGpQmjMKkg/wAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNi0wOC0yNFQxMToyMzo1NS0wNDowMLEFqzIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTYtMDgtMjRUMTE6MjM6NTUtMDQ6MDDAWBOOAAAAAElFTkSuQmCC" + }, { "id": "KTTHURGAU2017", "name": "Kanton Thurgau OF 2017", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/KTTHURGAU2017/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/KTTHURGAU2017/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 8, 21 @@ -62914,7 +71942,7 @@ "id": "KTZUERICH2015", "name": "Kanton Zürich 2015 10cm", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/KTZUERICH2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/KTZUERICH2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 8, 21 @@ -66998,6 +76026,880 @@ "terms_url": "http://data.loire-atlantique.fr/licence/", "terms_text": "Département de Loire-Atlantique" }, + { + "id": "Lombardia-Italy-CTR-DBT", + "name": "Lombardia - Italy (CTR DBT)", + "type": "wms", + "template": "http://www.cartografia.servizirl.it/arcgis/services/wms/ctr_wms/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Sfondo C.T.R. 10000&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 8.4815995, + 45.2893842 + ], + [ + 8.6308463, + 45.0137199 + ], + [ + 8.7800932, + 44.9818911 + ], + [ + 8.8677461, + 45.0271162 + ], + [ + 9.0714799, + 44.8006338 + ], + [ + 9.1496568, + 44.7905472 + ], + [ + 9.1946678, + 44.6710553 + ], + [ + 9.3154866, + 44.6575759 + ], + [ + 9.3699736, + 44.6980046 + ], + [ + 9.3794496, + 44.8275228 + ], + [ + 9.3320696, + 44.9148254 + ], + [ + 9.4102465, + 45.0371613 + ], + [ + 9.7869171, + 45.0438571 + ], + [ + 9.7869171, + 45.0003204 + ], + [ + 9.938533, + 45.0019955 + ], + [ + 9.933795, + 45.0890333 + ], + [ + 10.0001269, + 45.0907058 + ], + [ + 10.0001269, + 44.9969701 + ], + [ + 10.2014917, + 45.0019955 + ], + [ + 10.2014917, + 44.9500447 + ], + [ + 10.4052255, + 44.9533977 + ], + [ + 10.4052255, + 44.9047588 + ], + [ + 10.4928784, + 44.9030808 + ], + [ + 10.4928784, + 44.8627956 + ], + [ + 10.6516012, + 44.8577579 + ], + [ + 10.6468633, + 44.9030808 + ], + [ + 11.3528245, + 44.8946904 + ], + [ + 11.3551935, + 44.9366303 + ], + [ + 11.4570604, + 44.9332763 + ], + [ + 11.4475844, + 44.9735122 + ], + [ + 11.3623005, + 45.0003204 + ], + [ + 11.3528245, + 45.0923782 + ], + [ + 11.2580646, + 45.095723 + ], + [ + 11.2580646, + 45.137516 + ], + [ + 11.1609357, + 45.1425291 + ], + [ + 11.1609357, + 45.1826181 + ], + [ + 11.0519618, + 45.1909664 + ], + [ + 11.0519618, + 45.234358 + ], + [ + 10.9572019, + 45.2326897 + ], + [ + 10.9572019, + 45.2860508 + ], + [ + 10.857704, + 45.284384 + ], + [ + 10.855335, + 45.3227074 + ], + [ + 10.7463612, + 45.3293697 + ], + [ + 10.7534681, + 45.4740809 + ], + [ + 10.6468633, + 45.4807254 + ], + [ + 10.6030084, + 45.5107366 + ], + [ + 10.5763572, + 45.4737864 + ], + [ + 10.535492, + 45.5003598 + ], + [ + 10.5911634, + 45.5314845 + ], + [ + 10.6166585, + 45.613036 + ], + [ + 10.874287, + 45.840014 + ], + [ + 10.8221691, + 45.8598152 + ], + [ + 10.6752912, + 45.8581654 + ], + [ + 10.5734243, + 45.8102989 + ], + [ + 10.5862444, + 46.0077329 + ], + [ + 10.5016004, + 46.015957 + ], + [ + 10.593248, + 46.1152934 + ], + [ + 10.6089593, + 46.3558255 + ], + [ + 10.6563392, + 46.3868822 + ], + [ + 10.6468633, + 46.4603672 + ], + [ + 10.4147015, + 46.5728517 + ], + [ + 10.3270486, + 46.5679659 + ], + [ + 10.2512407, + 46.6542168 + ], + [ + 10.0735658, + 46.6249395 + ], + [ + 10.0238169, + 46.5321233 + ], + [ + 10.0285549, + 46.4358832 + ], + [ + 10.0735658, + 46.3983197 + ], + [ + 10.1209458, + 46.3966859 + ], + [ + 10.0783038, + 46.3280229 + ], + [ + 10.1446358, + 46.2658249 + ], + [ + 10.1043628, + 46.247807 + ], + [ + 9.9740679, + 46.4081214 + ], + [ + 9.7111092, + 46.3689041 + ], + [ + 9.6874192, + 46.3231151 + ], + [ + 9.6187183, + 46.3067526 + ], + [ + 9.5571244, + 46.3247511 + ], + [ + 9.5026374, + 46.3901503 + ], + [ + 9.4789475, + 46.525604 + ], + [ + 9.2562617, + 46.5158234 + ], + [ + 9.2254647, + 46.4407808 + ], + [ + 9.2728447, + 46.3443791 + ], + [ + 9.1709778, + 46.190438 + ], + [ + 9.0430519, + 46.1280838 + ], + [ + 9.0620039, + 46.0919516 + ], + [ + 8.974351, + 46.0459311 + ], + [ + 8.988565, + 46.0015177 + ], + [ + 8.938816, + 45.9735355 + ], + [ + 9.0406829, + 45.8960992 + ], + [ + 9.0193619, + 45.8482654 + ], + [ + 8.8487941, + 46.0080997 + ], + [ + 8.8985431, + 46.0705897 + ], + [ + 8.8251041, + 46.1182319 + ], + [ + 8.7090233, + 46.1165897 + ], + [ + 8.6782263, + 46.0755201 + ], + [ + 8.7184992, + 46.014681 + ], + [ + 8.5550384, + 45.9043422 + ], + [ + 8.5976804, + 45.8383636 + ], + [ + 8.5337174, + 45.7937837 + ], + [ + 8.6877023, + 45.4923513 + ], + [ + 8.7800932, + 45.4159083 + ], + [ + 8.6853333, + 45.379312 + ], + [ + 8.7113923, + 45.3410269 + ], + [ + 8.6948093, + 45.3210417 + ], + [ + 8.6284773, + 45.377648 + ], + [ + 8.5123965, + 45.3576757 + ], + [ + 8.4815995, + 45.2893842 + ] + ] + ], + "terms_url": "http://www.dati.gov.it/iodl/2.0", + "terms_text": "CTR DBT 10000 Regione Lombardia" + }, + { + "id": "Lombardia-Italy-CTR", + "name": "Lombardia - Italy (CTR)", + "type": "wms", + "template": "http://www.cartografia.regione.lombardia.it/ArcGIS10/services/wms/ctr_wms/MapServer/WMSServer?STYLES=&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=0&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 8.4815995, + 45.2893842 + ], + [ + 8.6308463, + 45.0137199 + ], + [ + 8.7800932, + 44.9818911 + ], + [ + 8.8677461, + 45.0271162 + ], + [ + 9.0714799, + 44.8006338 + ], + [ + 9.1496568, + 44.7905472 + ], + [ + 9.1946678, + 44.6710553 + ], + [ + 9.3154866, + 44.6575759 + ], + [ + 9.3699736, + 44.6980046 + ], + [ + 9.3794496, + 44.8275228 + ], + [ + 9.3320696, + 44.9148254 + ], + [ + 9.4102465, + 45.0371613 + ], + [ + 9.7869171, + 45.0438571 + ], + [ + 9.7869171, + 45.0003204 + ], + [ + 9.938533, + 45.0019955 + ], + [ + 9.933795, + 45.0890333 + ], + [ + 10.0001269, + 45.0907058 + ], + [ + 10.0001269, + 44.9969701 + ], + [ + 10.2014917, + 45.0019955 + ], + [ + 10.2014917, + 44.9500447 + ], + [ + 10.4052255, + 44.9533977 + ], + [ + 10.4052255, + 44.9047588 + ], + [ + 10.4928784, + 44.9030808 + ], + [ + 10.4928784, + 44.8627956 + ], + [ + 10.6516012, + 44.8577579 + ], + [ + 10.6468633, + 44.9030808 + ], + [ + 11.3528245, + 44.8946904 + ], + [ + 11.3551935, + 44.9366303 + ], + [ + 11.4570604, + 44.9332763 + ], + [ + 11.4475844, + 44.9735122 + ], + [ + 11.3623005, + 45.0003204 + ], + [ + 11.3528245, + 45.0923782 + ], + [ + 11.2580646, + 45.095723 + ], + [ + 11.2580646, + 45.137516 + ], + [ + 11.1609357, + 45.1425291 + ], + [ + 11.1609357, + 45.1826181 + ], + [ + 11.0519618, + 45.1909664 + ], + [ + 11.0519618, + 45.234358 + ], + [ + 10.9572019, + 45.2326897 + ], + [ + 10.9572019, + 45.2860508 + ], + [ + 10.857704, + 45.284384 + ], + [ + 10.855335, + 45.3227074 + ], + [ + 10.7463612, + 45.3293697 + ], + [ + 10.7534681, + 45.4740809 + ], + [ + 10.6468633, + 45.4807254 + ], + [ + 10.6030084, + 45.5107366 + ], + [ + 10.5763572, + 45.4737864 + ], + [ + 10.535492, + 45.5003598 + ], + [ + 10.5911634, + 45.5314845 + ], + [ + 10.6166585, + 45.613036 + ], + [ + 10.874287, + 45.840014 + ], + [ + 10.8221691, + 45.8598152 + ], + [ + 10.6752912, + 45.8581654 + ], + [ + 10.5734243, + 45.8102989 + ], + [ + 10.5862444, + 46.0077329 + ], + [ + 10.5016004, + 46.015957 + ], + [ + 10.593248, + 46.1152934 + ], + [ + 10.6089593, + 46.3558255 + ], + [ + 10.6563392, + 46.3868822 + ], + [ + 10.6468633, + 46.4603672 + ], + [ + 10.4147015, + 46.5728517 + ], + [ + 10.3270486, + 46.5679659 + ], + [ + 10.2512407, + 46.6542168 + ], + [ + 10.0735658, + 46.6249395 + ], + [ + 10.0238169, + 46.5321233 + ], + [ + 10.0285549, + 46.4358832 + ], + [ + 10.0735658, + 46.3983197 + ], + [ + 10.1209458, + 46.3966859 + ], + [ + 10.0783038, + 46.3280229 + ], + [ + 10.1446358, + 46.2658249 + ], + [ + 10.1043628, + 46.247807 + ], + [ + 9.9740679, + 46.4081214 + ], + [ + 9.7111092, + 46.3689041 + ], + [ + 9.6874192, + 46.3231151 + ], + [ + 9.6187183, + 46.3067526 + ], + [ + 9.5571244, + 46.3247511 + ], + [ + 9.5026374, + 46.3901503 + ], + [ + 9.4789475, + 46.525604 + ], + [ + 9.2562617, + 46.5158234 + ], + [ + 9.2254647, + 46.4407808 + ], + [ + 9.2728447, + 46.3443791 + ], + [ + 9.1709778, + 46.190438 + ], + [ + 9.0430519, + 46.1280838 + ], + [ + 9.0620039, + 46.0919516 + ], + [ + 8.974351, + 46.0459311 + ], + [ + 8.988565, + 46.0015177 + ], + [ + 8.938816, + 45.9735355 + ], + [ + 9.0406829, + 45.8960992 + ], + [ + 9.0193619, + 45.8482654 + ], + [ + 8.8487941, + 46.0080997 + ], + [ + 8.8985431, + 46.0705897 + ], + [ + 8.8251041, + 46.1182319 + ], + [ + 8.7090233, + 46.1165897 + ], + [ + 8.6782263, + 46.0755201 + ], + [ + 8.7184992, + 46.014681 + ], + [ + 8.5550384, + 45.9043422 + ], + [ + 8.5976804, + 45.8383636 + ], + [ + 8.5337174, + 45.7937837 + ], + [ + 8.6877023, + 45.4923513 + ], + [ + 8.7800932, + 45.4159083 + ], + [ + 8.6853333, + 45.379312 + ], + [ + 8.7113923, + 45.3410269 + ], + [ + 8.6948093, + 45.3210417 + ], + [ + 8.6284773, + 45.377648 + ], + [ + 8.5123965, + 45.3576757 + ], + [ + 8.4815995, + 45.2893842 + ] + ] + ], + "terms_url": "http://www.dati.gov.it/iodl/2.0", + "terms_text": "Regione Lombardia - Infrastruttura per l'informazione territoriale" + }, { "id": "londrina2011", "name": "Londrina Ortofoto 2011", @@ -81949,6 +91851,10 @@ "name": "OS New Popular Edition historic", "type": "tms", "template": "https://ooc.openstreetmap.org/npe/{zoom}/{x}/{y}.png", + "scaleExtent": [ + 6, + 22 + ], "polygon": [ [ [ @@ -84607,6 +94513,469 @@ ] ] }, + { + "id": "PCN-Lazio_Umbria-2008", + "name": "PCN 2008 - IT Lazio+Umbria", + "type": "wms", + "template": "http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/ortofoto_colore_08.map&FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=OI.ORTOIMMAGINI.2008.33&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + 12.3314895, + 41.6463669 + ], + [ + 12.4117815, + 41.6479098 + ], + [ + 12.4149931, + 41.5463482 + ], + [ + 12.4957439, + 41.5478934 + ], + [ + 12.4984968, + 41.4961949 + ], + [ + 12.5794769, + 41.4984285 + ], + [ + 12.580624, + 41.4293206 + ], + [ + 12.6063174, + 41.4288046 + ], + [ + 12.6074644, + 41.396632 + ], + [ + 12.8292996, + 41.3981807 + ], + [ + 12.8315936, + 41.3468793 + ], + [ + 12.9128032, + 41.3484293 + ], + [ + 12.9150973, + 41.297261 + ], + [ + 12.995848, + 41.2982951 + ], + [ + 12.9979127, + 41.1963575 + ], + [ + 13.1679022, + 41.1980837 + ], + [ + 13.167214, + 41.246915 + ], + [ + 13.4133661, + 41.2482949 + ], + [ + 13.4152014, + 41.197048 + ], + [ + 13.8340959, + 41.1980837 + ], + [ + 13.8334077, + 41.2476049 + ], + [ + 13.9173702, + 41.2484673 + ], + [ + 13.916682, + 41.3974924 + ], + [ + 14.0011032, + 41.3978366 + ], + [ + 13.9999562, + 41.4977413 + ], + [ + 14.084148, + 41.4982567 + ], + [ + 14.0834598, + 41.6501382 + ], + [ + 14.0008738, + 41.6497954 + ], + [ + 13.9997268, + 41.7505095 + ], + [ + 13.8343254, + 41.7496537 + ], + [ + 13.8336371, + 41.8004653 + ], + [ + 13.7515099, + 41.7997813 + ], + [ + 13.7499041, + 41.8498696 + ], + [ + 13.4184131, + 41.8496988 + ], + [ + 13.4168072, + 41.95027 + ], + [ + 13.3344506, + 41.9495876 + ], + [ + 13.3333036, + 42.000411 + ], + [ + 13.2514058, + 41.9997291 + ], + [ + 13.2500294, + 42.0505125 + ], + [ + 13.0850868, + 42.0496608 + ], + [ + 13.0839398, + 42.097 + ], + [ + 13.3339918, + 42.0981915 + ], + [ + 13.3337624, + 42.1471955 + ], + [ + 13.4177249, + 42.148216 + ], + [ + 13.4163484, + 42.2505237 + ], + [ + 13.3339918, + 42.2498444 + ], + [ + 13.333533, + 42.3009367 + ], + [ + 13.2514058, + 42.2999186 + ], + [ + 13.2500294, + 42.5469887 + ], + [ + 13.4179543, + 42.5481718 + ], + [ + 13.4158896, + 42.7506484 + ], + [ + 13.33468, + 42.7494692 + ], + [ + 13.3330742, + 42.9005609 + ], + [ + 13.168361, + 42.8993846 + ], + [ + 13.167214, + 42.9507867 + ], + [ + 12.9641901, + 42.9501151 + ], + [ + 12.9625842, + 43.0003005 + ], + [ + 12.9187678, + 42.9997972 + ], + [ + 12.9160149, + 43.2507803 + ], + [ + 12.8352641, + 43.2499449 + ], + [ + 12.8322819, + 43.5010663 + ], + [ + 12.66321, + 43.4994022 + ], + [ + 12.6648158, + 43.451125 + ], + [ + 12.5856709, + 43.4499593 + ], + [ + 12.5824592, + 43.5508 + ], + [ + 12.5017084, + 43.5498024 + ], + [ + 12.4998732, + 43.6513062 + ], + [ + 12.1624176, + 43.6491484 + ], + [ + 12.1649411, + 43.6013233 + ], + [ + 12.078914, + 43.5994959 + ], + [ + 12.0818963, + 43.4519577 + ], + [ + 11.9954104, + 43.4491265 + ], + [ + 11.9986221, + 43.3466146 + ], + [ + 12.078914, + 43.3479492 + ], + [ + 12.0807492, + 43.3018885 + ], + [ + 11.9960986, + 43.2995511 + ], + [ + 11.9986221, + 43.2021377 + ], + [ + 11.9123656, + 43.1992948 + ], + [ + 11.9146596, + 43.1521173 + ], + [ + 11.8320736, + 43.1494395 + ], + [ + 11.832303, + 43.0965284 + ], + [ + 11.9109891, + 43.098371 + ], + [ + 11.9146596, + 42.9019053 + ], + [ + 11.8290913, + 42.8992165 + ], + [ + 11.8313854, + 42.8523123 + ], + [ + 11.7458171, + 42.8494532 + ], + [ + 11.7481112, + 42.6523609 + ], + [ + 11.6730956, + 42.6496612 + ], + [ + 11.6749308, + 42.6105035 + ], + [ + 11.4948474, + 42.5993593 + ], + [ + 11.4985179, + 42.4959273 + ], + [ + 11.5781217, + 42.4979571 + ], + [ + 11.5815627, + 42.4524416 + ], + [ + 11.4122614, + 42.4487177 + ], + [ + 11.4152437, + 42.3465622 + ], + [ + 11.4959945, + 42.3479186 + ], + [ + 11.4992061, + 42.2963554 + ], + [ + 11.5783511, + 42.2982219 + ], + [ + 11.582251, + 42.2462783 + ], + [ + 11.6618547, + 42.2483161 + ], + [ + 11.6662134, + 42.0964893 + ], + [ + 11.7453583, + 42.0981915 + ], + [ + 11.7490288, + 41.9966603 + ], + [ + 11.9144302, + 41.9992176 + ], + [ + 11.9153478, + 41.9862596 + ], + [ + 11.9940339, + 41.9874532 + ], + [ + 11.9986221, + 41.8968453 + ], + [ + 12.0786846, + 41.8990651 + ], + [ + 12.0814375, + 41.8459392 + ], + [ + 12.1631058, + 41.8479899 + ], + [ + 12.1656293, + 41.6964038 + ], + [ + 12.3291955, + 41.6986306 + ], + [ + 12.3314895, + 41.6463669 + ] + ] + ] + }, { "id": "Actueel_ortho25_WMTS", "name": "PDOK Luchtfoto Beeldmateriaal 25cm", @@ -84846,118 +95215,6 @@ "description": "Landsdekkende dataset 25cm resolutie kleuren luchtfotos van de meest recente jaargang.", "icon": "data:image/png;base64,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" }, - { - "id": "Philadelphia2015Imagery", - "name": "Philadelphia 2015 Imagery", - "type": "wms", - "template": "http://maps.pasda.psu.edu/arcgis/services/pasda/PhiladelphiaImagery2015/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:3857", - "polygon": [ - [ - [ - -75.2884151414, - 39.82486515846 - ], - [ - -75.24549979717, - 39.82381045509 - ], - [ - -75.20464438945, - 39.83699308346 - ], - [ - -75.16619224101, - 39.8738909832 - ], - [ - -75.11572379619, - 39.87415446828 - ], - [ - -75.11057395488, - 39.95289110072 - ], - [ - -75.09649772197, - 39.95289110072 - ], - [ - -75.04293937236, - 39.98525480677 - ], - [ - -75.04156608135, - 40.00340334729 - ], - [ - -75.01616019756, - 40.00340334729 - ], - [ - -74.95161551982, - 40.04284005685 - ], - [ - -74.95127219707, - 40.1195447926 - ], - [ - -74.98586196452, - 40.14021663243 - ], - [ - -75.02834815532, - 40.14152891793 - ], - [ - -75.11898536235, - 40.06458621765 - ], - [ - -75.20309943706, - 40.10713867106 - ], - [ - -75.23434180766, - 40.09794749237 - ], - [ - -75.27416724712, - 40.05354975847 - ], - [ - -75.22095222026, - 40.00964901184 - ], - [ - -75.29510993511, - 39.97545522066 - ], - [ - -75.25734443218, - 39.95203575437 - ], - [ - -75.26009101421, - 39.91675985472 - ], - [ - -75.32085914165, - 39.8885787312 - ], - [ - -75.32257575542, - 39.8514251597 - ], - [ - -75.2884151414, - 39.82486515846 - ] - ] - ], - "terms_url": "http://www.pasda.psu.edu/" - }, { "id": "al_piranhas", "name": "Piranhas AL", @@ -87832,6 +98089,644 @@ "terms_url": "http://www.seplande.al.gov.br/", "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" }, + { + "id": "rio2013", + "name": "Rio Mosaic 2013", + "type": "wms", + "template": "http://geo.rio.rj.gov.br/ArcGIS/services/Imagens/Mosaico_2013/MapServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "polygon": [ + [ + [ + -43.17709320917647, + -22.969707888781738 + ], + [ + -43.14585740870588, + -22.969588308044617 + ], + [ + -43.14605222658823, + -22.927190274347275 + ], + [ + -43.156247695764705, + -22.92730989255725 + ], + [ + -43.15647498329411, + -22.87556516592966 + ], + [ + -43.177385435999994, + -22.8749369295143 + ], + [ + -43.177417905647054, + -22.88552681203441 + ], + [ + -43.1980361315294, + -22.885706294449527 + ], + [ + -43.198036131529406, + -22.854293259693964 + ], + [ + -43.21875176635292, + -22.85444286278469 + ], + [ + -43.2190115235294, + -22.833646454489337 + ], + [ + -43.22936934094117, + -22.833646454489337 + ], + [ + -43.2293368712941, + -22.82371093306296 + ], + [ + -43.19868552447057, + -22.823531368775274 + ], + [ + -43.19855564588234, + -22.834125256479705 + ], + [ + -43.18826276776469, + -22.8339756310387 + ], + [ + -43.18803548023528, + -22.844478937331477 + ], + [ + -43.16667045247057, + -22.844419091729687 + ], + [ + -43.166832800705855, + -22.83403548123485 + ], + [ + -43.156377574352916, + -22.83406540632306 + ], + [ + -43.1565399225882, + -22.813355672227665 + ], + [ + -43.104361199764675, + -22.813056375525143 + ], + [ + -43.10445860870584, + -22.802879896393364 + ], + [ + -43.09387350376466, + -22.80276016858602 + ], + [ + -43.094100791294075, + -22.73997839409261 + ], + [ + -43.13598663599996, + -22.739918502607807 + ], + [ + -43.13569440917644, + -22.750668603713393 + ], + [ + -43.12572622752938, + -22.750548830086732 + ], + [ + -43.12556387929409, + -22.771178288335854 + ], + [ + -43.14595481764702, + -22.7710884716159 + ], + [ + -43.14611716588231, + -22.760549566225578 + ], + [ + -43.17771013247056, + -22.760878919332278 + ], + [ + -43.17758025388233, + -22.77114834943578 + ], + [ + -43.188067949882324, + -22.771298043870523 + ], + [ + -43.188067949882324, + -22.781656499945914 + ], + [ + -43.25066942941175, + -22.78162656334464 + ], + [ + -43.25057202047057, + -22.791984235249323 + ], + [ + -43.28054150470587, + -22.792822393946437 + ], + [ + -43.30343260588235, + -22.793121735089624 + ], + [ + -43.33353196870588, + -22.792972064600175 + ], + [ + -43.33346702941175, + -22.802580576677798 + ], + [ + -43.38574316117646, + -22.8024009845329 + ], + [ + -43.38541846470588, + -22.812547569621618 + ], + [ + -43.41691402235293, + -22.81284686744212 + ], + [ + -43.41675167411763, + -22.823411659118616 + ], + [ + -43.42717443082351, + -22.82335180425081 + ], + [ + -43.42740171835291, + -22.833736229990887 + ], + [ + -43.45844270094114, + -22.833616529309033 + ], + [ + -43.45863751882349, + -22.81275707816501 + ], + [ + -43.48984084964701, + -22.812996516105756 + ], + [ + -43.48993825858821, + -22.796504244335274 + ], + [ + -43.5020819065882, + -22.797462107811715 + ], + [ + -43.515426931529376, + -22.797372308396717 + ], + [ + -43.52078442329409, + -22.795905576244728 + ], + [ + -43.54169487599998, + -22.796025310073155 + ], + [ + -43.54179228494115, + -22.802341120431993 + ], + [ + -43.54653285341174, + -22.802460848607485 + ], + [ + -43.54666273199997, + -22.811889112101724 + ], + [ + -43.55250726847058, + -22.81278700793061 + ], + [ + -43.5699109992941, + -22.812936656660003 + ], + [ + -43.56997593858822, + -22.819700607555284 + ], + [ + -43.57361253905883, + -22.823262021899716 + ], + [ + -43.583483311764695, + -22.823291949356644 + ], + [ + -43.583515781411776, + -22.833466903308615 + ], + [ + -43.59390606847059, + -22.83373622999088 + ], + [ + -43.59393853811765, + -22.854682227387414 + ], + [ + -43.66098835929414, + -22.854592465710777 + ], + [ + -43.66098835929414, + -22.859828464394095 + ], + [ + -43.708523922588235, + -22.860187496913827 + ], + [ + -43.70836157435295, + -22.865034343090006 + ], + [ + -43.72206376541177, + -22.864884751657844 + ], + [ + -43.72212870470588, + -22.86847490057084 + ], + [ + -43.75015001011764, + -22.86859457056733 + ], + [ + -43.75008507082353, + -22.87529592210752 + ], + [ + -43.76037794894117, + -22.87526600609435 + ], + [ + -43.759923373882344, + -22.87849689743878 + ], + [ + -43.759761025647045, + -22.884569568478902 + ], + [ + -43.76131956870587, + -22.885855862947494 + ], + [ + -43.78128840164704, + -22.8857960355681 + ], + [ + -43.781255932, + -22.895906488289704 + ], + [ + -43.802133915058825, + -22.896205602636037 + ], + [ + -43.8013546435294, + -22.911369835519228 + ], + [ + -43.80119229529411, + -22.927579033143484 + ], + [ + -43.7921332637647, + -22.927758459903885 + ], + [ + -43.7921982030588, + -22.93822460957403 + ], + [ + -43.78190532494115, + -22.93798539232952 + ], + [ + -43.78184038564702, + -22.94868995021093 + ], + [ + -43.75066952447056, + -22.94845075146181 + ], + [ + -43.75060458517645, + -22.95909468650586 + ], + [ + -43.72985648070586, + -22.958855506152936 + ], + [ + -43.72966166282351, + -22.979841971833356 + ], + [ + -43.709043436941144, + -22.97966261413784 + ], + [ + -43.70891355835292, + -22.99033398260527 + ], + [ + -43.69845833199996, + -22.990064966868836 + ], + [ + -43.698360923058786, + -23.000645848451164 + ], + [ + -43.667352410117616, + -23.000436630016143 + ], + [ + -43.66725500117644, + -23.011166128679353 + ], + [ + -43.631246162588184, + -23.00937295708379 + ], + [ + -43.631311101882304, + -23.02078907569042 + ], + [ + -43.63585685247054, + -23.020908611087243 + ], + [ + -43.636019200705846, + -23.031636481368604 + ], + [ + -43.67771022752937, + -23.031636481368604 + ], + [ + -43.67764528823524, + -23.04233361870472 + ], + [ + -43.67085913199995, + -23.04230373961572 + ], + [ + -43.67108641952936, + -23.063097982243804 + ], + [ + -43.64598738235289, + -23.06303823327472 + ], + [ + -43.646052321647005, + -23.052761015940998 + ], + [ + -43.60475093058818, + -23.052551878372743 + ], + [ + -43.60452364305876, + -23.063068107762582 + ], + [ + -43.58380800823524, + -23.06288886073593 + ], + [ + -43.583678129647005, + -23.08403836134171 + ], + [ + -43.54185722423525, + -23.083829272389394 + ], + [ + -43.54195463317643, + -23.06318760564771 + ], + [ + -43.521466285882305, + -23.06300835878022 + ], + [ + -43.52130393764702, + -23.0735237710834 + ], + [ + -43.500425954588195, + -23.073374410186133 + ], + [ + -43.500425954588195, + -23.042184223193427 + ], + [ + -43.45876739741171, + -23.042214102308932 + ], + [ + -43.45870245811759, + -23.03193529561677 + ], + [ + -43.43782447505876, + -23.031815769997003 + ], + [ + -43.43775953576465, + -23.021536170182088 + ], + [ + -43.32349884776465, + -23.021207449115728 + ], + [ + -43.32330402988229, + -23.04212446494251 + ], + [ + -43.31291374282347, + -23.041945190030685 + ], + [ + -43.31275139458817, + -23.052671385594376 + ], + [ + -43.30239357717642, + -23.052581755188086 + ], + [ + -43.30236110752935, + -23.042273860520083 + ], + [ + -43.291938350823465, + -23.042154344071257 + ], + [ + -43.291970820470524, + -23.031935295616755 + ], + [ + -43.27109283741169, + -23.031815769997003 + ], + [ + -43.27119024635288, + -23.010927040510325 + ], + [ + -43.260605141411716, + -23.01086726840187 + ], + [ + -43.26067008070583, + -23.000586071788522 + ], + [ + -43.25057202047053, + -23.000466518383856 + ], + [ + -43.25053955082347, + -23.01125578663348 + ], + [ + -43.23988950658817, + -23.01101669862337 + ], + [ + -43.23985703694111, + -23.00061596012315 + ], + [ + -43.21907646282347, + -23.000496406744954 + ], + [ + -43.21904399317641, + -22.990214420121887 + ], + [ + -43.20901087223524, + -22.99009485753265 + ], + [ + -43.20862123647049, + -23.083889012123244 + ], + [ + -43.187678314117555, + -23.083769532629013 + ], + [ + -43.18761337482344, + -23.07334453798677 + ], + [ + -43.135824287764606, + -23.073374410186123 + ], + [ + -43.135889227058726, + -23.052492124722143 + ], + [ + -43.17732049670579, + -23.052551878372732 + ], + [ + -43.17709320917647, + -22.969707888781738 + ] + ] + ], + "terms_url": "http://pgeo3.rio.rj.gov.br/arcgis/rest/services/Imagens/Mosaico_2013_UTM/MapServer", + "terms_text": "Instituto Pereira Passos - Prefeitura da Cidade do Rio de Janeiro." + }, + { + "id": "rio2015", + "name": "Rio Mosaic 2015", + "type": "wms", + "template": "http://pgeo3.rio.rj.gov.br/arcgis/services/Imagens/Mosaico_2015_UTM/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326", + "scaleExtent": [ + 0, + 13 + ], + "polygon": [ + [ + [ + -42.30362723364694, + -22.436982955891427 + ], + [ + -44.10842009576469, + -22.06578551470817 + ], + [ + -44.53130477905882, + -23.786301394919743 + ], + [ + -42.70469231411757, + -24.161784722114145 + ], + [ + -42.30362723364694, + -22.436982955891427 + ] + ] + ], + "terms_url": "http://pgeo3.rio.rj.gov.br/arcgis/rest/services/Imagens/Mosaico_2015_UTM/MapServer", + "terms_text": "Instituto Pereira Passos - Prefeitura da Cidade do Rio de Janeiro." + }, { "id": "route500", "name": "Route 500", @@ -90102,7 +100997,9 @@ ] ], "terms_url": "http://wiki.openstreetmap.org/wiki/FR:Servers/tile.openstreetmap.fr#Route500.E2.84.A2.C2.A9.C2.AE", - "terms_text": "Tiles © cquest@Openstreetmap France, data © IGN, LO/OL" + "terms_text": "Tiles © cquest@Openstreetmap France, data © IGN, LO/OL", + "description": "Routes du réseau classé (autoroutes, nationales, départementales)", + "overlay": true }, { "id": "santana_do_ipanema", @@ -91467,6 +102364,13 @@ "best": true, "icon": "data:image/png;base64,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" }, + { + "id": "Sicily-ATA2007", + "name": "Sicily - Italy", + "type": "wms", + "template": "http://map.sitr.regione.sicilia.it/ArcGIS/services/WGS84_F33/Ortofoto_ATA20072008_f33/MapServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=0&STYLES=default&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:4326" + }, { "id": "sc2012", "name": "SIG Santa Catarina OrtoRGB 2012", @@ -101939,7 +112843,7 @@ "id": "Bern-bern2016-tms", "name": "Stadt Bern 10cm (2016)", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/bern2016/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/bern2016/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 8, 21 @@ -102307,7 +113211,7 @@ "id": "Uster-2008", "name": "Stadt Uster Orthophoto 2008 10cm", "type": "tms", - "template": "http://mapproxy.sosm.ch:8080/tiles/uster/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/uster/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "polygon": [ [ [ @@ -102338,7 +113242,7 @@ "id": "Zuerich-zh_luftbild2011-tms", "name": "Stadt Zürich Luftbild 2011", "type": "tms", - "template": "http://mapproxy.sosm.ch:8080/tiles/zh_luftbild2011/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/zh_luftbild2011/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "polygon": [ [ [ @@ -102369,7 +113273,7 @@ "id": "Zuerich-city_map", "name": "Stadtplan Zürich", "type": "tms", - "template": "http://mapproxy.sosm.ch:8080/tiles/zh_stadtplan/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/zh_stadtplan/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "polygon": [ [ [ @@ -113489,7 +124393,7 @@ "id": "Zuerich-zh_uebersichtsplan-tms", "name": "Übersichtsplan Zürich", "type": "tms", - "template": "http://mapproxy.sosm.ch:8080/tiles/zh_uebersichtsplan/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/zh_uebersichtsplan/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ 0, 21 diff --git a/data/update_imagery.js b/data/update_imagery.js index fd0e6e61c..102a674ed 100644 --- a/data/update_imagery.js +++ b/data/update_imagery.js @@ -35,6 +35,7 @@ var blacklist = { }; var supportedWMSProjections = [ 'EPSG:3857', + 'EPSG:4326', 'EPSG:900913', // EPSG:3857 alternatives codes 'EPSG:3587', 'EPSG:54004', diff --git a/modules/renderer/background_source.js b/modules/renderer/background_source.js index 74d75cd3a..d608aae07 100644 --- a/modules/renderer/background_source.js +++ b/modules/renderer/background_source.js @@ -32,23 +32,6 @@ function vintageRange(vintage) { return s; } -function getEPSG3857XY(x, y, z) { - //polyfill for IE11, PhantomJS - var sinh = Math.sinh || function(x) { - var y = Math.exp(x); - return (y - 1 / y) / 2; - }; - - var zoomSize = Math.pow(2, z); - var lon = x / zoomSize * Math.PI * 2 - Math.PI; - var lat = Math.atan(sinh(Math.PI * (1 - 2 * y / zoomSize))); - var mercCoords = d3_geoMercatorRaw(lon, lat); - return { - x: 20037508.34 / Math.PI * mercCoords[0], - y: 20037508.34 / Math.PI * mercCoords[1] - }; -} - export function rendererBackgroundSource(data) { var source = _clone(data); @@ -114,8 +97,33 @@ export function rendererBackgroundSource(data) { source.url = function(coord) { if (this.type === 'wms') { - var minXmaxY = getEPSG3857XY(coord[0], coord[1], coord[2]); - var maxXminY = getEPSG3857XY(coord[0]+1, coord[1]+1, coord[2]); + var tileToProjectedCoords = (function(x, y, z) { + //polyfill for IE11, PhantomJS + var sinh = Math.sinh || function(x) { + var y = Math.exp(x); + return (y - 1 / y) / 2; + }; + + var zoomSize = Math.pow(2, z); + var lon = x / zoomSize * Math.PI * 2 - Math.PI; + var lat = Math.atan(sinh(Math.PI * (1 - 2 * y / zoomSize))); + + switch (this.projection) { + case 'EPSG:4326': // todo: alternative codes of WGS 84? + return { + x: lon * 180 / Math.PI, + y: lat * 180 / Math.PI + }; + default: // EPSG:3857 and synonyms + var mercCoords = d3_geoMercatorRaw(lon, lat); + return { + x: 20037508.34 / Math.PI * mercCoords[0], + y: 20037508.34 / Math.PI * mercCoords[1] + }; + } + }).bind(this); + var minXmaxY = tileToProjectedCoords(coord[0], coord[1], coord[2]); + var maxXminY = tileToProjectedCoords(coord[0]+1, coord[1]+1, coord[2]); return template .replace('{width}', 256) .replace('{height}', 256) From ecc645ad71ad99880b46dc815dec7609f3c804bb Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 7 Mar 2018 23:53:14 +0000 Subject: [PATCH 120/157] fix(package): update lodash-es to version 4.17.6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a819e512d..aa3b03288 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@mapbox/sexagesimal": "1.1.0", "@mapbox/togeojson": "0.16.0", "diacritics": "1.3.0", - "lodash-es": "4.17.5", + "lodash-es": "4.17.6", "marked": "0.3.17", "node-diff3": "1.0.0", "osm-auth": "1.0.2", From b4a391fd1c6a7fedd7c170b26f5105162dcd4fbd Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Wed, 7 Mar 2018 12:58:02 +0000 Subject: [PATCH 121/157] chore(package): update rollup-plugin-node-resolve to version 3.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aa3b03288..4a6fabae1 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "rollup-plugin-flow": "^1.1.1", "rollup-plugin-includepaths": "~0.2.2", "rollup-plugin-json": "~2.2.0", - "rollup-plugin-node-resolve": "~3.0.0", + "rollup-plugin-node-resolve": "~3.1.0", "shelljs": "^0.8.0", "shx": "^0.2.1", "sinon": "^4.0.0", From d35494d003b8fbecc96e53f539ae1e1db6387c53 Mon Sep 17 00:00:00 2001 From: J Guthrie Date: Thu, 8 Mar 2018 02:33:24 +0000 Subject: [PATCH 122/157] Can finish drawing when cursor is in invalid position - When drawing an Area, the leading edge is allowed to temporarily be in an invalid position (see #4655).. .. Finishing a drawing is disabled if doing so would close with the invalid leading edge --- modules/behavior/draw_way.js | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index 1444584e1..e5ffa4b83 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -91,16 +91,16 @@ export function behaviorDrawWay(context, wayId, index, mode, startGraph) { context.replace(actionMoveNode(end.id, loc)); end = context.entity(end.id); - checkGeometry(origWay.isClosed()); // skipLast = true when drawing areas + checkGeometry(false); } // Check whether this edit causes the geometry to break. // If so, class the surface with a nope cursor. - // `skipLast` - include closing segment in the check, see #4655 - function checkGeometry(skipLast) { + // `finishDraw` - Only checks the relevant line segments if finishing drawing + function checkGeometry(finishDraw) { var nopeDisabled = context.surface().classed('nope-disabled'); - var isInvalid = isInvalidGeometry(end, context.graph(), skipLast); + var isInvalid = isInvalidGeometry(end, context.graph(), finishDraw); if (nopeDisabled) { context.surface() @@ -114,13 +114,26 @@ export function behaviorDrawWay(context, wayId, index, mode, startGraph) { } - function isInvalidGeometry(entity, graph, skipLast) { + function isInvalidGeometry(entity, graph, finishDraw) { var parents = graph.parentWays(entity); for (var i = 0; i < parents.length; i++) { var parent = parents[i]; var nodes = parent.nodes.map(function(nodeID) { return graph.entity(nodeID); }); - if (skipLast) nodes.pop(); // disregard closing segment - #4655 + + if (origWay.isClosed()) { // Check if Area + if (finishDraw) { + nodes.splice(-2, 1); + entity = nodes[nodes.length-2]; + } else { + nodes.pop(); + } + } else { // Line + if (finishDraw) { + nodes.pop(); + } + } + if (geoHasSelfIntersections(nodes, entity.id)) { return true; } @@ -241,7 +254,7 @@ export function behaviorDrawWay(context, wayId, index, mode, startGraph) { annotation ); - checkGeometry(false); // skipLast = false + checkGeometry(false); // finishDraw = false context.enter(mode); }; @@ -261,7 +274,7 @@ export function behaviorDrawWay(context, wayId, index, mode, startGraph) { annotation ); - checkGeometry(false); // skipLast = false + checkGeometry(false); // finishDraw = false context.enter(mode); }; @@ -280,7 +293,7 @@ export function behaviorDrawWay(context, wayId, index, mode, startGraph) { annotation ); - checkGeometry(false); // skipLast = false + checkGeometry(false); // finishDraw = false context.enter(mode); }; @@ -289,7 +302,7 @@ export function behaviorDrawWay(context, wayId, index, mode, startGraph) { // If the way has enough nodes to be valid, it's selected. // Otherwise, delete everything and return to browse mode. drawWay.finish = function() { - checkGeometry(true); // skipLast = true + checkGeometry(true); // finishDraw = true if (context.surface().classed('nope')) { return; // can't click here } From 9e75dc907744b31cc3c870a7f56d54ed7ee682a1 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 7 Mar 2018 22:08:59 -0500 Subject: [PATCH 123/157] Upgrade all rollup dependencies and switch plugins to ^ semver --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 4a6fabae1..b078f56c4 100644 --- a/package.json +++ b/package.json @@ -68,11 +68,11 @@ "phantomjs-prebuilt": "~2.1.11", "request": "^2.81.0", "rollup": "~0.56.3", - "rollup-plugin-commonjs": "~8.3.0", + "rollup-plugin-commonjs": "^9.0.0", "rollup-plugin-flow": "^1.1.1", - "rollup-plugin-includepaths": "~0.2.2", - "rollup-plugin-json": "~2.2.0", - "rollup-plugin-node-resolve": "~3.1.0", + "rollup-plugin-includepaths": "^0.2.2", + "rollup-plugin-json": "^2.2.0", + "rollup-plugin-node-resolve": "^3.2.0", "shelljs": "^0.8.0", "shx": "^0.2.1", "sinon": "^4.0.0", From ceaf7b6e2d9b0750c6577ca0181ef65c9b99e47f Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Tue, 6 Mar 2018 07:15:14 +0000 Subject: [PATCH 124/157] chore(package): update sinon-chai to version 3.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b078f56c4..033d28d0f 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "shelljs": "^0.8.0", "shx": "^0.2.1", "sinon": "^4.0.0", - "sinon-chai": "^2.14.0", + "sinon-chai": "^3.0.0", "smash": "0.0", "svg-sprite": "1.3.7", "uglify-js": "^3.0.0", From 90afc7439f629334ac848aace1fb59e171d26b1c Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 8 Mar 2018 17:24:32 +0000 Subject: [PATCH 125/157] chore(package): update flow-bin to version 0.67.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 033d28d0f..b87e2908e 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "editor-layer-index": "osmlab/editor-layer-index.git#gh-pages", "eslint": "^4.3.0", "eslint-plugin-flowtype": "^2.46.1", - "flow-bin": "^0.66.0", + "flow-bin": "^0.67.1", "flow-coverage-report": "^0.5.0", "flow-remove-types": "^1.2.3", "gaze": "^1.1.1", From a01ddf26f9bf0ed5eaf1191fccf4e45b7ebfd4a9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 8 Mar 2018 14:21:33 -0500 Subject: [PATCH 126/157] Fix subway platform presets to use `subway=yes` tag (closes #4862) --- data/presets.yaml | 4 ++-- data/presets/presets.json | 12 ++++++------ .../public_transport/linear_platform_subway.json | 6 +++--- .../presets/public_transport/platform_subway.json | 6 +++--- data/taginfo.json | 4 ++-- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 15da6dba4..273f7fbd0 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -4558,7 +4558,7 @@ en: # 'terms: monorail,platform,public transit,public transportation,rail,transit,transportation' terms: '' public_transport/linear_platform_subway: - # 'public_transport=platform, train=yes' + # 'public_transport=platform, subway=yes' name: Subway Stop / Platform # 'terms: metro,platform,public transit,public transportation,rail,subway,track,transit,transportation,underground' terms: '' @@ -4608,7 +4608,7 @@ en: # 'terms: monorail,platform,public transit,public transportation,rail,transit,transportation' terms: '' public_transport/platform_subway: - # 'public_transport=platform, train=yes' + # 'public_transport=platform, subway=yes' name: Subway Stop / Platform # 'terms: metro,platform,public transit,public transportation,rail,subway,track,transit,transportation,underground' terms: '' diff --git a/data/presets/presets.json b/data/presets/presets.json index 4deab4ccd..43cc52e8e 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -13698,16 +13698,16 @@ ], "tags": { "public_transport": "platform", - "train": "yes" + "subway": "yes" }, "addTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "removeTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "reference": { @@ -14126,16 +14126,16 @@ ], "tags": { "public_transport": "platform", - "train": "yes" + "subway": "yes" }, "addTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "removeTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "reference": { diff --git a/data/presets/presets/public_transport/linear_platform_subway.json b/data/presets/presets/public_transport/linear_platform_subway.json index 37691ebbf..dfd7121f6 100644 --- a/data/presets/presets/public_transport/linear_platform_subway.json +++ b/data/presets/presets/public_transport/linear_platform_subway.json @@ -15,16 +15,16 @@ ], "tags": { "public_transport": "platform", - "train": "yes" + "subway": "yes" }, "addTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "removeTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "reference": { diff --git a/data/presets/presets/public_transport/platform_subway.json b/data/presets/presets/public_transport/platform_subway.json index 716740982..2dae96182 100644 --- a/data/presets/presets/public_transport/platform_subway.json +++ b/data/presets/presets/public_transport/platform_subway.json @@ -16,16 +16,16 @@ ], "tags": { "public_transport": "platform", - "train": "yes" + "subway": "yes" }, "addTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "removeTags": { "public_transport": "platform", - "train": "yes", + "subway": "yes", "railway": "platform" }, "reference": { diff --git a/data/taginfo.json b/data/taginfo.json index edbb0683d..e8655875d 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -2589,7 +2589,7 @@ "value": "yes" }, { - "key": "train", + "key": "subway", "value": "yes" }, { @@ -2629,7 +2629,7 @@ "value": "yes" }, { - "key": "train", + "key": "subway", "value": "yes" }, { From acdefc558becfef23bb4641ac83d0fe466e869da Mon Sep 17 00:00:00 2001 From: umarpreet1 Date: Fri, 9 Mar 2018 23:17:23 +0530 Subject: [PATCH 127/157] added name field to amenity=parking --- data/presets/presets/amenity/parking.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/presets/presets/amenity/parking.json b/data/presets/presets/amenity/parking.json index dd5ed3c0a..950c3e8a4 100644 --- a/data/presets/presets/amenity/parking.json +++ b/data/presets/presets/amenity/parking.json @@ -1,6 +1,7 @@ { "icon": "parking", "fields": [ + "name", "operator", "parking", "capacity", From 15bb23809c2ed0fbb532571cceeab085b035f4ee Mon Sep 17 00:00:00 2001 From: umarpreet1 Date: Fri, 9 Mar 2018 23:20:40 +0530 Subject: [PATCH 128/157] added name field to leisure=pitch --- data/presets/presets/leisure/pitch.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/presets/presets/leisure/pitch.json b/data/presets/presets/leisure/pitch.json index 09e2c238e..01d47c51e 100644 --- a/data/presets/presets/leisure/pitch.json +++ b/data/presets/presets/leisure/pitch.json @@ -1,6 +1,7 @@ { "icon": "pitch", "fields": [ + "name", "sport", "surface", "lit" From 707bda23861b93ae5cb3768916c014462ae793f9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Mar 2018 14:40:23 -0500 Subject: [PATCH 129/157] `npm run build` to update generated preset files --- data/presets/presets.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data/presets/presets.json b/data/presets/presets.json index 43cc52e8e..84aa04025 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -2032,6 +2032,7 @@ "amenity/parking": { "icon": "parking", "fields": [ + "name", "operator", "parking", "capacity", @@ -10219,6 +10220,7 @@ "leisure/pitch": { "icon": "pitch", "fields": [ + "name", "sport", "surface", "lit" From 88dea28cf7ade8ab3b564914f5a18e5021eb4e2c Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 9 Mar 2018 22:39:30 -0500 Subject: [PATCH 130/157] `only_` restrictions only count if they leave the FROM towards the VIA (closes #4849) --- modules/osm/intersection.js | 49 ++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index 4b6a3cf24..e90450666 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -378,7 +378,6 @@ export function osmIntersection(graph, startVertexId, maxDistance) { var vgraph = intersection.graph; var keyVertexIds = intersection.vertices.map(function(v) { return v.id; }); - var keyWayIds = intersection.ways.map(function(w) { return w.id; }); var start = vgraph.entity(fromWayId); if (!start || !(start.__from || start.__via)) return []; @@ -415,7 +414,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { // if we have seen it before (allowing for an initial u-turn), skip if (currPath.indexOf(way.id) !== -1 && currPath.length >= 3) continue; - // Check all "current" restrictions (where we've already walked the `from`) + // Check all "current" restrictions (where we've already walked the `FROM`) var restrict = undefined; for (j = 0; j < currRestrictions.length; j++) { var restriction = currRestrictions[j]; @@ -424,15 +423,6 @@ export function osmIntersection(graph, startVertexId, maxDistance) { var t = restriction.memberByRole('to'); var isOnly = /^only_/.test(restriction.tags.restriction); - // Are all the vias part of this local intersection? - // This matters for flagging "indirect" restrictions - var isLocalVia; - if (v.length === 1 && v[0].type === 'node') { - isLocalVia = (keyVertexIds.indexOf(v[0].id) !== -1); - } else { - isLocalVia = _every(v, function(via) { return keyWayIds.indexOf(via.id) !== -1; }); - } - // Does the current path match this turn restriction? var matchesFrom = (f.id === fromWayId); var matchesViaTo = false; @@ -464,7 +454,7 @@ export function osmIntersection(graph, startVertexId, maxDistance) { } else { // indirect - caused by a different nearby restriction if (isAlongOnlyPath) { restrict = { id: restriction.id, direct: false, from: f.id, only: true, end: false }; - } else if (isOnly && isLocalVia) { + } else if (isOnly) { restrict = { id: restriction.id, direct: false, from: f.id, no: true, end: true }; } } @@ -533,15 +523,34 @@ export function osmIntersection(graph, startVertexId, maxDistance) { nextNodes.push(n2); // can advance to last node } - // gather restrictions FROM this way - var fromRestrictions = vgraph.parentRelations(entity).filter(function(r) { - if (!r.isRestriction()) return false; - var f = r.memberByRole('from'); - return f && f.id === entity.id; - }); + nextNodes.forEach(function(nextNode) { + // gather restrictions FROM this way + var fromRestrictions = vgraph.parentRelations(entity).filter(function(r) { + if (!r.isRestriction()) return false; - nextNodes.forEach(function(node) { - step(node, currPath, currRestrictions.concat(fromRestrictions), false); + var f = r.memberByRole('from'); + if (!f || f.id !== entity.id) return false; + + var isOnly = /^only_/.test(r.tags.restriction); + if (!isOnly) return true; + + // `only_` restrictions only matter along the direction of the VIA - #4849 + var isOnlyVia = false; + var v = r.membersByRole('via'); + if (v.length === 1 && v[0].type === 'node') { // via node + isOnlyVia = (v[0].id === nextNode.id); + } else { // via way(s) + for (k = 0; k < v.length; k++) { + if (v[k].type === 'way' && vgraph.entity(v[k].id).first() === nextNode.id) { + isOnlyVia = true; + break; + } + } + } + return isOnlyVia; + }); + + step(nextNode, currPath, currRestrictions.concat(fromRestrictions), false); }); } } From aa1565baf80c48aec7049f0270eeb2d2c57a3519 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 10 Mar 2018 00:12:46 -0500 Subject: [PATCH 131/157] Avoid reordering stops and platforms in PTv2 routes (closes #4864) --- modules/actions/add_member.js | 34 ++++++++++++++++++++++++++++----- test/spec/actions/add_member.js | 20 ++++++++++++++----- 2 files changed, 44 insertions(+), 10 deletions(-) diff --git a/modules/actions/add_member.js b/modules/actions/add_member.js index 049175329..4218fffc3 100644 --- a/modules/actions/add_member.js +++ b/modules/actions/add_member.js @@ -10,10 +10,20 @@ export function actionAddMember(relationId, member, memberIndex, insertPair) { return function action(graph) { var relation = graph.entity(relationId); - if ((isNaN(memberIndex) || insertPair) && member.type === 'way') { + // There are some special rules for Public Transport v2 routes. + var isPTv2 = (member.role === 'stop' || member.role === 'platform'); + + if ((isNaN(memberIndex) || insertPair) && member.type === 'way' && !isPTv2) { // Try to perform sensible inserts based on how the ways join together graph = addWayMember(relation, graph); } else { + // see https://wiki.openstreetmap.org/wiki/Public_transport#Service_routes + // Stops and Platforms for PTv2 should be ordered first. + // hack: We do not currently have the ability to place them in the exactly correct order. + if (isPTv2 && isNaN(memberIndex)) { + memberIndex = 0; + } + graph = graph.replace(relation.addMember(member, memberIndex)); } @@ -26,6 +36,20 @@ export function actionAddMember(relationId, member, memberIndex, insertPair) { function addWayMember(relation, graph) { var groups, tempWay, item, i, j, k; + // remove PTv2 stops and platforms before doing anything. + var PTv2members = []; + var members = []; + for (i = 0; i < relation.members.length; i++) { + var m = relation.members[i]; + if (m.role === 'stop' || m.role === 'platform') { + PTv2members.push(m); + } else { + members.push(m); + } + } + relation = relation.update({ members: members }); + + if (insertPair) { // We're adding a member that must stay paired with an existing member. // (This feature is used by `actionSplit`) @@ -50,7 +74,7 @@ export function actionAddMember(relationId, member, memberIndex, insertPair) { groups.way.push(member); } - var members = withIndex(groups.way); + members = withIndex(groups.way); var joined = osmJoinWays(members, graph); // `joined` might not contain all of the way members, @@ -116,10 +140,10 @@ export function actionAddMember(relationId, member, memberIndex, insertPair) { } } - // Write members in the order: nodes, ways, relations - // This is reccomended for Public Transport routes: + // Put stops and platforms first, then nodes, ways, relations + // This is recommended for Public Transport v2 routes: // see https://wiki.openstreetmap.org/wiki/Public_transport#Service_routes - var newMembers = (groups.node || []).concat(wayMembers, (groups.relation || [])); + var newMembers = PTv2members.concat( (groups.node || []), wayMembers, (groups.relation || []) ); return graph.replace(relation.update({members: newMembers})); diff --git a/test/spec/actions/add_member.js b/test/spec/actions/add_member.js index e27ef07e7..5b70bd54b 100644 --- a/test/spec/actions/add_member.js +++ b/test/spec/actions/add_member.js @@ -177,7 +177,7 @@ describe('iD.actionAddMember', function() { expect(members(graph)).to.eql(['-', '=', '~', '~', '=', '-']); }); - it('reorders members as node, way, relation (for Public Transport routing)', function() { + it('keeps stops and platforms ordered before node, way, relation (for PTv2 routes)', function() { var graph = iD.coreGraph([ iD.osmNode({id: 'a', loc: [0, 0]}), iD.osmNode({id: 'b', loc: [0, 0]}), @@ -185,17 +185,27 @@ describe('iD.actionAddMember', function() { iD.osmWay({id: '-', nodes: ['a', 'b']}), iD.osmWay({id: '=', nodes: ['b', 'c']}), iD.osmRelation({id: 'r', members: [ - { id: 'n1', type: 'node', role: 'forward' }, + { id: 'n1', type: 'node', role: 'stop' }, + { id: 'w1', type: 'way', role: 'platform' }, + { id: 'n2', type: 'node', role: 'stop' }, + { id: 'w2', type: 'way', role: 'platform' }, + { id: 'n3', type: 'node', role: 'forward' }, + { id: 'n4', type: 'node', role: 'forward' }, { id: '-', type: 'way', role: 'forward' }, { id: 'r1', type: 'relation', role: 'forward' }, - { id: 'n2', type: 'node', role: 'forward' } + { id: 'n5', type: 'node', role: 'forward' } ]}) ]); graph = iD.actionAddMember('r', { id: '=', type: 'way', role: 'forward' })(graph); expect(graph.entity('r').members).to.eql([ - { id: 'n1', type: 'node', role: 'forward' }, - { id: 'n2', type: 'node', role: 'forward' }, + { id: 'n1', type: 'node', role: 'stop' }, + { id: 'w1', type: 'way', role: 'platform' }, + { id: 'n2', type: 'node', role: 'stop' }, + { id: 'w2', type: 'way', role: 'platform' }, + { id: 'n3', type: 'node', role: 'forward' }, + { id: 'n4', type: 'node', role: 'forward' }, + { id: 'n5', type: 'node', role: 'forward' }, { id: '-', type: 'way', role: 'forward' }, { id: '=', type: 'way', role: 'forward' }, { id: 'r1', type: 'relation', role: 'forward' } From e77ba68b14d56b3e073445afe669c32b034316c8 Mon Sep 17 00:00:00 2001 From: hikemaniac <31667811+hikemaniac@users.noreply.github.com> Date: Sat, 10 Mar 2018 12:07:19 +0100 Subject: [PATCH 132/157] Removed duplicate opening hours field. --- data/presets/presets.json | 1 - data/presets/presets/shop/beauty.json | 1 - 2 files changed, 2 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 57635ddfb..5f8e9e382 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -15953,7 +15953,6 @@ "address", "building_area", "opening_hours", - "opening_hours", "payment_multi" ], "geometry": [ diff --git a/data/presets/presets/shop/beauty.json b/data/presets/presets/shop/beauty.json index 5bbdefc8d..9b9ed0650 100644 --- a/data/presets/presets/shop/beauty.json +++ b/data/presets/presets/shop/beauty.json @@ -6,7 +6,6 @@ "address", "building_area", "opening_hours", - "opening_hours", "payment_multi" ], "geometry": [ From e6754a73b1bed047c706a58cc1e6441426fc5e29 Mon Sep 17 00:00:00 2001 From: hikemaniac <31667811+hikemaniac@users.noreply.github.com> Date: Sat, 10 Mar 2018 12:11:57 +0100 Subject: [PATCH 133/157] Added shop type field. --- data/presets/presets.json | 1 + data/presets/presets/shop/beauty.json | 1 + 2 files changed, 2 insertions(+) diff --git a/data/presets/presets.json b/data/presets/presets.json index 5f8e9e382..05337df43 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -15952,6 +15952,7 @@ "operator", "address", "building_area", + "beauty", "opening_hours", "payment_multi" ], diff --git a/data/presets/presets/shop/beauty.json b/data/presets/presets/shop/beauty.json index 9b9ed0650..bae7a25d0 100644 --- a/data/presets/presets/shop/beauty.json +++ b/data/presets/presets/shop/beauty.json @@ -5,6 +5,7 @@ "operator", "address", "building_area", + "beauty", "opening_hours", "payment_multi" ], From 15f017f07963e2a12c783531b1c54734e3be4d7e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 10 Mar 2018 08:07:13 -0500 Subject: [PATCH 134/157] npm run build --- data/presets/presets.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 712750912..1c7ba99ae 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -63437,7 +63437,7 @@ "operator", "address", "building_area", - "opening_hours", + "beauty", "opening_hours", "payment_multi" ], @@ -63459,7 +63459,7 @@ "operator", "address", "building_area", - "opening_hours", + "beauty", "opening_hours", "payment_multi" ], From f8bbb995ac3ddcfe55eacadc453a5ace52e10a1b Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 10 Mar 2018 15:20:20 -0500 Subject: [PATCH 135/157] Properly split ways which are members of a via way turn restriction (closes #4861) --- modules/actions/split.js | 61 +++++++++++++-- test/spec/actions/split.js | 153 ++++++++++++++++++++++++++++++++++--- 2 files changed, 197 insertions(+), 17 deletions(-) diff --git a/modules/actions/split.js b/modules/actions/split.js index 982632484..54c41f380 100644 --- a/modules/actions/split.js +++ b/modules/actions/split.js @@ -1,5 +1,6 @@ import _extend from 'lodash-es/extend'; import _indexOf from 'lodash-es/indexOf'; +import _intersection from 'lodash-es/intersection'; import _some from 'lodash-es/some'; import { actionAddMember } from './add_member'; @@ -31,7 +32,7 @@ import { utilWrap } from '../util'; export function actionSplit(nodeId, newWayIds) { var _wayIDs; - // if the way is closed, we need to search for a partner node + // 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 @@ -87,7 +88,7 @@ export function actionSplit(nodeId, newWayIds) { function split(graph, wayA, newWayId) { - var wayB = osmWay({id: newWayId, tags: wayA.tags}); + var wayB = osmWay({id: newWayId, tags: wayA.tags}); // `wayB` is the NEW way var origNodes = wayA.nodes.slice(); var nodesA; var nodesB; @@ -119,12 +120,58 @@ export function actionSplit(nodeId, newWayIds) { graph = graph.replace(wayB); graph.parentRelations(wayA).forEach(function(relation) { + var member; + + // Turn restrictions - make sure: + // 1. Splitting a FROM/TO way - only `wayA` OR `wayB` remains in relation + // (whichever one is connected to the VIA node/ways) + // 2. Splitting a VIA way - `wayB` remains in relation as a VIA way if (relation.isRestriction()) { - var via = relation.memberByRole('via'); - if (via && wayB.contains(via.id)) { - relation = relation.replaceMember(wayA, wayB); - graph = graph.replace(relation); + var f = relation.memberByRole('from'); + var v = relation.membersByRole('via'); + var t = relation.memberByRole('to'); + var i; + + // 1. split a FROM/TO + if (f.id === wayA.id || t.id === wayA.id) { + var keepB = false; + if (v.length === 1 && v[0].type === 'node') { // check via node + keepB = wayB.contains(v[0].id); + } else { // check via way(s) + for (i = 0; i < v.length; i++) { + if (v[i].type === 'way') { + var wayVia = graph.hasEntity(v[i].id); + if (wayVia && _intersection(wayB.nodes, wayVia.nodes).length) { + keepB = true; + break; + } + } + } + } + + if (keepB) { + relation = relation.replaceMember(wayA, wayB); + graph = graph.replace(relation); + } + + // 2. split a VIA + } else { + for (i = 0; i < v.length; i++) { + if (v[i].type === 'way' && v[i].id === wayA.id) { + member = { + id: wayB.id, + type: 'way', + role: 'via' + }; + graph = actionAddMember(relation.id, member, v[i].index + 1)(graph); + break; + } + } } + + // All other relations (Routes, Multipolygons, etc): + // 1. Both `wayA` and `wayB` remain in the relation + // 2. But must be inserted as a pair (see `actionAddMember` for details) } else { if (relation === isOuter) { graph = graph.replace(relation.mergeTags(wayA.tags)); @@ -132,7 +179,7 @@ export function actionSplit(nodeId, newWayIds) { graph = graph.replace(wayB.update({tags: {}})); } - var member = { + member = { id: wayB.id, type: 'way', role: relation.memberById(wayA.id).role diff --git a/test/spec/actions/split.js b/test/spec/actions/split.js index 8e536a754..833b3542f 100644 --- a/test/spec/actions/split.js +++ b/test/spec/actions/split.js @@ -903,16 +903,16 @@ describe('iD.actionSplit', function () { ['restriction', 'restriction:bus'].forEach(function (type) { describe('type = ' + type, function () { - it('updates a restriction\'s \'from\' role', function () { + it('updates a restriction\'s \'from\' role - via node', function () { // Situation: // a ----> b ----> c ~~~~ d - // A restriction from ---- to ~~~~ via c. + // A restriction from ---- to ~~~~ via node c. // // Split at b. // // Expected result: // a ----> b ====> c ~~~~ d - // A restriction from ==== to ~~~~ via c. + // A restriction from ==== to ~~~~ via node c. // var graph = iD.coreGraph([ iD.osmNode({id: 'a'}), @@ -937,16 +937,16 @@ describe('iD.actionSplit', function () { ]); }); - it('updates a restriction\'s \'to\' role', function () { + it('updates a restriction\'s \'to\' role - via node', function () { // Situation: // a ----> b ----> c ~~~~ d - // A restriction from ~~~~ to ---- via c. + // A restriction from ~~~~ to ---- via node c. // // Split at b. // // Expected result: // a ----> b ====> c ~~~~ d - // A restriction from ~~~~ to ==== via c. + // A restriction from ~~~~ to ==== via node c. // var graph = iD.coreGraph([ iD.osmNode({id: 'a'}), @@ -971,17 +971,16 @@ describe('iD.actionSplit', function () { ]); }); - - it('updates both \'to\' and \'from\' roles for u-turn restrictions', function () { + it('updates both \'to\' and \'from\' roles for via-node u-turn restrictions', function () { // Situation: // a ----> b ----> c ~~~~ d - // A restriction from ---- to ---- via c. + // A restriction from ---- to ---- via node c. // // Split at b. // // Expected result: // a ----> b ====> c ~~~~ d - // A restriction from ==== to ==== via c. + // A restriction from ==== to ==== via node c. // var graph = iD.coreGraph([ iD.osmNode({id: 'a'}), @@ -1006,6 +1005,140 @@ describe('iD.actionSplit', function () { ]); }); + it('updates a restriction\'s \'from\' role - via way', function () { + // Situation: + // e <~~~~ d + // | + // | + // a ----> b ----> c + // + // A restriction from ---- to ~~~~ via way | + // + // Split at b. + // + // Expected result: + // e <~~~~ d + // | + // | + // a ----> b ====> c + // + // A restriction from ==== to ~~~~ via way | + // + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: 'd'}), + iD.osmNode({id: 'e'}), + iD.osmWay({id: '-', nodes: ['a', 'b', 'c']}), + iD.osmWay({id: '|', nodes: ['c', 'd']}), + iD.osmWay({id: '~', nodes: ['d', 'e']}), + iD.osmRelation({id: 'r', tags: {type: type}, members: [ + {id: '-', role: 'from', type: 'way'}, + {id: '~', role: 'to', type: 'way'}, + {id: '|', role: 'via', type: 'way'} + ]}) + ]); + + graph = iD.actionSplit('b', ['='])(graph); + + expect(graph.entity('r').members).to.eql([ + {id: '=', role: 'from', type: 'way'}, + {id: '~', role: 'to', type: 'way'}, + {id: '|', role: 'via', type: 'way'} + ]); + }); + + it('updates a restriction\'s \'to\' role - via way', function () { + // Situation: + // e <~~~~ d + // | + // | + // a ----> b ----> c + // + // A restriction from ~~~~ to ---- via way | + // + // Split at b. + // + // Expected result: + // e <~~~~ d + // | + // | + // a ----> b ====> c + // + // A restriction from ~~~~ to ==== via way | + // + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: 'd'}), + iD.osmNode({id: 'e'}), + iD.osmWay({id: '-', nodes: ['a', 'b', 'c']}), + iD.osmWay({id: '|', nodes: ['c', 'd']}), + iD.osmWay({id: '~', nodes: ['d', 'e']}), + iD.osmRelation({id: 'r', tags: {type: type}, members: [ + {id: '~', role: 'from', type: 'way'}, + {id: '-', role: 'to', type: 'way'}, + {id: '|', role: 'via', type: 'way'} + ]}) + ]); + + graph = iD.actionSplit('b', ['='])(graph); + + expect(graph.entity('r').members).to.eql([ + {id: '~', role: 'from', type: 'way'}, + {id: '=', role: 'to', type: 'way'}, + {id: '|', role: 'via', type: 'way'} + ]); + }); + + + it('updates a restriction\'s \'via\' role when splitting via way', function () { + // Situation: + // d e + // | ‖ + // | ‖ + // a ----> b ----> c + // + // A restriction from | to ‖ via way ---- + // + // Split at b. + // + // Expected result: + // d e + // | ‖ + // | ‖ + // a ----> b ====> c + // + // A restriction from | to ‖ via ways ----, ==== + // + var graph = iD.coreGraph([ + iD.osmNode({id: 'a'}), + iD.osmNode({id: 'b'}), + iD.osmNode({id: 'c'}), + iD.osmNode({id: 'd'}), + iD.osmNode({id: 'e'}), + iD.osmWay({id: '-', nodes: ['a', 'b', 'c']}), + iD.osmWay({id: '|', nodes: ['d', 'a']}), + iD.osmWay({id: '‖', nodes: ['e', 'c']}), + iD.osmRelation({id: 'r', tags: {type: type}, members: [ + {id: '|', role: 'from', type: 'way'}, + {id: '-', role: 'via', type: 'way'}, + {id: '‖', role: 'to', type: 'way'} + ]}) + ]); + + graph = iD.actionSplit('b', ['='])(graph); + + expect(graph.entity('r').members).to.eql([ + {id: '|', role: 'from', type: 'way'}, + {id: '-', role: 'via', type: 'way'}, + {id: '=', role: 'via', type: 'way'}, + {id: '‖', role: 'to', type: 'way'} + ]); + }); + it('leaves unaffected restrictions unchanged', function () { // Situation: // a <---- b <---- c ~~~~ d From d4bf42b6c43ecb7a75fe77c74923c826641a7191 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 10 Mar 2018 17:42:15 -0500 Subject: [PATCH 136/157] Remove code attempting to extend leaf ways (closes #4869) It was causing more rendering issues than it was solving --- modules/osm/intersection.js | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/modules/osm/intersection.js b/modules/osm/intersection.js index e90450666..0a0cf3bb7 100644 --- a/modules/osm/intersection.js +++ b/modules/osm/intersection.js @@ -13,8 +13,7 @@ import { coreGraph } from '../core'; import { geoAngle, - geoSphericalDistance, - geoVecInterp + geoSphericalDistance } from '../geo'; import { osmEntity } from './entity'; @@ -334,26 +333,6 @@ export function osmIntersection(graph, startVertexId, maxDistance) { .map(function(way) { return vgraph.entity(way.id); }); - // STEP 8: Extend leaf ways, so they don't end within the viewer - ways.forEach(function(way) { - var n1, n2; - if (way.__via) return; // not a leaf - if (way.__first) { - n1 = vgraph.entity(way.nodes[way.nodes.length - 2]); - n2 = vgraph.entity(way.nodes[way.nodes.length - 1]); - } else { - n1 = vgraph.entity(way.nodes[1]); - n2 = vgraph.entity(way.nodes[0]); - } - - if (n1.loc && n2.loc && vgraph.parentWays(n2).length === 1) { - var toLoc = geoVecInterp(n1.loc, n2.loc, 10); // extend 1000% - n2 = n2.move(toLoc); - vgraph = vgraph.replace(n2); - } - }); - - // OK! Here is our intersection.. var intersection = { graph: vgraph, From f9ef7282018492188a8e6d02b6a50c97b25a93f9 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 11 Mar 2018 10:22:21 -0400 Subject: [PATCH 137/157] Downgrade uglify-js to ~3.2.0 to avoid hangs (see #4873) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b87e2908e..ce9daa7ca 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "sinon-chai": "^3.0.0", "smash": "0.0", "svg-sprite": "1.3.7", - "uglify-js": "^3.0.0", + "uglify-js": "~3.2.0", "xml2js": "^0.4.17", "xmlbuilder": "^9.0.6" }, From 7fb14f64683802444451e2144d6eb5a2a3226a10 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 11 Mar 2018 11:05:53 -0400 Subject: [PATCH 138/157] npm run imagery --- data/imagery.json | 5768 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 5189 insertions(+), 579 deletions(-) diff --git a/data/imagery.json b/data/imagery.json index b448864b5..db602bfe3 100644 --- a/data/imagery.json +++ b/data/imagery.json @@ -157,6 +157,8 @@ ] ] ], + "terms_url": "https://www.arcgis.com/home/item.html?id=7bf69831861d438d8365cf9f46662523", + "terms_text": "Pictometry Inc, San Juan County GIS", "description": "Public domain aerial imagery taken in May/June 2013 from San Juan County, WA. Resolution is 9 inch." }, { @@ -4235,148 +4237,6 @@ "terms_url": "http://www.seplande.al.gov.br/", "terms_text": "Secretaria de Estado do Planejamento e Desenvolvimento Econômico" }, - { - "id": "CRAIG-Auvergne-2016", - "name": "Auvergne - 2016 - 25 cm - CRAIG", - "type": "tms", - "template": "http://tiles.craig.fr/ortho/tms/1.0.0/ortho_2016/webmercator/{zoom-1}/{x}/{-y}.jpeg", - "endDate": "2016-01-01T00:00:00.000Z", - "startDate": "2016-01-01T00:00:00.000Z", - "polygon": [ - [ - [ - 2.493891, - 46.6682909 - ], - [ - 2.7136176, - 46.8414109 - ], - [ - 3.6474555, - 46.8075834 - ], - [ - 4.0484565, - 46.4832686 - ], - [ - 4.0374701, - 46.2482538 - ], - [ - 4.4604438, - 46.2596487 - ], - [ - 4.4934028, - 46.1455925 - ], - [ - 4.3835395, - 46.0922853 - ], - [ - 4.4549506, - 45.6908367 - ], - [ - 4.7625678, - 45.5717589 - ], - [ - 4.8120063, - 45.344428 - ], - [ - 4.2242377, - 44.8441895 - ], - [ - 3.8616889, - 44.6959969 - ], - [ - 3.3782905, - 44.8052283 - ], - [ - 3.3343451, - 44.8909082 - ], - [ - 3.1805365, - 44.8247122 - ], - [ - 3.0322211, - 44.6061167 - ], - [ - 2.927851, - 44.6022057 - ], - [ - 2.7191108, - 44.8519786 - ], - [ - 2.5103705, - 44.6022057 - ], - [ - 2.125849, - 44.5826468 - ], - [ - 2.0049994, - 44.9725746 - ], - [ - 2.3071235, - 45.4678399 - ], - [ - 2.4334662, - 45.4408666 - ], - [ - 2.4114936, - 45.7291949 - ], - [ - 2.3455756, - 45.8240183 - ], - [ - 2.5488227, - 45.9797905 - ], - [ - 2.4609321, - 46.2216563 - ], - [ - 2.2137397, - 46.3393472 - ], - [ - 2.2782844, - 46.5390305 - ], - [ - 2.5488227, - 46.5664179 - ], - [ - 2.493891, - 46.6682909 - ] - ] - ], - "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", - "terms_text": "CRAIG - IGN -TopoGEODIS - Feder Auvergne-Rhône-Alpes 2016" - }, { "id": "CRAIG-Auvergne-2013", "name": "Auvergne 2013 25cm CRAIG", @@ -6327,6 +6187,148 @@ "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", "terms_text": "Orthophotographie CRAIG/Sintegra/IGN 2013" }, + { + "id": "CRAIG-Auvergne-2016", + "name": "Auvergne 2016 25cm CRAIG", + "type": "tms", + "template": "http://tiles.craig.fr/ortho/tms/1.0.0/ortho_2016/webmercator/{zoom-1}/{x}/{-y}.jpeg", + "endDate": "2016-01-01T00:00:00.000Z", + "startDate": "2016-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + 2.493891, + 46.6682909 + ], + [ + 2.7136176, + 46.8414109 + ], + [ + 3.6474555, + 46.8075834 + ], + [ + 4.0484565, + 46.4832686 + ], + [ + 4.0374701, + 46.2482538 + ], + [ + 4.4604438, + 46.2596487 + ], + [ + 4.4934028, + 46.1455925 + ], + [ + 4.3835395, + 46.0922853 + ], + [ + 4.4549506, + 45.6908367 + ], + [ + 4.7625678, + 45.5717589 + ], + [ + 4.8120063, + 45.344428 + ], + [ + 4.2242377, + 44.8441895 + ], + [ + 3.8616889, + 44.6959969 + ], + [ + 3.3782905, + 44.8052283 + ], + [ + 3.3343451, + 44.8909082 + ], + [ + 3.1805365, + 44.8247122 + ], + [ + 3.0322211, + 44.6061167 + ], + [ + 2.927851, + 44.6022057 + ], + [ + 2.7191108, + 44.8519786 + ], + [ + 2.5103705, + 44.6022057 + ], + [ + 2.125849, + 44.5826468 + ], + [ + 2.0049994, + 44.9725746 + ], + [ + 2.3071235, + 45.4678399 + ], + [ + 2.4334662, + 45.4408666 + ], + [ + 2.4114936, + 45.7291949 + ], + [ + 2.3455756, + 45.8240183 + ], + [ + 2.5488227, + 45.9797905 + ], + [ + 2.4609321, + 46.2216563 + ], + [ + 2.2137397, + 46.3393472 + ], + [ + 2.2782844, + 46.5390305 + ], + [ + 2.5488227, + 46.5664179 + ], + [ + 2.493891, + 46.6682909 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/CRAIG", + "terms_text": "CRAIG - IGN -TopoGEODIS - Feder Auvergne-Rhône-Alpes 2016" + }, { "id": "BANO", "name": "BANO", @@ -10301,6 +10303,7 @@ ] ] ], + "terms_url": "http://basemap.at/", "terms_text": "basemap.at", "description": "Basemap of Austria, based on goverment data.", "icon": "https://www.basemap.at/images/logo_basemap.jpg" @@ -11082,6 +11085,7 @@ ] ] ], + "terms_url": "http://basemap.at/", "terms_text": "basemap.at", "best": true, "description": "Orthofoto layer provided by basemap.at. \"Successor\" of geoimage.at imagery.", @@ -11094,7 +11098,7 @@ "template": "http://geodaten.bayern.de/ogc/ogc_dop200_oa.cgi?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=adv_dop200c&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:4326", "scaleExtent": [ - 0, + 8, 18 ], "polygon": [ @@ -12296,15 +12300,17 @@ 50.568462 ] ] - ] + ], + "terms_url": "www.geodaten.bayern.de", + "terms_text": "Bayerische Vermessungsverwaltung" }, { "id": "bavaria-DOP80", "name": "Bavaria DOP 80cm", "type": "tms", - "template": "http://mapproxy.osm.ch:8080/tiles/BAYERNDOP80/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "template": "https://mapproxy.osm.ch/tiles/BAYERNDOP80/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", "scaleExtent": [ - 0, + 7, 18 ], "polygon": [ @@ -13507,6 +13513,8 @@ ] ] ], + "terms_url": "www.geodaten.bayern.de", + "terms_text": "Bayerische Vermessungsverwaltung", "best": true }, { @@ -18979,6 +18987,8 @@ "name": "Benin: Cotonou Pleiade 2016", "type": "tms", "template": "http://geoxxx.agrocampus-ouest.fr/owsifl/gwc/service/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=Benin:cotonou_pleiade_2016&STYLE=&FORMAT=image/jpeg&tileMatrixSet=EPSG:3857&tileMatrix=EPSG:3857:{zoom}&tileRow={y}&tileCol={x}", + "endDate": "2016-01-01T00:00:00.000Z", + "startDate": "2016-01-01T00:00:00.000Z", "scaleExtent": [ 0, 21 @@ -26175,6 +26185,8 @@ "type": "wms", "template": "http://etat.geneve.ch/ags2/services/Orthophotos_2011/MapServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -26842,7 +26854,7 @@ "name": "Canvec", "type": "wms", "template": "http://wms.sst-sw.rncan.gc.ca/wms/toporama_fr?REQUEST=GetMap&SERVICE=wms&VERSION=1.1.1&EXCEPTIONS=application/vnd.ogc.se_inimage&SRS={proj}&FORMAT=image/png&transparent=true&layers=SCW-Toporama&WIDTH={width}&height={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", "polygon": [ [ [ @@ -33994,7 +34006,8 @@ ] ] ], - "terms_url": "http://poloha.net/" + "terms_url": "http://poloha.net/", + "terms_text": "Czech RUIAN" }, { "id": "Czech_RUIAN-parcely", @@ -34645,13 +34658,16 @@ ] ] ], - "terms_url": "http://poloha.net/" + "terms_url": "http://poloha.net/", + "terms_text": "Czech RUIAN" }, { "id": "Duna_2013", "name": "Danube flood orthophoto 2013", "type": "tms", "template": "http://e.tile.openstreetmap.hu/dunai-arviz-2013/{zoom}/{x}/{y}.jpg", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", "scaleExtent": [ 10, 20 @@ -34697,13 +34713,16 @@ ] ], "terms_url": "http://fototerkep.hu/", - "terms_text": "Fotótérkép.hu" + "terms_text": "Fotótérkép.hu", + "description": "Riverbank of Danube at Budapest, Szentendre and Szigetmonostor" }, { "id": "Delaware2012Orthophotography", "name": "Delaware 2012 Orthophotography", "type": "tms", "template": "http://whoots.mapwarper.net/tms/{zoom}/{x}/{y}/0/https://firstmap.delaware.gov/arcgis/services/DE_Imagery/DE_Imagery_2012/ImageServer/WMSServer", + "endDate": "2012-01-01T00:00:00.000Z", + "startDate": "2012-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -35616,6 +35635,8 @@ "type": "wms", "template": "https://secure.erlangen.de/arcgiser/services/Luftbilder2011/MapServer/WmsServer?FORMAT=image/bmp&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Erlangen_ratio10_5cm_gk4.jp2&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -35639,7 +35660,8 @@ 49.529292 ] ] - ] + ], + "terms_text": "© Stadt Erlangen | © Aerowest GmbH" }, { "id": "Erlangen-2013", @@ -35647,6 +35669,8 @@ "type": "wms", "template": "https://secure.erlangen.de/arcgiser/services/Luftbilder2013/MapServer/WmsServer?FORMAT=image/bmp&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Erlangen_ratio5_6.25cm.jp2&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -35670,7 +35694,8 @@ 49.529259 ] ] - ] + ], + "terms_text": "© Stadt Erlangen | © Aerowest GmbH" }, { "id": "Erlangen-2016", @@ -35883,7 +35908,8 @@ 49.537646 ] ] - ] + ], + "terms_text": "© Stadt Erlangen | © Geocart GmbH" }, { "id": "EsriWorldImagery", @@ -44514,7 +44540,7 @@ "name": "Geobase Hydrography", "type": "wms", "template": "http://ows.geobase.ca/wms/geobase_en?service=wms&request=GetMap&version=1.1.1&SRS={proj}&style=&format=image/png&transparent=true&layers=nhn:hydrography,nhn:network&WIDTH={width}&height={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", "polygon": [ [ [ @@ -45517,7 +45543,7 @@ "name": "Geobase Roads", "type": "wms", "template": "http://ows.geobase.ca/wms/geobase_en?service=wms&request=GetMap&version=1.1.1&SRS={proj}&style=&format=image/png&transparent=true&layers=nrn:addressrange,nrn:streetnames,nrn:streetnames:streetnames_primary,nrn:streetnames:streetnames_secondary,nrn:streetnames:streetnames_other,nhn:hydrography,nrn:roadnetwork&WIDTH={width}&height={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", "polygon": [ [ [ @@ -47292,6 +47318,4833 @@ "terms_text": "geoimage.at", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QwTFA8gQvGHigAAAwtJREFUOMvtk19oW1Ucx7/nnntukpvGtF2btHG1o52bYxULOp99sYggiM7pVKbbQNCH+SYOFMHCHhR88g9jjPmgm32YMpGNTbpp1W5D7NyfJnYLTdNm3ZI0SZPc5N5zzz3n+CIiCtM9+KQf+D39+H74Pfy+wH8Ocqvlh4enyblMO7JpKHl/X080sbhcnH3r3eNXkR1XtyU8cHiS2Hakf+iuxJ7enq7n4x12ijFDtz3fW11tzBZL1YMnpjKfvrN3m/O3ws+OTRnxmP1gsrf7g2RizUbGLCtkGdSkBnigtPCFaLXc1ZvF8vfZXOG1HdvGcn/M0z8Ln9nx8vBAas0ngwN9dzPGmGlSCkIMrTQxQABCSDjE2B2xyJ2E0A0d/Q+cPP/tMb7v0Kwx+tBz5PcL9350mXZFVuzR4b73Nm3o326HQpYdNonWMEAIgdZQWmvP8yECpZptKetNtzqTLkz8UpBfKmJ1tJo1SgBgfP8V2mhVn2JYet0Osc09Xabp+DFdbpgkV7SQ6jbRdCXaHAgU4AsFj0sQAFGbgguNhsPRqiyeM/d/PkezS4WxRilzpLM5ga5EEu5qGJvXDZFDuXvA4sO4b30MXCi4XCLRGYZhaFQaEtTQ6I5bKNV8HJ3ML1cLM+Pm1fnCaNFZmLhRORkkUltIpl2mI/duxMW8Rk0N4okRG3OLDtb2RlB3AthhgXI9QLbgIp13QQ0CrQSEU57JnX3/OBnbfWBfpVIZjEb7DClb8WRv50jMDqesSNzwpU+UFAiZFIGmaHsKFjNAKNOub8LhkC6XbiD4wvXLR19dOH/wzF9+8McL6Uev31jJNlrc8Xjg+4GSvlBKSKXaLpfFUk3kl5bddOZa7dTk1PTT2194DED3LfqxlZz+7qc35uZvXitXHdf1ROALKX+boO353nKpXr2UyU9/deLMzn9aPfLNDz+/NLC2/0WDhgZNxnqYSUzOA0f4vMg9J33xytzHz2595Ivb6vKet48kHx/b8mQ40vFwNMKS9UbzQmWleHrXK29+XZs/1cD//Cv8CriEgFStQ2K4AAAAAElFTkSuQmCC" }, + { + "id": "Geolittoral-Orthophotos2000", + "name": "Géolittoral - Orthophotos 2000", + "type": "wms", + "template": "http://geolittoral.application.developpement-durable.gouv.fr/wms2/metropole?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ortholittorale&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2000-01-01T00:00:00.000Z", + "startDate": "2000-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + -1.0796243, + 46.1095893 + ], + [ + -0.9411452, + 46.0147437 + ], + [ + -0.5630573, + 45.1517801 + ], + [ + -0.7265951, + 45.0842493 + ], + [ + -0.8790355, + 45.340936 + ], + [ + -0.9979449, + 45.3377907 + ], + [ + -0.9555838, + 44.6998247 + ], + [ + -1.1586189, + 44.1986482 + ], + [ + -1.2151202, + 44.2055773 + ], + [ + -1.2465448, + 44.1162047 + ], + [ + -1.2790262, + 44.0393718 + ], + [ + -1.2882474, + 44.0230397 + ], + [ + -1.3211693, + 43.9409384 + ], + [ + -1.321506, + 43.922956 + ], + [ + -1.3092024, + 43.9233665 + ], + [ + -1.308503, + 43.914392 + ], + [ + -1.2836627, + 43.9151384 + ], + [ + -1.2830152, + 43.9062373 + ], + [ + -1.2760964, + 43.9065485 + ], + [ + -1.2821086, + 43.8925378 + ], + [ + -1.3010173, + 43.8515886 + ], + [ + -1.3038406, + 43.8423978 + ], + [ + -1.3092283, + 43.8349806 + ], + [ + -1.3347421, + 43.7694562 + ], + [ + -1.3440669, + 43.7487464 + ], + [ + -1.3455951, + 43.742141 + ], + [ + -1.3467348, + 43.7368823 + ], + [ + -1.432844, + 43.53152 + ], + [ + -1.4280594, + 43.4681233 + ], + [ + -1.6062745, + 43.4059107 + ], + [ + -1.6060955, + 43.3601202 + ], + [ + -1.7744064, + 43.3035717 + ], + [ + -1.8299531, + 43.384841 + ], + [ + -1.5855116, + 43.4685563 + ], + [ + -1.3570598, + 44.0337366 + ], + [ + -1.4021655, + 44.0646122 + ], + [ + -1.3358385, + 44.2283161 + ], + [ + -1.218361, + 44.2303255 + ], + [ + -1.1679453, + 44.4109713 + ], + [ + -1.3074387, + 44.418472 + ], + [ + -1.1697949, + 45.5910689 + ], + [ + -1.486847, + 46.0604176 + ], + [ + -1.3636417, + 46.0914593 + ], + [ + -1.601759, + 46.1701852 + ], + [ + -1.6444184, + 46.2237487 + ], + [ + -1.5859481, + 46.304264 + ], + [ + -1.5100772, + 46.3388783 + ], + [ + -1.756428, + 46.4221446 + ], + [ + -2.1871988, + 46.8185697 + ], + [ + -2.1642284, + 46.8553436 + ], + [ + -2.2365406, + 46.9337048 + ], + [ + -2.3976918, + 46.9671834 + ], + [ + -2.2820042, + 47.0763113 + ], + [ + -2.1256261, + 47.018745 + ], + [ + -2.0901262, + 47.065624 + ], + [ + -2.184872, + 47.1069799 + ], + [ + -2.2647018, + 47.1076296 + ], + [ + -2.2448935, + 47.1856218 + ], + [ + -2.5677926, + 47.2446686 + ], + [ + -2.6672667, + 47.4668599 + ], + [ + -2.7478721, + 47.4712158 + ], + [ + -2.7577135, + 47.4346122 + ], + [ + -2.8932063, + 47.4629031 + ], + [ + -2.9036899, + 47.5090529 + ], + [ + -3.0338252, + 47.5383308 + ], + [ + -3.0711295, + 47.5118452 + ], + [ + -3.0165289, + 47.4987314 + ], + [ + -3.1250228, + 47.4269256 + ], + [ + -3.1880328, + 47.4844142 + ], + [ + -3.2279087, + 47.6113186 + ], + [ + -3.2966969, + 47.6316051 + ], + [ + -3.2875957, + 47.6715415 + ], + [ + -3.3407355, + 47.6689257 + ], + [ + -3.3891187, + 47.5947342 + ], + [ + -3.55087, + 47.6382724 + ], + [ + -3.5338384, + 47.724884 + ], + [ + -3.7657669, + 47.7647571 + ], + [ + -3.7759528, + 47.737096 + ], + [ + -3.9116771, + 47.7591549 + ], + [ + -3.8959022, + 47.7991129 + ], + [ + -3.9723628, + 47.8152607 + ], + [ + -3.9972201, + 47.7975006 + ], + [ + -3.97956, + 47.7626769 + ], + [ + -3.8945008, + 47.7219346 + ], + [ + -3.9161956, + 47.6783103 + ], + [ + -4.1016259, + 47.7092072 + ], + [ + -4.0898857, + 47.7894357 + ], + [ + -4.0379763, + 47.7990868 + ], + [ + -4.0412502, + 47.8310926 + ], + [ + -4.0876491, + 47.8422143 + ], + [ + -4.1478057, + 47.8252534 + ], + [ + -4.1431427, + 47.7884708 + ], + [ + -4.3516237, + 47.7414997 + ], + [ + -4.4796232, + 47.9776016 + ], + [ + -4.9856536, + 47.9989633 + ], + [ + -4.9693825, + 48.0897202 + ], + [ + -4.63576, + 48.0779844 + ], + [ + -4.6014717, + 48.1146852 + ], + [ + -4.3850007, + 48.1096154 + ], + [ + -4.3895513, + 48.1454286 + ], + [ + -4.3092543, + 48.1500888 + ], + [ + -4.3126821, + 48.1769373 + ], + [ + -4.4636854, + 48.1846773 + ], + [ + -4.4974841, + 48.1453035 + ], + [ + -4.5921009, + 48.1475763 + ], + [ + -4.5753669, + 48.22488 + ], + [ + -4.6710089, + 48.2330974 + ], + [ + -4.654341, + 48.3104921 + ], + [ + -4.8424298, + 48.3004956 + ], + [ + -5.1986731, + 48.4492607 + ], + [ + -5.103461, + 48.5172155 + ], + [ + -4.81465, + 48.3941286 + ], + [ + -4.8351542, + 48.5431896 + ], + [ + -4.6338697, + 48.6637334 + ], + [ + -3.9669223, + 48.7797813 + ], + [ + -3.9493945, + 48.7471474 + ], + [ + -3.6501973, + 48.7535602 + ], + [ + -3.6585313, + 48.8252653 + ], + [ + -3.539314, + 48.8583372 + ], + [ + -3.5444401, + 48.9029653 + ], + [ + -3.4095425, + 48.9186584 + ], + [ + -3.4075537, + 48.8736644 + ], + [ + -3.0276871, + 48.9275037 + ], + [ + -2.6786137, + 48.5884071 + ], + [ + -2.2847486, + 48.7190877 + ], + [ + -2.1754283, + 48.650163 + ], + [ + -2.0136968, + 48.7322121 + ], + [ + -1.8095282, + 48.7317759 + ], + [ + -1.8039194, + 48.6612609 + ], + [ + -1.6116146, + 48.6858177 + ], + [ + -1.7164548, + 49.2478104 + ], + [ + -1.8026014, + 49.3272144 + ], + [ + -1.8574757, + 49.3253007 + ], + [ + -1.9262013, + 49.6557284 + ], + [ + -2.03908, + 49.6787215 + ], + [ + -2.0044546, + 49.7608677 + ], + [ + -1.6175855, + 49.6849834 + ], + [ + -1.2837344, + 49.7606702 + ], + [ + -1.1492009, + 49.6350423 + ], + [ + -1.1713375, + 49.5541159 + ], + [ + -1.2735291, + 49.5524476 + ], + [ + -1.1327984, + 49.3933982 + ], + [ + -0.930595, + 49.4080413 + ], + [ + -0.7482671, + 49.3597647 + ], + [ + -0.3893456, + 49.34167 + ], + [ + -0.2470445, + 49.2999494 + ], + [ + -0.1245368, + 49.2935335 + ], + [ + 0.0273095, + 49.3761879 + ], + [ + 0.0180063, + 49.5465556 + ], + [ + 0.1221093, + 49.6929183 + ], + [ + 0.5171306, + 49.8646551 + ], + [ + 1.057268, + 49.9490353 + ], + [ + 1.4390814, + 50.1181936 + ], + [ + 1.5317687, + 50.4643666 + ], + [ + 1.5254895, + 50.8586668 + ], + [ + 1.6411818, + 50.9591925 + ], + [ + 2.452105, + 51.1214375 + ], + [ + 2.5928557, + 51.1212359 + ], + [ + 2.6068264, + 51.0577932 + ], + [ + 1.7975971, + 50.8990562 + ], + [ + 1.6645759, + 50.8237878 + ], + [ + 1.7078633, + 50.1282048 + ], + [ + 1.0593618, + 49.85 + ], + [ + 0.6160689, + 49.7906207 + ], + [ + 0.2473107, + 49.6502699 + ], + [ + 0.1709048, + 49.5317374 + ], + [ + 0.5706464, + 49.496223 + ], + [ + 0.4111492, + 49.3395965 + ], + [ + 0.1950421, + 49.3573571 + ], + [ + 0.0171786, + 49.2547917 + ], + [ + -0.2445265, + 49.2631234 + ], + [ + -0.3840751, + 49.3049516 + ], + [ + -0.7409079, + 49.3243829 + ], + [ + -0.995405, + 49.3713264 + ], + [ + -1.0545337, + 49.2517481 + ], + [ + -1.27704, + 49.2902182 + ], + [ + -1.2596644, + 49.4346254 + ], + [ + -1.3914123, + 49.5398482 + ], + [ + -1.2753453, + 49.6205575 + ], + [ + -1.2977482, + 49.6594602 + ], + [ + -1.490498, + 49.5713903 + ], + [ + -1.77517, + 49.6339843 + ], + [ + -1.7460051, + 49.4815523 + ], + [ + -1.5129407, + 49.2469097 + ], + [ + -1.4826149, + 48.7260698 + ], + [ + -1.3057444, + 48.725312 + ], + [ + -1.283234, + 48.5973085 + ], + [ + -2.7611439, + 48.4347142 + ], + [ + -3.0017371, + 48.6764625 + ], + [ + -3.210615, + 48.7209691 + ], + [ + -3.9540369, + 48.5605102 + ], + [ + -4.1564328, + 48.6079181 + ], + [ + -4.4447478, + 48.5585184 + ], + [ + -4.6368255, + 48.482991 + ], + [ + -4.6318979, + 48.4472691 + ], + [ + -4.2502228, + 48.43088 + ], + [ + -4.0614098, + 48.2180466 + ], + [ + -4.1757039, + 48.0516486 + ], + [ + -4.3190366, + 48.0140984 + ], + [ + -4.2678092, + 47.8997734 + ], + [ + -3.8848444, + 47.9817224 + ], + [ + -3.7637481, + 47.8640348 + ], + [ + -2.3272701, + 47.5263402 + ], + [ + -2.3691075, + 47.3338959 + ], + [ + -1.7406713, + 47.3350685 + ], + [ + -1.7706224, + 47.204506 + ], + [ + -2.0367815, + 47.2194206 + ], + [ + -2.096803, + 47.1554772 + ], + [ + -1.8878613, + 47.0123909 + ], + [ + -2.0879728, + 46.8300739 + ], + [ + -2.0121404, + 46.8343598 + ], + [ + -1.8407867, + 46.6965096 + ], + [ + -1.873184, + 46.654836 + ], + [ + -1.688585, + 46.5039205 + ], + [ + -1.6211652, + 46.5151306 + ], + [ + -1.4242755, + 46.4167482 + ], + [ + -1.0176087, + 46.3591735 + ], + [ + -1.0796243, + 46.1095893 + ] + ], + [ + [ + -2.4123238, + 46.6924223 + ], + [ + -2.3719717, + 46.676112 + ], + [ + -2.2674923, + 46.680326 + ], + [ + -2.270068, + 46.7070521 + ], + [ + -2.2982682, + 46.7328597 + ], + [ + -2.4165505, + 46.7371145 + ], + [ + -2.4123238, + 46.6924223 + ] + ], + [ + [ + -3.06018, + 47.4054194 + ], + [ + -2.8258703, + 47.2963471 + ], + [ + -2.7878715, + 47.3341715 + ], + [ + -3.0243638, + 47.4456259 + ], + [ + -3.06018, + 47.4054194 + ] + ], + [ + [ + -3.2648203, + 47.4295047 + ], + [ + -3.334303, + 47.3592752 + ], + [ + -3.2961388, + 47.3413278 + ], + [ + -3.3148902, + 47.3005706 + ], + [ + -3.1994054, + 47.2449216 + ], + [ + -3.1656728, + 47.2775103 + ], + [ + -3.086864, + 47.2361201 + ], + [ + -3.0063687, + 47.3085541 + ], + [ + -3.2648203, + 47.4295047 + ] + ], + [ + [ + -1.939663, + 48.8634633 + ], + [ + -1.9399349, + 48.9117889 + ], + [ + -1.7009983, + 48.9110507 + ], + [ + -1.6972613, + 48.8617305 + ], + [ + -1.939663, + 48.8634633 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/G%C3%A9oLittoral", + "terms_text": "Ortho littorale 2000" + }, + { + "id": "Geolittoral-Sentiers", + "name": "Géolittoral - Sentiers", + "type": "wms", + "template": "http://geolittoral.application.developpement-durable.gouv.fr/wms2/metropole?FORMAT=image/png&TRANSPARENT=TRUE&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=n_sentier_littoral_l&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + -0.9838474, + 46.1880746 + ], + [ + -0.8949679, + 46.156277 + ], + [ + -0.934552, + 46.1016299 + ], + [ + -0.843878, + 46.0694893 + ], + [ + -0.8824065, + 46.0163689 + ], + [ + -0.5378663, + 45.8955775 + ], + [ + -0.6349793, + 45.7644353 + ], + [ + -0.8666589, + 45.8479032 + ], + [ + -0.7626356, + 45.6245041 + ], + [ + -0.6969519, + 45.6265921 + ], + [ + -0.6939663, + 45.6018445 + ], + [ + -0.6875472, + 45.6017401 + ], + [ + -0.6879951, + 45.5098594 + ], + [ + -0.6379859, + 45.5089178 + ], + [ + -0.6397773, + 45.4474748 + ], + [ + -0.615743, + 45.4469511 + ], + [ + -0.6161909, + 45.3858599 + ], + [ + -0.585439, + 45.3859647 + ], + [ + -0.5852897, + 45.3233381 + ], + [ + -0.5537914, + 45.323443 + ], + [ + -0.5527464, + 45.1966145 + ], + [ + -0.490944, + 45.195773 + ], + [ + -0.4918397, + 45.1331467 + ], + [ + -0.4566094, + 45.133252 + ], + [ + -0.4551166, + 45.0716113 + ], + [ + -0.4161067, + 45.0708893 + ], + [ + -0.4162123, + 45.0269636 + ], + [ + -0.2907042, + 44.9827801 + ], + [ + -0.2199988, + 45.0677104 + ], + [ + -0.1225183, + 45.0256272 + ], + [ + -0.1892469, + 44.9459114 + ], + [ + -0.0926621, + 44.9101881 + ], + [ + -0.145209, + 44.8392042 + ], + [ + -0.1549123, + 44.8423797 + ], + [ + -0.1938747, + 44.7867829 + ], + [ + -0.4354115, + 44.8731731 + ], + [ + -0.3904779, + 44.6841324 + ], + [ + -0.5879767, + 44.6601403 + ], + [ + -0.6662784, + 44.9912911 + ], + [ + -0.7783806, + 44.9926348 + ], + [ + -0.7776417, + 45.0538898 + ], + [ + -0.8158437, + 45.0532114 + ], + [ + -0.818377, + 45.1196158 + ], + [ + -0.8839284, + 45.1205096 + ], + [ + -0.8817117, + 45.1808092 + ], + [ + -0.9343849, + 45.1818509 + ], + [ + -0.9328016, + 45.2448356 + ], + [ + -1.0016252, + 45.2443896 + ], + [ + -1.0024696, + 45.3082702 + ], + [ + -1.0523984, + 45.3101261 + ], + [ + -1.0482817, + 45.3691125 + ], + [ + -1.0641153, + 45.3691125 + ], + [ + -1.0503928, + 45.1825205 + ], + [ + -1.1076051, + 44.8078702 + ], + [ + -1.0151366, + 44.8011296 + ], + [ + -1.0194644, + 44.7691388 + ], + [ + -0.933646, + 44.7614944 + ], + [ + -0.9404017, + 44.7018029 + ], + [ + -0.9603521, + 44.5643388 + ], + [ + -1.014081, + 44.5676478 + ], + [ + -1.0991605, + 44.1456002 + ], + [ + -1.2268852, + 44.140222 + ], + [ + -1.2185281, + 44.0324931 + ], + [ + -1.3076188, + 44.029002 + ], + [ + -1.3957164, + 43.7430052 + ], + [ + -1.3129592, + 43.7295057 + ], + [ + -1.3743937, + 43.5310863 + ], + [ + -1.3458932, + 43.506056 + ], + [ + -1.599642, + 43.3542258 + ], + [ + -1.7654877, + 43.255483 + ], + [ + -1.7928061, + 43.2803753 + ], + [ + -1.8028079, + 43.4042503 + ], + [ + -1.7283167, + 43.4503267 + ], + [ + -1.5853054, + 43.4890037 + ], + [ + -1.3358385, + 44.2283161 + ], + [ + -1.3074387, + 44.418472 + ], + [ + -1.2251061, + 45.4441615 + ], + [ + -1.486847, + 46.0604176 + ], + [ + -1.601759, + 46.1701852 + ], + [ + -1.6444184, + 46.2237487 + ], + [ + -1.756428, + 46.4221446 + ], + [ + -2.0348287, + 46.6189544 + ], + [ + -2.3465983, + 46.6238164 + ], + [ + -2.4656134, + 46.7119647 + ], + [ + -2.3232967, + 46.8381171 + ], + [ + -2.4528645, + 46.9385605 + ], + [ + -2.3173318, + 47.1621397 + ], + [ + -2.9284827, + 47.2841337 + ], + [ + -2.967417, + 47.2214691 + ], + [ + -3.3560228, + 47.3247359 + ], + [ + -3.1880328, + 47.4844142 + ], + [ + -3.2279087, + 47.6113186 + ], + [ + -3.3891187, + 47.5947342 + ], + [ + -3.9161956, + 47.6783103 + ], + [ + -4.1016259, + 47.7092072 + ], + [ + -4.1431427, + 47.7884708 + ], + [ + -4.3761893, + 47.7106674 + ], + [ + -4.4796232, + 47.9776016 + ], + [ + -4.9856536, + 47.9989633 + ], + [ + -4.9693825, + 48.0897202 + ], + [ + -4.6014717, + 48.1146852 + ], + [ + -4.5921009, + 48.1475763 + ], + [ + -4.6710089, + 48.2330974 + ], + [ + -4.8424298, + 48.3004956 + ], + [ + -5.1986731, + 48.4492607 + ], + [ + -5.103461, + 48.5172155 + ], + [ + -4.8351542, + 48.5431896 + ], + [ + -4.6311736, + 48.6612896 + ], + [ + -3.9669223, + 48.7797813 + ], + [ + -3.9493945, + 48.7471474 + ], + [ + -3.6701315, + 48.895078 + ], + [ + -3.5444401, + 48.9029653 + ], + [ + -3.4095425, + 48.9186584 + ], + [ + -3.3334381, + 48.904579 + ], + [ + -3.0276871, + 48.9275037 + ], + [ + -2.8020731, + 48.7979285 + ], + [ + -2.6935289, + 48.7672208 + ], + [ + -2.4578583, + 48.7089607 + ], + [ + -2.2847486, + 48.7190877 + ], + [ + -2.1754283, + 48.650163 + ], + [ + -2.0136968, + 48.7322121 + ], + [ + -1.8095282, + 48.7317759 + ], + [ + -1.7243003, + 48.7582771 + ], + [ + -1.7055705, + 48.8451195 + ], + [ + -1.9030442, + 48.8628775 + ], + [ + -1.9102707, + 48.9234787 + ], + [ + -1.6871357, + 48.9324898 + ], + [ + -1.7427683, + 49.244734 + ], + [ + -1.8574757, + 49.3253007 + ], + [ + -1.9262013, + 49.6557284 + ], + [ + -2.03908, + 49.6787215 + ], + [ + -2.0044546, + 49.7608677 + ], + [ + -1.6175855, + 49.6849834 + ], + [ + -1.2837344, + 49.7606702 + ], + [ + -1.1492009, + 49.6350423 + ], + [ + -1.1854462, + 49.5483609 + ], + [ + -0.9646323, + 49.4250945 + ], + [ + -0.7442883, + 49.3680181 + ], + [ + -0.3901362, + 49.3621973 + ], + [ + -0.2497648, + 49.3157973 + ], + [ + -0.1334235, + 49.3129316 + ], + [ + 0.0273095, + 49.3761879 + ], + [ + 0.0180063, + 49.5465556 + ], + [ + 0.1221093, + 49.6929183 + ], + [ + 0.5171306, + 49.8646551 + ], + [ + 1.057268, + 49.9490353 + ], + [ + 1.4390814, + 50.1181936 + ], + [ + 1.5317687, + 50.4643666 + ], + [ + 1.5254895, + 50.8586668 + ], + [ + 1.6411818, + 50.9591925 + ], + [ + 2.5971186, + 51.1735455 + ], + [ + 2.6607107, + 51.0195972 + ], + [ + 2.0712386, + 50.9202211 + ], + [ + 2.05937, + 50.9470929 + ], + [ + 1.7975971, + 50.8990562 + ], + [ + 1.6808947, + 50.8717016 + ], + [ + 1.6556923, + 50.5972904 + ], + [ + 1.7535714, + 50.5931978 + ], + [ + 1.7229475, + 50.2470239 + ], + [ + 1.8215592, + 50.2426198 + ], + [ + 1.8014852, + 50.0511647 + ], + [ + 1.5456517, + 50.063112 + ], + [ + 1.541549, + 50.0126688 + ], + [ + 1.4246216, + 50.0174707 + ], + [ + 1.426673, + 50.0527642 + ], + [ + 1.0383804, + 49.8460945 + ], + [ + 0.9827008, + 49.8891609 + ], + [ + 0.5796091, + 49.8213328 + ], + [ + 0.420629, + 49.76297 + ], + [ + 0.4281018, + 49.7544509 + ], + [ + 0.2083136, + 49.6726862 + ], + [ + 0.147652, + 49.5776743 + ], + [ + 0.1346112, + 49.5809045 + ], + [ + 0.1111672, + 49.543649 + ], + [ + 0.5659823, + 49.520445 + ], + [ + 0.5631983, + 49.4998946 + ], + [ + 0.6300139, + 49.496659 + ], + [ + 0.6147753, + 49.3744072 + ], + [ + 0.5482527, + 49.3785094 + ], + [ + 0.5425382, + 49.3346073 + ], + [ + 0.4574069, + 49.3393812 + ], + [ + 0.4584326, + 49.3449183 + ], + [ + 0.3259735, + 49.354559 + ], + [ + 0.3284645, + 49.3812758 + ], + [ + 0.280111, + 49.3843283 + ], + [ + 0.2768875, + 49.363339 + ], + [ + 0.210951, + 49.3665834 + ], + [ + 0.208167, + 49.3508366 + ], + [ + 0.1432562, + 49.3553225 + ], + [ + 0.1376883, + 49.3114953 + ], + [ + 0.0720449, + 49.3153162 + ], + [ + 0.0675026, + 49.2871299 + ], + [ + 0.0027383, + 49.2907616 + ], + [ + 0.0050827, + 49.2571106 + ], + [ + -0.0202662, + 49.260362 + ], + [ + -0.0349188, + 49.1973043 + ], + [ + -0.194485, + 49.2146316 + ], + [ + -0.389657, + 49.127263 + ], + [ + -0.4536886, + 49.1879201 + ], + [ + -0.3561026, + 49.2321443 + ], + [ + -0.8208815, + 49.2833068 + ], + [ + -0.9977772, + 49.3014908 + ], + [ + -1.1672818, + 49.2454506 + ], + [ + -1.1951526, + 49.2818265 + ], + [ + -1.2676791, + 49.2409863 + ], + [ + -1.341138, + 49.2975045 + ], + [ + -1.2476825, + 49.3502459 + ], + [ + -1.4458287, + 49.6068946 + ], + [ + -1.8110511, + 49.6175689 + ], + [ + -1.7747878, + 49.4433325 + ], + [ + -1.7277493, + 49.4650871 + ], + [ + -1.5338965, + 49.2909826 + ], + [ + -1.4790873, + 49.2923341 + ], + [ + -1.4760826, + 49.2402747 + ], + [ + -1.4355714, + 49.2032589 + ], + [ + -1.4722491, + 49.182201 + ], + [ + -1.4509056, + 48.7572466 + ], + [ + -1.3115513, + 48.7640766 + ], + [ + -1.3053347, + 48.7021631 + ], + [ + -1.2583998, + 48.7042144 + ], + [ + -1.2522868, + 48.6435279 + ], + [ + -1.2351913, + 48.6443494 + ], + [ + -1.2269026, + 48.5682354 + ], + [ + -1.8521839, + 48.5308559 + ], + [ + -1.8490756, + 48.4974996 + ], + [ + -1.9232598, + 48.4918694 + ], + [ + -1.9281294, + 48.4409635 + ], + [ + -2.0427212, + 48.4360144 + ], + [ + -2.0388876, + 48.4819121 + ], + [ + -2.2895011, + 48.4610214 + ], + [ + -2.3021023, + 48.5243337 + ], + [ + -2.4086263, + 48.5161813 + ], + [ + -2.4203484, + 48.5695361 + ], + [ + -2.4308411, + 48.5785185 + ], + [ + -2.4908308, + 48.5492405 + ], + [ + -2.4735281, + 48.5332572 + ], + [ + -2.5497844, + 48.4964697 + ], + [ + -2.5400451, + 48.4874747 + ], + [ + -2.7068057, + 48.4074551 + ], + [ + -3.0297895, + 48.6911498 + ], + [ + -4.0103381, + 48.5317872 + ], + [ + -4.0534166, + 48.6441199 + ], + [ + -4.3828059, + 48.5734929 + ], + [ + -4.3548195, + 48.5117951 + ], + [ + -4.3885293, + 48.5047279 + ], + [ + -4.1349543, + 48.4486809 + ], + [ + -4.1641129, + 48.389361 + ], + [ + -4.01832, + 48.3568516 + ], + [ + -4.0473321, + 48.2991791 + ], + [ + -3.9881358, + 48.2867008 + ], + [ + -4.0213971, + 48.216063 + ], + [ + -4.0363427, + 48.2195777 + ], + [ + -4.0662339, + 48.160284 + ], + [ + -4.1667504, + 48.1824662 + ], + [ + -4.1833077, + 48.149336 + ], + [ + -4.1723183, + 48.106499 + ], + [ + -4.2011062, + 48.1028546 + ], + [ + -4.1864321, + 48.0438867 + ], + [ + -4.1880639, + 48.0406137 + ], + [ + -4.3568595, + 48.0230513 + ], + [ + -4.2565705, + 47.9399726 + ], + [ + -4.2336349, + 47.9349658 + ], + [ + -4.2137074, + 47.9759839 + ], + [ + -4.2185428, + 47.977259 + ], + [ + -4.1805957, + 48.0556897 + ], + [ + -3.6172022, + 47.9312353 + ], + [ + -2.1799085, + 47.5864218 + ], + [ + -2.25449, + 47.4450059 + ], + [ + -2.3018177, + 47.4567969 + ], + [ + -2.3204265, + 47.4209203 + ], + [ + -2.3037225, + 47.4175495 + ], + [ + -2.3475337, + 47.3349949 + ], + [ + -2.3621862, + 47.3383711 + ], + [ + -2.380795, + 47.3039043 + ], + [ + -2.3585231, + 47.2985385 + ], + [ + -2.2996198, + 47.297843 + ], + [ + -2.297422, + 47.3617996 + ], + [ + -2.1319947, + 47.3585242 + ], + [ + -2.1347787, + 47.3910707 + ], + [ + -2.0156534, + 47.3962286 + ], + [ + -2.0140417, + 47.3809517 + ], + [ + -1.9286173, + 47.3825391 + ], + [ + -1.9289103, + 47.3795626 + ], + [ + -1.8322035, + 47.3818446 + ], + [ + -1.8298591, + 47.3416477 + ], + [ + -1.7360828, + 47.3430378 + ], + [ + -1.734178, + 47.3049972 + ], + [ + -1.6408412, + 47.3063882 + ], + [ + -1.6401086, + 47.2942654 + ], + [ + -1.5835498, + 47.2956567 + ], + [ + -1.5853081, + 47.3370802 + ], + [ + -1.461201, + 47.3396619 + ], + [ + -1.4600288, + 47.3292351 + ], + [ + -1.3721135, + 47.3322144 + ], + [ + -1.360538, + 47.1123893 + ], + [ + -1.4856707, + 47.1114918 + ], + [ + -1.4858173, + 47.1187709 + ], + [ + -1.6689741, + 47.1168765 + ], + [ + -1.6697068, + 47.1286411 + ], + [ + -1.725533, + 47.1276442 + ], + [ + -1.7261191, + 47.1376124 + ], + [ + -1.9397532, + 47.1326285 + ], + [ + -1.9401928, + 47.1421971 + ], + [ + -1.9925024, + 47.1430941 + ], + [ + -1.8106643, + 47.0058819 + ], + [ + -1.947226, + 46.9207831 + ], + [ + -1.9289103, + 46.9067703 + ], + [ + -1.9952864, + 46.8646098 + ], + [ + -1.7365224, + 46.6683945 + ], + [ + -1.7753516, + 46.643855 + ], + [ + -1.8267821, + 46.6417425 + ], + [ + -1.8247307, + 46.6207134 + ], + [ + -1.1819234, + 46.399869 + ], + [ + -0.9126096, + 46.3048021 + ], + [ + -0.9548089, + 46.2488984 + ], + [ + -0.9423542, + 46.2442372 + ], + [ + -0.9838474, + 46.1880746 + ] + ], + [ + [ + 3.1476937, + 42.4007197 + ], + [ + 3.1494906, + 42.4001543 + ], + [ + 3.1530531, + 42.4005236 + ], + [ + 3.1580376, + 42.4024274 + ], + [ + 3.1876974, + 42.4280509 + ], + [ + 3.142265, + 42.5247964 + ], + [ + 3.0683711, + 42.5463547 + ], + [ + 3.0488369, + 42.6941959 + ], + [ + 3.0798953, + 43.0307277 + ], + [ + 3.226405, + 43.1872688 + ], + [ + 3.4091582, + 43.2603206 + ], + [ + 3.5210352, + 43.258773 + ], + [ + 3.6642877, + 43.3762765 + ], + [ + 3.738414, + 43.3905396 + ], + [ + 4.0097937, + 43.536068 + ], + [ + 4.1769217, + 43.4563611 + ], + [ + 4.5435531, + 43.4334906 + ], + [ + 4.5494282, + 43.3540119 + ], + [ + 4.8350582, + 43.3089126 + ], + [ + 4.9750606, + 43.3830905 + ], + [ + 5.0321866, + 43.3192811 + ], + [ + 5.2591906, + 43.3192811 + ], + [ + 5.3108165, + 43.2050388 + ], + [ + 5.3568173, + 43.1864485 + ], + [ + 5.3688175, + 43.1678525 + ], + [ + 5.4023181, + 43.1621085 + ], + [ + 5.4138183, + 43.1712257 + ], + [ + 5.4091932, + 43.1992072 + ], + [ + 5.5423205, + 43.1882713 + ], + [ + 5.6058216, + 43.1479741 + ], + [ + 5.6196969, + 43.1528987 + ], + [ + 5.6383222, + 43.1715904 + ], + [ + 5.6715728, + 43.1673966 + ], + [ + 5.6909481, + 43.13411 + ], + [ + 5.7760746, + 43.1063726 + ], + [ + 5.7761996, + 43.0943247 + ], + [ + 5.7540742, + 43.0832788 + ], + [ + 5.7570743, + 43.0725048 + ], + [ + 5.7703245, + 43.0646514 + ], + [ + 5.8593261, + 43.0346897 + ], + [ + 5.8877016, + 43.0627336 + ], + [ + 5.9567028, + 43.0610897 + ], + [ + 5.9638279, + 43.092773 + ], + [ + 6.0003285, + 43.0918601 + ], + [ + 6.0174538, + 43.068487 + ], + [ + 6.1023303, + 43.0741485 + ], + [ + 6.1048304, + 43.0525954 + ], + [ + 6.0665981, + 43.0431845 + ], + [ + 6.0672168, + 43.0378549 + ], + [ + 6.1427018, + 43.0092284 + ], + [ + 6.1567558, + 42.9871518 + ], + [ + 6.1963544, + 42.9733134 + ], + [ + 6.2222085, + 42.9801037 + ], + [ + 6.2689052, + 42.996508 + ], + [ + 6.2551549, + 43.0362655 + ], + [ + 6.201904, + 43.0271281 + ], + [ + 6.1837787, + 43.0918826 + ], + [ + 6.3015307, + 43.0990937 + ], + [ + 6.3247811, + 43.0797407 + ], + [ + 6.3777821, + 43.0801059 + ], + [ + 6.3886572, + 43.1339501 + ], + [ + 6.5134094, + 43.1460813 + ], + [ + 6.5770355, + 43.1788145 + ], + [ + 6.6229113, + 43.1456253 + ], + [ + 6.6977876, + 43.1996853 + ], + [ + 6.6801623, + 43.2335736 + ], + [ + 6.7211631, + 43.26007 + ], + [ + 6.7224131, + 43.2747245 + ], + [ + 6.6705372, + 43.2919232 + ], + [ + 6.6874125, + 43.3311252 + ], + [ + 6.7241631, + 43.3426718 + ], + [ + 6.7529136, + 43.4089993 + ], + [ + 6.7910393, + 43.3967387 + ], + [ + 6.9062913, + 43.4167176 + ], + [ + 6.9676674, + 43.5027333 + ], + [ + 6.9661673, + 43.5281154 + ], + [ + 7.006168, + 43.5384464 + ], + [ + 7.0355435, + 43.4981997 + ], + [ + 7.0689191, + 43.5001038 + ], + [ + 7.0907945, + 43.5164228 + ], + [ + 7.062669, + 43.5367247 + ], + [ + 7.0825444, + 43.5456046 + ], + [ + 7.1237951, + 43.5307436 + ], + [ + 7.1557957, + 43.5437019 + ], + [ + 7.1432954, + 43.622841 + ], + [ + 7.1686709, + 43.6463635 + ], + [ + 7.2137967, + 43.6346939 + ], + [ + 7.2541724, + 43.6849746 + ], + [ + 7.3402989, + 43.6674354 + ], + [ + 7.3644243, + 43.6894038 + ], + [ + 7.3530491, + 43.7082017 + ], + [ + 7.4163002, + 43.7109124 + ], + [ + 7.4540509, + 43.7450573 + ], + [ + 7.4943016, + 43.7452379 + ], + [ + 7.5794281, + 43.7842366 + ], + [ + 7.6055156, + 43.7860269 + ], + [ + 7.6036815, + 43.7889781 + ], + [ + 7.5958811, + 43.7952788 + ], + [ + 7.5962789, + 43.7954862 + ], + [ + 7.5385252, + 43.8419488 + ], + [ + 7.4599632, + 43.7998784 + ], + [ + 7.4478096, + 43.8093355 + ], + [ + 7.3235339, + 43.7480609 + ], + [ + 7.3082211, + 43.7635679 + ], + [ + 6.6487795, + 43.3885012 + ], + [ + 6.6686548, + 43.3717842 + ], + [ + 6.510027, + 43.2780293 + ], + [ + 6.5658405, + 43.2250863 + ], + [ + 6.1268057, + 43.105272 + ], + [ + 5.4822945, + 43.2493904 + ], + [ + 5.4726693, + 43.2309046 + ], + [ + 5.4156683, + 43.2465678 + ], + [ + 5.4526689, + 43.3450985 + ], + [ + 4.8019076, + 43.4815759 + ], + [ + 4.7641569, + 43.3924419 + ], + [ + 4.657155, + 43.423681 + ], + [ + 4.6722803, + 43.4560836 + ], + [ + 4.4320261, + 43.5241904 + ], + [ + 4.4145258, + 43.4925498 + ], + [ + 4.1610214, + 43.5643292 + ], + [ + 4.1445211, + 43.5706693 + ], + [ + 4.141646, + 43.5739296 + ], + [ + 4.1867718, + 43.5994627 + ], + [ + 4.1056454, + 43.6819639 + ], + [ + 3.79689, + 43.5216525 + ], + [ + 3.7785147, + 43.5131316 + ], + [ + 3.7646394, + 43.5059696 + ], + [ + 3.7620144, + 43.5033403 + ], + [ + 3.7422641, + 43.4932752 + ], + [ + 3.7160136, + 43.5207461 + ], + [ + 3.2621307, + 43.2814311 + ], + [ + 3.2463804, + 43.2973542 + ], + [ + 3.1838793, + 43.2805211 + ], + [ + 3.1067529, + 43.2408312 + ], + [ + 3.1547538, + 43.1941898 + ], + [ + 2.9062494, + 43.1938252 + ], + [ + 2.9067495, + 42.761892 + ], + [ + 2.9461251, + 42.7620755 + ], + [ + 2.9465001, + 42.6151551 + ], + [ + 2.992376, + 42.6149711 + ], + [ + 2.992376, + 42.5125003 + ], + [ + 3.0410018, + 42.5125924 + ], + [ + 3.0412052, + 42.5009317 + ], + [ + 3.0908647, + 42.5008187 + ], + [ + 3.1476937, + 42.4007197 + ] + ], + [ + [ + 6.3594494, + 43.0232125 + ], + [ + 6.4247695, + 43.0244403 + ], + [ + 6.4524356, + 43.0350368 + ], + [ + 6.4698484, + 43.0546098 + ], + [ + 6.5112149, + 43.0576453 + ], + [ + 6.5215565, + 43.0431768 + ], + [ + 6.4836372, + 43.0244403 + ], + [ + 6.471793, + 43.0072494 + ], + [ + 6.4117762, + 42.9917993 + ], + [ + 6.3985177, + 42.980484 + ], + [ + 6.3517753, + 42.9990494 + ], + [ + 6.3594494, + 43.0232125 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/G%C3%A9oLittoral", + "terms_text": "Ortho littorale 2000" + }, + { + "id": "GeolittoralV2-Orthophotos", + "name": "Géolittoral V2 - Orthophotos 2011-2014", + "type": "wms", + "template": "http://geolittoral.application.developpement-durable.gouv.fr/wms2/metropole?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ortholittorale_v2_rvb&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "endDate": "2014-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", + "polygon": [ + [ + [ + -0.9838474, + 46.1880746 + ], + [ + -0.8949679, + 46.156277 + ], + [ + -0.934552, + 46.1016299 + ], + [ + -0.843878, + 46.0694893 + ], + [ + -0.8824065, + 46.0163689 + ], + [ + -0.5378663, + 45.8955775 + ], + [ + -0.6349793, + 45.7644353 + ], + [ + -0.8666589, + 45.8479032 + ], + [ + -0.7626356, + 45.6245041 + ], + [ + -0.6969519, + 45.6265921 + ], + [ + -0.6939663, + 45.6018445 + ], + [ + -0.6875472, + 45.6017401 + ], + [ + -0.6879951, + 45.5098594 + ], + [ + -0.6379859, + 45.5089178 + ], + [ + -0.6397773, + 45.4474748 + ], + [ + -0.615743, + 45.4469511 + ], + [ + -0.6161909, + 45.3858599 + ], + [ + -0.585439, + 45.3859647 + ], + [ + -0.5852897, + 45.3233381 + ], + [ + -0.5537914, + 45.323443 + ], + [ + -0.5527464, + 45.1966145 + ], + [ + -0.490944, + 45.195773 + ], + [ + -0.4918397, + 45.1331467 + ], + [ + -0.4566094, + 45.133252 + ], + [ + -0.4551166, + 45.0716113 + ], + [ + -0.4161067, + 45.0708893 + ], + [ + -0.4162123, + 45.0269636 + ], + [ + -0.2907042, + 44.9827801 + ], + [ + -0.2199988, + 45.0677104 + ], + [ + -0.1225183, + 45.0256272 + ], + [ + -0.1892469, + 44.9459114 + ], + [ + -0.0926621, + 44.9101881 + ], + [ + -0.145209, + 44.8392042 + ], + [ + -0.1549123, + 44.8423797 + ], + [ + -0.1938747, + 44.7867829 + ], + [ + -0.4354115, + 44.8731731 + ], + [ + -0.3904779, + 44.6841324 + ], + [ + -0.5879767, + 44.6601403 + ], + [ + -0.6662784, + 44.9912911 + ], + [ + -0.7783806, + 44.9926348 + ], + [ + -0.7776417, + 45.0538898 + ], + [ + -0.8158437, + 45.0532114 + ], + [ + -0.818377, + 45.1196158 + ], + [ + -0.8839284, + 45.1205096 + ], + [ + -0.8817117, + 45.1808092 + ], + [ + -0.9343849, + 45.1818509 + ], + [ + -0.9328016, + 45.2448356 + ], + [ + -1.0016252, + 45.2443896 + ], + [ + -1.0024696, + 45.3082702 + ], + [ + -1.0523984, + 45.3101261 + ], + [ + -1.0482817, + 45.3691125 + ], + [ + -1.0641153, + 45.3691125 + ], + [ + -1.0503928, + 45.1825205 + ], + [ + -1.1076051, + 44.8078702 + ], + [ + -1.0151366, + 44.8011296 + ], + [ + -1.0194644, + 44.7691388 + ], + [ + -0.933646, + 44.7614944 + ], + [ + -0.9404017, + 44.7018029 + ], + [ + -0.9603521, + 44.5643388 + ], + [ + -1.014081, + 44.5676478 + ], + [ + -1.0991605, + 44.1456002 + ], + [ + -1.2268852, + 44.140222 + ], + [ + -1.2185281, + 44.0324931 + ], + [ + -1.3076188, + 44.029002 + ], + [ + -1.3957164, + 43.7430052 + ], + [ + -1.3129592, + 43.7295057 + ], + [ + -1.3743937, + 43.5310863 + ], + [ + -1.3458932, + 43.506056 + ], + [ + -1.599642, + 43.3542258 + ], + [ + -1.7654877, + 43.255483 + ], + [ + -1.7928061, + 43.2803753 + ], + [ + -1.8028079, + 43.4042503 + ], + [ + -1.7283167, + 43.4503267 + ], + [ + -1.5853054, + 43.4890037 + ], + [ + -1.3358385, + 44.2283161 + ], + [ + -1.3074387, + 44.418472 + ], + [ + -1.2251061, + 45.4441615 + ], + [ + -1.486847, + 46.0604176 + ], + [ + -1.601759, + 46.1701852 + ], + [ + -1.6444184, + 46.2237487 + ], + [ + -1.756428, + 46.4221446 + ], + [ + -2.0348287, + 46.6189544 + ], + [ + -2.3465983, + 46.6238164 + ], + [ + -2.4656134, + 46.7119647 + ], + [ + -2.3232967, + 46.8381171 + ], + [ + -2.4528645, + 46.9385605 + ], + [ + -2.3173318, + 47.1621397 + ], + [ + -2.9284827, + 47.2841337 + ], + [ + -2.967417, + 47.2214691 + ], + [ + -3.3560228, + 47.3247359 + ], + [ + -3.1880328, + 47.4844142 + ], + [ + -3.2279087, + 47.6113186 + ], + [ + -3.3891187, + 47.5947342 + ], + [ + -3.9161956, + 47.6783103 + ], + [ + -4.1016259, + 47.7092072 + ], + [ + -4.1431427, + 47.7884708 + ], + [ + -4.3761893, + 47.7106674 + ], + [ + -4.4796232, + 47.9776016 + ], + [ + -4.9856536, + 47.9989633 + ], + [ + -4.9693825, + 48.0897202 + ], + [ + -4.6014717, + 48.1146852 + ], + [ + -4.5921009, + 48.1475763 + ], + [ + -4.6710089, + 48.2330974 + ], + [ + -4.8424298, + 48.3004956 + ], + [ + -5.1986731, + 48.4492607 + ], + [ + -5.103461, + 48.5172155 + ], + [ + -4.8351542, + 48.5431896 + ], + [ + -4.6311736, + 48.6612896 + ], + [ + -3.9669223, + 48.7797813 + ], + [ + -3.9493945, + 48.7471474 + ], + [ + -3.6701315, + 48.895078 + ], + [ + -3.5444401, + 48.9029653 + ], + [ + -3.4095425, + 48.9186584 + ], + [ + -3.3334381, + 48.904579 + ], + [ + -3.0276871, + 48.9275037 + ], + [ + -2.8020731, + 48.7979285 + ], + [ + -2.6935289, + 48.7672208 + ], + [ + -2.4578583, + 48.7089607 + ], + [ + -2.2847486, + 48.7190877 + ], + [ + -2.1754283, + 48.650163 + ], + [ + -2.0136968, + 48.7322121 + ], + [ + -1.8095282, + 48.7317759 + ], + [ + -1.7243003, + 48.7582771 + ], + [ + -1.7055705, + 48.8451195 + ], + [ + -1.9030442, + 48.8628775 + ], + [ + -1.9102707, + 48.9234787 + ], + [ + -1.6871357, + 48.9324898 + ], + [ + -1.7427683, + 49.244734 + ], + [ + -1.8574757, + 49.3253007 + ], + [ + -1.9262013, + 49.6557284 + ], + [ + -2.03908, + 49.6787215 + ], + [ + -2.0044546, + 49.7608677 + ], + [ + -1.6175855, + 49.6849834 + ], + [ + -1.2837344, + 49.7606702 + ], + [ + -1.1492009, + 49.6350423 + ], + [ + -1.1854462, + 49.5483609 + ], + [ + -0.9646323, + 49.4250945 + ], + [ + -0.7442883, + 49.3680181 + ], + [ + -0.3901362, + 49.3621973 + ], + [ + -0.2497648, + 49.3157973 + ], + [ + -0.1334235, + 49.3129316 + ], + [ + 0.0273095, + 49.3761879 + ], + [ + 0.0180063, + 49.5465556 + ], + [ + 0.1221093, + 49.6929183 + ], + [ + 0.5171306, + 49.8646551 + ], + [ + 1.057268, + 49.9490353 + ], + [ + 1.4390814, + 50.1181936 + ], + [ + 1.5317687, + 50.4643666 + ], + [ + 1.5254895, + 50.8586668 + ], + [ + 1.6411818, + 50.9591925 + ], + [ + 2.5971186, + 51.1735455 + ], + [ + 2.6607107, + 51.0195972 + ], + [ + 2.0712386, + 50.9202211 + ], + [ + 2.05937, + 50.9470929 + ], + [ + 1.7975971, + 50.8990562 + ], + [ + 1.6808947, + 50.8717016 + ], + [ + 1.6556923, + 50.5972904 + ], + [ + 1.7535714, + 50.5931978 + ], + [ + 1.7229475, + 50.2470239 + ], + [ + 1.8215592, + 50.2426198 + ], + [ + 1.8014852, + 50.0511647 + ], + [ + 1.5456517, + 50.063112 + ], + [ + 1.541549, + 50.0126688 + ], + [ + 1.4246216, + 50.0174707 + ], + [ + 1.426673, + 50.0527642 + ], + [ + 1.0383804, + 49.8460945 + ], + [ + 0.9827008, + 49.8891609 + ], + [ + 0.5796091, + 49.8213328 + ], + [ + 0.420629, + 49.76297 + ], + [ + 0.4281018, + 49.7544509 + ], + [ + 0.2083136, + 49.6726862 + ], + [ + 0.147652, + 49.5776743 + ], + [ + 0.1346112, + 49.5809045 + ], + [ + 0.1111672, + 49.543649 + ], + [ + 0.5659823, + 49.520445 + ], + [ + 0.5631983, + 49.4998946 + ], + [ + 0.6300139, + 49.496659 + ], + [ + 0.6147753, + 49.3744072 + ], + [ + 0.5482527, + 49.3785094 + ], + [ + 0.5425382, + 49.3346073 + ], + [ + 0.4574069, + 49.3393812 + ], + [ + 0.4584326, + 49.3449183 + ], + [ + 0.3259735, + 49.354559 + ], + [ + 0.3284645, + 49.3812758 + ], + [ + 0.280111, + 49.3843283 + ], + [ + 0.2768875, + 49.363339 + ], + [ + 0.210951, + 49.3665834 + ], + [ + 0.208167, + 49.3508366 + ], + [ + 0.1432562, + 49.3553225 + ], + [ + 0.1376883, + 49.3114953 + ], + [ + 0.0720449, + 49.3153162 + ], + [ + 0.0675026, + 49.2871299 + ], + [ + 0.0027383, + 49.2907616 + ], + [ + 0.0050827, + 49.2571106 + ], + [ + -0.0202662, + 49.260362 + ], + [ + -0.0349188, + 49.1973043 + ], + [ + -0.194485, + 49.2146316 + ], + [ + -0.389657, + 49.127263 + ], + [ + -0.4536886, + 49.1879201 + ], + [ + -0.3561026, + 49.2321443 + ], + [ + -0.8208815, + 49.2833068 + ], + [ + -0.9977772, + 49.3014908 + ], + [ + -1.1672818, + 49.2454506 + ], + [ + -1.1951526, + 49.2818265 + ], + [ + -1.2676791, + 49.2409863 + ], + [ + -1.341138, + 49.2975045 + ], + [ + -1.2476825, + 49.3502459 + ], + [ + -1.4458287, + 49.6068946 + ], + [ + -1.8110511, + 49.6175689 + ], + [ + -1.7747878, + 49.4433325 + ], + [ + -1.7277493, + 49.4650871 + ], + [ + -1.5338965, + 49.2909826 + ], + [ + -1.4790873, + 49.2923341 + ], + [ + -1.4760826, + 49.2402747 + ], + [ + -1.4355714, + 49.2032589 + ], + [ + -1.4722491, + 49.182201 + ], + [ + -1.4509056, + 48.7572466 + ], + [ + -1.3115513, + 48.7640766 + ], + [ + -1.3053347, + 48.7021631 + ], + [ + -1.2583998, + 48.7042144 + ], + [ + -1.2522868, + 48.6435279 + ], + [ + -1.2351913, + 48.6443494 + ], + [ + -1.2269026, + 48.5682354 + ], + [ + -1.8521839, + 48.5308559 + ], + [ + -1.8490756, + 48.4974996 + ], + [ + -1.9232598, + 48.4918694 + ], + [ + -1.9281294, + 48.4409635 + ], + [ + -2.0427212, + 48.4360144 + ], + [ + -2.0388876, + 48.4819121 + ], + [ + -2.2895011, + 48.4610214 + ], + [ + -2.3021023, + 48.5243337 + ], + [ + -2.4086263, + 48.5161813 + ], + [ + -2.4203484, + 48.5695361 + ], + [ + -2.4308411, + 48.5785185 + ], + [ + -2.4908308, + 48.5492405 + ], + [ + -2.4735281, + 48.5332572 + ], + [ + -2.5497844, + 48.4964697 + ], + [ + -2.5400451, + 48.4874747 + ], + [ + -2.7068057, + 48.4074551 + ], + [ + -3.0297895, + 48.6911498 + ], + [ + -4.0103381, + 48.5317872 + ], + [ + -4.0534166, + 48.6441199 + ], + [ + -4.3828059, + 48.5734929 + ], + [ + -4.3548195, + 48.5117951 + ], + [ + -4.3885293, + 48.5047279 + ], + [ + -4.1349543, + 48.4486809 + ], + [ + -4.1641129, + 48.389361 + ], + [ + -4.01832, + 48.3568516 + ], + [ + -4.0473321, + 48.2991791 + ], + [ + -3.9881358, + 48.2867008 + ], + [ + -4.0213971, + 48.216063 + ], + [ + -4.0363427, + 48.2195777 + ], + [ + -4.0662339, + 48.160284 + ], + [ + -4.1667504, + 48.1824662 + ], + [ + -4.1833077, + 48.149336 + ], + [ + -4.1723183, + 48.106499 + ], + [ + -4.2011062, + 48.1028546 + ], + [ + -4.1864321, + 48.0438867 + ], + [ + -4.1880639, + 48.0406137 + ], + [ + -4.3568595, + 48.0230513 + ], + [ + -4.2565705, + 47.9399726 + ], + [ + -4.2336349, + 47.9349658 + ], + [ + -4.2137074, + 47.9759839 + ], + [ + -4.2185428, + 47.977259 + ], + [ + -4.1805957, + 48.0556897 + ], + [ + -3.6172022, + 47.9312353 + ], + [ + -2.1799085, + 47.5864218 + ], + [ + -2.25449, + 47.4450059 + ], + [ + -2.3018177, + 47.4567969 + ], + [ + -2.3204265, + 47.4209203 + ], + [ + -2.3037225, + 47.4175495 + ], + [ + -2.3475337, + 47.3349949 + ], + [ + -2.3621862, + 47.3383711 + ], + [ + -2.380795, + 47.3039043 + ], + [ + -2.3585231, + 47.2985385 + ], + [ + -2.2996198, + 47.297843 + ], + [ + -2.297422, + 47.3617996 + ], + [ + -2.1319947, + 47.3585242 + ], + [ + -2.1347787, + 47.3910707 + ], + [ + -2.0156534, + 47.3962286 + ], + [ + -2.0140417, + 47.3809517 + ], + [ + -1.9286173, + 47.3825391 + ], + [ + -1.9289103, + 47.3795626 + ], + [ + -1.8322035, + 47.3818446 + ], + [ + -1.8298591, + 47.3416477 + ], + [ + -1.7360828, + 47.3430378 + ], + [ + -1.734178, + 47.3049972 + ], + [ + -1.6408412, + 47.3063882 + ], + [ + -1.6401086, + 47.2942654 + ], + [ + -1.5835498, + 47.2956567 + ], + [ + -1.5853081, + 47.3370802 + ], + [ + -1.461201, + 47.3396619 + ], + [ + -1.4600288, + 47.3292351 + ], + [ + -1.3721135, + 47.3322144 + ], + [ + -1.360538, + 47.1123893 + ], + [ + -1.4856707, + 47.1114918 + ], + [ + -1.4858173, + 47.1187709 + ], + [ + -1.6689741, + 47.1168765 + ], + [ + -1.6697068, + 47.1286411 + ], + [ + -1.725533, + 47.1276442 + ], + [ + -1.7261191, + 47.1376124 + ], + [ + -1.9397532, + 47.1326285 + ], + [ + -1.9401928, + 47.1421971 + ], + [ + -1.9925024, + 47.1430941 + ], + [ + -1.8106643, + 47.0058819 + ], + [ + -1.947226, + 46.9207831 + ], + [ + -1.9289103, + 46.9067703 + ], + [ + -1.9952864, + 46.8646098 + ], + [ + -1.7365224, + 46.6683945 + ], + [ + -1.7753516, + 46.643855 + ], + [ + -1.8267821, + 46.6417425 + ], + [ + -1.8247307, + 46.6207134 + ], + [ + -1.1819234, + 46.399869 + ], + [ + -0.9126096, + 46.3048021 + ], + [ + -0.9548089, + 46.2488984 + ], + [ + -0.9423542, + 46.2442372 + ], + [ + -0.9838474, + 46.1880746 + ] + ], + [ + [ + 3.1476937, + 42.4007197 + ], + [ + 3.1494906, + 42.4001543 + ], + [ + 3.1530531, + 42.4005236 + ], + [ + 3.1580376, + 42.4024274 + ], + [ + 3.1876974, + 42.4280509 + ], + [ + 3.142265, + 42.5247964 + ], + [ + 3.0683711, + 42.5463547 + ], + [ + 3.0488369, + 42.6941959 + ], + [ + 3.0798953, + 43.0307277 + ], + [ + 3.226405, + 43.1872688 + ], + [ + 3.4091582, + 43.2603206 + ], + [ + 3.5210352, + 43.258773 + ], + [ + 3.6642877, + 43.3762765 + ], + [ + 3.738414, + 43.3905396 + ], + [ + 4.0097937, + 43.536068 + ], + [ + 4.1769217, + 43.4563611 + ], + [ + 4.5435531, + 43.4334906 + ], + [ + 4.5494282, + 43.3540119 + ], + [ + 4.8350582, + 43.3089126 + ], + [ + 4.9750606, + 43.3830905 + ], + [ + 5.0321866, + 43.3192811 + ], + [ + 5.2591906, + 43.3192811 + ], + [ + 5.3108165, + 43.2050388 + ], + [ + 5.3568173, + 43.1864485 + ], + [ + 5.3688175, + 43.1678525 + ], + [ + 5.4023181, + 43.1621085 + ], + [ + 5.4138183, + 43.1712257 + ], + [ + 5.4091932, + 43.1992072 + ], + [ + 5.5423205, + 43.1882713 + ], + [ + 5.6058216, + 43.1479741 + ], + [ + 5.6196969, + 43.1528987 + ], + [ + 5.6383222, + 43.1715904 + ], + [ + 5.6715728, + 43.1673966 + ], + [ + 5.6909481, + 43.13411 + ], + [ + 5.7760746, + 43.1063726 + ], + [ + 5.7761996, + 43.0943247 + ], + [ + 5.7540742, + 43.0832788 + ], + [ + 5.7570743, + 43.0725048 + ], + [ + 5.7703245, + 43.0646514 + ], + [ + 5.8593261, + 43.0346897 + ], + [ + 5.8877016, + 43.0627336 + ], + [ + 5.9567028, + 43.0610897 + ], + [ + 5.9638279, + 43.092773 + ], + [ + 6.0003285, + 43.0918601 + ], + [ + 6.0174538, + 43.068487 + ], + [ + 6.1023303, + 43.0741485 + ], + [ + 6.1048304, + 43.0525954 + ], + [ + 6.0665981, + 43.0431845 + ], + [ + 6.0672168, + 43.0378549 + ], + [ + 6.1427018, + 43.0092284 + ], + [ + 6.1567558, + 42.9871518 + ], + [ + 6.1963544, + 42.9733134 + ], + [ + 6.2222085, + 42.9801037 + ], + [ + 6.2689052, + 42.996508 + ], + [ + 6.2551549, + 43.0362655 + ], + [ + 6.201904, + 43.0271281 + ], + [ + 6.1837787, + 43.0918826 + ], + [ + 6.3015307, + 43.0990937 + ], + [ + 6.3247811, + 43.0797407 + ], + [ + 6.3777821, + 43.0801059 + ], + [ + 6.3886572, + 43.1339501 + ], + [ + 6.5134094, + 43.1460813 + ], + [ + 6.5770355, + 43.1788145 + ], + [ + 6.6229113, + 43.1456253 + ], + [ + 6.6977876, + 43.1996853 + ], + [ + 6.6801623, + 43.2335736 + ], + [ + 6.7211631, + 43.26007 + ], + [ + 6.7224131, + 43.2747245 + ], + [ + 6.6705372, + 43.2919232 + ], + [ + 6.6874125, + 43.3311252 + ], + [ + 6.7241631, + 43.3426718 + ], + [ + 6.7529136, + 43.4089993 + ], + [ + 6.7910393, + 43.3967387 + ], + [ + 6.9062913, + 43.4167176 + ], + [ + 6.9676674, + 43.5027333 + ], + [ + 6.9661673, + 43.5281154 + ], + [ + 7.006168, + 43.5384464 + ], + [ + 7.0355435, + 43.4981997 + ], + [ + 7.0689191, + 43.5001038 + ], + [ + 7.0907945, + 43.5164228 + ], + [ + 7.062669, + 43.5367247 + ], + [ + 7.0825444, + 43.5456046 + ], + [ + 7.1237951, + 43.5307436 + ], + [ + 7.1557957, + 43.5437019 + ], + [ + 7.1432954, + 43.622841 + ], + [ + 7.1686709, + 43.6463635 + ], + [ + 7.2137967, + 43.6346939 + ], + [ + 7.2541724, + 43.6849746 + ], + [ + 7.3402989, + 43.6674354 + ], + [ + 7.3644243, + 43.6894038 + ], + [ + 7.3530491, + 43.7082017 + ], + [ + 7.4163002, + 43.7109124 + ], + [ + 7.4540509, + 43.7450573 + ], + [ + 7.4943016, + 43.7452379 + ], + [ + 7.5794281, + 43.7842366 + ], + [ + 7.6055156, + 43.7860269 + ], + [ + 7.6036815, + 43.7889781 + ], + [ + 7.5958811, + 43.7952788 + ], + [ + 7.5962789, + 43.7954862 + ], + [ + 7.5385252, + 43.8419488 + ], + [ + 7.4599632, + 43.7998784 + ], + [ + 7.4478096, + 43.8093355 + ], + [ + 7.3235339, + 43.7480609 + ], + [ + 7.3082211, + 43.7635679 + ], + [ + 6.6487795, + 43.3885012 + ], + [ + 6.6686548, + 43.3717842 + ], + [ + 6.510027, + 43.2780293 + ], + [ + 6.5658405, + 43.2250863 + ], + [ + 6.1268057, + 43.105272 + ], + [ + 5.4822945, + 43.2493904 + ], + [ + 5.4726693, + 43.2309046 + ], + [ + 5.4156683, + 43.2465678 + ], + [ + 5.4526689, + 43.3450985 + ], + [ + 4.8019076, + 43.4815759 + ], + [ + 4.7641569, + 43.3924419 + ], + [ + 4.657155, + 43.423681 + ], + [ + 4.6722803, + 43.4560836 + ], + [ + 4.4320261, + 43.5241904 + ], + [ + 4.4145258, + 43.4925498 + ], + [ + 4.1610214, + 43.5643292 + ], + [ + 4.1445211, + 43.5706693 + ], + [ + 4.141646, + 43.5739296 + ], + [ + 4.1867718, + 43.5994627 + ], + [ + 4.1056454, + 43.6819639 + ], + [ + 3.79689, + 43.5216525 + ], + [ + 3.7785147, + 43.5131316 + ], + [ + 3.7646394, + 43.5059696 + ], + [ + 3.7620144, + 43.5033403 + ], + [ + 3.7422641, + 43.4932752 + ], + [ + 3.7160136, + 43.5207461 + ], + [ + 3.2621307, + 43.2814311 + ], + [ + 3.2463804, + 43.2973542 + ], + [ + 3.1838793, + 43.2805211 + ], + [ + 3.1067529, + 43.2408312 + ], + [ + 3.1547538, + 43.1941898 + ], + [ + 2.9062494, + 43.1938252 + ], + [ + 2.9067495, + 42.761892 + ], + [ + 2.9461251, + 42.7620755 + ], + [ + 2.9465001, + 42.6151551 + ], + [ + 2.992376, + 42.6149711 + ], + [ + 2.992376, + 42.5125003 + ], + [ + 3.0410018, + 42.5125924 + ], + [ + 3.0412052, + 42.5009317 + ], + [ + 3.0908647, + 42.5008187 + ], + [ + 3.1476937, + 42.4007197 + ] + ], + [ + [ + 6.3594494, + 43.0232125 + ], + [ + 6.4247695, + 43.0244403 + ], + [ + 6.4524356, + 43.0350368 + ], + [ + 6.4698484, + 43.0546098 + ], + [ + 6.5112149, + 43.0576453 + ], + [ + 6.5215565, + 43.0431768 + ], + [ + 6.4836372, + 43.0244403 + ], + [ + 6.471793, + 43.0072494 + ], + [ + 6.4117762, + 42.9917993 + ], + [ + 6.3985177, + 42.980484 + ], + [ + 6.3517753, + 42.9990494 + ], + [ + 6.3594494, + 43.0232125 + ] + ] + ], + "terms_url": "https://wiki.openstreetmap.org/wiki/WikiProject_France/G%C3%A9oLittoral", + "terms_text": "Ortho Littorale V2 - MEDDE" + }, { "id": "lu.geoportail.opendata.ortho_10cm_proto_lidar", "name": "geoportail.lu LIDAR prototype Nordstad 2017", @@ -50735,6 +55588,8 @@ "type": "wms", "template": "http://ogc.heig-vd.ch/mapserver/wms?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=orthophoto_yverdon&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2007-01-01T00:00:00.000Z", + "startDate": "2007-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -51006,6 +55861,7 @@ ] ] ], + "terms_text": "IBGE", "description": "Addresses data from IBGE", "overlay": true }, @@ -64843,179 +69699,6 @@ ] ] }, - { - "id": "bartholomew_qi1940", - "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 - ], - [ - -8.8312773, - 55.3963337 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "data:image/png;base64,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" - }, { "id": "GSGS3906", "name": "Ireland British War Office 1:25k GSGS 3906", @@ -65053,243 +69736,6 @@ "terms_text": "Glucksman Map Library, Trinity College Dublin", "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAB3RJTUUH3gQOFR0YB1KT3QAAAAlwSFlzAAAewQAAHsEBw2lUUwAAAARnQU1BAACxjwv8YQUAAAS/SURBVHjandN7TFNXHAfwzrn/lm3ZHy7LYrJkybK5zMw9fCEoPjbeChoHTtBVRF7l1ZZSaG8flCtvsFVpoZZHC5Y6jDM+UScDaxF5lIfSAaMIlVKBS8EZN4d+d9voZpbMFX/JN7nnnvM7n5xzcxmM5wrPlX1yFmP2adgmXKHc78bsU+j9ZRT3HzzE+D0n7tjuYdo5h38X47/q+UWD1nE0tw/gktEC66gdN/tG0Dc4hnEHhdG7DujOdqGHxi4ae2AZti8ccJXZYoOxawRPnjzGwcpmzM8//ntOe86MickZTEw7ka+99nJAZ/8YWjqs7ufc6ibM/fbQ/fzHo0eoOduJ8UkKljt2nLhk9hj4/Wlm6VA9A2NUa/ew6wNQE1OzVGvPEGUZvkvZHVNUo2mA6ugfpvoGrNT8/Dz1tMfd/yJgKZ13h6zjzFbzvbwO8wDZaR4kzeZbZG/fIHnTbCOvdzrI9h472dnVT97oociO23NkW+9M3pDVsc/V69rjRYA7Su11/dvbfkRJvDeOcMORuj8CpelLkJO6BVs4vQhj3QD5fTQS2PXYndQAblw2yrUt9c/6/xeoqzulK+VEoCTtawgSM5HCr0Nsmg48ngJhYiukonNIybeg8MQEFIZBFBWIoa4z1XoMaOrbtbHci2BtW4RachnOlO/GZW0SjuZEY2eWGYVEFfYJ+kDo/4ThdDPExadQcbxb5zmgb6/xYZlAxPtDmByFS2U+EHM5yBOyEZZ8HkzeZaQmyxFZROGkgUQIMQSNvkPrMXBM31YdFqNDJK8ZHE4FYgSt2Jl0GpKUGAhFjTiQ2QJDgRBGdSTIvEJ8IXDSQJvngEbfWrWacGJDzn1sJ34FkSqFQbgWTcUrcLWIATlnBzYSE8hOOIBQzk9YK56jgRs1CzlBVXD6bcijCYSwTYjhXUFD7nrUlHyFc6pPUCL4BpskUwhn6iGPSMYG3igN3KxeCKDZyulGddReBKV3YbNkGidkIWhQLMeFiuUoE3ths8iOfXFnoQ5nwTt9xHVFVZ5f0XGjxks0A++sIWyNqYM0TYp6qS9+UHxOn+BjqMQfwF8wgg2x5+ErccCboKA5bloAUGc8tk40i2CmGuGhgQhjX0MZwUY5uRJVuX6QcpPhm2TErlBfBLAa4S2epYHrlZ5fke4K6SVyIjRejz1REfhO2Ab2wavgZJ8EU9gEUek1MDMvIIa5DUFpzVhHzECtbRR4DJRrDP5f8h04ILwAmTQLAkEWCgsLIJVIIcwS4uhRBSQSCfi8FGzP6sbKjLsoV+tWewwolUfe+pR1y7GD1YDd4cGIi4uFgM/HulWr4LdpI5ITE5EQH49dOwMRmtmND/ebLMoy+WueA2VyBmO9opSTcx6HimWQHypGBicF+6MjwdzzLSQEH6UlBSjKFyNS1AnGMm6Csuwww2NApVK6hkv2JMptmTkGiPNqEcc+jFiuGsy0SrD4lciQ1kJW3ICAqJIWeu1ilUq1EEDlHr/6vr/XxozBuQD6jw6UUXRm6DgRQCeQfIA1iaZ+BuP191xrXwpw1RtL16zwSfi5PVg2hZAcyp0gqQOr9548TU+/82zdywGvLH429eZnO8rPBNMbB4ps+MhPpvyna9ELgb8ASvKZeuq+E9sAAAAASUVORK5CYII=" }, - { - "id": "GSGS4136", - "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 - ], - [ - -10.0847426, - 51.4147902 - ] - ] - ], - "terms_url": "http://geo.nls.uk/maps/", - "terms_text": "National Library of Scotland Historic Maps", - "icon": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAABACAMAAACX6y++AAABzlBMVEVHcEx7f549P3Gww9d4e5ygq8NlaY/F3OylzugCe8HE0+FYXIUWGFXd5O0/Q3MHCEociMicoLZ8f58iJF0IesEPEE0bIFqAg6LU1d+pq8CYx+USgcQdIVyHvuBmrtmLjamtr8NCndCMrs0dHlgREk6KjqqYnLR3ept7fp2jpbxVWIOPwN1laY43OWxlZ44aG1Z+gaCytMUiJl5XWYQ/QnNNUX1SVoGOkaxcYYlkZ40yk8x4eptDnNCQk6xSpNRucZSLwOFFSXdcqNWFveB9ud0iJVxRpNJFntErMWg0O29/gaE3l86DhaN6t91mrdhjaI9tb5BwdJi82+0pjspCRHego7paYIirrsIuLWBmaZAGBkZ0eZpRVYBaXoXg4ehCRneq0uqbyeYrMWZla5AmisiDvN+hzOdDW4gUhsYCfMIAAkYAAEQAAEYAAEADfMEDe8ECe8EAAUcAAEIAADsCfMEAAD4Ce8AAe8EAecACf8YAAUgAeMAAADYCBUUBfcQAEVEChMsAdb4Adb8CcbMDgcgAc70BHl0DU5MEf8MFBkkCXZ0ACUkCS4oCJWQCeb4AMG4CZKQBNnUBRIQCdrkBPXsCAj0Hdb4BF1gCaqsCaqyC7/fbAAAAanRSTlMADNoWAQMCBWClCAbzEb357h4u6/v77YwqOSv09HeWeSW4EOH2ai0YUWujZEPNkP05VeO9qq1rdlKm3IrFPkCBUraiMiPQp9HZzprPRYJBhKyhVOnOTF1Y45r9esixH8lgH9dq3YZtfJilWVggggAAA+BJREFUeF6dl4Vz20gUxmXHca9xmJukcGVmvhQPmZkZFsVGCGO5h//tLXqVubiS/OTsjmf82++97z1pIqt97HhudqrbShOGXJ7+uaszcqG6fP27ro5Im86PPv9OB+R8kZLSwuCeqfSaRZvadnX0+u6eTkhKSwujs7fTZmszkMmWqtN3p1JqimBssTS4uy+VJmWX+DDdNz/oSeGtLfKVB8xPv/JimjoFKU+oLn/49ksJ66TE1jCP4vxfr57Yn8whieqL2iEbqpvJvKWS1AnbxWo4uOf7JJocIMJdKldSrJZ++mVHbJ1CTl984WuxtPZbfFdEUMKFVYgKdsZpKk4oUSqyljnvjNNUP9QehZTKc0isJv85ESAX9xmpvsdqUqMp8tXJxtcpeiI+CtJex5I6T1vKcU66lUQzlFqEM8TnHLM4SVdUiVLZJ0I/tEmirlAzPLq9foI6CVGWyDPUCdROoOlrzOdbqPyNJ6WIXNQAExLflRONIldRQVhQmkSz78r4w8Uy04i2Uzb0mfdKz8mvMITNew/KDZvKdghMHtNes3v4jXrgOAC6Kxvhkq9HlkjN9tnmh46N1JDDSMdx64//WVvSk6Dnvo1DhU9OBW4FMIzDCDefLM6xlIVJvnBpe838rotnPORITmwuXlnlsq1nCt22K32nPwuwAySkZEFQf/hoqRxS3ss2d1nh0GvrXkXLmR26zT8Wyz7Vs69Jk2j/AIbO1pD1Igj/Xn3QMEMcJXNDEwNQccD8sUVuENx/VG4QNRKGzHUdOy/zBC0pZDRFuJss5bLoiiG7T16oQSUHWPDNQNouGDTvPV1qRCYhd/jzGc9RCJBCkkKSEyQCwMH4/sbaXMvbvi+zHlZpCl5sKPIdtMpGePPxv3PlkJO5c9/WAyRrkpemgUpelasycoPmk6dzv1vW5MXeACoqUpSEtWy0RQC67soq07y0jhGIOKq1jKu6YGAGA8/8almZK+cBdmRoaa0Z7WyEc0H/DWHQN8fHsasNVEma3DSnz4H4i+yPeT11H/efCVBk2ExmW7MHyMH1kdND0YfV5VM1XAGmd7wuZLxFaj6Qd/DSWWtL5PZN9NZUN4yc8UkslcD76NPM/x89N97DQRQFegOqTOiN7D1ibRf7j2YDCLSa5pGSRO7Ba4dz1vaRP3KrF0E1CMYkwcHK62+14WS5k3fGoKsZM4IuPLA37j/UwrmXx+Rzwfjs1nuP77PiI/PuAYzNXQNQMNB/1UoU+eH3Z2pQ14n/zB7KWEmjcPTCuicGA3rjLwxbKSLXdTnLZfHY12fTvtTlJydAUP/haqaTF7pd1yae9Tb3H7gLAvuPLxXhAAAAAElFTkSuQmCC" - }, { "id": "ITACyL-Castile-and-Leon", "name": "ITACyL - Castile and León", @@ -66850,7 +71296,9 @@ 44.64911632343077 ] ] - ] + ], + "terms_url": "http://www.gsi.go.jp/kikakuchousei/kikakuchousei40182.html", + "terms_text": "GSI Japan" }, { "id": "Aargau-AGIS-2011", @@ -68817,6 +73265,8 @@ "name": "Kanton Basel-Landschaft 10cm (2015)", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/KTBASELLANDSCHAFT2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", "scaleExtent": [ 18, 21 @@ -69686,6 +74136,8 @@ "name": "Kanton Basel-Stadt 2015", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/KTBASELSTADT2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", "scaleExtent": [ 8, 21 @@ -69721,6 +74173,8 @@ "name": "Kanton Basel-Stadt 2017", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/KTBASELSTADT2017/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2017-01-01T00:00:00.000Z", + "startDate": "2017-01-01T00:00:00.000Z", "scaleExtent": [ 8, 21 @@ -71943,6 +76397,8 @@ "name": "Kanton Zürich 2015 10cm", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/KTZUERICH2015/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2014-01-01T00:00:00.000Z", "scaleExtent": [ 8, 21 @@ -73598,6 +78054,8 @@ "name": "Latest available ortho geoportail.lu", "type": "tms", "template": "http://{switch:wmts1,wmts2}.geoportail.lu/opendata/wmts/ortho_latest/GLOBAL_WEBMERCATOR_4_V3/{zoom}/{x}/{y}.jpeg", + "endDate": "2017-06-22T00:00:00.000Z", + "startDate": "2017-06-14T00:00:00.000Z", "scaleExtent": [ 0, 20 @@ -76030,8 +80488,8 @@ "id": "Lombardia-Italy-CTR-DBT", "name": "Lombardia - Italy (CTR DBT)", "type": "wms", - "template": "http://www.cartografia.servizirl.it/arcgis/services/wms/ctr_wms/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Sfondo C.T.R. 10000&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "template": "http://www.cartografia.servizirl.it/arcgis/services/wms/ctr_wms/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=Sfondo%20C.T.R.%2010000&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", + "projection": "EPSG:3857", "polygon": [ [ [ @@ -76468,7 +80926,7 @@ "name": "Lombardia - Italy (CTR)", "type": "wms", "template": "http://www.cartografia.regione.lombardia.it/ArcGIS10/services/wms/ctr_wms/MapServer/WMSServer?STYLES=&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=0&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", "polygon": [ [ [ @@ -81706,6 +86164,8 @@ "type": "wms", "template": "https://services.nconemap.gov/secure/services/Imagery/Orthoimagery_All/ImageServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "1995-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -93836,6 +98296,8 @@ "type": "wms", "template": "http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/ortofoto_colore_06.map&FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=OI.ORTOIMMAGINI.2006.33,OI.ORTOIMMAGINI.2006.32&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2006-01-01T00:00:00.000Z", + "startDate": "2006-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -94518,7 +98980,9 @@ "name": "PCN 2008 - IT Lazio+Umbria", "type": "wms", "template": "http://wms.pcn.minambiente.it/ogc?map=/ms_ogc/WMS_v1.3/raster/ortofoto_colore_08.map&FORMAT=image/png&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=OI.ORTOIMMAGINI.2008.33&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", + "endDate": "2008-01-01T00:00:00.000Z", + "startDate": "2008-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -98094,7 +102558,9 @@ "name": "Rio Mosaic 2013", "type": "wms", "template": "http://geo.rio.rj.gov.br/ArcGIS/services/Imagens/Mosaico_2013/MapServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=1&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", + "endDate": "2013-01-01T00:00:00.000Z", + "startDate": "2013-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -98695,7 +103161,9 @@ "name": "Rio Mosaic 2015", "type": "wms", "template": "http://pgeo3.rio.rj.gov.br/arcgis/services/Imagens/Mosaico_2015_UTM/MapServer/WmsServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=0&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:4326", + "projection": "EPSG:3857", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", "scaleExtent": [ 0, 13 @@ -102369,7 +106837,63 @@ "name": "Sicily - Italy", "type": "wms", "template": "http://map.sitr.regione.sicilia.it/ArcGIS/services/WGS84_F33/Ortofoto_ATA20072008_f33/MapServer/WMSServer?FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&Layers=0&STYLES=default&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", - "projection": "EPSG:4326" + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 15.711650848388677, + 38.25894105289697 + ], + [ + 15.237178802490236, + 38.81938114846882 + ], + [ + 14.271240234375, + 38.55246141354153 + ], + [ + 13.150634765625, + 38.75408327579141 + ], + [ + 11.964111328125, + 37.97451499202459 + ], + [ + 12.5244140625, + 37.54022177661216 + ], + [ + 11.87896728515625, + 36.796089518731506 + ], + [ + 12.496948242187498, + 35.47409160773029 + ], + [ + 12.689208984375, + 35.46961797120201 + ], + [ + 14.5733642578125, + 36.6640126988417 + ], + [ + 15.297088623046873, + 36.62875385775956 + ], + [ + 15.398540496826199, + 37.42170795425973 + ], + [ + 15.711650848388677, + 38.25894105289697 + ] + ] + ] }, { "id": "sc2012", @@ -102377,6 +106901,8 @@ "type": "wms", "template": "http://sigsc.sc.gov.br:80/sigserver/SIGSC/wms?SERVICE=WMS&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=OrtoRGB-Landsat-2012&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2012-01-01T00:00:00.000Z", + "startDate": "2012-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -104068,7 +108594,8 @@ ], "terms_url": "http://fototerkep.hu/", "terms_text": "Fototerkep.hu", - "best": true + "best": true, + "description": "5 cm resolution bald image of 4 settlement" }, { "id": "South_Africa-CD_NGI-Aerial", @@ -105274,6 +109801,8 @@ "name": "South Tyrol Orthofoto 2011", "type": "tms", "template": "http://geoservices.buergernetz.bz.it/geoserver/gwc/service/wmts/?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=P_BZ_OF_2011_EPSG3857&STYLE=default&TILEMATRIXSET=GoogleMapsCompatible&TILEMATRIX=GoogleMapsCompatible%3A{zoom}&TILEROW={y}&TILECOL={x}&FORMAT=image%2Fjpeg", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", "scaleExtent": [ 0, 18 @@ -107167,6 +111696,8 @@ "type": "wms", "template": "http://geoservices.buergernetz.bz.it/geoserver/ows?SERVICE=WMS&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=P_BZ_OF_2011_EPSG3857,P_BZ_OF_2011_20cm_EPSG3857&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -112844,6 +117375,8 @@ "name": "Stadt Bern 10cm (2016)", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/bern2016/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2016-01-01T00:00:00.000Z", + "startDate": "2016-01-01T00:00:00.000Z", "scaleExtent": [ 8, 21 @@ -113204,7 +117737,7 @@ ] ] ], - "terms_text": "Orthophoto 2016, Vermessungsamt Stadt Bern ", + "terms_text": "Orthophoto 2016, Vermessungsamt Stadt Bern", "best": true }, { @@ -113212,6 +117745,8 @@ "name": "Stadt Uster Orthophoto 2008 10cm", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/uster/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2008-01-01T00:00:00.000Z", + "startDate": "2008-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -113243,6 +117778,8 @@ "name": "Stadt Zürich Luftbild 2011", "type": "tms", "template": "https://mapproxy.osm.ch/tiles/zh_luftbild2011/EPSG900913/{zoom}/{x}/{y}.png?origin=nw", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -113948,6 +118485,8 @@ "name": "Szeged orthophoto 2011", "type": "tms", "template": "http://e.tile.openstreetmap.hu/szeged-2011-10cm/{zoom}/{x}/{y}.png", + "endDate": "2011-01-01T00:00:00.000Z", + "startDate": "2011-01-01T00:00:00.000Z", "scaleExtent": [ 10, 22 @@ -114170,7 +118709,8 @@ ], "terms_url": "http://www.geo.u-szeged.hu/", "terms_text": "SZTE TFGT - University of Szeged", - "best": true + "best": true, + "description": "Inner part of Szeged" }, { "id": "teotonio_vilela", @@ -114435,7 +118975,8 @@ ] ] ], - "terms_url": "https://tnris.org/maps-and-data/online-mapping-services/" + "terms_url": "https://tnris.org/maps-and-data/online-mapping-services/", + "terms_text": "Texas Natural Resources Information System" }, { "id": "tf-landscape", @@ -114454,6 +118995,8 @@ "name": "TIGER Roads 2017", "type": "tms", "template": "https://{switch:a,b,c,d}.tiles.mapbox.com/styles/v1/openstreetmapus/cj8dftc3q1ecn2tnx9qhwyj0c/tiles/256/{zoom}/{x}/{y}?access_token=pk.eyJ1Ijoib3BlbnN0cmVldG1hcHVzIiwiYSI6ImNpcnF4Ym43dDBoOXZmYW04bWhlNWdrY2EifQ.4SFexuTUuKkZeerO3dgtmw", + "endDate": "2017-01-01T00:00:00.000Z", + "startDate": "2017-01-01T00:00:00.000Z", "scaleExtent": [ 0, 22 @@ -121150,7 +125693,8 @@ ] ], "terms_url": "http://www.torokbalint.hu/", - "terms_text": "Törökbálint" + "terms_text": "Törökbálint", + "description": "5 cm resolution bald image" }, { "id": "Torokbalint-orthophoto-2015", @@ -121773,7 +126317,8 @@ ], "terms_url": "http://fototerkep.hu/", "terms_text": "Fototerkep.hu", - "best": true + "best": true, + "description": "5 cm resolution bald image" }, { "id": "Toulouse-Orthophotoplan-2007", @@ -130359,6 +134904,65 @@ "terms_text": "© Caltopo", "icon": "data:image/png;base64,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" }, + { + "id": "USSR-Latvia", + "name": "USSR - Latvia", + "type": "wms", + "template": "http://www.gisnet.lv/cgi-bin/topo?FORMAT=image/jpeg&VERSION=1.1.1&service=WMS&REQUEST=GetMap&LAYERS=DTO,DTC,DIVDPTC,PD,VS,DS,PS,M&SRS={proj}&WIDTH={width}&height={height}&BBOX={bbox}", + "projection": "EPSG:3857", + "polygon": [ + [ + [ + 26.630859375, + 57.56888774130087 + ], + [ + 25.169677734375, + 58.048818457936505 + ], + [ + 22.543945312499996, + 57.76865857271793 + ], + [ + 21.544189453124996, + 57.53351974347291 + ], + [ + 21.016845703125, + 56.81892067431724 + ], + [ + 21.016845703125, + 56.03522578369872 + ], + [ + 22.03857421875, + 56.389583525613055 + ], + [ + 24.719238281249996, + 56.33481154165235 + ], + [ + 26.751708984375, + 55.665193184436035 + ], + [ + 28.19091796875, + 56.139428693863266 + ], + [ + 27.784423828125, + 57.40946113558119 + ], + [ + 26.630859375, + 57.56888774130087 + ] + ] + ] + }, { "id": "sjcgis.org-General_Basemap_WM", "name": "Vector Streetmap for San Juan County WA", @@ -133530,6 +138134,8 @@ "type": "wms", "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_luftbilder_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ef2012_12cm&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2012-01-01T00:00:00.000Z", + "startDate": "2012-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -133662,6 +138268,8 @@ "type": "wms", "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_luftbilder_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=ef2015_10cm&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", "polygon": [ [ [ @@ -133794,6 +138402,8 @@ "type": "wms", "template": "http://vogis.cnv.at/mapserver/mapserv?map=i_luftbilder_r_wms.map&FORMAT=image/jpeg&VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&LAYERS=wi2015_20cm&STYLES=&SRS={proj}&WIDTH={width}&HEIGHT={height}&BBOX={bbox}", "projection": "EPSG:3857", + "endDate": "2015-01-01T00:00:00.000Z", + "startDate": "2015-01-01T00:00:00.000Z", "polygon": [ [ [ From 35d40b60dc29c9d63badfbf709c7182d946c2897 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 11 Mar 2018 11:13:54 -0400 Subject: [PATCH 139/157] update name-suggestion-index --- data/presets/presets.json | 94 ++------------------------------------- package.json | 2 +- 2 files changed, 4 insertions(+), 92 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index 1c7ba99ae..93d8456e8 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -38464,48 +38464,6 @@ ], "suggestion": true }, - "amenity/fuel/Costco Gas": { - "tags": { - "name": "Costco Gas", - "amenity": "fuel" - }, - "name": "Costco Gas", - "icon": "fuel", - "geometry": [ - "point", - "area" - ], - "fields": [ - "name", - "operator", - "address", - "fuel_multi", - "opening_hours", - "payment_multi" - ], - "suggestion": true - }, - "amenity/fuel/Costco Gasoline": { - "tags": { - "name": "Costco Gasoline", - "amenity": "fuel" - }, - "name": "Costco Gasoline", - "icon": "fuel", - "geometry": [ - "point", - "area" - ], - "fields": [ - "name", - "operator", - "address", - "fuel_multi", - "opening_hours", - "payment_multi" - ], - "suggestion": true - }, "amenity/fuel/Crodux": { "tags": { "name": "Crodux", @@ -55295,31 +55253,6 @@ ], "suggestion": true }, - "amenity/restaurant/Steak House": { - "tags": { - "name": "Steak House", - "amenity": "restaurant" - }, - "name": "Steak House", - "icon": "restaurant", - "geometry": [ - "point", - "area" - ], - "fields": [ - "name", - "cuisine", - "address", - "building_area", - "opening_hours", - "capacity", - "takeaway", - "delivery", - "smoking", - "outdoor_seating" - ], - "suggestion": true - }, "amenity/restaurant/Sternen": { "tags": { "name": "Sternen", @@ -80960,27 +80893,6 @@ ], "suggestion": true }, - "shop/kiosk/Мороженое": { - "tags": { - "name": "Мороженое", - "shop": "kiosk" - }, - "name": "Мороженое", - "icon": "shop", - "geometry": [ - "point", - "area" - ], - "fields": [ - "name", - "operator", - "address", - "building_area", - "opening_hours", - "payment_multi" - ], - "suggestion": true - }, "shop/kiosk/მარკეტი (Market)": { "tags": { "name": "მარკეტი (Market)", @@ -86190,12 +86102,12 @@ ], "suggestion": true }, - "shop/supermarket/Costco": { + "shop/supermarket/Costco Gasoline": { "tags": { - "name": "Costco", + "name": "Costco Gasoline", "shop": "supermarket" }, - "name": "Costco", + "name": "Costco Gasoline", "icon": "grocery", "geometry": [ "point", diff --git a/package.json b/package.json index ce9daa7ca..0a7605f6c 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "minimist": "^1.2.0", "mocha": "^5.0.0", "mocha-phantomjs-core": "^2.1.0", - "name-suggestion-index": "0.1.4", + "name-suggestion-index": "0.1.5", "npm-run-all": "^4.0.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.81.0", From 1b096bbf80caf51e7a817816812debd74ee93b8a Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 11 Mar 2018 11:16:18 -0400 Subject: [PATCH 140/157] npm run translations --- data/locales.json | 4 +- dist/locales/ar.json | 28 +- dist/locales/ca.json | 114 ++++++++ dist/locales/cs.json | 293 ++++++++++++++++++-- dist/locales/de.json | 42 +-- dist/locales/fa.json | 5 + dist/locales/fr.json | 7 + dist/locales/he.json | 12 +- dist/locales/hu.json | 2 +- dist/locales/it.json | 59 +++- dist/locales/ko.json | 32 ++- dist/locales/ru.json | 16 +- dist/locales/so.json | 595 ++++++++++++++++++++++++++++++++++++++++ dist/locales/vi.json | 7 + dist/locales/zh-HK.json | 2 +- dist/locales/zh-TW.json | 49 +++- 16 files changed, 1203 insertions(+), 64 deletions(-) create mode 100644 dist/locales/so.json diff --git a/data/locales.json b/data/locales.json index 4b1041a23..a8d8cdb11 100644 --- a/data/locales.json +++ b/data/locales.json @@ -127,7 +127,6 @@ "rtl": false }, "lij": { - "rtl": false }, "lt": { "rtl": false @@ -195,6 +194,9 @@ "sl": { "rtl": false }, + "so": { + "rtl": false + }, "sq": { "rtl": false }, diff --git a/dist/locales/ar.json b/dist/locales/ar.json index 264d3f9ea..387e914a9 100644 --- a/dist/locales/ar.json +++ b/dist/locales/ar.json @@ -25,6 +25,9 @@ }, "draw_line": { "tail": "انقر لإضافة المزيد من النقاط إلى الخط.. انقر على الخطوط الأخرى لوصلها ببعضها البعض، واضغط بشكل مزدوج لإنهاء الخط.." + }, + "drag_node": { + "connected_to_hidden": "لا يمكن تعديل ذلك لأنه متصل بعنصر مخفي." } }, "operations": { @@ -87,8 +90,8 @@ "line": "ربّع زوايا الخط.", "area": "ربّع زوايا المنطقة." }, - "not_squarish": "هذا لا يمكن أن يكون مربعا لأنه ليس رباعياً.", - "too_large": "هذه لا يمكن جعلها مربّعة لأنه لا يوجد جزء كافٍ منها ظاهر.", + "not_squarish": "لا يمكن جعلها مربعا لأنها ليست رباعية.", + "too_large": "لا يمكن جعلها مربّعة لأنه لا يظهر جزء كافٍ منها.", "connected_to_hidden": "لا يمكن جعلها مربعة لأنها مرتبطة بعنصر مخفي." }, "straighten": { @@ -288,6 +291,15 @@ } } }, + "restriction": { + "controls": { + "distance": "مسافة" + }, + "help": { + "from": "من", + "to": "إلى" + } + }, "undo": { "tooltip": "تراجع: {action}", "nothing": "لا يوجد شيء للتراجع" @@ -374,13 +386,15 @@ "key": "ق", "title": "القياسات", "selected": "{n} مختارة", + "closed_area": "مساحة مُغلقة", "center": "المركز", "perimeter": "المحيط", "length": "الطول", "area": "المساحة", "location": "الموقع", "metric": "متري", - "imperial": "امبراطوري" + "imperial": "امبراطوري", + "node_count": "عدد العُقد" } }, "geometry": { @@ -671,13 +685,13 @@ "help": { "title": "المساعدة", "welcome": "مرحبا بك في محرر iD لتحرير الخرائط على [OpenStreetMap](https://www.openstreetmap.org/).\nمع هذا المحرر بإمكانك تحديث البيانات على OpenStreetMap مباشرة من خلال متصفح الويب.", - "open_data_h": "البيانات المفتوحة", + "open_data_h": "البيانات مفتوحة ومتاحة للعامة", "open_data": "التعديلات والتغييرات التي تقوم بها على هذه الخرائط ستكون مرئية لكل من يستخدم خرائط OpenStreetMap.\nتعديلاتك يمكن أن تستند على معرفتك الشخصية، أو من خلال المسح والاستقصاء على أرض الواقع، أو من خلال الصور التي تم جمعها من التصوير الجوي وصور مستوى الشارع.\n كما ينبغي التنبيه والتشديد على أن النسخ من المصادر التجارية، كخرائط جوجل [ممنوع منعًا باتا](https://www.openstreetmap.org/copyright).", "before_start_h": "قبل أن تبدأ", "before_start": "ينبغي أن تكون على دراية بخرائط OpenStreetMap وهذا المحرر قبل البدء بالتحرير.\nإن محرر iD يحتوي على جولة لتعليمك أساسيات التحرير على خرائط OpenStreetMap.\nانقر على \"بدء جولة تعليم\" الظاهرة في هذه الصفحة لبدء جولة تعليمية - قد تستغرق منك حوالي 15 دقيقة فقط.", "open_source_h": "المصدر مفتوح", "open_source": "إن محرر iD هو مشروع تعاوني مفتوح المصدر، وأنت تستخدم الإصدار رقم {version} منه الآن.\nالكود المصدري متوفر [على موقع الاستضافة GitHub](https://github.com/openstreetmap/iD).", - "open_source_help": "يمكنك المساهمة والمساعدة في مشروع iD عن طريق [الترجمة](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) أو [الإبلاغ عن العلل والمشاكل](https://github.com/openstreetmap/iD/issues)التي قد تواجهها أثناء استخدامك للمحرر." + "open_source_help": "يمكنك المساهمة والمساعدة في مشروع iD عن طريق [الترجمة](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) أو [الإبلاغ عن العلل والمشاكل](https://github.com/openstreetmap/iD/issues) التي قد تواجهها أثناء استخدامك للمحرر." }, "overview": { "title": "نظرة عامة", @@ -691,6 +705,8 @@ "editing": { "title": "التعديل والحفظ", "select_h": "الاختيار", + "select_left_click": "{leftclick} انقر نقرة بالزر الأيسر على عنصر ما لاختياره. سيقوم ذلك بتمييز العنصر بحد متوهج ينبض باستمرار، وسيظهر شريط جانبي يعرض لك تفاصيل عن العنصر المُختار، كاسمه وعنوانه ونحو ذلك.", + "select_right_click": "{rightclick} انقر نقرة بالزر الأيمن على عنصر ما لإظهار قائمة التعديل، والتي تعرض لك الأوامر المتاحة لتعديل العنصر، كتحريكه أو تدويره أو حذفه.", "multiselect_h": "الاختيار المتعدد", "undo_redo_h": "التراجع والإعادة", "save_h": "الحفظ", @@ -894,7 +910,7 @@ "finish_drag_endpoint": "هذه البقعة تبدو جيدة. **أترك الزرّ الأيسر للفأرة لإنهاء السحب.**", "start_drag_midpoint": "تظهر مثلثات صغيرة عند *نقاط المنتصف* بين كل نقطتين. ومن الطرق الأخرى لإنشاء نقطة جديدة هو سحب هذه المثلثات الصغيرة إلى مكان مختلف. **اسحب مثلث نقطة الوسط لإنشاء نقطة جديدة على طول منحنى الطريق.**", "continue_drag_midpoint": "هذا الخط يبدو أفضل بكثير! استمر بتعديل هذا الخط عن طريق النقر المزدوج عليه أو سحب مثلثات المنتصف لإنشاء نقط جديدة ومطابقة هذه النقط على الطريق ليأخذ المنحنى نفس شكل الطريق. **عند رضائك عن شكل المنحنى ومطابقته لشكل الطريق، انقر \"موافق\".**", - "delete_lines": "لا بأس من حذف الخطوط للطرق الغير موجودة فعلا في العالم الحقيقي.\n{br}هنا مثال على مدينة تم تخطيطها لرصف شارع {street} في تلك المنطقة ولكن لم يتم رصفه.\nيمكنك تحسين هذا الجزء من الخريطة عن طريق حذف الخطوط الإضافية.", + "delete_lines": "لا بأس من حذف الخطوط للطرق الغير موجودة فعلا في العالم الحقيقي.\n{br}هنا مثال على مدينة تم تخطيطها لرصف شارع \"{street}\" في تلك المنطقة ولكن لم يتم رصفه في الحقيقة.\nيمكنك تحسين هذا الجزء من الخريطة عن طريق حذف الخطوط الإضافية.", "split_intersection": "**انقر على زرّ {button} لفصل {street}.**", "retry_split": "لم تقم بالنقر على زر الفصل. حاول مجددا.", "retry_delete": "أنت لم تضغط على زرّ الحذف. حاول مجددا" diff --git a/dist/locales/ca.json b/dist/locales/ca.json index 7fe5032b2..336fc2cc7 100644 --- a/dist/locales/ca.json +++ b/dist/locales/ca.json @@ -291,6 +291,25 @@ } } }, + "restriction": { + "controls": { + "distance": "Distància", + "distance_up_to": "Fins a {distància}", + "via": "Via", + "via_node_only": "Només nodes", + "via_up_to_one": "Fins a 1 via", + "via_up_to_two": "Fins a 2 vies" + }, + "help": { + "indirect": "(indirecte)", + "turn": { + "no_left_turn": "Prohibició del gir a l'esquerra {indirecte}", + "no_right_turn": "Prohibició del gir a la dreta {indirecte}", + "no_u_turn": "Prohibició del gir total {indirecte}", + "no_straight_on": "Prohibició de seguir recte {indirecte}" + } + } + }, "undo": { "tooltip": "Desfeu: {action}", "nothing": "Res a desfer" @@ -464,11 +483,14 @@ "switch": "Senyals de trànsit ", "custom": "Personalitzar", "custom_button": "Editar el fons personalitzat", + "overlays": "Capes", "imagery_source_faq": "Informació d'imatge / Comunicar un problema", "reset": "reiniciar", "display_options": "Opcions de visualització", + "brightness": "Brillantor", "contrast": "Contrast", "saturation": "Saturació", + "sharpness": "Agudesa", "minimap": { "description": "Mostrar miniatura de mapa", "tooltip": "Mostra un mapa amb menys zoom per ajudar a localitzar l'àrea que es mostra actualment.", @@ -759,6 +781,23 @@ "gps": { "title": "Traces GPS", "using_h": "Fent servir Traces GPS" + }, + "field": { + "restrictions": { + "title": "Activa l'ajuda per a les restriccions", + "about": { + "title": "Més informació" + }, + "inspecting": { + "title": "Inspeccionant" + }, + "modifying": { + "title": "Modificant" + }, + "tips": { + "title": "Consells" + } + } } }, "intro": { @@ -2541,10 +2580,16 @@ "amenity/bureau_de_change": { "name": "Canvi de divisa" }, + "amenity/bus_station": { + "name": "Estació d'autobusos" + }, "amenity/cafe": { "name": "Cafè", "terms": "Cafè, bar, cafeteria" }, + "amenity/car_pooling": { + "name": "Compartició de cotxes" + }, "amenity/car_rental": { "name": "Lloguer de cotxes", "terms": "Lloguer de cotxes, Servei de lloguer de turismes" @@ -2626,6 +2671,9 @@ "name": "Local de menjar ràpid", "terms": "Menjar ràpid, servei de menjar ràpid, restaurant de menjar ràpid, Local de menjar ràpid" }, + "amenity/ferry_terminal": { + "name": "Moll per Ferry" + }, "amenity/fire_station": { "name": "Parc de bombers", "terms": "Caserna de bombers, Base de Bombers, Estació de Bombers" @@ -2763,6 +2811,9 @@ "amenity/ranger_station": { "name": "Base d'Agents Rurals" }, + "amenity/recycling": { + "name": "Contenidor de reciclatge" + }, "amenity/recycling_centre": { "name": "Centre de Reciclatge" }, @@ -2789,6 +2840,9 @@ "amenity/shower": { "name": "Dutxa" }, + "amenity/smoking_area": { + "name": "Àrea per a fumadors" + }, "amenity/social_facility": { "name": "Equipament social" }, @@ -2873,6 +2927,9 @@ "amenity/veterinary": { "name": "Veterinari" }, + "amenity/waste/dog_excrement": { + "name": "Paperera per a excrements de gos" + }, "amenity/waste_basket": { "name": "Paperera", "terms": "Paperera, Basura, Paperera pública, Contenidor, deixalles, brossa" @@ -2886,6 +2943,9 @@ "amenity/water_point": { "name": "Aigua potable d'autocaravana" }, + "amenity/watering_place": { + "name": "Font d'aigua per animals" + }, "area": { "name": "Àrea", "terms": "Àrea" @@ -2893,6 +2953,12 @@ "area/highway": { "name": "Superfície de la carretera" }, + "attraction/amusement_ride": { + "name": "Atracció de fira" + }, + "attraction/animal": { + "name": "Animal" + }, "attraction/pirate_ship": { "name": "Vaixell pirata" }, @@ -3015,6 +3081,12 @@ "building/entrance": { "name": "Entrada/Sortida" }, + "building/farm": { + "name": "Casa d'una granja" + }, + "building/farm_auxiliary": { + "name": "Edifici d'una granja" + }, "building/garage": { "name": "garatge ", "terms": "Garatge" @@ -3047,6 +3119,9 @@ "building/kindergarten": { "name": "Edifici de preescolar" }, + "building/mosque": { + "name": "Edifici d'una mesquita" + }, "building/public": { "name": "Edifici públic" }, @@ -3060,6 +3135,9 @@ "building/roof": { "name": "Teulada" }, + "building/ruins": { + "name": "Edifici en ruïnes" + }, "building/school": { "name": "Edifici escolar", "terms": "Escola, Gimnàs, Poliesportiu, Aulari, Seminaris, Pati, Esbarjo, Aules, Despatxos, Tallers, Ateliers, Aules d'informàtica, Classes, Classe, Sala de música, Corredors, Corredor, Pasillo, Pasillos, Passadís, Passadissos, Sala de professors, Recepció" @@ -3067,21 +3145,33 @@ "building/semidetached_house": { "name": "Casa adossada" }, + "building/service": { + "name": "Edifici de serveis" + }, "building/shed": { "name": "Traster" }, "building/stable": { "name": "Estable" }, + "building/stadium": { + "name": "Edifici d'un estadi" + }, "building/static_caravan": { "name": "Caravana fixa" }, + "building/temple": { + "name": "Edifici d'un temple" + }, "building/terrace": { "name": "Cases unifamiliars" }, "building/train_station": { "name": "Estació de ferrocarril" }, + "building/transportation": { + "name": "Edifici per a transports" + }, "building/university": { "name": "Edifici universitari", "terms": "Edifici universitari" @@ -3092,6 +3182,12 @@ "camp_site/camp_pitch": { "name": "Àrea de campament" }, + "circular": { + "name": "Rotonda" + }, + "club": { + "name": "Club" + }, "craft": { "name": "Artesà" }, @@ -3123,9 +3219,15 @@ "craft/caterer": { "name": "Servei de càtering" }, + "craft/chimney_sweeper": { + "name": "Escura-xemeneies" + }, "craft/clockmaker": { "name": "Rellotger" }, + "craft/confectionery": { + "name": "Artesà de llaminadures" + }, "craft/distillery": { "name": "Destil·leria" }, @@ -3135,6 +3237,9 @@ "craft/electrician": { "name": "Electricista" }, + "craft/electronics_repair": { + "name": "Botiga de reparacions electròniques " + }, "craft/gardener": { "name": "Jardiner" }, @@ -3264,6 +3369,9 @@ "emergency/private": { "name": "Accés per a emergències privat" }, + "emergency/water_tank": { + "name": "Dipòsit d'aigua d'emergència" + }, "emergency/yes": { "name": "Accés per a emergències permès" }, @@ -3274,9 +3382,15 @@ "footway/crossing": { "name": "Creuament de carrer" }, + "footway/crossing-raised": { + "name": "Pas de carrer sobre-elevat" + }, "footway/crosswalk": { "name": "Pas de vianants" }, + "footway/crosswalk-raised": { + "name": "Pas de vianants sobre-elevat" + }, "footway/sidewalk": { "name": "Vorera" }, diff --git a/dist/locales/cs.json b/dist/locales/cs.json index fa0e7edb5..ae3552878 100644 --- a/dist/locales/cs.json +++ b/dist/locales/cs.json @@ -1431,7 +1431,7 @@ "title": "Žádný" }, "opposite": { - "description": "Cyklopruh, kterým cyklisté mohou jet v jednosměrce oběma směry", + "description": "Cyklopruh, kterým cyklisté mohou jet v jednosměrce oběma směry", "title": "Obousměrný cyklopruh" }, "opposite_lane": { @@ -1514,8 +1514,8 @@ "direction_vertex": { "label": "Směr", "options": { - "backward": "Nazpátek", - "both": "Obojí/vše", + "backward": "Zpátky", + "both": "Oba/všechny směry", "forward": "Dopředu" } }, @@ -2044,24 +2044,47 @@ "placeholder": "Vzdálenost na jedno desetinné místo (123.4)" }, "railway/signal/direction": { - "label": "Směr" + "label": "Směr", + "options": { + "backward": "Zpátky", + "both": "Oba/všechny směry", + "forward": "Dopředu" + } }, "recycling_accepts": { "label": "Určení" }, + "ref/isil": { + "label": "Kód ISIL" + }, "ref_aeroway_gate": { "label": "Číslo brány" }, "ref_golf_hole": { + "label": "Číslo jamky", "placeholder": "1-18" }, + "ref_highway_junction": { + "label": "Číslo křižovatky" + }, + "ref_platform": { + "label": "Číslo nástupiště" + }, "ref_road_number": { "label": "Číslo silnice" }, "ref_route": { "label": "Číslo silnice" }, + "ref_runway": { + "label": "Číslo přistávací dráhy", + "placeholder": "např. 01L/19R" + }, + "ref_stop_position": { + "label": "Číslo zastávky" + }, "ref_taxiway": { + "label": "Jméno pojezdové dráhy", "placeholder": "např. A5" }, "relation": { @@ -2324,7 +2347,12 @@ "label": "Typ" }, "traffic_signals/direction": { - "label": "Směr" + "label": "Směr", + "options": { + "backward": "Zpátky", + "both": "Oba/všechny směry", + "forward": "Dopředu" + } }, "trail_visibility": { "label": "Viditelnost pěšiny", @@ -2476,7 +2504,7 @@ "terms": "talířový vlek,talířový teleskopický vlek,poma,lyžařský vlek" }, "aerialway/pylon": { - "name": "Sloup", + "name": "Sloup lanovky", "terms": "sloup lanovky,stožár lanovky" }, "aerialway/rope_tow": { @@ -2588,6 +2616,9 @@ "name": "Směnárna", "terms": "směnárna,směna peněz,výměna peněz,exchange,valuty,valuta" }, + "amenity/bus_station": { + "name": "Autobusové nádraží / terminál" + }, "amenity/cafe": { "name": "Kavárna", "terms": "káva,kafe,kavárna,čaj,čajovna" @@ -2601,7 +2632,7 @@ "terms": "sdílení aut,car sharing" }, "amenity/car_wash": { - "name": "Mytí aut", + "name": "Automyčka", "terms": "myčka,automyčka,mytí,čistění,umývání,čistírna" }, "amenity/casino": { @@ -2685,6 +2716,9 @@ "name": "Rychlé občerstvení", "terms": "rychlé občerstvení" }, + "amenity/ferry_terminal": { + "name": "Přístaviště / terminál trajektu či přívozu" + }, "amenity/fire_station": { "name": "Hasiči", "terms": "požární stanice,hasičská stanice" @@ -2733,8 +2767,11 @@ "name": "Knihovna", "terms": "knihovna" }, + "amenity/love_hotel": { + "name": "Hodinový hotel" + }, "amenity/marketplace": { - "name": "Trhoviště", + "name": "Tržiště", "terms": "tržiště,trh" }, "amenity/motorcycle_parking": { @@ -2794,6 +2831,9 @@ "name": "Mešita", "terms": "mešita,islám,muslim,muslimský,muslimská,muslimské" }, + "amenity/place_of_worship/shinto": { + "name": "Džindža (šintoistická svatyně)" + }, "amenity/place_of_worship/sikh": { "name": "Sikhský chrám" }, @@ -2836,6 +2876,9 @@ "name": "Návštěvnické centrum", "terms": "návštěvnické centrum, návštěvní centrum" }, + "amenity/recycling": { + "name": "Recyklační kontejner" + }, "amenity/recycling_centre": { "name": "Recyklační centrum", "terms": "recyklace,centrum,kontejner,láhev,plechovka,skládka,odpad,smetí,šrot" @@ -3000,15 +3043,27 @@ "name": "Plocha silnice", "terms": "plocha silnice,povrch silnice,plocha cesty,povrch cesty" }, + "attraction/animal": { + "name": "Zvíře" + }, "attraction/bumper_car": { "name": "Autodrom" }, + "attraction/bungee_jumping": { + "name": "Bungee jumping" + }, + "attraction/carousel": { + "name": "Kolotoč" + }, "attraction/roller_coaster": { "name": "Horská dráha" }, "attraction/train": { "name": "Turistický vláček" }, + "attraction/water_slide": { + "name": "Vodní skluzavka" + }, "barrier": { "name": "Zábrana", "terms": "zábrana,ohrada,bariéra" @@ -3056,6 +3111,9 @@ "name": "Živý plot", "terms": "živý plot,keříky,křoví,okrasný plot" }, + "barrier/kerb": { + "name": "Obrubník" + }, "barrier/kissing_gate": { "name": "Turniket", "terms": "Zábrana pro dobytek,krávy" @@ -3096,6 +3154,12 @@ "name": "Stodola", "terms": "stodola,seník,sýpka" }, + "building/boathouse": { + "name": "Přístřešek pro loď" + }, + "building/bungalow": { + "name": "Bungalov" + }, "building/bunker": { "name": "Bunkr" }, @@ -3115,6 +3179,9 @@ "name": "Budova kostela", "terms": "kostel,chrám,kostelík,katedrála" }, + "building/civic": { + "name": "Budova občanské vybavenosti" + }, "building/college": { "name": "Budova vyšší odborné školy/college", "terms": "vyšší odborná škola,college,terciární vzdělávání,pomaturitní studium" @@ -3194,6 +3261,9 @@ "name": "Střecha", "terms": "střecha,přístřešek,čekárna,pumpa,benzinka,benzínka" }, + "building/ruins": { + "name": "Zřícená budova" + }, "building/school": { "name": "Budova školy", "terms": "škola,základní škola,střední škola,obecná škola,gymnázium,gymnasium,střední odborná škola,učiliště,odborné učiliště,střední odborné učiliště,školní,školský" @@ -3202,6 +3272,9 @@ "name": "Polovina dvojdomku", "terms": "dvojdomek,půldomek,dvojdům,půldům,polovina" }, + "building/service": { + "name": "Účelová budova" + }, "building/shed": { "name": "Kůlna", "terms": "kůlna,bouda,přístřešek,kolna,šupna,šopa" @@ -3210,10 +3283,16 @@ "name": "Stáj", "terms": "stáj,konírna,hřebčín,hříbárna,maštal,chlév,chlív,chlívek,vepřín,kravín,ovčín,drůbežárna,teletín" }, + "building/stadium": { + "name": "Budova stadionu" + }, "building/static_caravan": { "name": "Karavan nastálo", "terms": "karavan,přívěs,obytný přívěs,obytný vůz,maringotka,obytná buňka,kontejner" }, + "building/temple": { + "name": "Budova chrámu" + }, "building/terrace": { "name": "Řada řadových domů", "terms": "řadový dům,řadové domy,řadovka,řadovky" @@ -3221,6 +3300,9 @@ "building/train_station": { "name": "Železniční stanice" }, + "building/transportation": { + "name": "Dopravní budova" + }, "building/university": { "name": "Budova vysoké školy", "terms": "vysoká škola,univerzita,universita,vysoké učení" @@ -3469,6 +3551,9 @@ "name": "Přechod pro chodce typu zebra", "terms": "přechod pro chodce,zebra,přechod,přechod pro pěší" }, + "footway/crosswalk-raised": { + "name": "Příčný práh s přechodem" + }, "footway/sidewalk": { "name": "Chodník po straně silnice", "terms": "chodník,obrubník" @@ -3536,14 +3621,20 @@ "healthcare/hospice": { "name": "Hospic" }, + "healthcare/midwife": { + "name": "Porodní bába", + "terms": "dítě,porod,těhotenství" + }, "healthcare/optometrist": { - "name": "Optik" + "name": "Optik", + "terms": "oko,oči,brýle,lasik,čočky,zrak" }, "healthcare/physiotherapist": { "name": "Fyzioterapeut" }, "healthcare/podiatrist": { - "name": "Pedikér" + "name": "Pedikér", + "terms": "noha,nohy,nehty" }, "healthcare/psychotherapist": { "name": "Psychoterapeut" @@ -3573,6 +3664,9 @@ "name": "Bod přechodu typu zebra", "terms": "přechod pro chodce,zebra,přechod,přechod pro pěší" }, + "highway/crosswalk-raised": { + "name": "Příčný práh s přechodem" + }, "highway/cycleway": { "name": "Cyklostezka", "terms": "cyklotrasa" @@ -3616,6 +3710,9 @@ "highway/pedestrian_area": { "name": "Pěší zóna" }, + "highway/pedestrian_line": { + "name": "Pěší zóna" + }, "highway/primary": { "name": "Silnice 1. třídy", "terms": "silnice I. třídy" @@ -3844,6 +3941,10 @@ "landuse/industrial/scrap_yard": { "name": "Vrakoviště" }, + "landuse/industrial/slaughterhouse": { + "name": "Jatka", + "terms": "jatka,hovězí,řezník,tele,telecí,kuře,kuřecí,slepice,kráva,maso,vepř,vepřové,drůbež,bourání" + }, "landuse/landfill": { "name": "Skládka", "terms": "skládka,skládka odpadu,smetiště" @@ -4214,7 +4315,7 @@ "terms": "věž,sloup,stožár,bašta,pevnost,hrad" }, "man_made/wastewater_plant": { - "name": "Čistička odpadních vod", + "name": "Čistírna odpadních vod", "terms": "čistírna,čistička,čistírna odpadních vod,ČOV,čovka" }, "man_made/water_tower": { @@ -4435,8 +4536,8 @@ "name": "Zemědělská usedlost" }, "place/hamlet": { - "name": "Vesnička", - "terms": "vesnička,vesnice,obec,lhota" + "name": "Osada", + "terms": "osada,vesnička,vesnice,obec,lhota" }, "place/island": { "name": "Ostrov", @@ -4520,6 +4621,10 @@ "name": "Transformátorová stanice", "terms": "transformátorová stanice,transformátor,transformační stanice,napětí" }, + "power/switch": { + "name": "Odpojovač", + "terms": "spínač,vypínač" + }, "power/tower": { "name": "Elektrický stožár", "terms": "sloup vysokého napětí,vysoké napětí" @@ -4528,6 +4633,123 @@ "name": "Transformátor", "terms": "transformátor,transformátorová stanice,elektrická stanice,adaptér" }, + "public_transport/linear_platform": { + "name": "Nástupiště" + }, + "public_transport/linear_platform_aerialway": { + "name": "Nástupiště lanovky" + }, + "public_transport/linear_platform_bus": { + "name": "Nástupiště autobusu" + }, + "public_transport/linear_platform_ferry": { + "name": "Nástupiště trajektu / přívozu" + }, + "public_transport/linear_platform_light_rail": { + "name": "Nástupiště lehké dráhy" + }, + "public_transport/linear_platform_monorail": { + "name": "Nástupiště jednokolejky" + }, + "public_transport/linear_platform_subway": { + "name": "Nástupiště metra" + }, + "public_transport/linear_platform_train": { + "name": "Nástupiště vlaku" + }, + "public_transport/linear_platform_tram": { + "name": "Nástupiště tramvaje" + }, + "public_transport/linear_platform_trolleybus": { + "name": "Nástupiště trolejbusu" + }, + "public_transport/platform": { + "name": "Nástupiště" + }, + "public_transport/platform_aerialway": { + "name": "Nástupiště lanovky" + }, + "public_transport/platform_bus": { + "name": "Nástupiště autobusu" + }, + "public_transport/platform_ferry": { + "name": "Nástupiště trajektu / přívozu" + }, + "public_transport/platform_light_rail": { + "name": "Nástupiště lehké dráhy" + }, + "public_transport/platform_monorail": { + "name": "Nástupiště jednokolejky" + }, + "public_transport/platform_subway": { + "name": "Nástupiště metra" + }, + "public_transport/platform_train": { + "name": "Nástupiště vlaku" + }, + "public_transport/platform_tram": { + "name": "Nástupiště tramvaje" + }, + "public_transport/platform_trolleybus": { + "name": "Nástupiště trolejbusu" + }, + "public_transport/station": { + "name": "Stanice veřejné dopravy" + }, + "public_transport/station_aerialway": { + "name": "Stanice lanovky" + }, + "public_transport/station_bus": { + "name": "Autobusové nádraží / terminál" + }, + "public_transport/station_ferry": { + "name": "Přístaviště / terminál trajektu či přívozu" + }, + "public_transport/station_light_rail": { + "name": "Stanice lehké dráhy" + }, + "public_transport/station_monorail": { + "name": "Stanice jednokolejky" + }, + "public_transport/station_subway": { + "name": "Stanice metra" + }, + "public_transport/station_train": { + "name": "Železniční stanice" + }, + "public_transport/station_tram": { + "name": "Tramvajová stanice" + }, + "public_transport/stop_area": { + "name": "Oblast zastávky" + }, + "public_transport/stop_position_aerialway": { + "name": "Místo zastavení lanovky" + }, + "public_transport/stop_position_bus": { + "name": "Místo zastavení autobusu" + }, + "public_transport/stop_position_ferry": { + "name": "Místo zastavení trajektu/přívozu" + }, + "public_transport/stop_position_light_rail": { + "name": "Místo zastavení lehké dráhy" + }, + "public_transport/stop_position_monorail": { + "name": "Místo zastavení jednokolejky" + }, + "public_transport/stop_position_subway": { + "name": "Místo zastavení metra" + }, + "public_transport/stop_position_train": { + "name": "Místo zastavení vlaku" + }, + "public_transport/stop_position_tram": { + "name": "Místo zastavení tramvaje" + }, + "public_transport/stop_position_trolleybus": { + "name": "Místo zastavení trolejbusu" + }, "railway": { "name": "Železnice" }, @@ -4535,10 +4757,16 @@ "name": "Opuštěná železnice", "terms": "opuštěná železnice,opuštěná trať,nepoužívaná" }, + "railway/buffer_stop": { + "name": "Zarážedlo" + }, "railway/crossing": { "name": "Železniční přejezd (přes cestu)", "terms": "přejezd,přechod,železnice,železniční přejezd,železniční přechod" }, + "railway/derail": { + "name": "Výkolejka" + }, "railway/disused": { "name": "Nepoužívaná železnice", "terms": "nepoužívaná železnice, nepoužívaná železniční dráha" @@ -4551,6 +4779,15 @@ "name": "Železniční přejezd (přes silnici)", "terms": "přejezd,přechod,železnice,železniční přejezd,železniční přechod" }, + "railway/light_rail": { + "name": "Lehká dráha" + }, + "railway/milestone": { + "name": "Železniční kilometrovník" + }, + "railway/miniature": { + "name": "Modelová železnice" + }, "railway/monorail": { "name": "Jednokolejka", "terms": "jednokolejka,monorail,jednokolejná trať" @@ -4563,6 +4800,13 @@ "name": "Kolej", "terms": "koleje,železnice,vlak,trať" }, + "railway/signal": { + "name": "Proměnné návěstidlo", + "terms": "semafor,světlo" + }, + "railway/station": { + "name": "Železniční stanice" + }, "railway/subway": { "name": "Metro", "terms": "metro" @@ -4571,6 +4815,12 @@ "name": "Vstup do metra", "terms": "vstup do metra,vchod do metra,vlez do metra,vestibul,metro" }, + "railway/switch": { + "name": "Výhybka" + }, + "railway/train_wash": { + "name": "Myčka vlaků" + }, "railway/tram": { "name": "Tramvaj", "terms": "tramvaj,tranvaj,šalina,šmirgl,tramvajka,elektrika,električka,tram" @@ -4695,8 +4945,8 @@ "terms": "sýrařství,sýrař,sýry,sýr" }, "shop/chemist": { - "name": "Drogérie", - "terms": "drogérie,parfumérie,kosmetika,hygiena,čisticí prostředky,lékárna,léky" + "name": "Drogerie", + "terms": "drogerie,parfumerie,kosmetika,hygiena,čisticí prostředky,lékárna,léky" }, "shop/chocolate": { "name": "Prodejna čokolády", @@ -4937,8 +5187,8 @@ "terms": "zastavárna,zástava,lichva,lichvář,lichvářství,pawn shop" }, "shop/perfumery": { - "name": "Parfumérie", - "terms": "Parfumérie" + "name": "Parfumerie", + "terms": "parfumerie,parfémy" }, "shop/pet": { "name": "Chovatelské potřeby", @@ -5269,10 +5519,16 @@ "name": "Jezdecká trasa", "terms": "jezdecká trasa,koňská trasa,jezdecká stezka,koňská stezka,kůň,koně,jezdec,jezdce" }, + "type/route/light_rail": { + "name": "Trasa lehké dráhy" + }, "type/route/pipeline": { "name": "Potrubní trasa", "terms": "potrubí,potrubní trasa,roura,roury,transport,vodovod,ropovod,produktovod,plynovod,kanál,rozvod" }, + "type/route/piste": { + "name": "Trasa sjezdovky" + }, "type/route/power": { "name": "Elektrická trasa", "terms": "trasa elektrického vedení,elektrické vedení,elektrika,napětí,vysoké napětí,drát,dráty,kabel,kabely" @@ -5281,6 +5537,9 @@ "name": "Silniční trasa", "terms": "silnice,silniční trasa,trasa silnice,trasa dálnice,dálnice" }, + "type/route/subway": { + "name": "Trasa metra" + }, "type/route/train": { "name": "Železniční trasa", "terms": "železniční trasa,vlaková trasa,železniční linka,vlaková linka,kolej,koleje,železnice,dráhy,dráha,železniční cesta,železniční cesty,drážní" diff --git a/dist/locales/de.json b/dist/locales/de.json index 94577433a..32b760c42 100644 --- a/dist/locales/de.json +++ b/dist/locales/de.json @@ -2223,12 +2223,12 @@ "piste/difficulty": { "label": "Schwierigkeit", "options": { - "advanced": "Fortgeschritten (schwarze Raute)", - "easy": "Einfach (grüner Kreis)", - "expert": "Experte (doppelte schwarze Raute)", + "advanced": "Fortgeschritten (schwarz)", + "easy": "Einfach (blau)", + "expert": "Experte (orange/doppelschwarz)", "extreme": "Extrem (Kletterausrüstung benötigt)", - "freeride": "Freie Abfahrt (abseits der Piste)", - "intermediate": "Mittel (blaues Quadrat)", + "freeride": "Freie Abfahrt (gelb, abseits der Piste)", + "intermediate": "Mittelschwer (rot)", "novice": "Anfänger (Unterricht)" }, "placeholder": "Einfach, Mittel, Fortgeschritten …" @@ -4292,8 +4292,8 @@ "terms": "Becken, Kessel" }, "landuse/brownfield": { - "name": "Altlast", - "terms": "Altlast, Industriebrache, verseuchter Boden" + "name": "Brachfläche (innerstädtisch)", + "terms": "Altlast, Industriebrache" }, "landuse/cemetery": { "name": "Friedhof", @@ -4324,7 +4324,7 @@ }, "landuse/forest": { "name": "Bewirtschafteter Wald", - "terms": "Forst, Forstwald, bewirtschafteter Wald, Wald" + "terms": "Forst, Forstwald, bewirtschafteter Wald, Nutzwald" }, "landuse/garages": { "name": "Garagenhof", @@ -4335,12 +4335,12 @@ "terms": "Gras, Grünfläche, Wiese" }, "landuse/greenfield": { - "name": "Freifläche", + "name": "Bauland", "terms": "Freifläche, unbebaute Fläche, Bauland, Rohbauland" }, "landuse/greenhouse_horticulture": { - "name": "Gewächshäuser-Nutzung", - "terms": "Gewächshäuser-Nutzung" + "name": "Gewächshäuser", + "terms": "Gewächshäuser" }, "landuse/harbour": { "name": "Hafen", @@ -4703,8 +4703,8 @@ "terms": "künstlich, Bauwerk" }, "man_made/adit": { - "name": "Stollen", - "terms": "Stollen, Zugangsstollen, Förderstollen" + "name": "Bergwerk - Stolleneingang", + "terms": "Stollen (horizontaler Tunnel im Bergbau), Stollenmundloch" }, "man_made/breakwater": { "name": "Wellenbrecher", @@ -4859,7 +4859,7 @@ }, "natural/cliff": { "name": "Klippe", - "terms": "Klippe, Kliff" + "terms": "Klippe, Kliff, Steilkante" }, "natural/coastline": { "name": "Küstenlinie", @@ -4879,7 +4879,7 @@ }, "natural/heath": { "name": "Heidelandschaft", - "terms": "Heidelandschaft" + "terms": "Heidelandschaft, Strauchheiden" }, "natural/peak": { "name": "Berggipfel", @@ -4898,8 +4898,8 @@ "terms": "Sand" }, "natural/scree": { - "name": "Geröll", - "terms": "Schutthalde, Schuttkegel, Schuttfuß, Schuttrampe, Talus" + "name": "Hangschutt, Schutt", + "terms": "Blockschutt, Schuttreiße, Schuttkegel, Schutthalde, Talus, kantiges \"Geröll\"" }, "natural/scrub": { "name": "Buschland", @@ -4927,11 +4927,11 @@ }, "natural/water/lake": { "name": "See", - "terms": "See,Loch" + "terms": "See,Loch,Bergsee" }, "natural/water/pond": { "name": "Teich", - "terms": "See,Mühlteich,Bergsee,Tümpel,Teich" + "terms": "Mühlteich,Tümpel,Teich" }, "natural/water/reservoir": { "name": "Speicherbecken", @@ -4943,7 +4943,7 @@ }, "natural/wood": { "name": "Naturwald", - "terms": "Urwald, Naturwald, Wald" + "terms": "Urwald, Naturwald" }, "noexit/yes": { "name": "Sackgasse", @@ -6273,7 +6273,7 @@ }, "type/route/piste": { "name": "Wintersportroute", - "terms": "Wintersportroute, Schipiste, Langlaufloipe, Schhiroute, Piste" + "terms": "Wintersportroute, Schipiste, Langlaufloipe, Schiroute, Piste" }, "type/route/power": { "name": "Stromnetz", diff --git a/dist/locales/fa.json b/dist/locales/fa.json index c5eda2251..10d41c636 100644 --- a/dist/locales/fa.json +++ b/dist/locales/fa.json @@ -289,6 +289,11 @@ } } }, + "restriction": { + "controls": { + "distance": "مسافت" + } + }, "undo": { "tooltip": "برگرداندن: {action}", "nothing": "چیزی برای برگرداندن نیست." diff --git a/dist/locales/fr.json b/dist/locales/fr.json index f6f20fe84..a212982ac 100644 --- a/dist/locales/fr.json +++ b/dist/locales/fr.json @@ -1601,6 +1601,9 @@ "cycleway:right": "Côté droit" } }, + "dance/style": { + "label": "Styles de dances" + }, "date": { "label": "Date" }, @@ -4373,6 +4376,10 @@ "name": "Salle de danse", "terms": "piste de danse,salle de bal,dancing" }, + "leisure/dancing_school": { + "name": "École de dance", + "terms": "" + }, "leisure/dog_park": { "name": "Parc canin", "terms": "Parc canin, parc à chiens" diff --git a/dist/locales/he.json b/dist/locales/he.json index d898d07dc..bb895bab1 100644 --- a/dist/locales/he.json +++ b/dist/locales/he.json @@ -298,6 +298,7 @@ "via": "דרך", "to": "אל", "select_from": "יש ללחוץ כדי לבחור מקטע {from}", + "select_from_name": "יש ללחוץ כדי לבחור {from} {fromName}", "toggle": "יש ללחוץ לטובת „{turn}”" } }, @@ -647,6 +648,7 @@ "validations": { "disconnected_highway": "דרך ראשית מנותקת", "disconnected_highway_tooltip": "דרכים אמורות להיות מחוברות לדרכים אחרות או לכניסות לבניינים.", + "old_multipolygon": "תגיות מסוג רב־מצולע בדרך החיצונית", "old_multipolygon_tooltip": "השימוש בסגנון רב־מצולע זה הופסק. נא להקצות את התג לרב־מצולע ההורה במקום לדרך החיצונית.", "untagged_point": "נקודה ללא תיוג", "untagged_point_tooltip": "נא לבחור בסוג תכונה שמתאר מה הנקודה הזו.", @@ -710,12 +712,14 @@ "navigation_drag": "ניתן לגרור את המפה על ידי לחיצה והחזקה של {leftclick} כפתור העכבר השמאלי והזזת העכבר. ניתן גם להשתמש במקשי החצים `↑`, `↓`, `→` , `←` במקלדת שלך.", "navigation_zoom": "ניתן להתקרב או להתרחק על ידי גלילת העכבר או משטח המעקב, לחלופין, על ידי לחיצה על הכפתורים {plus} / {minus} שבצד המפה. ניתן גם להשתמש במקשים ‚+’ או ‚-’ שבמקלדת שלך.", "features_h": "תכונות המפה", + "features": "אנו משתמשים במילה *תכונות* כדי לתאר דברים שמופיעים על המפה. כל דבר בעולם האמתי ניתן למפות כתכונה ב־OpenStreetMap. תכונות מפה מיוצגות במפה באמצעות *נקודות*, *קווים* או *שטחים*.", "nodes_ways": "ב־OpenStreetmap, נקודות נקראות לעתים *מפרקים* וקווים ושטחים נקראים לפעמים *דרכים*." }, "editing": { "title": "עריכה ושמירה", "select_h": "בחירה", "select_left_click": "יש ללחוץ {leftclick} לחיצה שמאלית על תכונה כדי לבחור אותה. הלחיצה תאיר אותה בהדגשה מהבהבת וסרגל הצד יציג פרטים על התכונה הזו, כגון שם או הכתובת.", + "select_right_click": "יש ללחוץ {rightclick} לחיצה ימנית על תכונה כדי להציג את תפריט העריכה, שמציג את הפקודות הזמינות, כגון הטיה, הזזה ומחיקה.", "multiselect_h": "בחירה במגוון", "multiselect_shift_click": "`{shift}`+{leftclick} לחיצה שמאלית כדי לבחור כמה תכונות יחדיו. אפשרות זו מקלה על העברה או מחיקה של מגוון פריטים.", "undo_redo_h": "ביטול ושחזור ביטול", @@ -764,6 +768,7 @@ "connect_line_h": "חיבור קווים", "connect_line": "חיבור כבישים כראוי חשוב לתפעול המפה וגם כדי לספק הנחיות לנהיגה בעזרת המפה.", "connect_line_display": "החיבורים בין כבישים מסומנים בעיגול אפור. נקודות הקצה של הקווים מסומנים בעיגולים לבנים גדולים יותר אם הם לא מחוברים לשום דבר.", + "connect_line_tag": "אם ידוע לך שבנקודת החיבור יש רמזורים או מעברי חציה, ניתן להוסיף אותם על ידי בחירת הצומת המחבר ובחירת סוג התכונה המתאים באמצעות עורך התכונות.", "disconnect_line_h": "ניתוק קווים", "move_line_h": "הזזת קווים", "delete_line_h": "מחיקת קווים" @@ -786,7 +791,10 @@ "edit_relation_h": "עריכת יחסים", "maintain_relation_h": "שימור יחסים", "relation_types_h": "סוגי יחסים", - "multipolygon_h": "מולטיפוליגון", + "multipolygon_h": "רבי־מצולעים", + "multipolygon": "יחס *רב־מצולע* הוא קבוצה של תכונה *חיצונית* אחת או יותר ותכונה פנימית אחת או יותר. התכונות החיצוניות מגדירות את הגבולות החיצוניים של הרב־מצולע ואילו התכונות הפנימיות מגדירות תת־שטחים או חורים שנחתכו מחוץ לרב־מצולע.", + "multipolygon_create": "כדי ליצור רב־מצולע, למשל: בניין עם חור, יש לצייר את הגבולות החיצוניים של השטח ואת הגבול הפנימי כקו או סוג אחר של שטח. לאחר מכן `{shift}`+{leftclick} עם לחיצה שמאלית כדי לבחור את שתי התכונות, {rightclick} לחיצה ימנית כדי להציג את תפריט העריכה ואז לבחור את הפקודה {merge} **מיזוג**.", + "multipolygon_merge": "מיזוג מגוון קווים או שטחים יגרום ליצירת קשר רב־מצולע חדש שמכיל בתוכו את כל השטחים הנבחרים כחברים בו. iD יבחר את התפקידים הפנימיים והחיצוניים אוטומטית בהתחשב באילו תכונות כלולות בתוך תכונות אחרות.", "turn_restriction_h": "הגבלות פנייה", "route_h": "נתיבים", "boundary_h": "גבולות" @@ -4910,6 +4918,7 @@ "attribution": { "text": "תנאים ומשוב" }, + "description": "גבולות ומועדי צילום. תוויות מופיעות ברמות תקריב של 14 ומעלה.", "name": "דיגיטל גלוב' תצלומי אוויר פרמיום" }, "DigitalGlobe-Standard": { @@ -5000,6 +5009,7 @@ "name": "מידע טופולוגי ארה\"ב 2012" }, "US-TIGER-Roads-2014": { + "description": "מידע ממשלתי מבוסס על המיפקד אוכלוסין מ2006. תוויות מופיעות ברמות תקריב של 16 ומעלה.", "name": "מידע טופולוגי ארה\"ב 2014" }, "US-TIGER-Roads-2017": { diff --git a/dist/locales/hu.json b/dist/locales/hu.json index 9264d9f70..b21bc7e14 100644 --- a/dist/locales/hu.json +++ b/dist/locales/hu.json @@ -3858,7 +3858,7 @@ "terms": "autópálya lehajtó, autópálya leágazás" }, "highway/path": { - "name": "Gyalogút", + "name": "Ösvény", "terms": "Ösvény" }, "highway/pedestrian_area": { diff --git a/dist/locales/it.json b/dist/locales/it.json index 44d3ddb5b..b82c93dc5 100644 --- a/dist/locales/it.json +++ b/dist/locales/it.json @@ -868,7 +868,7 @@ }, "streetlevel": { "title": "Foto a livello stradale", - "intro": "Le foto a livello stradale sono utile per mappare segnali stradali, attività commerciali e altri dettagli che non si possono vedere da foto satellitari o aeree. L'editor iD è compatibile con le foto a livello stradale di [Mapillary](https://www.mapillary.com) e [OpenStreetCam](https://www.openstreetcam.org).", + "intro": "Le foto a livello stradale sono utili per mappare segnali stradali, attività commerciali e altri dettagli che non si possono vedere da foto satellitari o aeree. L'editor iD è compatibile con le foto a livello stradale di [Mapillary](https://www.mapillary.com) e [OpenStreetCam](https://www.openstreetcam.org).", "using_h": "Utilizzo delle foto a livello stradale", "using": "Per usare le foto a livello stradale, clicca sul pannello {data} **Dati mappa** a lato della mappa per abilitare o disabilitare i livelli di foto disponibili.", "photos": "Quando abilitato, il livello delle foto mostra una linea lungo la sequenza di foto. A livelli di ingrandimento maggiori, un cerchio indica il punto in cui ogni foto è stata scattata, mentre a livelli di ingrandimento ancora più grandi, un cono mostra la direzione della fotocamera al momento dello scatto.", @@ -888,7 +888,36 @@ "title": "Aiuto per i divieti di svolta", "about": { "title": "Informazioni", - "about": "Questo campo permette di esaminare e modificare i divieti di svolta. Viene mostrato un modello dell'intersezione selezionata con incluse le relative strade." + "about": "Questo campo permette di esaminare e modificare i divieti di svolta. Viene mostrato un modello dell'intersezione selezionata con incluse le relative strade.", + "from_via_to": "Un obbligo di svolta conterrà sempre: un percorso con ruolo **DA**, un percorso con ruolo **VERSO** ed un nodo con ruolo **VIA** o in alternativa uno o più percorsi con ruolo **VIA**.", + "maxdist": "La guida \"{distField}\" controlla quanto lontano cercare ulteriori percorsi connessi.", + "maxvia": "La guida \"{viaField}\" regola il numero di percorsi di tipo via che verranno inclusi nella ricerca. (suggerimento: le soluzioni più semplici danno i migliori risultati)" + }, + "inspecting": { + "title": "Ispezionare", + "about": "Muovi il mouse sopra qualsiasi segmento con ruolo **DA** per vedere se ha qualche obbligo di svolta. Ogni possibile destinazione con ruolo **VERSO** verrà disegnata con un'ombra colorata nel caso in cui sia presente un obbligo di svolta.", + "from_shadow": "{fromShadow} **Segmento DA**", + "allow_shadow": "{allowShadow} **VERSO ammesso**", + "restrict_shadow": "{restrictShadow} **VERSO limitato**", + "only_shadow": "{onlyShadow} **Solo VERSO**", + "restricted": "\"Limitato\" significa che è presente un divieto di svolta, come per esempio \"Divieto di svolta a sinistra\".", + "only": "\"Solo\" significa che un veicolo che sta transitando su quel percorso ha solamente una scelta, come per esempio \"Direzione obbligatoria diritto\"." + }, + "modifying": { + "title": "Modificare", + "about": "Per modificare un obbligo di svolta, per prima cosa clicca in un qualsiasi segmento di tipo **DA** per selezionarlo. Il segmento selezionato pulserà e tutte le destinazioni possibili di tipo **VERSO** appariranno come simboli di svolta.", + "indicators": "Adesso, clicca su un simbolo di svolta per passare dallo stato \"Ammesso\", \"Limitato\" oppure \"Solo\".", + "allow_turn": "{allowTurn} **VERSO ammesso**", + "restrict_turn": "{restrictTurn} **VERSO limitato**", + "only_turn": "{onlyTurn} **solo VERSO**" + }, + "tips": { + "title": "Suggerimenti", + "simple": "**Preferisci obblighi di svolta semplici invece di altri più complessi.**", + "simple_example": "Ad esempio, evita di creare un obbligo di svolta che utilizza un percorso di topo VIA se basta usare un nodo per lo stesso ruolo.", + "indirect": "**Alcuni obblighi di svolta sono segnati con il testo \"{indirect}\" e sono colorati più chiari.**", + "indirect_example": "Questi obblighi di svolta esistono come conseguenza di un altro obbligo nei dintorni. Ad esempio, un \"obbligo di direzione obbligatoria\" genererà automaticamente un \"divieto di inversione di marcia\" per tutti gli altri percorsi che attraversano l'intersezione.", + "indirect_noedit": "Non puoi modificare gli obblighi di svolta indiretti. Al loro posto, modifica i normali obblighi di svolta vicini." } } } @@ -1613,7 +1642,8 @@ "label": "Tipo di gru", "options": { "floor-mounted_crane": "Gru ancorata a terra", - "portal_crane": "Gru portuale" + "portal_crane": "Gru portuale", + "travel_lift": "Gru per imbarcazioni" } }, "crop": { @@ -1673,6 +1703,9 @@ "cycleway:right": "Lato destro" } }, + "dance/style": { + "label": "Stili di danza" + }, "date": { "label": "Data" }, @@ -1735,6 +1768,9 @@ "forward": "In avanti" } }, + "dispensing": { + "label": "Prescrive medicinali" + }, "display": { "label": "Display" }, @@ -2140,6 +2176,7 @@ "options": { "alternating": "Senso unico alternato", "no": "No", + "reversible": "invertito sporadicamente", "undefined": "Si (ipotesi)", "yes": "Sì" } @@ -2594,10 +2631,12 @@ "transformer": { "label": "Tipo", "options": { + "auto": "Autotrasformatore", "auxiliary": "Ausiliario", "converter": "Convertitore", "distribution": "Distribuzione", "generator": "Generatore", + "phase_angle_regulator": "Regolatore ad angolo di fase", "traction": "Trazione", "yes": "Sconosciuto" } @@ -2677,10 +2716,18 @@ "label": "Wikipedia" }, "windings": { + "label": "Avvolgimenti", "placeholder": "1, 2, 3,..." }, "windings/configuration": { + "label": "Configurazione degli avvolgimenti", "options": { + "delta": "a triangolo", + "leblanc": "Leblanc", + "open": "aperto", + "open-delta": "a triangolo aperto", + "scott": "Scott", + "star": "a stella", "zigzag": "Zig Zag" } } @@ -4161,7 +4208,7 @@ "terms": "rotonda,inversione,marcia" }, "highway/unclassified": { - "name": "Strada secondaria / non classificata", + "name": "Strada minore/non classificata", "terms": "Strada minore/non classificata" }, "historic": { @@ -4411,6 +4458,9 @@ "name": "Sala da ballo", "terms": "ballo,danza,jive,swing,tango,valzer,balera" }, + "leisure/dancing_school": { + "name": "Scuola di danza" + }, "leisure/dog_park": { "name": "Area per cani", "terms": "Area cani" @@ -5189,6 +5239,7 @@ "terms": "Sottostazione" }, "power/switch": { + "name": "Interruttore di potenza", "terms": "" }, "power/tower": { diff --git a/dist/locales/ko.json b/dist/locales/ko.json index af0dbdad1..a44710b61 100644 --- a/dist/locales/ko.json +++ b/dist/locales/ko.json @@ -683,14 +683,14 @@ "key": "H", "help": { "title": "도움말", - "welcome": "[OpenStreetMap] (https://www.openstreetmap.org/)의 iD 편집기에 오신 것을 환영합니다. 이 편집기를 사용하면 웹 브라우저에서 바로 OpenStreetMap을 업데이트 할 수 있습니다.", + "welcome": "[OpenStreetMap](https://www.openstreetmap.org/)의 iD 편집기에 오신 것을 환영합니다. 이 편집기를 사용하면 웹 브라우저에서 바로 OpenStreetMap을 업데이트 할 수 있습니다.", "open_data_h": "데이터 개방", "open_data": "이 맵에서 편집 한 내용은 OpenStreetMap을 사용하는 모든 사용자가 볼 수 있습니다. 귀하의 편집 내용은 개인 지식, 지상 설문 조사 또는 공중 또는 거리 사진에서 수집한 이미지를 기반으로 할 수 있습니다. Google 지도와 같은 상업적인 출처에서 복사하는 행위는 [엄격히 금지되어 있습니다](https://www.openstreetmap.org/copyright).", "before_start_h": "시작하기 전에", "before_start": "편집을 시작하기 전에 OpenStreetMap과 이 편집기에 익숙해야 합니다. iD에는 OpenStreetMap 편집의 기본 사항을 알려주는 연습이 있습니다. 튜토리얼을 보려면 이 화면에서 \"연습 시작하기\"를 클릭하세요 - 약 15 분이 소요됩니다.", "open_source_h": "오픈소스", - "open_source": "iD 편집기는 공동 작업 방식의 오픈 소스 프로젝트이며, 버전 {version}을 사용 중입니다. 소스 코드는 [GitHub에서] 이용할 수 있습니다 (https://github.com/openstreetmap/iD).", - "open_source_help": "iD에 [번역] (https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) 또는 [버그 신고] (https://github.com/openstreetmap/iD/issues)를 통해 도움을 줄 수 있습니다." + "open_source": "iD 편집기는 공동 작업 방식의 오픈 소스 프로젝트이며, 버전 {version}을 사용 중입니다. 소스 코드는 [GitHub에서](https://github.com/openstreetmap/iD) 이용할 수 있습니다.", + "open_source_help": "iD에 [번역](https://github.com/openstreetmap/iD/blob/master/CONTRIBUTING.md#translating) 또는 [버그 신고](https://github.com/openstreetmap/iD/issues)를 통해 도움을 줄 수 있습니다." }, "overview": { "title": "개요", @@ -729,6 +729,17 @@ "turn_restriction_h": "회전 제한", "route_h": "노선", "boundary_h": "경계" + }, + "imagery": { + "title": "배경 이미지", + "sources_h": "이미지 출처" + }, + "field": { + "restrictions": { + "about": { + "title": "정보" + } + } } }, "intro": { @@ -5853,18 +5864,33 @@ "name": "TIGER Roads 2017" }, "Waymarked_Trails-Cycling": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 기여자, CC by-SA 3.0" + }, "name": "도로 표지가 달린 길: 자전거" }, "Waymarked_Trails-Hiking": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 기여자, CC by-SA 3.0" + }, "name": "도로 표지가 달린 길: 걷기" }, "Waymarked_Trails-MTB": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 기여자, CC by-SA 3.0" + }, "name": "도로 표지가 달린 길: 산악 자전거" }, "Waymarked_Trails-Skating": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 기여자, CC by-SA 3.0" + }, "name": "도로 표지가 달린 길: 스케이트" }, "Waymarked_Trails-Winter_Sports": { + "attribution": { + "text": "© waymarkedtrails.org, OpenStreetMap 기여자, CC by-SA 3.0" + }, "name": "도로 표지가 달린 길: 겨울 스포츠" }, "basemap.at": { diff --git a/dist/locales/ru.json b/dist/locales/ru.json index bcdcc9620..2630a4b89 100644 --- a/dist/locales/ru.json +++ b/dist/locales/ru.json @@ -434,7 +434,7 @@ }, "geometry": { "point": "точка", - "vertex": "точка", + "vertex": "точка в составе линии", "line": "линия", "area": "полигон", "relation": "отношение" @@ -3432,8 +3432,8 @@ "terms": "Подпорная стена, укрепляющая стена" }, "barrier/stile": { - "name": "Турникет", - "terms": "Турникет, барьер" + "name": "Перелаз", + "terms": "ступеньки, лестница, лаз, узкиий лаз" }, "barrier/toll_booth": { "name": "Пункт оплаты проезда", @@ -5542,7 +5542,7 @@ }, "shop/electronics": { "name": "Магазин бытовой электроники", - "terms": "Магазин бытовой электроники" + "terms": "Магазин бытовой электроники, телевизор, тв, радио, холодильник, электроника, кабели, духовка, печь, бытовая техника, электроника" }, "shop/erotic": { "name": "Секс-шоп", @@ -5603,8 +5603,8 @@ "terms": "Парикмахерская, Парикмахер, Парикмахерский салон, Стилист, барбершоп" }, "shop/hardware": { - "name": "Строительный магазин", - "terms": "винты, шурупы, гвозди, крючки, крепёж, инструмент, метриалы" + "name": "Хозяйственный магазин", + "terms": "винты, шурупы, гвозди, крючки, крепёж, инструмент, материалы, хозяйственный, строительный" }, "shop/health_food": { "name": "Магазин здорового питания", @@ -5623,8 +5623,8 @@ "terms": "Техника Hi-fi, Акустика Hi-fi, домашний кинотеатр" }, "shop/houseware": { - "name": "Магазин посуды, столовых приборов", - "terms": "посуда, магазин посуды" + "name": "Магазин посуды, домашней утвари", + "terms": "посуда, утварь, обиход, предметы интерьера, декоративные вещи" }, "shop/interior_decoration": { "name": "Магазин предметов интерьера", diff --git a/dist/locales/so.json b/dist/locales/so.json new file mode 100644 index 000000000..52c4ba85a --- /dev/null +++ b/dist/locales/so.json @@ -0,0 +1,595 @@ +{ + "so": { + "modes": { + "add_area": { + "title": "Aagga", + "description": "Ku dar jardiinooyinka, dhismayaasha, harooyinka, ama meelaha kale Khariidada." + }, + "add_line": { + "title": "Khad", + "description": "Ku dar jidadka halbowlaha, wadooyinka, wadooyinka socotada, kanaalada, ama khadadka kale Khariidada." + }, + "add_point": { + "title": "Bar", + "description": "Ku dar maqaayadaha, dhismayaasha, sanduuqyada boostada, ama baraha kale Khariidada." + } + }, + "operations": { + "add": { + "annotation": { + "point": "Ku daray bar." + } + }, + "continue": { + "title": "Sii wad", + "description": "Sii wad khadkanan.", + "not_eligible": "Wax khad ah laguma wadi karo halkan.", + "annotation": { + "line": "Sii waday khadka.", + "area": "Sii waday aag." + } + }, + "change_tags": { + "annotation": "Taxanbaha la beddelay." + }, + "circularize": { + "title": "Goobo geli", + "description": { + "line": "Ka dhig khadkan wareeg." + } + }, + "delete": { + "title": "Tirtir", + "description": { + "single": "U tirtir goobtani si joogto ah" + } + }, + "disconnect": { + "title": "Jar Xiriirka", + "description": "Ka jar xiriirka khadadkan/goobahan midba midka kale." + }, + "move": { + "title": "Dhaqaaji", + "description": { + "single": "U dhaqaaji muuqaalkan meel kale." + } + }, + "reflect": { + "title": { + "long": "Si dheer u milicso", + "short": "Si gaaban u milicso" + }, + "description": { + "long": { + "single": "Ka milicso astaantan xagasha dheer" + }, + "short": { + "single": "Ka milicso astaantan xagasha gaaban" + } + } + }, + "rotate": { + "title": "Rog", + "description": { + "single": "U rog astaantan agagaarkeeda bartamaha." + } + }, + "reverse": { + "title": "Dib u noqosho", + "description": "Ka dhig khadkaan mid aada jihada lidka ah." + }, + "split": { + "title": "Kala qaybi", + "description": { + "line": "U kala qaybi xariiqdan labo guntin." + }, + "not_eligible": "Khadadka looma kala qaybin karo bilow ama dhammaad." + } + }, + "undo": { + "tooltip": "Ka-noqosho: {action}", + "nothing": "Ma jiraan wax laga noqdo." + }, + "redo": { + "tooltip": "Ku-noqosho: {action}", + "nothing": "Ma jiraan wax lagu noqdo." + }, + "tooltip_keyhint": "Af-goys:", + "translate": { + "localized_translation_label": "Magaca luqadaha badan", + "localized_translation_language": "Dooro luuqada", + "localized_translation_name": "Magaca" + }, + "commit": { + "created": "Lagu suurtogeliyay" + }, + "info_panels": { + "background": { + "title": "Hagaajinta", + "description": "Sharaxaad" + }, + "history": { + "title": "Taariikh", + "last_edit": "Ugu dambeeyn la beddelay" + } + }, + "geometry": { + "point": "bar", + "line": "khad" + }, + "geocoder": { + "search": "Ka raadi dunida oo dhan…", + "no_results_visible": "Wax natiijooyin ah kama muuqdaan aagga Khariidada.", + "no_results_worldwide": "Wax tilmaamo ah lama helin" + }, + "geolocate": { + "title": "Muuji Goobtayda" + }, + "inspector": { + "all_fields": "Dhammaan goobaha", + "all_tags": "Dhammaan taxanbayaasha", + "all_relations": "Dhammaan xiriirada", + "choose": "Dooro nooca tilmaamaha", + "search": "Raadi", + "feature_list": "Tilmaamaha Waydiimaha", + "radio": { + "structure": { + "layer": "Lakabka" + } + }, + "add": "Ku Dar", + "add_fields": "Ku dar goob:" + }, + "background": { + "title": "Hagaajinta", + "description": "Hagaajinta taariikhda" + }, + "map_data": { + "title": "Xogta Khariidada", + "description": "Xogta Khariidada", + "data_layers": "Lakabyada", + "layers": { + "osm": { + "title": "Xogta OpenStreetMap" + } + } + }, + "feature": { + "service_roads": { + "description": "Jidka Shaqaalaha" + } + }, + "save": { + "title": "Keydi", + "help": "Dib-u-fiiri isbeddelkaaga oo u soo dir si furan OpenStreetMap, oo ka dhigaysa inay muuqdaan dadka kale.", + "no_changes": "Wax isbeddel ah lama kaydin.", + "conflict": { + "previous": "< Hore", + "next": "Xiga >" + } + }, + "success": { + "facebook": "Faafi Facebook", + "twitter": "Faafi Twitter", + "google": "Faafi Google+" + }, + "tag_reference": { + "description": "Sharaxaad" + }, + "help": { + "title": "Caawin", + "help": { + "title": "Caawin", + "open_data": "Tifaftiraada aad ku sameyso Khariidadan waxay u muuqan doonaan qof walba oo isticmaala OpenStreetMap. Copying from commercial sources, like Google Maps, [is strictly forbidden](https://www.openstreetmap.org/copyright).", + "open_source": "iD {version} waa mashruuc wada-shaqayn oo baaq-furahiisa laga heli karo [GitHub](https://github.com/openstreetmap/iD)." + }, + "editing": { + "undo_redo_h": "Ka-noqosho & Ku-noqosho", + "save_h": "Keydi", + "keyboard_h": "Af-goys" + }, + "lines": { + "title": "Khadadka" + }, + "gps": { + "title": "Raadadka GPS" + }, + "field": { + "restrictions": { + "about": { + "title": "Ku-saabsan" + } + } + } + }, + "shortcuts": { + "title": "Af-goys", + "key": { + "delete": "Tirtir" + }, + "browsing": { + "help": { + "title": "Caawin" + } + }, + "editing": { + "commands": { + "undo": "Ka-noqosho", + "redo": "Ku-noqosho", + "save": "Keydso is-beddelada" + } + } + }, + "units": { + "miles": "{quantity} mayl" + }, + "presets": { + "categories": { + "category-barrier": { + "name": "Tilmaamaha Xannibaadaha" + }, + "category-building": { + "name": "Tilmaamaha Dhismayaasha" + }, + "category-landuse": { + "name": "Tilmaamaha Isticmaalka Dhulka" + }, + "category-natural-area": { + "name": "Tilmaamaha Dabiiciga" + }, + "category-natural-line": { + "name": "Tilmaamaha Dabiiciga" + }, + "category-natural-point": { + "name": "Tilmaamaha Dabiiciga" + }, + "category-path": { + "name": "Tilmaamaha Wadada" + }, + "category-rail": { + "name": "Tilmaamaha Jidadka Tariinka" + }, + "category-road": { + "name": "Tilmaamaha Wadooyinka" + } + }, + "fields": { + "access": { + "types": { + "access": "Dhammaan Gelitaanada", + "bicycle": "Baaskiilada", + "horse": "Fardo", + "motor_vehicle": "Gawaarida" + } + }, + "address": { + "placeholders": { + "city": "Magaalo", + "place": "Goob" + } + }, + "building": { + "label": "Dhismo" + }, + "building_area": { + "label": "Dhismo" + }, + "capacity": { + "label": "Mug" + }, + "cuisine": { + "label": "Cunnada" + }, + "cycleway": { + "label": "Dhabbaha Baaskiilada", + "types": { + "cycleway:left": "Dhinaca biddix", + "cycleway:right": "Dhinaca midig" + } + }, + "delivery": { + "label": "Gaysmo" + }, + "denomination": { + "label": "Firqada" + }, + "description": { + "label": "Sharaxaad" + }, + "fire_hydrant/type": { + "options": { + "pond": "Balli" + } + }, + "generator/source": { + "label": "Bilowga xogta" + }, + "internet_access": { + "label": "Helitaanka Internet-ka" + }, + "internet_access/ssid": { + "label": "SSID (Magaca Network)" + }, + "lanes": { + "label": "Tirada Dhabbooyinka" + }, + "levels": { + "label": "Heerarka" + }, + "maxheight": { + "label": "Dhererka ugu Sareeya" + }, + "maxspeed": { + "label": "Xadka Xawaaraha" + }, + "name": { + "label": "Magaca", + "placeholder": "Magaca guud (haddii uu jiro)" + }, + "natural": { + "label": "Dabiiciga" + }, + "oneway": { + "label": "Hal Wado" + }, + "oneway_yes": { + "label": "Hal Wado" + }, + "opening_hours": { + "label": "Saacado" + }, + "operator": { + "label": "Hawlgale" + }, + "outdoor_seating": { + "label": "Fadhiga Banaanka" + }, + "smoking": { + "label": "Sigaar-cabbista waa la oggolyahay" + }, + "source": { + "label": "Bilowga xogta" + }, + "sport": { + "label": "Cayaaraha" + }, + "structure": { + "options": { + "bridge": "Buundo", + "ford": "Tog" + } + } + }, + "presets": { + "aeroway/runway": { + "name": "Gegada diyaaradaha" + }, + "aeroway/terminal": { + "name": "Gagida Dayaaradeed" + }, + "amenity/bank": { + "name": "Bangi" + }, + "amenity/bar": { + "name": "Makhaayad" + }, + "amenity/cafe": { + "name": "Kafateeriya" + }, + "amenity/cinema": { + "name": "Shaneemo" + }, + "amenity/fast_food": { + "name": "Cuntooyinka Fudud" + }, + "amenity/hospital": { + "name": "Goob Isbitaal" + }, + "amenity/library": { + "name": "Maktabad" + }, + "amenity/parking": { + "name": "Baakinka Baabuurta" + }, + "amenity/place_of_worship": { + "name": "Goobta Cibaadada" + }, + "amenity/place_of_worship/muslim": { + "name": "Masaajid" + }, + "amenity/restaurant": { + "name": "Maqaayad" + }, + "amenity/school": { + "name": "Goobaha Dugsiyada" + }, + "barrier": { + "name": "Xannibaadaha" + }, + "building": { + "name": "Dhismo" + }, + "building/commercial": { + "name": "Dhismaha Ganacsiga" + }, + "building/house": { + "name": "Guri" + }, + "building/industrial": { + "name": "Dhismaha Warshadaha" + }, + "building/mosque": { + "name": "Dhismaha Masaajid" + }, + "building/public": { + "name": "Dhismaha Dadweynaha" + }, + "building/residential": { + "name": "Dhismo Degaan" + }, + "building/retail": { + "name": "Dhismo Tafaariiqda" + }, + "building/school": { + "name": "Dhismo Dugsiyada" + }, + "footway/crosswalk": { + "name": "Isgoyska Socotada" + }, + "ford": { + "name": "Tog" + }, + "highway": { + "name": "Wadada Halboowlaha" + }, + "highway/bus_stop": { + "name": "Boostaajo" + }, + "highway/crosswalk": { + "name": "Isgoyska Socotada" + }, + "highway/path": { + "name": "Waddo" + }, + "highway/primary": { + "name": "Wadada Koowaad" + }, + "highway/residential": { + "name": "Waddada Guryaha" + }, + "highway/service": { + "name": "Jidka Shaqaalaha" + }, + "highway/unclassified": { + "name": "Waddo Yar/La cayimin" + }, + "landuse": { + "name": "Isticmaalka Dhulka" + }, + "landuse/aquaculture": { + "name": "Xarumaha biyo-ku-noolka" + }, + "landuse/cemetery": { + "name": "Xabaalaha" + }, + "landuse/commercial": { + "name": "Aagga Ganacsiga" + }, + "landuse/farm": { + "name": "Dhul beereed" + }, + "landuse/farmland": { + "name": "Dhul beereed" + }, + "landuse/forest": { + "name": "Duur" + }, + "landuse/grass": { + "name": "Aag cagaaran" + }, + "landuse/industrial": { + "name": "Aagga Warshadaha" + }, + "landuse/landfill": { + "name": "Qashin-qub" + }, + "landuse/military": { + "name": "Goob Ciidan" + }, + "landuse/residential": { + "name": "Aag Degaan" + }, + "landuse/retail": { + "name": "Goobta Tafaariiqda" + }, + "leisure/marina": { + "name": "Deked" + }, + "leisure/park": { + "name": "Jardiino" + }, + "leisure/pitch/american_football": { + "name": "Garoonka Kubbada Cagta" + }, + "leisure/pitch/cricket": { + "name": "Garoon Kiriket" + }, + "line": { + "name": "Khad" + }, + "man_made/bridge": { + "name": "Buundo" + }, + "man_made/pier": { + "name": "Dekedyaro" + }, + "natural": { + "name": "Dabiiciga" + }, + "natural/bare_rock": { + "name": "Dhagax Weyn" + }, + "natural/beach": { + "name": "Xeeb" + }, + "natural/coastline": { + "name": "Xeeb" + }, + "natural/water/lake": { + "name": "Haro" + }, + "natural/water/pond": { + "name": "Balli" + }, + "office/government": { + "name": "Xafiis Dowladeed" + }, + "place": { + "name": "Goob" + }, + "place/city": { + "name": "Magaalo" + }, + "place/island": { + "name": "Jasiirad" + }, + "place/locality": { + "name": "Deegaanka" + }, + "power/line": { + "name": "Khadka Korantada" + }, + "public_transport/linear_platform_bus": { + "name": "Boostaajo" + }, + "public_transport/platform_bus": { + "name": "Boostaajo" + }, + "route/ferry": { + "name": "Wadada Doonta" + }, + "shop": { + "name": "Dukaan" + }, + "shop/car_repair": { + "name": "Garaash" + }, + "shop/hardware": { + "name": "Dukaanka Qalabka" + }, + "shop/mobile_phone": { + "name": "Dukaanka Taleefoonka Gacanta" + }, + "tourism/hotel": { + "name": "Huteel" + }, + "type/route/ferry": { + "name": "Wadada Doonta" + }, + "waterway/canal": { + "name": "Kanaal" + } + } + } + } +} \ No newline at end of file diff --git a/dist/locales/vi.json b/dist/locales/vi.json index 0b9acd7a4..80f81b39e 100644 --- a/dist/locales/vi.json +++ b/dist/locales/vi.json @@ -1703,6 +1703,9 @@ "cycleway:right": "Bên phải" } }, + "dance/style": { + "label": "Thể loại Khiêu vũ" + }, "date": { "label": "Ngày tháng" }, @@ -4475,6 +4478,10 @@ "name": "Phòng Khiêu vũ", "terms": "phòng khiêu vũ, phòng nhảy, phong khieu vu, phong nhay" }, + "leisure/dancing_school": { + "name": "Trường Múa/Khiêu vũ", + "terms": "trường múa, trường khiêu vũ, ba lê, ba-lê, balê, tango, tăng-gô, tăng gô, waltz, van-xơ, van xơ, vanxơ, truong mua, truong kheu vu, ba le, ba-le, bale, tang-go, tang go, van-xo, van xo, vanxo" + }, "leisure/dog_park": { "name": "Công viên dành cho Chó", "terms": "công viên chó, công viên cho chó, công viên dành cho chó, công viên chó chạy nhảy, cong vien cho, cong vien cho cho, cong vien danh cho cho, cong vien cho chay nhay" diff --git a/dist/locales/zh-HK.json b/dist/locales/zh-HK.json index 02da4ec8a..b5ce2e54c 100644 --- a/dist/locales/zh-HK.json +++ b/dist/locales/zh-HK.json @@ -1171,7 +1171,7 @@ "housename": "房名", "housenumber": "123", "housenumber!jp": "建築物號碼/地段", - "neighbourhood": "鄰里", + "neighbourhood": "屋苑", "neighbourhood!jp": "丁目/字/小字 (日本)", "place": "地方", "postcode": "郵遞區號", diff --git a/dist/locales/zh-TW.json b/dist/locales/zh-TW.json index 1f8f895d5..80860cde6 100644 --- a/dist/locales/zh-TW.json +++ b/dist/locales/zh-TW.json @@ -296,7 +296,35 @@ "distance": "距離", "distance_up_to": "最大 {distance}", "via": "經由", - "via_node_only": "只有節點" + "via_node_only": "只有節點", + "via_up_to_one": "最多 1 路徑", + "via_up_to_two": "最多 2 路徑" + }, + "help": { + "indirect": "(間接)", + "turn": { + "no_left_turn": "禁止左轉 {indirect}", + "no_right_turn": "禁止右轉 {indirect}", + "no_u_turn": "禁止迴轉 {indirect}", + "no_straight_on": "禁止直行 {indirect}", + "only_left_turn": "只能左轉 {indirect}", + "only_right_turn": "只能右轉 {indirect}", + "only_u_turn": "只能迴轉 {indirect}", + "only_straight_on": "只能直行 {indirect}", + "allowed_left_turn": "允許左轉 {indirect}", + "allowed_right_turn": "允許右轉 {indirect}", + "allowed_u_turn": "允許迴轉 {indirect}", + "allowed_straight_on": "允許直行 {indirect}" + }, + "from": "從", + "via": "經由", + "to": "到", + "from_name": "{from} {fromName}", + "from_name_to_name": "{from} {fromName} {to} {toName}", + "via_names": "{via} {viaNames}", + "select_from": "點選 {from} 片段", + "select_from_name": "點選 {from} 片段 {fromName}", + "toggle": "點 \"{turn}\"" } }, "undo": { @@ -854,6 +882,25 @@ "using": "要用 GPS 軌跡畫地圖,請把資料檔案拖到地圖編輯器裡。如果成功辨識,則會在地圖上顯示亮紫色的線條。點地圖旁邊的 {data} **地圖資料**面板啟用、關閉,或是縮放到你的 GPS 資料。", "tracing": "GPS 軌跡並未傳到開放街圖 - 而最好的使用方式則是照著軌跡的指引,繪製你要新增的圖徵。", "upload": "您也可以透過[上傳你的 GPS 資訊至 OpenStreetMap 開放街圖](https://www.openstreetmap.org/trace/create)以供其他使用者利用。" + }, + "field": { + "restrictions": { + "title": "轉彎限制說明", + "about": { + "title": "關於", + "about": "這個欄位允許你偵測和變動轉彎限制,顯示選取的交叉路口的模型,以及鄰近連結的道路。", + "from_via_to": "轉彎限制總是有:一個**從路徑**,一個**到路徑**,以及一個**經由節點*,或一個或多個**經由路徑**。" + }, + "inspecting": { + "title": "偵測" + }, + "modifying": { + "title": "變動" + }, + "tips": { + "title": "技巧" + } + } } }, "intro": { From d2558b950de4a38bf3e527c6507507b594041b38 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sun, 11 Mar 2018 11:52:48 -0400 Subject: [PATCH 141/157] v2.7.1 --- CHANGELOG.md | 45 +++++++++++++++++++++++++++++++++++++++++ modules/core/context.js | 2 +- package.json | 2 +- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 465a22c88..7929bd7b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,51 @@ _Breaking changes, which may affect downstream projects or sites that embed iD, [@xxxx]: https://github.com/xxxx --> +# 2.7.1 +##### March 11, 2018 + +#### :tada: New Features +* Add support for EPSG:4326 WMS layers ([#4858], thanks [@tyrasd]) + +[#4858]: https://github.com/openstreetmap/iD/issues/4858 +[@tyrasd]: https://github.com/tyrasd + +#### :bug: Bugfixes +* Allow user to press esc to finish drawing in an invalid position ([#4845], [#4860], thanks [@jguthrie100]) +* Remove code attempting to extend short leaf ways in turn restriction editor ([#4869]) +* Properly split ways which are members of a via way turn restriction ([#4861]) +* Avoid reordering stops and platforms in PTv2 routes ([#4864]) +* `only_` restrictions should only count if they leave the FROM towards the VIA ([#4849]) + +[#4869]: https://github.com/openstreetmap/iD/issues/4869 +[#4864]: https://github.com/openstreetmap/iD/issues/4864 +[#4861]: https://github.com/openstreetmap/iD/issues/4861 +[#4860]: https://github.com/openstreetmap/iD/issues/4860 +[#4849]: https://github.com/openstreetmap/iD/issues/4849 +[#4845]: https://github.com/openstreetmap/iD/issues/4845 +[@jguthrie100]: https://github.com/jguthrie100 + +#### :earth_asia: Localization +* For Kurdish languages - set `ckb` to RTL and `ku` to LTR ([#4783]) + +[#4783]: https://github.com/openstreetmap/iD/issues/4783 + +#### :rocket: Presets +* Fix duplicate `opening_hours` on `shop=beauty` preset ([#4868], [#4867], thanks [@hikemaniac]) +* Add `name` field to `leisure=pitch` and `amenity=parking` presets ([#4865], [#4857], thanks [@umarpreet1]) +* Fix subway platform presets to use `subway=yes` tag ([#4862]) +* Add preset for Dance School - `leisure=dance`+`dance:teaching=yes` ([#4846], thanks [@hikemaniac]) + +[#4868]: https://github.com/openstreetmap/iD/issues/4868 +[#4867]: https://github.com/openstreetmap/iD/issues/4867 +[#4865]: https://github.com/openstreetmap/iD/issues/4865 +[#4857]: https://github.com/openstreetmap/iD/issues/4857 +[#4862]: https://github.com/openstreetmap/iD/issues/4862 +[#4846]: https://github.com/openstreetmap/iD/issues/4846 +[@hikemaniac]: https://github.com/hikemaniac +[@umarpreet1]: https://github.com/umarpreet1 + + # 2.7.0 ##### March 2, 2018 diff --git a/modules/core/context.js b/modules/core/context.js index ed3c69c2f..72e5ecd00 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -53,7 +53,7 @@ export function setAreaKeys(value) { export function coreContext() { var context = {}; - context.version = '2.7.0'; + context.version = '2.7.1'; // create a special translation that contains the keys in place of the strings var tkeys = _cloneDeep(dataEn); diff --git a/package.json b/package.json index 0a7605f6c..a1f75c4d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iD", - "version": "2.7.0", + "version": "2.7.1", "description": "A friendly editor for OpenStreetMap", "main": "iD.js", "repository": "openstreetmap/iD", From 00c4c57fc1d932625f8eb5a38fa6274d55a77a1d Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Mon, 12 Mar 2018 22:23:28 -0400 Subject: [PATCH 142/157] Add more search terms for memorial (incl. stolperstein - request from IRC) --- data/presets.yaml | 1 + data/presets/presets.json | 9 +++++++++ data/presets/presets/historic/memorial.json | 9 +++++++++ dist/locales/en.json | 2 +- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/data/presets.yaml b/data/presets.yaml index 273f7fbd0..5ffdf4ea2 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3360,6 +3360,7 @@ en: historic/memorial: # historic=memorial name: Memorial + # 'terms: dedicatory,epitaph,remember,remembrance,memory,monument,stolperstein' terms: '' historic/monument: # historic=monument diff --git a/data/presets/presets.json b/data/presets/presets.json index 93d8456e8..5eb7fe335 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -8184,6 +8184,15 @@ "vertex", "area" ], + "terms": [ + "dedicatory", + "epitaph", + "remember", + "remembrance", + "memory", + "monument", + "stolperstein" + ], "tags": { "historic": "memorial" }, diff --git a/data/presets/presets/historic/memorial.json b/data/presets/presets/historic/memorial.json index 2a8ed53b6..7a78ccc9e 100644 --- a/data/presets/presets/historic/memorial.json +++ b/data/presets/presets/historic/memorial.json @@ -10,6 +10,15 @@ "vertex", "area" ], + "terms": [ + "dedicatory", + "epitaph", + "remember", + "remembrance", + "memory", + "monument", + "stolperstein" + ], "tags": { "historic": "memorial" }, diff --git a/dist/locales/en.json b/dist/locales/en.json index ca16b9f29..8f0102fce 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4298,7 +4298,7 @@ }, "historic/memorial": { "name": "Memorial", - "terms": "" + "terms": "dedicatory,epitaph,remember,remembrance,memory,monument,stolperstein" }, "historic/monument": { "name": "Monument", From 3d57d1b0d6fbeb00715604cb839b01eabf1d1c53 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 14 Mar 2018 09:48:28 -0400 Subject: [PATCH 143/157] Upgrade request to v2.85.0 (closes #4878) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a1f75c4d6..fddc13502 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "name-suggestion-index": "0.1.5", "npm-run-all": "^4.0.0", "phantomjs-prebuilt": "~2.1.11", - "request": "^2.81.0", + "request": "^2.85.0", "rollup": "~0.56.3", "rollup-plugin-commonjs": "^9.0.0", "rollup-plugin-flow": "^1.1.1", From e1e4cb1df558bf608997b5935a50e4b1a0b04fe0 Mon Sep 17 00:00:00 2001 From: Kushan Joshi <0o3ko0@gmail.com> Date: Wed, 14 Mar 2018 13:17:50 -0400 Subject: [PATCH 144/157] Use remove-flow-types directly --- build_src.js | 14 +++++++++++++- package.json | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/build_src.js b/build_src.js index 60581e94f..3b17696db 100644 --- a/build_src.js +++ b/build_src.js @@ -7,7 +7,7 @@ const commonjs = require('rollup-plugin-commonjs'); const json = require('rollup-plugin-json'); const includePaths = require('rollup-plugin-includepaths'); const colors = require('colors/safe'); -const flow = require('rollup-plugin-flow'); +const flowRemoveTypes = require('flow-remove-types'); module.exports = function buildSrc() { @@ -72,4 +72,16 @@ function unlink(f) { try { fs.unlinkSync(f); } catch (e) { /* noop */ } +} + +// Using this instead of rollup-plugin-flow due to +// https://github.com/leebyron/rollup-plugin-flow/issues/5 +function flow() { + return { + name: 'flow-remove-types', + transform: (code) => ({ + code: flowRemoveTypes(code).toString(), + map: null + }) + }; } \ No newline at end of file diff --git a/package.json b/package.json index fddc13502..03b20c321 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,6 @@ "request": "^2.85.0", "rollup": "~0.56.3", "rollup-plugin-commonjs": "^9.0.0", - "rollup-plugin-flow": "^1.1.1", "rollup-plugin-includepaths": "^0.2.2", "rollup-plugin-json": "^2.2.0", "rollup-plugin-node-resolve": "^3.2.0", From 889e4d1deccee7cbe93ac07771fbb67ac63c1002 Mon Sep 17 00:00:00 2001 From: xortiz Date: Wed, 14 Mar 2018 21:50:08 -0400 Subject: [PATCH 145/157] added passing place to presets Added this by creating a `new passing_place.json`. On building, the yaml and other files were automatically generated. --- data/presets.yaml | 5 +++++ data/presets/presets.json | 13 +++++++++++++ data/presets/presets/highway/passing_place.json | 13 +++++++++++++ data/taginfo.json | 4 ++++ dist/locales/en.json | 4 ++++ 5 files changed, 39 insertions(+) create mode 100644 data/presets/presets/highway/passing_place.json diff --git a/data/presets.yaml b/data/presets.yaml index 5ffdf4ea2..833e714f5 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3195,6 +3195,11 @@ en: name: Motorway Link # 'terms: ramp,on ramp,off ramp' terms: '' + highway/passing_place: + # highway=passing_place + name: Passing Place + # 'terms: turnout, pullout' + terms: '' highway/path: # highway=path name: Path diff --git a/data/presets/presets.json b/data/presets/presets.json index 5eb7fe335..5b658e79c 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -7349,6 +7349,19 @@ ], "name": "Motorway" }, + "highway/passing_place": { + "icon": "circle-stroked", + "geometry": [ + "vertex" + ], + "tags": { + "highway": "passing_place" + }, + "terms": [ + "turnout, pullout" + ], + "name": "Passing Place" + }, "highway/path": { "icon": "highway-path", "fields": [ diff --git a/data/presets/presets/highway/passing_place.json b/data/presets/presets/highway/passing_place.json new file mode 100644 index 000000000..1e2ccdb36 --- /dev/null +++ b/data/presets/presets/highway/passing_place.json @@ -0,0 +1,13 @@ +{ + "icon": "circle-stroked", + "geometry": [ + "vertex" + ], + "tags": { + "highway": "passing_place" + }, + "terms": [ + "turnout, pullout" + ], + "name": "Passing Place" +} diff --git a/data/taginfo.json b/data/taginfo.json index e8655875d..b8fc0d302 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -1408,6 +1408,10 @@ "key": "highway", "value": "motorway" }, + { + "key": "highway", + "value": "passing_place" + }, { "key": "highway", "value": "path" diff --git a/dist/locales/en.json b/dist/locales/en.json index 8f0102fce..6a247d7b8 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4152,6 +4152,10 @@ "name": "Motorway", "terms": "autobahn,expressway,freeway,highway,interstate,parkway,thruway,turnpike" }, + "highway/passing_place": { + "name": "Passing Place", + "terms": "turnout, pullout" + }, "highway/path": { "name": "Path", "terms": "hike,hiking,trackway,trail,walk" From 7d9e984acd9dd070e60721d0e7b77b3e9687510c Mon Sep 17 00:00:00 2001 From: umarpreet1 Date: Thu, 15 Mar 2018 09:17:53 +0530 Subject: [PATCH 146/157] Advisory speed limit added (#4870) maxspeed:advisory speed limit added --- data/presets/fields.json | 8 +++++++- data/presets/fields/maxspeed/advisory.json | 6 ++++++ data/presets/presets/highway/motorway_link.json | 2 +- data/presets/presets/highway/primary_link.json | 2 +- data/presets/presets/highway/secondary_link.json | 2 +- data/presets/presets/highway/tertiary_link.json | 2 +- data/presets/presets/highway/trunk_link.json | 2 +- 7 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 data/presets/fields/maxspeed/advisory.json diff --git a/data/presets/fields.json b/data/presets/fields.json index 6b9369f03..f85f292ea 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -1139,6 +1139,12 @@ "label": "Speed Limit", "placeholder": "40, 50, 60..." }, + "maxspeed/advisory":{ + "key": "maxspeed:advisory", + "type": "maxspeed", + "label": "Advisory Speed Limit", + "placeholder": "40, 50, 60..." + }, "maxstay": { "key": "maxstay", "type": "combo", @@ -2251,4 +2257,4 @@ } } } -} \ No newline at end of file +} diff --git a/data/presets/fields/maxspeed/advisory.json b/data/presets/fields/maxspeed/advisory.json new file mode 100644 index 000000000..ec1e59309 --- /dev/null +++ b/data/presets/fields/maxspeed/advisory.json @@ -0,0 +1,6 @@ +{ + "key": "maxspeed:advisory", + "type": "maxspeed", + "label": "Advisory Speed Limit", + "placeholder": "40, 50, 60..." +} diff --git a/data/presets/presets/highway/motorway_link.json b/data/presets/presets/highway/motorway_link.json index c64f6e950..18451f6a5 100644 --- a/data/presets/presets/highway/motorway_link.json +++ b/data/presets/presets/highway/motorway_link.json @@ -4,7 +4,7 @@ "name", "ref_road_number", "oneway", - "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", diff --git a/data/presets/presets/highway/primary_link.json b/data/presets/presets/highway/primary_link.json index df1725340..fd43e47b0 100644 --- a/data/presets/presets/highway/primary_link.json +++ b/data/presets/presets/highway/primary_link.json @@ -3,7 +3,7 @@ "fields": [ "name", "oneway", - "maxspeed", + "maxspeed/advisory", "lanes", "surface", "maxheight", diff --git a/data/presets/presets/highway/secondary_link.json b/data/presets/presets/highway/secondary_link.json index d154d9705..d877bbe3c 100644 --- a/data/presets/presets/highway/secondary_link.json +++ b/data/presets/presets/highway/secondary_link.json @@ -3,7 +3,7 @@ "fields": [ "name", "oneway", - "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", diff --git a/data/presets/presets/highway/tertiary_link.json b/data/presets/presets/highway/tertiary_link.json index 753ef80ed..df5531fe9 100644 --- a/data/presets/presets/highway/tertiary_link.json +++ b/data/presets/presets/highway/tertiary_link.json @@ -3,7 +3,7 @@ "fields": [ "name", "oneway", - "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", diff --git a/data/presets/presets/highway/trunk_link.json b/data/presets/presets/highway/trunk_link.json index 023cad5d3..ea5265ee2 100644 --- a/data/presets/presets/highway/trunk_link.json +++ b/data/presets/presets/highway/trunk_link.json @@ -4,7 +4,7 @@ "name", "ref_road_number", "oneway", - "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", From b6b6232532327cb2e0a3083dbdd771c51f736bcc Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Wed, 14 Mar 2018 23:54:13 -0400 Subject: [PATCH 147/157] Restore maxspeed field to link roads --- data/presets/presets/highway/motorway_link.json | 1 + data/presets/presets/highway/primary_link.json | 1 + data/presets/presets/highway/secondary_link.json | 1 + data/presets/presets/highway/tertiary_link.json | 1 + data/presets/presets/highway/trunk_link.json | 1 + 5 files changed, 5 insertions(+) diff --git a/data/presets/presets/highway/motorway_link.json b/data/presets/presets/highway/motorway_link.json index 18451f6a5..5ff746552 100644 --- a/data/presets/presets/highway/motorway_link.json +++ b/data/presets/presets/highway/motorway_link.json @@ -4,6 +4,7 @@ "name", "ref_road_number", "oneway", + "maxspeed", "maxspeed/advisory", "lanes", "surface", diff --git a/data/presets/presets/highway/primary_link.json b/data/presets/presets/highway/primary_link.json index fd43e47b0..029f1e522 100644 --- a/data/presets/presets/highway/primary_link.json +++ b/data/presets/presets/highway/primary_link.json @@ -3,6 +3,7 @@ "fields": [ "name", "oneway", + "maxspeed", "maxspeed/advisory", "lanes", "surface", diff --git a/data/presets/presets/highway/secondary_link.json b/data/presets/presets/highway/secondary_link.json index d877bbe3c..6573a1fae 100644 --- a/data/presets/presets/highway/secondary_link.json +++ b/data/presets/presets/highway/secondary_link.json @@ -3,6 +3,7 @@ "fields": [ "name", "oneway", + "maxspeed", "maxspeed/advisory", "lanes", "surface", diff --git a/data/presets/presets/highway/tertiary_link.json b/data/presets/presets/highway/tertiary_link.json index df5531fe9..54261bccc 100644 --- a/data/presets/presets/highway/tertiary_link.json +++ b/data/presets/presets/highway/tertiary_link.json @@ -3,6 +3,7 @@ "fields": [ "name", "oneway", + "maxspeed", "maxspeed/advisory", "lanes", "surface", diff --git a/data/presets/presets/highway/trunk_link.json b/data/presets/presets/highway/trunk_link.json index ea5265ee2..8c767f369 100644 --- a/data/presets/presets/highway/trunk_link.json +++ b/data/presets/presets/highway/trunk_link.json @@ -4,6 +4,7 @@ "name", "ref_road_number", "oneway", + "maxspeed", "maxspeed/advisory", "lanes", "surface", From 4a71aa6146821d6944e6ff83f8f3e0c46c7526ea Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Mar 2018 00:57:41 -0400 Subject: [PATCH 148/157] Use safer field ids in classes, element ids, css selectors Fixes issue with nested/namespaced fields, such as `maxspeed/advisory`, in situations where would try to use a css selector or element id. Can't use characters like '/' in a css selector. --- data/presets.yaml | 5 +++++ data/presets/fields.json | 4 ++-- data/presets/presets.json | 5 +++++ dist/locales/en.json | 4 ++++ modules/presets/field.js | 2 ++ modules/ui/field.js | 4 ++-- modules/ui/fields/check.js | 4 ++-- modules/ui/fields/combo.js | 2 +- modules/ui/fields/input.js | 2 +- modules/ui/fields/localized.js | 2 +- modules/ui/fields/maxspeed.js | 4 ++-- modules/ui/fields/textarea.js | 2 +- modules/ui/fields/wikipedia.js | 2 +- modules/ui/form_fields.js | 2 +- 14 files changed, 30 insertions(+), 14 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index 5ffdf4ea2..68216a6f4 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -827,6 +827,11 @@ en: label: Speed Limit # maxspeed field placeholder placeholder: '40, 50, 60...' + maxspeed/advisory: + # 'maxspeed:advisory=*' + label: Advisory Speed Limit + # maxspeed/advisory field placeholder + placeholder: '40, 50, 60...' maxstay: # maxstay=* label: Max Stay diff --git a/data/presets/fields.json b/data/presets/fields.json index f85f292ea..f21bc4553 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -1139,7 +1139,7 @@ "label": "Speed Limit", "placeholder": "40, 50, 60..." }, - "maxspeed/advisory":{ + "maxspeed/advisory": { "key": "maxspeed:advisory", "type": "maxspeed", "label": "Advisory Speed Limit", @@ -2257,4 +2257,4 @@ } } } -} +} \ No newline at end of file diff --git a/data/presets/presets.json b/data/presets/presets.json index 5eb7fe335..6a1a08269 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -7290,6 +7290,7 @@ "ref_road_number", "oneway", "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", @@ -7440,6 +7441,7 @@ "name", "oneway", "maxspeed", + "maxspeed/advisory", "lanes", "surface", "maxheight", @@ -7586,6 +7588,7 @@ "name", "oneway", "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", @@ -7878,6 +7881,7 @@ "name", "oneway", "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", @@ -8017,6 +8021,7 @@ "ref_road_number", "oneway", "maxspeed", + "maxspeed/advisory", "lanes", "surface", "structure", diff --git a/dist/locales/en.json b/dist/locales/en.json index 8f0102fce..1c4833dce 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -2064,6 +2064,10 @@ "label": "Speed Limit", "placeholder": "40, 50, 60..." }, + "maxspeed/advisory": { + "label": "Advisory Speed Limit", + "placeholder": "40, 50, 60..." + }, "maxstay": { "label": "Max Stay" }, diff --git a/modules/presets/field.js b/modules/presets/field.js index 3fcc41613..b658c43a9 100644 --- a/modules/presets/field.js +++ b/modules/presets/field.js @@ -7,6 +7,8 @@ export function presetField(id, field) { field.id = id; + // for use in classes, element ids, css selectors + field.safeid = id.replace(/[^_a-zA-Z0-9\-]/g, '_'); field.matchGeometry = function(geometry) { return !field.geometry || field.geometry === geometry; diff --git a/modules/ui/field.js b/modules/ui/field.js index 4936dd51a..756ab095e 100644 --- a/modules/ui/field.js +++ b/modules/ui/field.js @@ -96,14 +96,14 @@ export function uiField(context, presetField, entity, options) { // Enter var enter = container.enter() .append('div') - .attr('class', function(d) { return 'form-field form-field-' + d.id; }) + .attr('class', function(d) { return 'form-field form-field-' + d.safeid; }) .classed('nowrap', !options.wrap); if (options.wrap) { var label = enter .append('label') .attr('class', 'form-label') - .attr('for', function(d) { return 'preset-input-' + d.id; }) + .attr('for', function(d) { return 'preset-input-' + d.safeid; }) .text(function(d) { return d.label(); }); var wrap = label diff --git a/modules/ui/fields/check.js b/modules/ui/fields/check.js index eb60d6646..f7300c598 100644 --- a/modules/ui/fields/check.js +++ b/modules/ui/fields/check.js @@ -103,7 +103,7 @@ export function uiFieldCheck(field, context) { .append('input') .property('indeterminate', field.type !== 'defaultCheck') .attr('type', 'checkbox') - .attr('id', 'preset-input-' + field.id); + .attr('id', 'preset-input-' + field.safeid); enter .append('span') @@ -113,7 +113,7 @@ export function uiFieldCheck(field, context) { if (field.type === 'onewayCheck') { enter .append('a') - .attr('id', 'preset-input-' + field.id + '-reverser') + .attr('id', 'preset-input-' + field.safeid + '-reverser') .attr('class', 'reverser button' + (reverserHidden() ? ' hide' : '')) .attr('href', '#') .append('span') diff --git a/modules/ui/fields/combo.js b/modules/ui/fields/combo.js index 875fc6393..3da0e37ad 100644 --- a/modules/ui/fields/combo.js +++ b/modules/ui/fields/combo.js @@ -291,7 +291,7 @@ export function uiFieldCombo(field, context) { input = input.enter() .append('input') .attr('type', 'text') - .attr('id', 'preset-input-' + field.id) + .attr('id', 'preset-input-' + field.safeid) .call(utilNoAuto) .call(initCombo, selection) .merge(input); diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index b5a49a6c7..7a33d7071 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -27,7 +27,7 @@ export function uiFieldText(field, context) { function i(selection) { - var fieldId = 'preset-input-' + field.id; + var fieldId = 'preset-input-' + field.safeid; input = selection.selectAll('input') .data([0]); diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index 35ea06f3a..5688a17e8 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -39,7 +39,7 @@ export function uiFieldLocalized(field, context) { input = input.enter() .append('input') .attr('type', 'text') - .attr('id', 'preset-input-' + field.id) + .attr('id', 'preset-input-' + field.safeid) .attr('class', 'localized-main') .attr('placeholder', field.placeholder()) .call(utilNoAuto) diff --git a/modules/ui/fields/maxspeed.js b/modules/ui/fields/maxspeed.js index b304aab1b..fb0e5c2ed 100644 --- a/modules/ui/fields/maxspeed.js +++ b/modules/ui/fields/maxspeed.js @@ -33,13 +33,13 @@ export function uiFieldMaxspeed(field, context) { .container(context.container()) .data(['km/h', 'mph'].map(comboValues)); - input = selection.selectAll('#preset-input-' + field.id) + input = selection.selectAll('#preset-input-' + field.safeid) .data([0]); input = input.enter() .append('input') .attr('type', 'text') - .attr('id', 'preset-input-' + field.id) + .attr('id', 'preset-input-' + field.safeid) .attr('placeholder', field.placeholder()) .call(utilNoAuto) .call(combobox) diff --git a/modules/ui/fields/textarea.js b/modules/ui/fields/textarea.js index 08d057cc3..a630292f3 100644 --- a/modules/ui/fields/textarea.js +++ b/modules/ui/fields/textarea.js @@ -20,7 +20,7 @@ export function uiFieldTextarea(field) { input = input.enter() .append('textarea') - .attr('id', 'preset-input-' + field.id) + .attr('id', 'preset-input-' + field.safeid) .attr('placeholder', field.placeholder() || t('inspector.unknown')) .attr('maxlength', 255) .call(utilNoAuto) diff --git a/modules/ui/fields/wikipedia.js b/modules/ui/fields/wikipedia.js index a292a7e67..da2a8b83e 100644 --- a/modules/ui/fields/wikipedia.js +++ b/modules/ui/fields/wikipedia.js @@ -91,7 +91,7 @@ export function uiFieldWikipedia(field, context) { .append('input') .attr('type', 'text') .attr('class', 'wiki-title') - .attr('id', 'preset-input-' + field.id) + .attr('id', 'preset-input-' + field.safeid) .call(utilNoAuto) .merge(title); diff --git a/modules/ui/form_fields.js b/modules/ui/form_fields.js index b6ca78cc7..e2c6de218 100644 --- a/modules/ui/form_fields.js +++ b/modules/ui/form_fields.js @@ -37,7 +37,7 @@ export function uiFormFields(context) { // Enter var enter = fields.enter() .append('div') - .attr('class', function(d) { return 'wrap-form-field wrap-form-field-' + d.id; }); + .attr('class', function(d) { return 'wrap-form-field wrap-form-field-' + d.safeid; }); // Update fields = fields From c56464635c511f17161891a0315a8b60f3795e0f Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Thu, 15 Mar 2018 00:59:49 -0400 Subject: [PATCH 149/157] Add css rules to make maxspeed/advisory like maxspeed --- css/80_app.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/css/80_app.css b/css/80_app.css index 142394112..0150828af 100644 --- a/css/80_app.css +++ b/css/80_app.css @@ -1692,11 +1692,13 @@ input[type=number] { content: none; } +#preset-input-maxspeed_advisory, #preset-input-maxspeed { border-right: none; border-radius: 0 0 0 4px; width: 80%; } +[dir='rtl'] #preset-input-maxspeed_advisory, [dir='rtl'] #preset-input-maxspeed { border-right: 1px solid #ccc; border-radius: 0 0 4px 0; From 44d6adfd3e9746220d0d0c28fa3f8ae6db0ee769 Mon Sep 17 00:00:00 2001 From: vershwal Date: Thu, 15 Mar 2018 05:03:58 +0530 Subject: [PATCH 150/157] Added preset for man_made=observatory. --- data/presets.yaml | 4 ++++ data/presets/presets.json | 15 +++++++++++++++ data/presets/presets/man_made/observatory.json | 15 +++++++++++++++ data/taginfo.json | 4 ++++ dist/locales/en.json | 4 ++++ 5 files changed, 42 insertions(+) create mode 100644 data/presets/presets/man_made/observatory.json diff --git a/data/presets.yaml b/data/presets.yaml index 5ffdf4ea2..ea57cdc46 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3942,6 +3942,10 @@ en: name: Observation Tower # 'terms: lookout tower,fire tower' terms: '' + man_made/observatory: + # 'man_made=observatory + name: Observatory + terms: '' man_made/petroleum_well: # man_made=petroleum_well name: Oil Well diff --git a/data/presets/presets.json b/data/presets/presets.json index 5eb7fe335..36a71680c 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -11056,6 +11056,21 @@ }, "name": "Observation Tower" }, + "man_made/observatory": { + "geometry": [ + "point", + "area" + ], + "type": [ + "astronomical", + "meteorological", + "espionage" + ], + "tags": { + "man_made": "observatory" + }, + "name": "Observatory" + }, "man_made/petroleum_well": { "icon": "poi-storage-tank", "geometry": [ diff --git a/data/presets/presets/man_made/observatory.json b/data/presets/presets/man_made/observatory.json new file mode 100644 index 000000000..48d5a982a --- /dev/null +++ b/data/presets/presets/man_made/observatory.json @@ -0,0 +1,15 @@ +{ + "geometry": [ + "point", + "area" + ], + "type": [ + "astronomical", + "meteorological", + "espionage" + ], + "tags": { + "man_made": "observatory" + }, + "name": "Observatory" +} diff --git a/data/taginfo.json b/data/taginfo.json index e8655875d..15b48e1ef 100644 --- a/data/taginfo.json +++ b/data/taginfo.json @@ -2056,6 +2056,10 @@ "key": "tower:type", "value": "observation" }, + { + "key": "man_made", + "value": "observatory" + }, { "key": "man_made", "value": "petroleum_well" diff --git a/dist/locales/en.json b/dist/locales/en.json index 8f0102fce..8f7302bbd 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4808,6 +4808,10 @@ "name": "Observation Tower", "terms": "lookout tower,fire tower" }, + "man_made/observatory": { + "name": "Observatory", + "terms": "" + }, "man_made/petroleum_well": { "name": "Oil Well", "terms": "drilling rig,oil derrick,oil drill,oil horse,oil rig,oil pump,petroleum well,pumpjack" From 9677b3d0aa8fd783cef8572f47b8e8ca72339f54 Mon Sep 17 00:00:00 2001 From: vershwal Date: Thu, 15 Mar 2018 10:55:46 +0530 Subject: [PATCH 151/157] fixed review comments --- data/presets.yaml | 3 ++- data/presets/presets.json | 5 ++--- data/presets/presets/man_made/observatory.json | 5 ++--- dist/locales/en.json | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/data/presets.yaml b/data/presets.yaml index ea57cdc46..c088ec1a4 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -3943,8 +3943,9 @@ en: # 'terms: lookout tower,fire tower' terms: '' man_made/observatory: - # 'man_made=observatory + # man_made=observatory name: Observatory + # 'terms: astronomical,meteorological' terms: '' man_made/petroleum_well: # man_made=petroleum_well diff --git a/data/presets/presets.json b/data/presets/presets.json index 36a71680c..c91953e4a 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -11061,10 +11061,9 @@ "point", "area" ], - "type": [ + "terms": [ "astronomical", - "meteorological", - "espionage" + "meteorological" ], "tags": { "man_made": "observatory" diff --git a/data/presets/presets/man_made/observatory.json b/data/presets/presets/man_made/observatory.json index 48d5a982a..f6d879152 100644 --- a/data/presets/presets/man_made/observatory.json +++ b/data/presets/presets/man_made/observatory.json @@ -3,10 +3,9 @@ "point", "area" ], - "type": [ + "terms": [ "astronomical", - "meteorological", - "espionage" + "meteorological" ], "tags": { "man_made": "observatory" diff --git a/dist/locales/en.json b/dist/locales/en.json index 8f7302bbd..a122edd8f 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -4810,7 +4810,7 @@ }, "man_made/observatory": { "name": "Observatory", - "terms": "" + "terms": "astronomical,meteorological" }, "man_made/petroleum_well": { "name": "Oil Well", From 04bc4b09f07093e7b2bde9311542167b73a2f9a0 Mon Sep 17 00:00:00 2001 From: vershwal Date: Thu, 15 Mar 2018 12:54:42 +0530 Subject: [PATCH 152/157] Added alt text for information icon. --- data/core.yaml | 2 ++ dist/locales/en.json | 3 +++ modules/ui/tag_reference.js | 1 + 3 files changed, 6 insertions(+) diff --git a/data/core.yaml b/data/core.yaml index 4d487fa0d..02a27f103 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -1,4 +1,6 @@ en: + icons: + information: info modes: add_area: title: Area diff --git a/dist/locales/en.json b/dist/locales/en.json index 8f0102fce..05765672b 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -1,5 +1,8 @@ { "en": { + "icons": { + "information": "info" + }, "modes": { "add_area": { "title": "Area", diff --git a/modules/ui/tag_reference.js b/modules/ui/tag_reference.js index 81cf4659b..ddfd3fb77 100644 --- a/modules/ui/tag_reference.js +++ b/modules/ui/tag_reference.js @@ -157,6 +157,7 @@ export function uiTagReference(tag) { _button = _button.enter() .append('button') .attr('class', 'tag-reference-button') + .attr('title', t('icons.information')) .attr('tabindex', -1) .call(svgIcon('#icon-inspect')) .merge(_button); From 19ffd75b4f3d28f5859ae641480d3ede97ad7f60 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 15 Mar 2018 07:26:26 +0000 Subject: [PATCH 153/157] chore(package): update rollup to version 0.57.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 03b20c321..c120f654e 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "npm-run-all": "^4.0.0", "phantomjs-prebuilt": "~2.1.11", "request": "^2.85.0", - "rollup": "~0.56.3", + "rollup": "~0.57.0", "rollup-plugin-commonjs": "^9.0.0", "rollup-plugin-includepaths": "^0.2.2", "rollup-plugin-json": "^2.2.0", From 47241043b7baca9155dc6eca030e59b6c249b665 Mon Sep 17 00:00:00 2001 From: "greenkeeper[bot]" Date: Thu, 15 Mar 2018 19:09:33 +0000 Subject: [PATCH 154/157] chore(package): update flow-bin to version 0.68.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c120f654e..06b7c321d 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "editor-layer-index": "osmlab/editor-layer-index.git#gh-pages", "eslint": "^4.3.0", "eslint-plugin-flowtype": "^2.46.1", - "flow-bin": "^0.67.1", + "flow-bin": "^0.68.0", "flow-coverage-report": "^0.5.0", "flow-remove-types": "^1.2.3", "gaze": "^1.1.1", From 61c7f64077021c2a31b966b65231565fe8306a06 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 16 Mar 2018 09:20:32 -0400 Subject: [PATCH 155/157] Remember changeset source, make it settable via url param (closes #4899) --- API.md | 3 +++ modules/behavior/hash.js | 23 ++++++++++++++--------- modules/ui/commit.js | 13 ++++++++++++- 3 files changed, 29 insertions(+), 10 deletions(-) diff --git a/API.md b/API.md index dda44dd4e..46980e213 100644 --- a/API.md +++ b/API.md @@ -31,6 +31,8 @@ in the hash portion of the URL: _Example:_ `offset=-10,5` * __`comment`__ - Prefills the changeset comment. Pass a url encoded string.
_Example:_ `comment=CAR%20crisis%2C%20refugee%20areas%20in%20Cameroon` +* __`source`__ - Prefills the changeset source. Pass a url encoded string.
+ _Example:_ `source=Bing%3BMapillary` * __`hashtags`__ - Prefills the changeset hashtags. Pass a url encoded list of event hashtags separated by commas, semicolons, or spaces. Leading '#' symbols are optional and will be added automatically. (Note that hashtag-like strings are @@ -53,6 +55,7 @@ are available as regular URL query parameters: * __`gpx`__ - same as standalone * __`offset`__ - same as standalone * __`comment`__ - same as standalone +* __`source`__ - same as standalone * __`hashtags`__ - same as standalone * __`walkthrough`__ - same as standalone diff --git a/modules/behavior/hash.js b/modules/behavior/hash.js index e295fb491..2aa76ff2b 100644 --- a/modules/behavior/hash.js +++ b/modules/behavior/hash.js @@ -14,8 +14,8 @@ import { export function behaviorHash(context) { - var s0 = null, // cached window.location.hash - lat = 90 - 1e-8; // allowable latitude range + var s0 = null; // cached window.location.hash + var lat = 90 - 1e-8; // allowable latitude range var parser = function(map, s) { @@ -42,13 +42,13 @@ export function behaviorHash(context) { var formatter = function(map) { - var center = map.center(), - zoom = map.zoom(), - precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)), - q = _omit(utilStringQs(window.location.hash.substring(1)), - ['comment', 'hashtags', 'walkthrough'] - ), - newParams = {}; + var center = map.center(); + var zoom = map.zoom(); + var precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2)); + var q = _omit(utilStringQs(window.location.hash.substring(1)), + ['comment', 'source', 'hashtags', 'walkthrough'] + ); + var newParams = {}; delete q.id; var selected = context.selectedIDs().filter(function(id) { @@ -109,6 +109,11 @@ export function behaviorHash(context) { context.storage('commentDate', Date.now()); } + if (q.source) { + context.storage('source', q.source); + context.storage('commentDate', Date.now()); + } + if (q.hashtags) { context.storage('hashtags', q.hashtags); } diff --git a/modules/ui/commit.js b/modules/ui/commit.js index be1ef0e72..8ced7f55c 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -50,13 +50,14 @@ export function uiCommit(context) { var osm = context.connection(); if (!osm) return; - // expire stored comment and hashtags after cutoff datetime - #3947 + // expire stored comment, hashtags, source after cutoff datetime - #3947 #4899 var commentDate = +context.storage('commentDate') || 0; var currDate = Date.now(); var cutoff = 2 * 86400 * 1000; // 2 days if (commentDate > currDate || currDate - commentDate > cutoff) { context.storage('comment', null); context.storage('hashtags', null); + context.storage('source', null); } var tags; @@ -64,6 +65,7 @@ export function uiCommit(context) { var detected = utilDetect(); tags = { comment: context.storage('comment') || '', + source: context.storage('source') || '', created_by: ('iD ' + context.version).substr(0, 255), host: detected.host.substr(0, 255), locale: detected.locale.substr(0, 255) @@ -290,6 +292,15 @@ export function uiCommit(context) { context.storage('commentDate', Date.now()); } } + if (changed.hasOwnProperty('source')) { + if (changed.source === undefined) { + changed.source = ''; + } + if (!onInput) { + context.storage('source', changed.source); + context.storage('commentDate', Date.now()); + } + } updateChangeset(changed, onInput); From 3e47ca005c0b2fea15de4e7de8560cf992bd5062 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 17 Mar 2018 01:18:05 -0400 Subject: [PATCH 156/157] Started adding Flow annotations to functions in the `geo` submodule (re: #3744) --- .flowconfig | 1 + modules/geo/extent.js | 30 +++++++++++++++++------------ modules/geo/geo.js | 29 ++++++++++++++-------------- modules/geo/raw_mercator.js | 38 +++++++++++++++++++++---------------- modules/geo/vector.js | 27 ++++++++++++++------------ 5 files changed, 71 insertions(+), 54 deletions(-) diff --git a/.flowconfig b/.flowconfig index 1fed44533..a4fc48427 100644 --- a/.flowconfig +++ b/.flowconfig @@ -7,5 +7,6 @@ [lints] [options] +include_warnings=true [strict] diff --git a/modules/geo/extent.js b/modules/geo/extent.js index f8eb9904b..419b2f8ab 100644 --- a/modules/geo/extent.js +++ b/modules/geo/extent.js @@ -1,3 +1,7 @@ +// @flow +type Vec2 = [number, number]; +type Mat2 = [Vec2, Vec2]; + import _extend from 'lodash-es/extend'; import { @@ -6,9 +10,10 @@ import { } from './index'; -export function geoExtent(min, max) { - if (!(this instanceof geoExtent)) return new geoExtent(min, max); - if (min instanceof geoExtent) { +export function geoExtent(min?: Vec2 | Mat2, max?: Vec2) { + if (!(this instanceof geoExtent)) { + return new geoExtent(min, max); + } else if (min instanceof geoExtent) { return min; } else if (min && min.length === 2 && min[0].length === 2 && min[1].length === 2) { this[0] = min[0]; @@ -19,6 +24,7 @@ export function geoExtent(min, max) { } } +// $FlowFixMe geoExtent.prototype = new Array(2); _extend(geoExtent.prototype, { @@ -34,8 +40,8 @@ _extend(geoExtent.prototype, { extend: function(obj) { if (!(obj instanceof geoExtent)) obj = new geoExtent(obj); return geoExtent( - [Math.min(obj[0][0], this[0][0]), Math.min(obj[0][1], this[0][1])], - [Math.max(obj[1][0], this[1][0]), Math.max(obj[1][1], this[1][1])] + [(Math.min(obj[0][0], this[0][0]): number), (Math.min(obj[0][1], this[0][1]): number)], + [(Math.max(obj[1][0], this[1][0]): number), (Math.max(obj[1][1], this[1][1]): number)] ); }, @@ -101,16 +107,16 @@ _extend(geoExtent.prototype, { intersection: function(obj) { if (!this.intersects(obj)) return new geoExtent(); return new geoExtent( - [Math.max(obj[0][0], this[0][0]), Math.max(obj[0][1], this[0][1])], - [Math.min(obj[1][0], this[1][0]), Math.min(obj[1][1], this[1][1])] + [(Math.max(obj[0][0], this[0][0]): number), (Math.max(obj[0][1], this[0][1]): number)], + [(Math.min(obj[1][0], this[1][0]): number), (Math.min(obj[1][1], this[1][1]): number)] ); }, percentContainedIn: function(obj) { if (!(obj instanceof geoExtent)) obj = new geoExtent(obj); - var a1 = this.intersection(obj).area(), - a2 = this.area(); + var a1 = this.intersection(obj).area(); + var a2 = this.area(); if (a1 === Infinity || a2 === Infinity || a1 === 0 || a2 === 0) { return 0; @@ -120,9 +126,9 @@ _extend(geoExtent.prototype, { }, - padByMeters: function(meters) { - var dLat = geoMetersToLat(meters), - dLon = geoMetersToLon(meters, this.center()[1]); + padByMeters: function(meters: number) { + var dLat: number = geoMetersToLat(meters); + var dLon: number = geoMetersToLon(meters, this.center()[1]); return geoExtent( [this[0][0] - dLon, this[0][1] - dLat], [this[1][0] + dLon, this[1][1] + dLat] diff --git a/modules/geo/geo.js b/modules/geo/geo.js index 639887bac..9cc0d0a57 100644 --- a/modules/geo/geo.js +++ b/modules/geo/geo.js @@ -1,32 +1,35 @@ +// @flow +type Vec2 = [number, number]; + // constants var TAU = 2 * Math.PI; var EQUATORIAL_RADIUS = 6356752.314245179; var POLAR_RADIUS = 6378137.0; -export function geoLatToMeters(dLat) { +export function geoLatToMeters(dLat: number) { return dLat * (TAU * POLAR_RADIUS / 360); } -export function geoLonToMeters(dLon, atLat) { +export function geoLonToMeters(dLon: number, atLat: number) { return Math.abs(atLat) >= 90 ? 0 : dLon * (TAU * EQUATORIAL_RADIUS / 360) * Math.abs(Math.cos(atLat * (Math.PI / 180))); } -export function geoMetersToLat(m) { +export function geoMetersToLat(m: number) { return m / (TAU * POLAR_RADIUS / 360); } -export function geoMetersToLon(m, atLat) { +export function geoMetersToLon(m: number, atLat: number) { return Math.abs(atLat) >= 90 ? 0 : m / (TAU * EQUATORIAL_RADIUS / 360) / Math.abs(Math.cos(atLat * (Math.PI / 180))); } -export function geoMetersToOffset(meters, tileSize) { +export function geoMetersToOffset(meters: Vec2, tileSize?: number) { tileSize = tileSize || 256; return [ meters[0] * tileSize / (TAU * EQUATORIAL_RADIUS), @@ -35,7 +38,7 @@ export function geoMetersToOffset(meters, tileSize) { } -export function geoOffsetToMeters(offset, tileSize) { +export function geoOffsetToMeters(offset: Vec2, tileSize?: number) { tileSize = tileSize || 256; return [ offset[0] * TAU * EQUATORIAL_RADIUS / tileSize, @@ -45,26 +48,24 @@ export function geoOffsetToMeters(offset, tileSize) { // Equirectangular approximation of spherical distances on Earth -export function geoSphericalDistance(a, b) { - var x = geoLonToMeters(a[0] - b[0], (a[1] + b[1]) / 2); - var y = geoLatToMeters(a[1] - b[1]); +export function geoSphericalDistance(a: Vec2, b: Vec2) { + var x: number = geoLonToMeters(a[0] - b[0], (a[1] + b[1]) / 2); + var y: number = geoLatToMeters(a[1] - b[1]); return Math.sqrt((x * x) + (y * y)); } // scale to zoom -export function geoScaleToZoom(k, tileSize) { +export function geoScaleToZoom(k: number, tileSize?: number) { tileSize = tileSize || 256; - var log2ts = Math.log(tileSize) * Math.LOG2E; + var log2ts: number = Math.log(tileSize) * Math.LOG2E; return Math.log(k * TAU) / Math.LN2 - log2ts; } // zoom to scale -export function geoZoomToScale(z, tileSize) { +export function geoZoomToScale(z: number, tileSize?: number) { tileSize = tileSize || 256; return tileSize * Math.pow(2, z) / TAU; } - - diff --git a/modules/geo/raw_mercator.js b/modules/geo/raw_mercator.js index 1ec4b82bf..3129532ff 100644 --- a/modules/geo/raw_mercator.js +++ b/modules/geo/raw_mercator.js @@ -1,3 +1,8 @@ +// @flow +type Vec2 = [number, number]; +type Mat2 = [Vec2, Vec2]; +type Transform = { x: number, y: number, k: number }; + import { geoMercatorRaw as d3_geoMercatorRaw, geoTransform as d3_geoTransform @@ -15,32 +20,33 @@ import { * Resampling */ export function geoRawMercator() { - var project = d3_geoMercatorRaw, - k = 512 / Math.PI, // scale - x = 0, y = 0, // translate - clipExtent = [[0, 0], [0, 0]]; + var project = d3_geoMercatorRaw; + var k: number = 512 / Math.PI; // scale + var x: number = 0; + var y: number = 0; // translate + var clipExtent: Mat2 = [[0, 0], [0, 0]]; - function projection(point) { + function projection(point: Vec2) { point = project(point[0] * Math.PI / 180, point[1] * Math.PI / 180); return [point[0] * k + x, y - point[1] * k]; } - projection.invert = function(point) { + projection.invert = function(point: Vec2) { point = project.invert((point[0] - x) / k, (y - point[1]) / k); return point && [point[0] * 180 / Math.PI, point[1] * 180 / Math.PI]; }; - projection.scale = function(_) { + projection.scale = function(_: number) { if (!arguments.length) return k; k = +_; return projection; }; - projection.translate = function(_) { + projection.translate = function(_: Vec2) { if (!arguments.length) return [x, y]; x = +_[0]; y = +_[1]; @@ -48,26 +54,26 @@ export function geoRawMercator() { }; - projection.clipExtent = function(_) { + projection.clipExtent = function(_: Mat2) { if (!arguments.length) return clipExtent; clipExtent = _; return projection; }; - projection.transform = function(_) { + projection.transform = function(obj: Transform) { if (!arguments.length) return d3_zoomIdentity.translate(x, y).scale(k); - x = +_.x; - y = +_.y; - k = +_.k; + x = +obj.x; + y = +obj.y; + k = +obj.k; return projection; }; projection.stream = d3_geoTransform({ - point: function(x, y) { - x = projection([x, y]); - this.stream.point(x[0], x[1]); + point: function(x: number, y: number) { + var vec: Vec2 = projection([x, y]); + this.stream.point(vec[0], vec[1]); } }).stream; diff --git a/modules/geo/vector.js b/modules/geo/vector.js index e67a6d176..87e066805 100644 --- a/modules/geo/vector.js +++ b/modules/geo/vector.js @@ -1,5 +1,8 @@ +// @flow +type Vec2 = [number, number]; + // vector equals -export function geoVecEqual(a, b, epsilon) { +export function geoVecEqual(a: Vec2, b: Vec2, epsilon?: number) { if (epsilon) { return (Math.abs(a[0] - b[0]) <= epsilon) && (Math.abs(a[1] - b[1]) <= epsilon); } else { @@ -8,27 +11,27 @@ export function geoVecEqual(a, b, epsilon) { } // vector addition -export function geoVecAdd(a, b) { +export function geoVecAdd(a: Vec2, b: Vec2) { return [ a[0] + b[0], a[1] + b[1] ]; } // vector subtraction -export function geoVecSubtract(a, b) { +export function geoVecSubtract(a: Vec2, b: Vec2) { return [ a[0] - b[0], a[1] - b[1] ]; } // vector scaling -export function geoVecScale(a, mag) { +export function geoVecScale(a: Vec2, mag: number) { return [ a[0] * mag, a[1] * mag ]; } // vector rounding (was: geoRoundCoordinates) -export function geoVecFloor(a) { +export function geoVecFloor(a: Vec2) { return [ Math.floor(a[0]), Math.floor(a[1]) ]; } // linear interpolation -export function geoVecInterp(a, b, t) { +export function geoVecInterp(a: Vec2, b: Vec2, t: number) { return [ a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t @@ -36,20 +39,20 @@ export function geoVecInterp(a, b, t) { } // http://jsperf.com/id-dist-optimization -export function geoVecLength(a, b) { - var x = a[0] - b[0]; - var y = a[1] - b[1]; +export function geoVecLength(a: Vec2, b: Vec2) { + var x: number = a[0] - b[0]; + var y: number = a[1] - b[1]; return Math.sqrt((x * x) + (y * y)); } // Return the counterclockwise angle in the range (-pi, pi) // between the positive X axis and the line intersecting a and b. -export function geoVecAngle(a, b) { +export function geoVecAngle(a: Vec2, b: Vec2) { return Math.atan2(b[1] - a[1], b[0] - a[0]); } // dot product -export function geoVecDot(a, b, origin) { +export function geoVecDot(a: Vec2, b: Vec2, origin?: Vec2) { origin = origin || [0, 0]; return (a[0] - origin[0]) * (b[0] - origin[0]) + (a[1] - origin[1]) * (b[1] - origin[1]); @@ -58,7 +61,7 @@ export function geoVecDot(a, b, origin) { // 2D cross product of OA and OB vectors, returns magnitude of Z vector // Returns a positive value, if OAB makes a counter-clockwise turn, // negative for clockwise turn, and zero if the points are collinear. -export function geoVecCross(a, b, origin) { +export function geoVecCross(a: Vec2, b: Vec2, origin?: Vec2) { origin = origin || [0, 0]; return (a[0] - origin[0]) * (b[1] - origin[1]) - (a[1] - origin[1]) * (b[0] - origin[0]); From efddfd271c7cad80bfed4e87ea75be0ddc8dc41e Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Sat, 17 Mar 2018 09:24:39 -0400 Subject: [PATCH 157/157] More flow coverage of `geo` submodule (re: #3744) also: - Move types to index and export/import them - add return types --- modules/geo/extent.js | 3 +-- modules/geo/geo.js | 20 ++++++++++---------- modules/geo/geom.js | 35 ++++++++++++++++++++--------------- modules/geo/index.js | 5 +++++ modules/geo/raw_mercator.js | 4 +--- modules/geo/vector.js | 22 +++++++++++----------- 6 files changed, 48 insertions(+), 41 deletions(-) diff --git a/modules/geo/extent.js b/modules/geo/extent.js index 419b2f8ab..cc3aa1f26 100644 --- a/modules/geo/extent.js +++ b/modules/geo/extent.js @@ -1,6 +1,5 @@ // @flow -type Vec2 = [number, number]; -type Mat2 = [Vec2, Vec2]; +import type { Vec2, Mat2 } from '.'; import _extend from 'lodash-es/extend'; diff --git a/modules/geo/geo.js b/modules/geo/geo.js index 9cc0d0a57..372f757e8 100644 --- a/modules/geo/geo.js +++ b/modules/geo/geo.js @@ -1,5 +1,5 @@ // @flow -type Vec2 = [number, number]; +import type { Vec2 } from '.'; // constants var TAU = 2 * Math.PI; @@ -7,29 +7,29 @@ var EQUATORIAL_RADIUS = 6356752.314245179; var POLAR_RADIUS = 6378137.0; -export function geoLatToMeters(dLat: number) { +export function geoLatToMeters(dLat: number): number { return dLat * (TAU * POLAR_RADIUS / 360); } -export function geoLonToMeters(dLon: number, atLat: number) { +export function geoLonToMeters(dLon: number, atLat: number): number { return Math.abs(atLat) >= 90 ? 0 : dLon * (TAU * EQUATORIAL_RADIUS / 360) * Math.abs(Math.cos(atLat * (Math.PI / 180))); } -export function geoMetersToLat(m: number) { +export function geoMetersToLat(m: number): number { return m / (TAU * POLAR_RADIUS / 360); } -export function geoMetersToLon(m: number, atLat: number) { +export function geoMetersToLon(m: number, atLat: number): number { return Math.abs(atLat) >= 90 ? 0 : m / (TAU * EQUATORIAL_RADIUS / 360) / Math.abs(Math.cos(atLat * (Math.PI / 180))); } -export function geoMetersToOffset(meters: Vec2, tileSize?: number) { +export function geoMetersToOffset(meters: Vec2, tileSize?: number): Vec2 { tileSize = tileSize || 256; return [ meters[0] * tileSize / (TAU * EQUATORIAL_RADIUS), @@ -38,7 +38,7 @@ export function geoMetersToOffset(meters: Vec2, tileSize?: number) { } -export function geoOffsetToMeters(offset: Vec2, tileSize?: number) { +export function geoOffsetToMeters(offset: Vec2, tileSize?: number): Vec2 { tileSize = tileSize || 256; return [ offset[0] * TAU * EQUATORIAL_RADIUS / tileSize, @@ -48,7 +48,7 @@ export function geoOffsetToMeters(offset: Vec2, tileSize?: number) { // Equirectangular approximation of spherical distances on Earth -export function geoSphericalDistance(a: Vec2, b: Vec2) { +export function geoSphericalDistance(a: Vec2, b: Vec2): number { var x: number = geoLonToMeters(a[0] - b[0], (a[1] + b[1]) / 2); var y: number = geoLatToMeters(a[1] - b[1]); return Math.sqrt((x * x) + (y * y)); @@ -56,7 +56,7 @@ export function geoSphericalDistance(a: Vec2, b: Vec2) { // scale to zoom -export function geoScaleToZoom(k: number, tileSize?: number) { +export function geoScaleToZoom(k: number, tileSize?: number): number { tileSize = tileSize || 256; var log2ts: number = Math.log(tileSize) * Math.LOG2E; return Math.log(k * TAU) / Math.LN2 - log2ts; @@ -64,7 +64,7 @@ export function geoScaleToZoom(k: number, tileSize?: number) { // zoom to scale -export function geoZoomToScale(z: number, tileSize?: number) { +export function geoZoomToScale(z: number, tileSize?: number): number { tileSize = tileSize || 256; return tileSize * Math.pow(2, z) / TAU; } diff --git a/modules/geo/geom.js b/modules/geo/geom.js index d9eec87a0..5dab42a48 100644 --- a/modules/geo/geom.js +++ b/modules/geo/geom.js @@ -1,3 +1,8 @@ +// @flow +import type { Vec2 } from '.'; +type Node = { id: string, loc: Vec2 }; +type Edge = { index: number, distance: number, loc: ?Vec2 }; + import _every from 'lodash-es/every'; import _some from 'lodash-es/some'; @@ -14,18 +19,18 @@ import { // Return the counterclockwise angle in the range (-pi, pi) // between the positive X axis and the line intersecting a and b. -export function geoAngle(a, b, projection) { +export function geoAngle(a: Node, b: Node, projection: (Vec2) => Vec2): number { return geoVecAngle(projection(a.loc), projection(b.loc)); } -export function geoEdgeEqual(a, b) { +export function geoEdgeEqual(a: Vec2, b: Vec2): boolean { return (a[0] === b[0] && a[1] === b[1]) || (a[0] === b[1] && a[1] === b[0]); } // Rotate all points counterclockwise around a pivot point by given angle -export function geoRotate(points, angle, around) { - return points.map(function(point) { +export function geoRotate(points: Array, angle: number, around: Vec2): Array { + return points.map(function(point: Vec2) { var radial = geoVecSubtract(point, around); return [ radial[0] * Math.cos(angle) - radial[1] * Math.sin(angle) + around[0], @@ -39,7 +44,7 @@ export function geoRotate(points, angle, around) { // 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. -export function geoChooseEdge(nodes, point, projection, activeID) { +export function geoChooseEdge(nodes: Array, point: Vec2, projection: (loc: Vec2) => Vec2, activeID?: string): ?Edge { var dist = geoVecLength; var points = nodes.map(function(n) { return projection(n.loc); }); var ids = nodes.map(function(n) { return n.id; }); @@ -84,7 +89,7 @@ export function geoChooseEdge(nodes, point, projection, activeID) { // This is used to test e.g. multipolygon rings that cross // `activeNodes` is the ring containing the activeID being dragged. // `inactiveNodes` is the other ring to test against -export function geoHasLineIntersections(activeNodes, inactiveNodes, activeID) { +export function geoHasLineIntersections(activeNodes: Array, inactiveNodes: Array, activeID?: string): boolean { var actives = []; var inactives = []; var j, k, n1, n2, segment; @@ -125,7 +130,7 @@ export function geoHasLineIntersections(activeNodes, inactiveNodes, activeID) { // Test active (dragged or drawing) segments against inactive segments // This is used to test whether a way intersects with itself. -export function geoHasSelfIntersections(nodes, activeID) { +export function geoHasSelfIntersections(nodes: Array, activeID?: string): boolean { var actives = []; var inactives = []; var j, k; @@ -175,7 +180,7 @@ export function geoHasSelfIntersections(nodes, activeID) { // From https://github.com/pgkelley4/line-segments-intersect // This uses the vector cross product approach described below: // http://stackoverflow.com/a/565282/786339 -export function geoLineIntersection(a, b) { +export function geoLineIntersection(a: Array, b: Array): ?Vec2 { var p = [a[0][0], a[0][1]]; var p2 = [a[1][0], a[1][1]]; var q = [b[0][0], b[0][1]]; @@ -198,7 +203,7 @@ export function geoLineIntersection(a, b) { } -export function geoPathIntersections(path1, path2) { +export function geoPathIntersections(path1: Array, path2: Array): Array { var intersections = []; for (var i = 0; i < path1.length - 1; i++) { for (var j = 0; j < path2.length - 1; j++) { @@ -213,7 +218,7 @@ export function geoPathIntersections(path1, path2) { return intersections; } -export function geoPathHasIntersections(path1, path2) { +export function geoPathHasIntersections(path1: Array, path2: Array): boolean { for (var i = 0; i < path1.length - 1; i++) { for (var j = 0; j < path2.length - 1; j++) { var a = [ path1[i], path1[i+1] ]; @@ -237,7 +242,7 @@ export function geoPathHasIntersections(path1, path2) { // ray-casting algorithm based on // http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html // -export function geoPointInPolygon(point, polygon) { +export function geoPointInPolygon(point: Vec2, polygon: Array): boolean { var x = point[0]; var y = point[1]; var inside = false; @@ -257,14 +262,14 @@ export function geoPointInPolygon(point, polygon) { } -export function geoPolygonContainsPolygon(outer, inner) { +export function geoPolygonContainsPolygon(outer: Array, inner: Array): boolean { return _every(inner, function(point) { return geoPointInPolygon(point, outer); }); } -export function geoPolygonIntersectsPolygon(outer, inner, checkSegments) { +export function geoPolygonIntersectsPolygon(outer: Array, inner: Array, checkSegments: boolean): boolean { function testPoints(outer, inner) { return _some(inner, function(point) { return geoPointInPolygon(point, outer); @@ -275,7 +280,7 @@ export function geoPolygonIntersectsPolygon(outer, inner, checkSegments) { } -export function geoPathLength(path) { +export function geoPathLength(path: Array): number { var length = 0; for (var i = 0; i < path.length - 1; i++) { length += geoVecLength(path[i], path[i + 1]); @@ -286,7 +291,7 @@ export function geoPathLength(path) { // If the given point is at the edge of the padded viewport, // return a vector that will nudge the viewport in that direction -export function geoViewportEdge(point, dimensions) { +export function geoViewportEdge(point: Vec2, dimensions: Vec2): ?Vec2 { var pad = [80, 20, 50, 20]; // top, right, bottom, left var x = 0; var y = 0; diff --git a/modules/geo/index.js b/modules/geo/index.js index 8252336ab..b872af5ec 100644 --- a/modules/geo/index.js +++ b/modules/geo/index.js @@ -1,3 +1,8 @@ +// @flow +export type Vec2 = [number, number]; +export type Mat2 = [Vec2, Vec2]; +export type Transform = { x: number, y: number, k: number }; + export { geoExtent } from './extent.js'; export { geoLatToMeters } from './geo.js'; diff --git a/modules/geo/raw_mercator.js b/modules/geo/raw_mercator.js index 3129532ff..a4b98bef7 100644 --- a/modules/geo/raw_mercator.js +++ b/modules/geo/raw_mercator.js @@ -1,7 +1,5 @@ // @flow -type Vec2 = [number, number]; -type Mat2 = [Vec2, Vec2]; -type Transform = { x: number, y: number, k: number }; +import type { Mat2, Vec2, Transform } from '.'; import { geoMercatorRaw as d3_geoMercatorRaw, diff --git a/modules/geo/vector.js b/modules/geo/vector.js index 87e066805..870302d1f 100644 --- a/modules/geo/vector.js +++ b/modules/geo/vector.js @@ -1,8 +1,8 @@ // @flow -type Vec2 = [number, number]; +import type { Vec2 } from '.'; // vector equals -export function geoVecEqual(a: Vec2, b: Vec2, epsilon?: number) { +export function geoVecEqual(a: Vec2, b: Vec2, epsilon?: number): boolean { if (epsilon) { return (Math.abs(a[0] - b[0]) <= epsilon) && (Math.abs(a[1] - b[1]) <= epsilon); } else { @@ -11,27 +11,27 @@ export function geoVecEqual(a: Vec2, b: Vec2, epsilon?: number) { } // vector addition -export function geoVecAdd(a: Vec2, b: Vec2) { +export function geoVecAdd(a: Vec2, b: Vec2): Vec2 { return [ a[0] + b[0], a[1] + b[1] ]; } // vector subtraction -export function geoVecSubtract(a: Vec2, b: Vec2) { +export function geoVecSubtract(a: Vec2, b: Vec2): Vec2 { return [ a[0] - b[0], a[1] - b[1] ]; } // vector scaling -export function geoVecScale(a: Vec2, mag: number) { +export function geoVecScale(a: Vec2, mag: number): Vec2 { return [ a[0] * mag, a[1] * mag ]; } // vector rounding (was: geoRoundCoordinates) -export function geoVecFloor(a: Vec2) { +export function geoVecFloor(a: Vec2): Vec2 { return [ Math.floor(a[0]), Math.floor(a[1]) ]; } // linear interpolation -export function geoVecInterp(a: Vec2, b: Vec2, t: number) { +export function geoVecInterp(a: Vec2, b: Vec2, t: number): Vec2 { return [ a[0] + (b[0] - a[0]) * t, a[1] + (b[1] - a[1]) * t @@ -39,7 +39,7 @@ export function geoVecInterp(a: Vec2, b: Vec2, t: number) { } // http://jsperf.com/id-dist-optimization -export function geoVecLength(a: Vec2, b: Vec2) { +export function geoVecLength(a: Vec2, b: Vec2): number { var x: number = a[0] - b[0]; var y: number = a[1] - b[1]; return Math.sqrt((x * x) + (y * y)); @@ -47,12 +47,12 @@ export function geoVecLength(a: Vec2, b: Vec2) { // Return the counterclockwise angle in the range (-pi, pi) // between the positive X axis and the line intersecting a and b. -export function geoVecAngle(a: Vec2, b: Vec2) { +export function geoVecAngle(a: Vec2, b: Vec2): number { return Math.atan2(b[1] - a[1], b[0] - a[0]); } // dot product -export function geoVecDot(a: Vec2, b: Vec2, origin?: Vec2) { +export function geoVecDot(a: Vec2, b: Vec2, origin?: Vec2): number { origin = origin || [0, 0]; return (a[0] - origin[0]) * (b[0] - origin[0]) + (a[1] - origin[1]) * (b[1] - origin[1]); @@ -61,7 +61,7 @@ export function geoVecDot(a: Vec2, b: Vec2, origin?: Vec2) { // 2D cross product of OA and OB vectors, returns magnitude of Z vector // Returns a positive value, if OAB makes a counter-clockwise turn, // negative for clockwise turn, and zero if the points are collinear. -export function geoVecCross(a: Vec2, b: Vec2, origin?: Vec2) { +export function geoVecCross(a: Vec2, b: Vec2, origin?: Vec2): number { origin = origin || [0, 0]; return (a[0] - origin[0]) * (b[1] - origin[1]) - (a[1] - origin[1]) * (b[0] - origin[0]);