mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-14 05:12:13 +02:00
Merge branch 'master' into baby-steps
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
:warning: = Breaking change, may affect downstream projects or sites that embed iD.
|
||||
|
||||
## 1.9.6
|
||||
##### Jun 7, 2016
|
||||
* Embed interactive Mapillary JS viewer instead of static image (#3128, thanks @kepta, @peterneubauer)
|
||||
* Add "grill" as search term for `amenity=bbq` preset (#3139, thanks @manfredbrandl)
|
||||
* When setting Wikipedia value, also set corresponding Wikidata tag (#2732, thanks @1ec5)
|
||||
|
||||
## 1.9.5
|
||||
##### May 25, 2016
|
||||
* Clean translated combo value when comparing to display value (#3129)
|
||||
|
||||
@@ -133,6 +133,7 @@ dist/iD.js: \
|
||||
js/id/renderer/tile_layer.js \
|
||||
js/id/svg.js \
|
||||
js/id/svg/areas.js \
|
||||
js/id/svg/debug.js \
|
||||
js/id/svg/defs.js \
|
||||
js/id/svg/gpx.js \
|
||||
js/id/svg/icon.js \
|
||||
@@ -282,7 +283,7 @@ D3_FILES = \
|
||||
|
||||
d3:
|
||||
node_modules/.bin/smash $(D3_FILES) > js/lib/d3.v3.js
|
||||
@echo 'd3 rebuilt. Please reapply 7e2485d, 4da529f, and 223974d'
|
||||
@echo 'd3 rebuilt. Please reapply 7e2485d, 4da529f, 223974d and 71a3d3e'
|
||||
|
||||
ACTIONS = $(shell ./node_modules/.bin/browserify --list modules/actions/index.js)
|
||||
dist/modules/actions.js: $(ACTIONS)
|
||||
|
||||
+44
-7
@@ -2158,7 +2158,7 @@ div.full-screen > button:hover {
|
||||
float:right;
|
||||
margin-left: 20px;
|
||||
margin-bottom: 20px;
|
||||
padding-left: 5px
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.help-wrap .toc li a,
|
||||
@@ -2312,7 +2312,6 @@ img.tile-removing {
|
||||
|
||||
/* Map-In-Map
|
||||
------------------------------------------------------- */
|
||||
|
||||
.map-in-map {
|
||||
position: absolute;
|
||||
overflow: hidden;
|
||||
@@ -2338,8 +2337,8 @@ img.tile-removing {
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.map-in-map-svg,
|
||||
.map-in-map-gpx {
|
||||
.map-in-map-viewport,
|
||||
.map-in-map-data {
|
||||
top: 0;
|
||||
left: 0;
|
||||
overflow: hidden;
|
||||
@@ -2347,16 +2346,15 @@ img.tile-removing {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.map-in-map-svg {
|
||||
.map-in-map-viewport {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.map-in-map-gpx {
|
||||
.map-in-map-data {
|
||||
position: relative;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.bbox,
|
||||
.map-in-map-bbox {
|
||||
fill: none;
|
||||
stroke: rgba(255, 255, 0, 0.75);
|
||||
@@ -2368,6 +2366,45 @@ img.tile-removing {
|
||||
stroke-width: 5;
|
||||
}
|
||||
|
||||
|
||||
/* Debug
|
||||
------------------------------------------------------- */
|
||||
.debug {
|
||||
stroke: currentColor;
|
||||
fill: none;
|
||||
stroke-width: 2;
|
||||
}
|
||||
.map-in-map-data .debug {
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
.red { color: rgba(255, 0, 0, 0.75); }
|
||||
.green { color: rgba(0, 255, 0, 0.75); }
|
||||
.blue { color: rgba(0, 0, 255, 0.75); }
|
||||
.yellow { color: rgba(255, 255, 0, 0.75); }
|
||||
.cyan { color: rgba(0, 255, 255, 0.75); }
|
||||
.magenta { color: rgba(255, 0, 255, 0.75); }
|
||||
.orange { color: rgba(255, 153, 0, 0.75); }
|
||||
.pink { color: rgba(255, 0, 153, 0.75); }
|
||||
.purple { color: rgba(153, 0, 255, 0.75); }
|
||||
|
||||
.debug-legend {
|
||||
position: absolute;
|
||||
top: 70px;
|
||||
right: 80px;
|
||||
padding: 5px;
|
||||
border-radius: 4px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.debug-legend-item {
|
||||
padding-right: 5px;
|
||||
}
|
||||
.debug-legend-item:before {
|
||||
content: "\25A0";
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
/* Info Box
|
||||
------------------------------------------------------- */
|
||||
.infobox {
|
||||
|
||||
+540
-341
File diff suppressed because it is too large
Load Diff
+5
-1063
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,16 @@
|
||||
/* Downloads the latest translations from Transifex */
|
||||
|
||||
var request = require('request'),
|
||||
var request = require('request').defaults({maxSockets: 1}),
|
||||
yaml = require('js-yaml'),
|
||||
fs = require('fs'),
|
||||
_ = require('../js/lib/lodash.js');
|
||||
|
||||
var resources = ['core', 'presets'];
|
||||
var outdir = './dist/locales/';
|
||||
var api = 'http://www.transifex.com/api/2/';
|
||||
var api = 'https://www.transifex.com/api/2/';
|
||||
var project = api + 'project/id-editor/';
|
||||
|
||||
|
||||
/*
|
||||
* Transifex oddly doesn't allow anonymous downloading
|
||||
*
|
||||
@@ -67,18 +68,20 @@ function getLanguage(resource) {
|
||||
code = code.replace(/-/g, '_');
|
||||
var url = resource + 'translation/' + code;
|
||||
if (code === 'vi') url += '?mode=reviewed';
|
||||
request.get(url, { auth : auth },
|
||||
function(err, resp, body) {
|
||||
request.get(url, { auth : auth }, function(err, resp, body) {
|
||||
if (err) return callback(err);
|
||||
console.log(resp.statusCode + ': ' + url);
|
||||
callback(null, yaml.load(JSON.parse(body).content)[code]);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
function getLanguages(resource, callback) {
|
||||
request.get(resource + '?details', { auth: auth },
|
||||
var url = resource + '?details';
|
||||
request.get(url, { auth: auth },
|
||||
function(err, resp, body) {
|
||||
if (err) return callback(err);
|
||||
console.log(resp.statusCode + ': ' + url);
|
||||
callback(null, JSON.parse(body).available_languages.map(function(d) {
|
||||
return d.code.replace(/_/g, '-');
|
||||
}).filter(function(d) {
|
||||
|
||||
Vendored
-1
@@ -420,7 +420,6 @@
|
||||
"title": "صورة الخلفية من خدمة (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "معلومات اشارات المرور من خدمة Mapillary",
|
||||
"title": "صورة الخلفية لاشارات المرور من خدمة (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
-3
@@ -475,9 +475,6 @@
|
||||
"mapillary_images": {
|
||||
"tooltip": "Снимки за ниво на улицата от Mapillary"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Пътни знаци от Mapillary"
|
||||
},
|
||||
"mapillary": {
|
||||
"view_on_mapillary": "Вижте тази снимка на Mapillary"
|
||||
},
|
||||
|
||||
Vendored
+11
-1
@@ -330,6 +330,7 @@
|
||||
"percent_brightness": "{opacity}% brillantor",
|
||||
"none": "Cap",
|
||||
"best_imagery": "Font d'imatgeria millor coneguda per a aquesta ubicació",
|
||||
"switch": "Senyals de trànsit ",
|
||||
"custom": "Personalitzar",
|
||||
"custom_button": "Editar el fons personalitzat",
|
||||
"custom_prompt": "Introduïu una plantilla d'URL de casella. Els paràmetres vàlids són {z}, {x}, {y} per a l'esquema Z/X/Y i {u} per a l'esquema quadtile.",
|
||||
@@ -511,7 +512,7 @@
|
||||
"title": "Superposició de fotos (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Senyals de Trànsit de Mapillary",
|
||||
"tooltip": "Senyals de trànsit de Mapillary (cal activar la capa de fotografies).",
|
||||
"title": "Superposició de Senyals de Trànsit (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -612,6 +613,9 @@
|
||||
},
|
||||
"presets": {
|
||||
"categories": {
|
||||
"category-barrier": {
|
||||
"name": "Característiques de Barrera"
|
||||
},
|
||||
"category-building": {
|
||||
"name": "Característiques d'Edificació"
|
||||
},
|
||||
@@ -1935,6 +1939,9 @@
|
||||
"name": "Barrera per a ciclistes",
|
||||
"terms": "Barrera per a ciclistes, Ciclisme, Bicicleta, Ruta cicloturista, Valla, Tanca, Tancament, Tanca per a bicicletes"
|
||||
},
|
||||
"barrier/ditch": {
|
||||
"name": "Trinxera"
|
||||
},
|
||||
"barrier/entrance": {
|
||||
"name": "Entrada",
|
||||
"terms": "Entrada, Porta, Portes, Portalada, Accés"
|
||||
@@ -3597,6 +3604,9 @@
|
||||
"type/route/hiking": {
|
||||
"name": "Ruta senderista"
|
||||
},
|
||||
"type/route/horse": {
|
||||
"name": "Ruta de conducció"
|
||||
},
|
||||
"type/route/pipeline": {
|
||||
"name": "Traçat d'una canonada"
|
||||
},
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Vrstva fotografií (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Dopravní značky z Mapillary",
|
||||
"tooltip": "Dopravní značky z Mapillary (nutné povolit Vrstvu fotografií)",
|
||||
"title": "Vrstva dopravních značek (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+8
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Billedelag (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Trafikskilte fra Mapillary",
|
||||
"tooltip": "Trafikskilte fra Mapillary (fotolag skal være slået til)",
|
||||
"title": "Trafikskiltelag (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -613,6 +613,9 @@
|
||||
},
|
||||
"presets": {
|
||||
"categories": {
|
||||
"category-barrier": {
|
||||
"name": "Barrierer objekter"
|
||||
},
|
||||
"category-building": {
|
||||
"name": "Bygningsegenskaber"
|
||||
},
|
||||
@@ -1998,6 +2001,10 @@
|
||||
"name": "Cykelbarriere",
|
||||
"terms": "Cykelbarriere"
|
||||
},
|
||||
"barrier/ditch": {
|
||||
"name": "Grøft",
|
||||
"terms": "Grøft"
|
||||
},
|
||||
"barrier/entrance": {
|
||||
"name": "Indgang",
|
||||
"terms": "Indgang, Indgangsparti"
|
||||
|
||||
Vendored
+3
-3
@@ -512,7 +512,7 @@
|
||||
"title": "Photo-Überlagerung (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Verkehrszeichen von Mapillary",
|
||||
"tooltip": "Verkehrsschilder von Mapillary (bei aktivierter Fotoebene)",
|
||||
"title": "Verkehrszeichen-Überlagerung (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -1742,8 +1742,8 @@
|
||||
"terms": "Tankstelle, Tanke"
|
||||
},
|
||||
"amenity/grave_yard": {
|
||||
"name": "Friedhof",
|
||||
"terms": "Friedhof"
|
||||
"name": "Gräberfeld",
|
||||
"terms": "Gräberfeld, kleiner Friedhof"
|
||||
},
|
||||
"amenity/grit_bin": {
|
||||
"name": "Streugutkiste",
|
||||
|
||||
Vendored
-1
@@ -512,7 +512,6 @@
|
||||
"title": "Photo Overlay (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Traffic signs from Mapillary",
|
||||
"title": "Traffic Sign Overlay (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Superposición de fotos (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Señales de tráfico de Mapillary",
|
||||
"tooltip": "Señales de tráfico de Mapillary (debe permitir superposición de fotos)",
|
||||
"title": "Superposición de señal de tráfico (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
-1
@@ -497,7 +497,6 @@
|
||||
"title": "Valokuvat kartalla (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Liikennemerkit (Mapillary)",
|
||||
"title": "Liikennemerkit kartalla (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+6
-7
@@ -512,7 +512,6 @@
|
||||
"title": "Surcouche photo (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Signaux routiers de Mapillary",
|
||||
"title": "Surcouche de signaux routiers (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -2055,7 +2054,7 @@
|
||||
},
|
||||
"building/apartments": {
|
||||
"name": "Résidence",
|
||||
"terms": "Appartements"
|
||||
"terms": "appartements"
|
||||
},
|
||||
"building/barn": {
|
||||
"name": "Grange",
|
||||
@@ -2122,8 +2121,8 @@
|
||||
"terms": "Hôpital, Clinique"
|
||||
},
|
||||
"building/hotel": {
|
||||
"name": "Hôtel",
|
||||
"terms": "Hôtel"
|
||||
"name": "Bâtiment d'hôtel",
|
||||
"terms": "hôtel,hotel"
|
||||
},
|
||||
"building/house": {
|
||||
"name": "Maison",
|
||||
@@ -2850,8 +2849,8 @@
|
||||
"terms": "Piste de course à pied"
|
||||
},
|
||||
"leisure/slipway": {
|
||||
"name": "Plan incliné",
|
||||
"terms": "Cale de lancement, Cale, Cale de mise à l'eau"
|
||||
"name": "Mise à l'eau",
|
||||
"terms": "Cale de lancement, Cale, Cale de mise à l'eau, Rampe de mise à l'eau"
|
||||
},
|
||||
"leisure/sports_centre": {
|
||||
"name": "Centre sportif / Salle de gymnastique",
|
||||
@@ -3851,7 +3850,7 @@
|
||||
},
|
||||
"tourism/hotel": {
|
||||
"name": "Hôtel",
|
||||
"terms": "Hôtel"
|
||||
"terms": "bâtiment d'hôtel,hotel"
|
||||
},
|
||||
"tourism/information": {
|
||||
"name": "Informations",
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Foto preklop (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Prometni znakovi s Mapillary servisa",
|
||||
"tooltip": "Prometni znakovi s Mapillary servisa (mora biti uključen foto preklop)",
|
||||
"title": "Preklop prometnih znakova (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Fotó réteg (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Közlekedési táblák a Mapillary-ből",
|
||||
"tooltip": "Közlekedési táblák a Mapillaryről (be kell kapcsolni a fotó réteget)",
|
||||
"title": "Közlekedési tábla réteg (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Livello Foto (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Segnali stradali da Mapillary",
|
||||
"tooltip": "Segnali stradali da Mapillary (necessita attivazione Livello Foto)",
|
||||
"title": "Livello Segnali Stradali (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+39
-39
@@ -287,7 +287,8 @@
|
||||
"no_results_worldwide": "検索結果がありません"
|
||||
},
|
||||
"geolocate": {
|
||||
"title": "編集画面を現在地へ移動"
|
||||
"title": "編集画面を現在地へ移動",
|
||||
"locating": "位置情報を取得中です。しばらくお待ちください。"
|
||||
},
|
||||
"inspector": {
|
||||
"no_documentation_combination": "このタグの組み合わせに関する解説はありません",
|
||||
@@ -356,6 +357,7 @@
|
||||
"tooltip": "地点情報"
|
||||
},
|
||||
"traffic_roads": {
|
||||
"description": "公道",
|
||||
"tooltip": "道路、街路など"
|
||||
},
|
||||
"service_roads": {
|
||||
@@ -363,7 +365,7 @@
|
||||
"tooltip": "私道、駐車場内経路、農道など"
|
||||
},
|
||||
"paths": {
|
||||
"description": "山道",
|
||||
"description": "歩道・小道",
|
||||
"tooltip": "歩道、自転車道など"
|
||||
},
|
||||
"buildings": {
|
||||
@@ -510,7 +512,6 @@
|
||||
"title": "写真の重ね合わせ (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Mapillary から交通標識を取得します",
|
||||
"title": "交通標識の重ね合わせ (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -611,6 +612,9 @@
|
||||
},
|
||||
"presets": {
|
||||
"categories": {
|
||||
"category-barrier": {
|
||||
"name": "障害物"
|
||||
},
|
||||
"category-building": {
|
||||
"name": "建物"
|
||||
},
|
||||
@@ -935,9 +939,6 @@
|
||||
"entrance": {
|
||||
"label": "タイプ"
|
||||
},
|
||||
"except": {
|
||||
"label": "例外"
|
||||
},
|
||||
"fax": {
|
||||
"label": "FAX",
|
||||
"placeholder": "+31 42 123 4567"
|
||||
@@ -1280,9 +1281,6 @@
|
||||
"restriction": {
|
||||
"label": "タイプ"
|
||||
},
|
||||
"restrictions": {
|
||||
"label": "進行方向制限"
|
||||
},
|
||||
"route": {
|
||||
"label": "タイプ"
|
||||
},
|
||||
@@ -1677,7 +1675,7 @@
|
||||
"terms": "時計"
|
||||
},
|
||||
"amenity/college": {
|
||||
"name": "大学の敷地",
|
||||
"name": "短大・高専・専門学校の敷地",
|
||||
"terms": "キャンパス"
|
||||
},
|
||||
"amenity/community_centre": {
|
||||
@@ -1812,6 +1810,10 @@
|
||||
"name": "郵便局",
|
||||
"terms": "郵便局"
|
||||
},
|
||||
"amenity/prison": {
|
||||
"name": "刑務所の敷地",
|
||||
"terms": "刑務所, 刑務所の敷地, 監獄, 拘置所, 少年院"
|
||||
},
|
||||
"amenity/pub": {
|
||||
"name": "居酒屋",
|
||||
"terms": "パブ, 居酒屋, 焼き鳥屋"
|
||||
@@ -1916,6 +1918,9 @@
|
||||
"name": "新聞自動販売機",
|
||||
"terms": "新聞, 自動販売機, 自販機"
|
||||
},
|
||||
"amenity/vending_machine/parcel_pickup_dropoff": {
|
||||
"terms": "自動販売機, 自販機"
|
||||
},
|
||||
"amenity/vending_machine/parking_tickets": {
|
||||
"name": "パーキングチケット発給機",
|
||||
"terms": "パーキングチケット, パーキングメーター, 駐車券, 券売機, 自動券売機, 自動販売機, 自販機, 自動発券機, 発券機"
|
||||
@@ -1940,6 +1945,14 @@
|
||||
"name": "ゴミ箱",
|
||||
"terms": "ゴミ箱, ごみ箱"
|
||||
},
|
||||
"amenity/waste_disposal": {
|
||||
"name": "ゴミ収集ボックス",
|
||||
"terms": "ゴミステーション, ゴミ集積所, ゴミ捨て場, ゴミ置き場, ゴミ, ゴミ箱, ゴミコンテナ, ゴミ回収, ダストボックス"
|
||||
},
|
||||
"amenity/water_point": {
|
||||
"name": "キャンピングカー用の給水施設",
|
||||
"terms": "給水, 補給, 給水所, キャンピングカー, 給水塔, 飲料水, 飲水, 飲み水, キャンプ場, オートキャンプ場"
|
||||
},
|
||||
"area": {
|
||||
"name": "エリア",
|
||||
"terms": "エリア, 領域, 範囲"
|
||||
@@ -1972,6 +1985,10 @@
|
||||
"name": "自転車止め",
|
||||
"terms": "自転車止め"
|
||||
},
|
||||
"barrier/ditch": {
|
||||
"name": "塹壕・空堀",
|
||||
"terms": "塹壕, 空堀, 堀, 溝, 谷"
|
||||
},
|
||||
"barrier/entrance": {
|
||||
"name": "出入口",
|
||||
"terms": "出入口"
|
||||
@@ -2049,8 +2066,8 @@
|
||||
"terms": "教会"
|
||||
},
|
||||
"building/college": {
|
||||
"name": "大学の建物",
|
||||
"terms": "大学の建物"
|
||||
"name": "短大・高専・専門学校の建物",
|
||||
"terms": "短大, 高専, 高等専門学校, 短期大学, 専門, 専門学校"
|
||||
},
|
||||
"building/commercial": {
|
||||
"name": "オフィスビル",
|
||||
@@ -3337,7 +3354,8 @@
|
||||
"terms": "古美術品店, アンティークショップ"
|
||||
},
|
||||
"shop/art": {
|
||||
"name": "美術品販売店"
|
||||
"name": "美術品販売店",
|
||||
"terms": "現代美術の商店"
|
||||
},
|
||||
"shop/baby_goods": {
|
||||
"name": "赤ちゃん用品店",
|
||||
@@ -3424,7 +3442,8 @@
|
||||
"terms": "衣料品店, 洋服店, 呉服店"
|
||||
},
|
||||
"shop/coffee": {
|
||||
"name": "コーヒー豆販売店"
|
||||
"name": "コーヒー豆販売店",
|
||||
"terms": "コーヒー豆専門店"
|
||||
},
|
||||
"shop/computer": {
|
||||
"name": "コンピューター店",
|
||||
@@ -3622,6 +3641,10 @@
|
||||
"name": "新聞・雑誌店",
|
||||
"terms": "新聞, 雑誌, マガジン, ニュース, スタンド"
|
||||
},
|
||||
"shop/nutrition_supplements": {
|
||||
"name": "栄養サプリ販売店",
|
||||
"terms": "栄養サプリメント販売店, サプリ専門店, サプリメント専門店"
|
||||
},
|
||||
"shop/optician": {
|
||||
"name": "メガネ",
|
||||
"terms": "メガネ, 眼鏡, メガネ屋, 眼鏡屋"
|
||||
@@ -3755,7 +3778,8 @@
|
||||
"terms": "銃砲店"
|
||||
},
|
||||
"shop/window_blind": {
|
||||
"name": "ブラインドカーテン専門店"
|
||||
"name": "ブラインドカーテン専門店",
|
||||
"terms": "ブラインド販売店"
|
||||
},
|
||||
"shop/wine": {
|
||||
"name": "ワイン店",
|
||||
@@ -3865,30 +3889,6 @@
|
||||
"name": "進行方向制限",
|
||||
"terms": "進行方向制限"
|
||||
},
|
||||
"type/restriction/no_left_turn": {
|
||||
"name": "左折禁止",
|
||||
"terms": "左折禁止"
|
||||
},
|
||||
"type/restriction/no_right_turn": {
|
||||
"name": "右折禁止",
|
||||
"terms": "右折禁止"
|
||||
},
|
||||
"type/restriction/no_straight_on": {
|
||||
"name": "直進禁止",
|
||||
"terms": "直進禁止"
|
||||
},
|
||||
"type/restriction/no_u_turn": {
|
||||
"name": "転回禁止",
|
||||
"terms": "転回禁止, Uターン禁止"
|
||||
},
|
||||
"type/restriction/only_left_turn": {
|
||||
"name": "左折のみ可",
|
||||
"terms": "左折のみ可"
|
||||
},
|
||||
"type/restriction/only_right_turn": {
|
||||
"name": "右折のみ可",
|
||||
"terms": "右折のみ可"
|
||||
},
|
||||
"type/restriction/only_straight_on": {
|
||||
"name": "直進のみ可",
|
||||
"terms": "直進のみ可"
|
||||
|
||||
Vendored
+6
-1
@@ -506,7 +506,6 @@
|
||||
"title": "사진 겹치기 (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Mapillary에서 교통 표지판",
|
||||
"title": "교통 표지판 겹치기 (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -852,6 +851,12 @@
|
||||
"description": "일방 통행로에 양방향으로 이동하는 자전거 차선",
|
||||
"title": "역방향 통행 자전거 도로"
|
||||
},
|
||||
"opposite_lane": {
|
||||
"description": "교통 흐름의 방향을 거슬러 향하는 자전거 전용 도로"
|
||||
},
|
||||
"share_busway": {
|
||||
"description": "버스 전용 차선을 겸하는 자전거 도로"
|
||||
},
|
||||
"track": {
|
||||
"title": "자전거 트랙"
|
||||
}
|
||||
|
||||
Vendored
+4
-4
@@ -512,7 +512,7 @@
|
||||
"title": "Foto-laag (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Verkeerslichten uit Mapillary",
|
||||
"tooltip": "Verkeerslichten uit Mapillary (foto-laag moet geactiveerd zijn)",
|
||||
"title": "Herkende-verkeersborden-laag (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -2033,7 +2033,7 @@
|
||||
},
|
||||
"building/apartments": {
|
||||
"name": "Appartementen",
|
||||
"terms": "flatgebouw,flats,appartementsgebouw,wolkenkrabber,woongebouw,residentie"
|
||||
"terms": "flatgebouw,flats,appartementsgebouw,wolkenkrabber,woongebouw,residentie,apartementen"
|
||||
},
|
||||
"building/barn": {
|
||||
"name": "Schuur",
|
||||
@@ -2097,7 +2097,7 @@
|
||||
},
|
||||
"building/hotel": {
|
||||
"name": "Hotelgebouw",
|
||||
"terms": "hotel"
|
||||
"terms": "hotel,kamers"
|
||||
},
|
||||
"building/house": {
|
||||
"name": "Huis",
|
||||
@@ -3632,7 +3632,7 @@
|
||||
},
|
||||
"tourism/hotel": {
|
||||
"name": "Hotel",
|
||||
"terms": "hotel"
|
||||
"terms": "hotelgebouw,kamers"
|
||||
},
|
||||
"tourism/information": {
|
||||
"name": "Informatie",
|
||||
|
||||
Vendored
+34
-18
@@ -511,7 +511,6 @@
|
||||
"title": "Nakładka zdjęć (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Znaki drogowe z serwisu Mapillary",
|
||||
"title": "Nakładka z znakami drogowymi (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -2225,7 +2224,8 @@
|
||||
"name": "Tapicer"
|
||||
},
|
||||
"craft/watchmaker": {
|
||||
"name": "Zegarmistrz"
|
||||
"name": "Zegarmistrz",
|
||||
"terms": "zegarki"
|
||||
},
|
||||
"craft/window_construction": {
|
||||
"name": "Montaż okien"
|
||||
@@ -2256,7 +2256,8 @@
|
||||
"name": "Przejście dla pieszych"
|
||||
},
|
||||
"footway/crosswalk": {
|
||||
"name": "Przejście dla pieszych z zebrą"
|
||||
"name": "Przejście dla pieszych z zebrą",
|
||||
"terms": "zebra"
|
||||
},
|
||||
"footway/sidewalk": {
|
||||
"name": "Chodnik",
|
||||
@@ -2341,7 +2342,8 @@
|
||||
"terms": "rampa,wjazd,wyjazd,zjazd"
|
||||
},
|
||||
"highway/raceway": {
|
||||
"name": "Tor wyścigowy"
|
||||
"name": "Tor wyścigowy",
|
||||
"terms": "tor samochodowy"
|
||||
},
|
||||
"highway/residential": {
|
||||
"name": "Droga lokalna",
|
||||
@@ -2381,7 +2383,8 @@
|
||||
"name": "Dojazd dla służb ratowniczych"
|
||||
},
|
||||
"highway/service/parking_aisle": {
|
||||
"name": "Uliczka parkingowa"
|
||||
"name": "Uliczka parkingowa",
|
||||
"terms": "podjazd parkingowy"
|
||||
},
|
||||
"highway/services": {
|
||||
"name": "Miejsce Obsługi Podróżnych (MOP)",
|
||||
@@ -2408,7 +2411,8 @@
|
||||
"terms": "rampa,wjazd,wyjazd,zjazd"
|
||||
},
|
||||
"highway/track": {
|
||||
"name": "Droga polna lub leśna"
|
||||
"name": "Droga polna lub leśna",
|
||||
"terms": "trakt leśny"
|
||||
},
|
||||
"highway/traffic_signals": {
|
||||
"name": "Sygnalizacja świetlna",
|
||||
@@ -2466,7 +2470,8 @@
|
||||
"terms": "kapliczka,przydrożna"
|
||||
},
|
||||
"junction": {
|
||||
"name": "Skrzyżowanie"
|
||||
"name": "Skrzyżowanie",
|
||||
"terms": "krzyżówka"
|
||||
},
|
||||
"landuse": {
|
||||
"name": "Zagospodarowanie terenu",
|
||||
@@ -2485,7 +2490,8 @@
|
||||
"terms": "cmentarz"
|
||||
},
|
||||
"landuse/churchyard": {
|
||||
"name": "Dziedziniec kościelny"
|
||||
"name": "Dziedziniec kościelny",
|
||||
"terms": "Plac kościelny"
|
||||
},
|
||||
"landuse/commercial": {
|
||||
"name": "Obszar biurowo-biznesowy"
|
||||
@@ -2499,7 +2505,8 @@
|
||||
"terms": "ziemia uprawna,grunty rolne"
|
||||
},
|
||||
"landuse/farmland": {
|
||||
"name": "Pola uprawne"
|
||||
"name": "Pola uprawne",
|
||||
"terms": "Uprawy"
|
||||
},
|
||||
"landuse/farmyard": {
|
||||
"name": "Teren z zabudowaniami rolniczymi",
|
||||
@@ -2510,14 +2517,16 @@
|
||||
"terms": "Las"
|
||||
},
|
||||
"landuse/garages": {
|
||||
"name": "Garaże"
|
||||
"name": "Garaże",
|
||||
"terms": "garaże"
|
||||
},
|
||||
"landuse/grass": {
|
||||
"name": "Trawa",
|
||||
"terms": "trawa, trawnik, "
|
||||
},
|
||||
"landuse/industrial": {
|
||||
"name": "Obszar przemysłowy"
|
||||
"name": "Obszar przemysłowy",
|
||||
"terms": "Teren przemysłowy"
|
||||
},
|
||||
"landuse/landfill": {
|
||||
"name": "Wysypisko",
|
||||
@@ -2544,7 +2553,8 @@
|
||||
"terms": "kamieniołom, żwirownia, kruszywo,kopalnia odkrywkowa"
|
||||
},
|
||||
"landuse/residential": {
|
||||
"name": "Zabudowa mieszkaniowa"
|
||||
"name": "Zabudowa mieszkaniowa",
|
||||
"terms": "Teren zamieszkały"
|
||||
},
|
||||
"landuse/retail": {
|
||||
"name": "Obszar handlowy"
|
||||
@@ -2565,10 +2575,12 @@
|
||||
"name": "Czatownia ornitologiczna"
|
||||
},
|
||||
"leisure/bowling_alley": {
|
||||
"name": "Kręgielnia"
|
||||
"name": "Kręgielnia",
|
||||
"terms": "Kręgle"
|
||||
},
|
||||
"leisure/dog_park": {
|
||||
"name": "Park dla psów"
|
||||
"name": "Park dla psów",
|
||||
"terms": "psi park"
|
||||
},
|
||||
"leisure/firepit": {
|
||||
"name": "Miejsce na ognisko",
|
||||
@@ -2678,7 +2690,8 @@
|
||||
"name": "Obiekty sztuczne"
|
||||
},
|
||||
"man_made/adit": {
|
||||
"name": "Sztolnia"
|
||||
"name": "Sztolnia",
|
||||
"terms": "Tunel kopalniany"
|
||||
},
|
||||
"man_made/breakwater": {
|
||||
"name": "Falochron",
|
||||
@@ -2710,7 +2723,8 @@
|
||||
"terms": "latarnia"
|
||||
},
|
||||
"man_made/mast": {
|
||||
"name": "Maszt radiowy"
|
||||
"name": "Maszt radiowy",
|
||||
"terms": "Wieża radiowa"
|
||||
},
|
||||
"man_made/observation": {
|
||||
"name": "Wieża obserwacyjna",
|
||||
@@ -3143,7 +3157,8 @@
|
||||
"terms": "alkohol"
|
||||
},
|
||||
"shop/anime": {
|
||||
"name": "Sklep z anime"
|
||||
"name": "Sklep z anime",
|
||||
"terms": "sklep anime"
|
||||
},
|
||||
"shop/antiques": {
|
||||
"name": "Antykwariat",
|
||||
@@ -3258,7 +3273,8 @@
|
||||
"terms": "kosmetyki,drogeria"
|
||||
},
|
||||
"shop/craft": {
|
||||
"name": "Sklep z rzemiosłem artystycznym"
|
||||
"name": "Sklep z rzemiosłem artystycznym",
|
||||
"terms": "rzemiosło artystyczne"
|
||||
},
|
||||
"shop/curtain": {
|
||||
"name": "Sklep z zasłonami",
|
||||
|
||||
Vendored
+36
-3
@@ -241,6 +241,7 @@
|
||||
},
|
||||
"commit": {
|
||||
"title": "Salvar Alterações",
|
||||
"description_placeholder": "Breve descrição de suas contribuições (obrigatório)",
|
||||
"message_label": "Comentário para o conjunto de alterações",
|
||||
"upload_explanation": "As alterações que você enviar ficarão visíveis em todos os mapas que usam dados do OpenStreetMap. Atenção: NÃO é permitido copiar nomes de ruas do Google Maps, Bing, mapas impressos ou quaisquer fontes que possuam copyright.",
|
||||
"upload_explanation_with_user": "As alterações que você enviar como {user} estarão visíveis em todos os mapas que usam os dados do OpenStreetMap.<br><br>\n<b>Atenção:</b> NÃO é permitido copiar nomes de ruas do Google Maps, Bing, mapas impressos ou quaisquer fontes que possuam copyright.",
|
||||
@@ -315,6 +316,7 @@
|
||||
"yes": "Sim",
|
||||
"no": "Não"
|
||||
},
|
||||
"add": "Adicionar",
|
||||
"none": "Nenhum",
|
||||
"node": "Ponto",
|
||||
"way": "Linha",
|
||||
@@ -328,6 +330,7 @@
|
||||
"percent_brightness": "Brilho de {opacity}%",
|
||||
"none": "Nenhum",
|
||||
"best_imagery": "Melhor imagem de satélite conhecida para esta localização",
|
||||
"switch": "Voltar para este fundo de tela",
|
||||
"custom": "Customizado",
|
||||
"custom_button": "Editar fundo de tela personalizado",
|
||||
"custom_prompt": "Informe um modelo de URL de quadrículas. Tokens válidos são {z}, {x}, {y} para o esquema Z/X/Y e {u} para o esquema quadtile.",
|
||||
@@ -509,7 +512,7 @@
|
||||
"title": "Camada de Fotos (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Placas de trânsito do Mapillary",
|
||||
"tooltip": "Sinais de trânsito do Mapillary (Camada de Foto deve ser habilitada)",
|
||||
"title": "Camada de Placas de Trânsito (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -610,6 +613,9 @@
|
||||
},
|
||||
"presets": {
|
||||
"categories": {
|
||||
"category-barrier": {
|
||||
"name": "Elementos de Barreira"
|
||||
},
|
||||
"category-building": {
|
||||
"name": "Tipos de Edificações"
|
||||
},
|
||||
@@ -779,6 +785,9 @@
|
||||
"bicycle_parking": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
"bin": {
|
||||
"label": "Lixeira"
|
||||
},
|
||||
"boundary": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
@@ -850,6 +859,9 @@
|
||||
"cuisine": {
|
||||
"label": "Culinária"
|
||||
},
|
||||
"currency_multi": {
|
||||
"label": "Tipos de Moeda"
|
||||
},
|
||||
"cycleway": {
|
||||
"label": "Ciclofaixas",
|
||||
"options": {
|
||||
@@ -953,6 +965,9 @@
|
||||
"fuel": {
|
||||
"label": "Combustível"
|
||||
},
|
||||
"fuel_multi": {
|
||||
"label": "Tipos de Combustível"
|
||||
},
|
||||
"gauge": {
|
||||
"label": "Bitola"
|
||||
},
|
||||
@@ -1195,6 +1210,9 @@
|
||||
"underground": "Subterrâneo"
|
||||
}
|
||||
},
|
||||
"payment_multi": {
|
||||
"label": "Tipos de Pagamento"
|
||||
},
|
||||
"phone": {
|
||||
"label": "Telefone",
|
||||
"placeholder": "+55 11 0982 1098"
|
||||
@@ -1252,6 +1270,9 @@
|
||||
"railway": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
"recycling_accepts": {
|
||||
"label": "Aceita"
|
||||
},
|
||||
"ref": {
|
||||
"label": "Código de referência"
|
||||
},
|
||||
@@ -1573,8 +1594,8 @@
|
||||
"terms": "Serviço"
|
||||
},
|
||||
"amenity/arts_centre": {
|
||||
"name": "Centro/Escola de Artes",
|
||||
"terms": "Centro de Artes, Escola de Artes, Artes, Centro Artístico, Escola Artística, Teatro, Cinema, Espetáculo, Exposições"
|
||||
"name": "Centro Cultural",
|
||||
"terms": "Centro de Artes, Artes, Centro Artístico, Teatro, Cinema, Espetáculo, Exposições, Galeria, Exposição, Cultura, Espaço Cultural, Pintura, Artes Plásticas"
|
||||
},
|
||||
"amenity/atm": {
|
||||
"name": "Caixa Eletrônico",
|
||||
@@ -1804,6 +1825,10 @@
|
||||
"name": "Agência de Correios",
|
||||
"terms": "Correios, Encomendas, Transporte, Log, Cargas"
|
||||
},
|
||||
"amenity/prison": {
|
||||
"name": "Presídio",
|
||||
"terms": "Cela, Cadeia"
|
||||
},
|
||||
"amenity/pub": {
|
||||
"name": "Bar",
|
||||
"terms": "Pub, botequim, boteco, buteco"
|
||||
@@ -1976,6 +2001,10 @@
|
||||
"name": "Barreira para Bicicletas",
|
||||
"terms": "Barreira para Bicicletas"
|
||||
},
|
||||
"barrier/ditch": {
|
||||
"name": "Vala",
|
||||
"terms": "Fosso, trincheira"
|
||||
},
|
||||
"barrier/entrance": {
|
||||
"name": "Entrada",
|
||||
"terms": "Entrada"
|
||||
@@ -3940,6 +3969,10 @@
|
||||
"name": "Rota de Caminhada",
|
||||
"terms": "Rota de Trekking"
|
||||
},
|
||||
"type/route/horse": {
|
||||
"name": "Rota de Equitação",
|
||||
"terms": "Rota de Montaria, Trilha de Equitação"
|
||||
},
|
||||
"type/route/pipeline": {
|
||||
"name": "Rota de Tubulação",
|
||||
"terms": "Rota de Tubulação, Faixa de Dutos"
|
||||
|
||||
Vendored
+22
-4
@@ -241,6 +241,7 @@
|
||||
},
|
||||
"commit": {
|
||||
"title": "Gravar Alterações",
|
||||
"description_placeholder": "Pequena descrição das tuas contribuições (necessário)",
|
||||
"message_label": "Descrição das alterações",
|
||||
"upload_explanation": "As alterações que enviar ficarão visíveis em todos os mapas que usem dados do OpenStreetMap.",
|
||||
"upload_explanation_with_user": "As alterações que enviar como {user} ficarão visíveis em todos os mapas que usem dados do OpenStreetMap.",
|
||||
@@ -252,7 +253,9 @@
|
||||
"deleted": "Eliminado",
|
||||
"created": "Criado",
|
||||
"about_changeset_comments": "Sobre comentários de changesets",
|
||||
"about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments"
|
||||
"about_changeset_comments_link": "//wiki.openstreetmap.org/wiki/Good_changeset_comments",
|
||||
"google_warning": "Mencionou o Google no seu comentário: lembre-se que copiar do Google Mapas é estritamente proibido.",
|
||||
"google_warning_link": "http://www.openstreetmap.org/copyright"
|
||||
},
|
||||
"contributors": {
|
||||
"list": "Edições de {users}",
|
||||
@@ -313,6 +316,7 @@
|
||||
"yes": "Sim",
|
||||
"no": "Não"
|
||||
},
|
||||
"add": "Adicionar",
|
||||
"none": "Nenhum",
|
||||
"node": "Nó",
|
||||
"way": "Linha",
|
||||
@@ -326,11 +330,14 @@
|
||||
"percent_brightness": "{opacity}% transparente",
|
||||
"none": "Nenhum",
|
||||
"best_imagery": "Melhor fonte de imagem para esse lugar",
|
||||
"switch": "Mudar para este fundo",
|
||||
"custom": "Personalizado",
|
||||
"custom_button": "Editar fundo personalizando",
|
||||
"custom_prompt": "Introduzir um URL válido. Tokens válidos são {z}, {x}, {y} para esquemas Z/X/Y e {u} para esquemas QuadTile.",
|
||||
"fix_misalignment": "Ajudar o alienamento da imagem ",
|
||||
"imagery_source_faq": "De onde vem essa imagem?",
|
||||
"reset": "reiniciar",
|
||||
"offset": "Arrasta para a área cinzenta abaixo para ajustar o alienamento da imagem, ou insira os valores em metros. ",
|
||||
"minimap": {
|
||||
"description": "Mini-mapa",
|
||||
"tooltip": "Mostra um pequeno mapa com uma área mais abrangente que ajuda a localizar a área que está a editar."
|
||||
@@ -505,7 +512,7 @@
|
||||
"title": "Camada de Fotos (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Placas de trânsito do Mapillary",
|
||||
"tooltip": "Sinais de trânsito do Mapillary (\"Photo Overlay\" tem de estar ativado)",
|
||||
"title": "Camada de Placas de Trânsito (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -606,6 +613,9 @@
|
||||
},
|
||||
"presets": {
|
||||
"categories": {
|
||||
"category-barrier": {
|
||||
"name": "Tipos de barreira"
|
||||
},
|
||||
"category-building": {
|
||||
"name": "Tipos de edifícios"
|
||||
},
|
||||
@@ -625,7 +635,7 @@
|
||||
"name": "Tipos de restrição"
|
||||
},
|
||||
"category-road": {
|
||||
"name": "Tipos de Rodovia"
|
||||
"name": "Tipos de rodovia"
|
||||
},
|
||||
"category-route": {
|
||||
"name": "Tipos de rota"
|
||||
@@ -1991,6 +2001,10 @@
|
||||
"name": "Barreira de bicicletas",
|
||||
"terms": "Bicicleta"
|
||||
},
|
||||
"barrier/ditch": {
|
||||
"name": "Fosso / Vala / Trincheira (seca)",
|
||||
"terms": "Trench"
|
||||
},
|
||||
"barrier/entrance": {
|
||||
"name": "Entrada",
|
||||
"terms": "Entrada, Acesso, Abertura, Porta, Pórtico, Portão"
|
||||
@@ -3955,6 +3969,10 @@
|
||||
"name": "Rota de caminhada",
|
||||
"terms": "Hiking Route, Rota de Escalagem"
|
||||
},
|
||||
"type/route/horse": {
|
||||
"name": "Rota de equitação",
|
||||
"terms": "Riding Route"
|
||||
},
|
||||
"type/route/pipeline": {
|
||||
"name": "Rota de gasoduto / oleoduto",
|
||||
"terms": "Pipeline Route"
|
||||
@@ -4004,7 +4022,7 @@
|
||||
"terms": "Dam, Usina, Hidrelétrica, Hidroelétrica, Hidro-elétrica, Hidro elétrica"
|
||||
},
|
||||
"waterway/ditch": {
|
||||
"name": "Fosso / vala / trincheira",
|
||||
"name": "Fosso / Vala / Trincheira",
|
||||
"terms": "Vala, Trincheira, Represa"
|
||||
},
|
||||
"waterway/dock": {
|
||||
|
||||
Vendored
-1
@@ -512,7 +512,6 @@
|
||||
"title": "Фотографии с Mapillary"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Дорожные знаки с Mapillary",
|
||||
"title": "Слой дорожных знаков с Mapillary"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Bildlager (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Trafikskyltar från Mapillary",
|
||||
"tooltip": "Trafikskyltar från Mapillary (måste aktivera bildlager)",
|
||||
"title": "Bildlager med trafikskyltar (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
-1
@@ -512,7 +512,6 @@
|
||||
"title": "Фото-шар (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Дорожні знаки від Mapillary",
|
||||
"title": "Шар дорожніх знаків (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+1
-1
@@ -512,7 +512,7 @@
|
||||
"title": "Lớp phủ Hình ảnh (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "Bảng giao thông do Mapillary cung cấp",
|
||||
"tooltip": "Bảng giao thông do Mapillary cung cấp (phải bật Lớp phủ Hình ảnh)",
|
||||
"title": "Lớp phủ Bảng Giao thông (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
-1
@@ -512,7 +512,6 @@
|
||||
"title": "相片重疊 (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "來自Mapillary的交通訊號",
|
||||
"title": "交通訊號重疊 (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
|
||||
Vendored
+14
-14
@@ -512,7 +512,7 @@
|
||||
"title": "照片重疊 (Mapillary)"
|
||||
},
|
||||
"mapillary_signs": {
|
||||
"tooltip": "從 Mapillary 來的紅綠燈",
|
||||
"tooltip": "從 Mapillary 而來的交通號誌(必須啟用照片重疊)",
|
||||
"title": "紅綠燈重疊 (Mapillary)"
|
||||
},
|
||||
"mapillary": {
|
||||
@@ -860,7 +860,7 @@
|
||||
"label": "食物種類"
|
||||
},
|
||||
"currency_multi": {
|
||||
"label": "外幣種類"
|
||||
"label": "貨幣種類"
|
||||
},
|
||||
"cycleway": {
|
||||
"label": "單車道",
|
||||
@@ -1567,7 +1567,7 @@
|
||||
},
|
||||
"aeroway/gate": {
|
||||
"name": "登機閘門",
|
||||
"terms": "機場閘口,機場閘門"
|
||||
"terms": "機場閘口,機場閘門,登機門,登機口"
|
||||
},
|
||||
"aeroway/hangar": {
|
||||
"name": "機庫",
|
||||
@@ -1587,7 +1587,7 @@
|
||||
},
|
||||
"aeroway/terminal": {
|
||||
"name": "機場航廈",
|
||||
"terms": "機場大堂"
|
||||
"terms": "航廈,機場大堂"
|
||||
},
|
||||
"amenity": {
|
||||
"name": "便利設施",
|
||||
@@ -1639,11 +1639,11 @@
|
||||
},
|
||||
"amenity/bureau_de_change": {
|
||||
"name": "外幣兌換",
|
||||
"terms": "錢幣兌換"
|
||||
"terms": "錢幣兌換,貨幣兌換"
|
||||
},
|
||||
"amenity/bus_station": {
|
||||
"name": "公車轉運站",
|
||||
"terms": "客運站,轉運站"
|
||||
"name": "公車客運站",
|
||||
"terms": "客運站,轉運站,長途客運站"
|
||||
},
|
||||
"amenity/cafe": {
|
||||
"name": "咖啡廳",
|
||||
@@ -2719,7 +2719,7 @@
|
||||
},
|
||||
"landuse/military": {
|
||||
"name": "軍事用地",
|
||||
"terms": "營區,軍營"
|
||||
"terms": "營區,軍營,部隊用地,軍事區,軍用地"
|
||||
},
|
||||
"landuse/orchard": {
|
||||
"name": "果園",
|
||||
@@ -3011,7 +3011,7 @@
|
||||
},
|
||||
"military/range": {
|
||||
"name": "軍事靶場",
|
||||
"terms": "靶場"
|
||||
"terms": "靶場,軍用靶場, 射擊場"
|
||||
},
|
||||
"military/training_area": {
|
||||
"name": "訓練場地",
|
||||
@@ -3295,7 +3295,7 @@
|
||||
},
|
||||
"railway": {
|
||||
"name": "鐵路",
|
||||
"terms": "鐵支路,鐵軌"
|
||||
"terms": "鐵支路,鐵軌,鐵道"
|
||||
},
|
||||
"railway/abandoned": {
|
||||
"name": "鐵路線遺跡",
|
||||
@@ -3335,7 +3335,7 @@
|
||||
},
|
||||
"railway/station": {
|
||||
"name": "火車站",
|
||||
"terms": "鐵路站"
|
||||
"terms": "鐵路站,車站,高鐵站"
|
||||
},
|
||||
"railway/subway": {
|
||||
"name": "捷運",
|
||||
@@ -3343,7 +3343,7 @@
|
||||
},
|
||||
"railway/subway_entrance": {
|
||||
"name": "捷運入口",
|
||||
"terms": "地鐵入口,地下鐵入口"
|
||||
"terms": "地鐵入口,地下鐵入口,捷運出入口,地鐵出入口,地下鐵出入口"
|
||||
},
|
||||
"railway/tram": {
|
||||
"name": "電車",
|
||||
@@ -3826,8 +3826,8 @@
|
||||
"terms": "觀光點"
|
||||
},
|
||||
"tourism/camp_site": {
|
||||
"name": "營地",
|
||||
"terms": "露營地"
|
||||
"name": "露營營地",
|
||||
"terms": "露營地,營地"
|
||||
},
|
||||
"tourism/caravan_site": {
|
||||
"name": "露營車停車場",
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
<script src="js/id/svg.js"></script>
|
||||
<script src="js/id/svg/areas.js"></script>
|
||||
<script src="js/id/svg/debug.js"></script>
|
||||
<script src="js/id/svg/defs.js"></script>
|
||||
<script src='js/id/svg/gpx.js'></script>
|
||||
<script src="js/id/svg/icon.js"></script>
|
||||
|
||||
+16
-10
@@ -216,18 +216,24 @@ window.iD = function () {
|
||||
|
||||
|
||||
/* Debug */
|
||||
var debugTile = false, debugCollision = false;
|
||||
context.debugTile = function(_) {
|
||||
if (!arguments.length) return debugTile;
|
||||
debugTile = _;
|
||||
var debugFlags = {
|
||||
tile: false,
|
||||
collision: false,
|
||||
imagery: false,
|
||||
imperial: false,
|
||||
driveLeft: false
|
||||
};
|
||||
context.debugFlags = function() {
|
||||
return debugFlags;
|
||||
};
|
||||
context.setDebug = function(flag, val) {
|
||||
if (arguments.length === 1) val = true;
|
||||
debugFlags[flag] = val;
|
||||
dispatch.change();
|
||||
return context;
|
||||
};
|
||||
context.debugCollision = function(_) {
|
||||
if (!arguments.length) return debugCollision;
|
||||
debugCollision = _;
|
||||
dispatch.change();
|
||||
return context;
|
||||
context.getDebug = function(flag) {
|
||||
return flag && debugFlags[flag];
|
||||
};
|
||||
|
||||
|
||||
@@ -379,7 +385,7 @@ window.iD = function () {
|
||||
};
|
||||
|
||||
|
||||
iD.version = '1.9.5';
|
||||
iD.version = '1.9.6';
|
||||
|
||||
(function() {
|
||||
var detected = {};
|
||||
|
||||
@@ -78,7 +78,7 @@ iD.TileLayer = function(context) {
|
||||
// rentered when tiles load/error (see #644).
|
||||
function render(selection) {
|
||||
var requests = [];
|
||||
var showDebug = context.debugTile() && !source.overlay;
|
||||
var showDebug = context.getDebug('tile') && !source.overlay;
|
||||
|
||||
if (source.validZoom(z)) {
|
||||
tile().forEach(function(d) {
|
||||
|
||||
@@ -6,6 +6,7 @@ iD.services.mapillary = function() {
|
||||
viewerjs = 'https://npmcdn.com/mapillary-js@1.3.0/dist/mapillary-js.min.js',
|
||||
clientId = 'NzNRM2otQkR2SHJzaXJmNmdQWVQ0dzo1ZWYyMmYwNjdmNDdlNmVi',
|
||||
maxResults = 1000,
|
||||
maxPages = 10,
|
||||
tileZoom = 14;
|
||||
|
||||
|
||||
@@ -185,6 +186,7 @@ iD.services.mapillary = function() {
|
||||
if (err || !data.features || !data.features.length) return;
|
||||
|
||||
var features = [],
|
||||
nextPage = page + 1,
|
||||
feature, loc, d;
|
||||
|
||||
for (var i = 0; i < data.features.length; i++) {
|
||||
@@ -202,8 +204,8 @@ iD.services.mapillary = function() {
|
||||
if (which === 'images') dispatch.loadedImages();
|
||||
if (which === 'signs') dispatch.loadedSigns();
|
||||
|
||||
if (data.features.length === maxResults) {
|
||||
loadTilePage(which, url, tile, ++page);
|
||||
if (data.features.length === maxResults && nextPage < maxPages) {
|
||||
loadTilePage(which, url, tile, nextPage);
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -308,6 +310,11 @@ iD.services.mapillary = function() {
|
||||
};
|
||||
|
||||
mapillary.setViewerLoading = function(loading) {
|
||||
var canvas = d3.select('#content')
|
||||
.selectAll('.mly-wrapper canvas');
|
||||
|
||||
if (canvas.empty()) return; // viewer not loaded yet
|
||||
|
||||
var cover = d3.select('#content')
|
||||
.selectAll('.mly-wrapper .Cover');
|
||||
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
iD.svg.Debug = function(projection, context) {
|
||||
|
||||
function multipolygons(imagery) {
|
||||
return imagery.map(function(data) {
|
||||
return {
|
||||
type: 'MultiPolygon',
|
||||
coordinates: [ data.polygon ]
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
function drawDebug(surface) {
|
||||
var showsTile = context.getDebug('tile'),
|
||||
showsCollision = context.getDebug('collision'),
|
||||
showsImagery = context.getDebug('imagery'),
|
||||
showsImperial = context.getDebug('imperial'),
|
||||
showsDriveLeft = context.getDebug('driveLeft'),
|
||||
path = d3.geo.path().projection(projection);
|
||||
|
||||
|
||||
var debugData = [];
|
||||
if (showsTile) {
|
||||
debugData.push({ class: 'red', label: 'tile' });
|
||||
}
|
||||
if (showsCollision) {
|
||||
debugData.push({ class: 'yellow', label: 'collision' });
|
||||
}
|
||||
if (showsImagery) {
|
||||
debugData.push({ class: 'orange', label: 'imagery' });
|
||||
}
|
||||
if (showsImperial) {
|
||||
debugData.push({ class: 'cyan', label: 'imperial' });
|
||||
}
|
||||
if (showsDriveLeft) {
|
||||
debugData.push({ class: 'green', label: 'driveLeft' });
|
||||
}
|
||||
|
||||
|
||||
var legend = d3.select('#content')
|
||||
.selectAll('.debug-legend')
|
||||
.data(debugData.length ? [0] : []);
|
||||
|
||||
legend.enter()
|
||||
.append('div')
|
||||
.attr('class', 'fillD debug-legend');
|
||||
|
||||
legend.exit()
|
||||
.remove();
|
||||
|
||||
|
||||
var legendItems = legend.selectAll('.debug-legend-item')
|
||||
.data(debugData, function(d) { return d.label; });
|
||||
|
||||
legendItems.enter()
|
||||
.append('span')
|
||||
.attr('class', function(d) { return 'debug-legend-item ' + d.class; })
|
||||
.text(function(d) { return d.label; });
|
||||
|
||||
legendItems.exit()
|
||||
.remove();
|
||||
|
||||
|
||||
var layer = surface.selectAll('.layer-debug')
|
||||
.data(showsImagery || showsImperial || showsDriveLeft ? [0] : []);
|
||||
|
||||
layer.enter()
|
||||
.append('g')
|
||||
.attr('class', 'layer-debug');
|
||||
|
||||
layer.exit()
|
||||
.remove();
|
||||
|
||||
|
||||
var extent = context.map().extent(),
|
||||
availableImagery = showsImagery && multipolygons(iD.data.imagery.filter(function(source) {
|
||||
if (!source.polygon) return false;
|
||||
return source.polygon.some(function(polygon) {
|
||||
return iD.geo.polygonIntersectsPolygon(polygon, extent, true);
|
||||
});
|
||||
}));
|
||||
|
||||
var imagery = layer.selectAll('path.debug-imagery')
|
||||
.data(showsImagery ? availableImagery : []);
|
||||
|
||||
imagery.enter()
|
||||
.append('path')
|
||||
.attr('class', 'debug-imagery debug orange');
|
||||
|
||||
imagery.exit()
|
||||
.remove();
|
||||
|
||||
|
||||
var imperial = layer
|
||||
.selectAll('path.debug-imperial')
|
||||
.data(showsImperial ? [iD.data.imperial] : []);
|
||||
|
||||
imperial.enter()
|
||||
.append('path')
|
||||
.attr('class', 'debug-imperial debug cyan');
|
||||
|
||||
imperial.exit()
|
||||
.remove();
|
||||
|
||||
|
||||
var driveLeft = layer
|
||||
.selectAll('path.debug-drive-left')
|
||||
.data(showsDriveLeft ? [iD.data.driveLeft] : []);
|
||||
|
||||
driveLeft.enter()
|
||||
.append('path')
|
||||
.attr('class', 'debug-drive-left debug green');
|
||||
|
||||
driveLeft.exit()
|
||||
.remove();
|
||||
|
||||
|
||||
// update
|
||||
layer.selectAll('path')
|
||||
.attr('d', path);
|
||||
}
|
||||
|
||||
// This looks strange because `enabled` methods on other layers are
|
||||
// chainable getter/setters, and this one is just a getter.
|
||||
drawDebug.enabled = function() {
|
||||
if (!arguments.length) {
|
||||
return context.getDebug('tile') ||
|
||||
context.getDebug('collision') ||
|
||||
context.getDebug('imagery') ||
|
||||
context.getDebug('imperial') ||
|
||||
context.getDebug('driveLeft');
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
return drawDebug;
|
||||
};
|
||||
+3
-3
@@ -425,7 +425,7 @@ iD.svg.Labels = function(projection, context) {
|
||||
drawAreaIcons(label, labelled.area, filter, 'arealabel-icon', positions.area);
|
||||
|
||||
// debug
|
||||
var showDebug = context.debugCollision();
|
||||
var showDebug = context.getDebug('collision');
|
||||
var debug = label.selectAll('.layer-label-debug')
|
||||
.data(showDebug ? [true] : []);
|
||||
|
||||
@@ -447,11 +447,11 @@ iD.svg.Labels = function(projection, context) {
|
||||
]]};
|
||||
});
|
||||
|
||||
var debugboxes = debug.selectAll('.bbox').data(gj);
|
||||
var debugboxes = debug.selectAll('.debug').data(gj);
|
||||
|
||||
debugboxes.enter()
|
||||
.append('path')
|
||||
.attr('class', 'bbox');
|
||||
.attr('class', 'debug yellow');
|
||||
|
||||
debugboxes.exit()
|
||||
.remove();
|
||||
|
||||
+2
-1
@@ -5,7 +5,8 @@ iD.svg.Layers = function(projection, context) {
|
||||
{ id: 'osm', layer: iD.svg.Osm(projection, context, dispatch) },
|
||||
{ id: 'gpx', layer: iD.svg.Gpx(projection, context, dispatch) },
|
||||
{ id: 'mapillary-images', layer: iD.svg.MapillaryImages(projection, context, dispatch) },
|
||||
{ id: 'mapillary-signs', layer: iD.svg.MapillarySigns(projection, context, dispatch) }
|
||||
{ id: 'mapillary-signs', layer: iD.svg.MapillarySigns(projection, context, dispatch) },
|
||||
{ id: 'debug', layer: iD.svg.Debug(projection, context, dispatch) }
|
||||
];
|
||||
|
||||
|
||||
|
||||
+18
-15
@@ -6,6 +6,7 @@ iD.ui.MapInMap = function(context) {
|
||||
overlayLayers = {},
|
||||
projection = iD.geo.RawMercator(),
|
||||
gpxLayer = iD.svg.Gpx(projection, context).showLabels(false),
|
||||
debugLayer = iD.svg.Debug(projection, context),
|
||||
zoom = d3.behavior.zoom()
|
||||
.scaleExtent([ztok(0.5), ztok(24)])
|
||||
.on('zoom', zoomPan),
|
||||
@@ -13,7 +14,7 @@ iD.ui.MapInMap = function(context) {
|
||||
panning = false,
|
||||
hidden = true,
|
||||
zDiff = 6, // by default, minimap renders at (main zoom - 6)
|
||||
tStart, tLast, tCurr, kLast, kCurr, tiles, svg, timeoutId;
|
||||
tStart, tLast, tCurr, kLast, kCurr, tiles, viewport, timeoutId;
|
||||
|
||||
function ztok(z) { return 256 * Math.pow(2, z); }
|
||||
function ktoz(k) { return Math.log(k) / Math.LN2 - 8; }
|
||||
@@ -51,7 +52,7 @@ iD.ui.MapInMap = function(context) {
|
||||
tY = (tCurr[1] / scale - tLast[1]) * scale;
|
||||
|
||||
iD.util.setTransform(tiles, tX, tY, scale);
|
||||
iD.util.setTransform(svg, 0, 0, scale);
|
||||
iD.util.setTransform(viewport, 0, 0, scale);
|
||||
transformed = true;
|
||||
|
||||
queueRedraw();
|
||||
@@ -112,7 +113,7 @@ iD.ui.MapInMap = function(context) {
|
||||
|
||||
if (transformed) {
|
||||
iD.util.setTransform(tiles, 0, 0);
|
||||
iD.util.setTransform(svg, 0, 0);
|
||||
iD.util.setTransform(viewport, 0, 0);
|
||||
transformed = false;
|
||||
}
|
||||
}
|
||||
@@ -188,33 +189,35 @@ iD.ui.MapInMap = function(context) {
|
||||
.remove();
|
||||
|
||||
|
||||
var gpx = tiles
|
||||
.selectAll('.map-in-map-gpx')
|
||||
.data(gpxLayer.enabled() ? [0] : []);
|
||||
var dataLayers = tiles
|
||||
.selectAll('.map-in-map-data')
|
||||
.data([0]);
|
||||
|
||||
gpx.enter()
|
||||
dataLayers.enter()
|
||||
.append('svg')
|
||||
.attr('class', 'map-in-map-gpx');
|
||||
.attr('class', 'map-in-map-data');
|
||||
|
||||
gpx.exit()
|
||||
dataLayers.exit()
|
||||
.remove();
|
||||
|
||||
gpx.call(gpxLayer);
|
||||
dataLayers
|
||||
.call(gpxLayer)
|
||||
.call(debugLayer);
|
||||
|
||||
|
||||
// redraw bounding box
|
||||
// redraw viewport bounding box
|
||||
if (!panning) {
|
||||
var getPath = d3.geo.path().projection(projection),
|
||||
bbox = { type: 'Polygon', coordinates: [context.map().extent().polygon()] };
|
||||
|
||||
svg = wrap.selectAll('.map-in-map-svg')
|
||||
viewport = wrap.selectAll('.map-in-map-viewport')
|
||||
.data([0]);
|
||||
|
||||
svg.enter()
|
||||
viewport.enter()
|
||||
.append('svg')
|
||||
.attr('class', 'map-in-map-svg');
|
||||
.attr('class', 'map-in-map-viewport');
|
||||
|
||||
var path = svg.selectAll('.map-in-map-bbox')
|
||||
var path = viewport.selectAll('.map-in-map-bbox')
|
||||
.data([bbox]);
|
||||
|
||||
path.enter()
|
||||
|
||||
@@ -31,7 +31,7 @@ iD.ui.preset.maxspeed = function(field, context) {
|
||||
|
||||
imperial = _.some(iD.data.imperial.features, function(f) {
|
||||
return _.some(f.geometry.coordinates, function(d) {
|
||||
return iD.geo.pointInPolygon(loc, d[0]);
|
||||
return iD.geo.pointInPolygon(loc, d);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Vendored
+2
-3
@@ -1820,8 +1820,7 @@ d3.behavior.zoom = function() {
|
||||
}
|
||||
|
||||
function zoomended(dispatch) {
|
||||
if (!--zooming) dispatch({type: "zoomend"});
|
||||
center0 = null;
|
||||
if (!--zooming) dispatch({type: "zoomend"}), center0 = null;
|
||||
}
|
||||
|
||||
function mousedowned() {
|
||||
@@ -1964,7 +1963,7 @@ d3.behavior.zoom = function() {
|
||||
function mousewheeled() {
|
||||
var dispatch = event.of(this, arguments);
|
||||
if (mousewheelTimer) clearTimeout(mousewheelTimer);
|
||||
else translate0 = location(center0 = center || d3.mouse(this)), d3_selection_interrupt.call(this), zoomstarted(dispatch);
|
||||
else d3_selection_interrupt.call(this), translate0 = location(center0 = center || d3.mouse(this)), zoomstarted(dispatch);
|
||||
mousewheelTimer = setTimeout(function() { mousewheelTimer = null; zoomended(dispatch); }, 50);
|
||||
d3_eventPreventDefault();
|
||||
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * view.k);
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "iD",
|
||||
"version": "1.9.5",
|
||||
"version": "1.9.6",
|
||||
"description": "A friendly editor for OpenStreetMap",
|
||||
"main": "iD.js",
|
||||
"directories": {
|
||||
|
||||
@@ -67,6 +67,7 @@
|
||||
|
||||
<script src="../js/id/svg.js"></script>
|
||||
<script src="../js/id/svg/areas.js"></script>
|
||||
<script src='../js/id/svg/debug.js'></script>
|
||||
<script src="../js/id/svg/defs.js"></script>
|
||||
<script src='../js/id/svg/gpx.js'></script>
|
||||
<script src="../js/id/svg/icon.js"></script>
|
||||
|
||||
+4
-4
@@ -147,7 +147,7 @@
|
||||
.attr('width', 30)
|
||||
.attr('height', 40)
|
||||
.attr('data-zoom', function (d) { return d.zoom; })
|
||||
.call(iD.svg.Layers(context))
|
||||
.call(iD.svg.Layers(projection, context))
|
||||
.each(function (d) {
|
||||
var n = node.update({tags: d}),
|
||||
graph = iD.Graph([n]);
|
||||
@@ -215,7 +215,7 @@
|
||||
.attr('width', 30)
|
||||
.attr('height', 30)
|
||||
.attr('data-zoom', function (d) { return d.zoom; })
|
||||
.call(iD.svg.Layers(context))
|
||||
.call(iD.svg.Layers(projection, context))
|
||||
.each(function (d) {
|
||||
var n = node.update({tags: d.tags}),
|
||||
graph = iD.Graph([n, way]);
|
||||
@@ -303,7 +303,7 @@
|
||||
.attr('width', 200)
|
||||
.attr('height', 30)
|
||||
.attr('data-zoom', function (d) { return d.zoom; })
|
||||
.call(iD.svg.Layers(context))
|
||||
.call(iD.svg.Layers(projection, context))
|
||||
.each(function (d) {
|
||||
var highway = way.update({tags: d.tags}),
|
||||
graph = iD.Graph([a, b, highway]);
|
||||
@@ -365,7 +365,7 @@
|
||||
.append('svg')
|
||||
.attr('width', 100)
|
||||
.attr('height', 100)
|
||||
.call(iD.svg.Layers(context))
|
||||
.call(iD.svg.Layers(projection, context))
|
||||
.each(function (datum) {
|
||||
var area = way.update({tags: datum.tags}),
|
||||
graph = iD.Graph([a, b, c, d, area]);
|
||||
|
||||
+29
-12
@@ -269,27 +269,44 @@ describe('iD.Way', function() {
|
||||
});
|
||||
|
||||
it('returns false when the way has tag oneway=no', function() {
|
||||
expect(iD.Way({tags: { oneway: 'no' }}).isOneWay()).to.be.false;
|
||||
expect(iD.Way({tags: { oneway: '0' }}).isOneWay()).to.be.false;
|
||||
expect(iD.Way({tags: { oneway: 'no' }}).isOneWay(), 'oneway no').to.be.false;
|
||||
expect(iD.Way({tags: { oneway: '0' }}).isOneWay(), 'oneway 0').to.be.false;
|
||||
});
|
||||
|
||||
it('returns true when the way has tag oneway=yes', function() {
|
||||
expect(iD.Way({tags: { oneway: 'yes' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { oneway: '1' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { oneway: '-1' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { oneway: 'yes' }}).isOneWay(), 'oneway yes').to.be.true;
|
||||
expect(iD.Way({tags: { oneway: '1' }}).isOneWay(), 'oneway 1').to.be.true;
|
||||
expect(iD.Way({tags: { oneway: '-1' }}).isOneWay(), 'oneway -1').to.be.true;
|
||||
});
|
||||
|
||||
it('returns true when the way has implied oneway tag (waterway=river, waterway=stream, etc)', function() {
|
||||
expect(iD.Way({tags: { waterway: 'river' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { waterway: 'stream' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { highway: 'motorway' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { highway: 'motorway_link' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { junction: 'roundabout' }}).isOneWay()).to.be.true;
|
||||
expect(iD.Way({tags: { waterway: 'river' }}).isOneWay(), 'river').to.be.true;
|
||||
expect(iD.Way({tags: { waterway: 'stream' }}).isOneWay(), 'stream').to.be.true;
|
||||
expect(iD.Way({tags: { highway: 'motorway' }}).isOneWay(), 'motorway').to.be.true;
|
||||
expect(iD.Way({tags: { highway: 'motorway_link' }}).isOneWay(), 'motorway_link').to.be.true;
|
||||
expect(iD.Way({tags: { junction: 'roundabout' }}).isOneWay(), 'roundabout').to.be.true;
|
||||
});
|
||||
|
||||
it('returns false when the way does not have implied oneway tag', function() {
|
||||
expect(iD.Way({tags: { highway: 'trunk' }}).isOneWay(), 'trunk').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'trunk_link' }}).isOneWay(), 'trunk_link').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'primary' }}).isOneWay(), 'primary').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'primary_link' }}).isOneWay(), 'primary_link').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'secondary' }}).isOneWay(), 'secondary').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'secondary_link' }}).isOneWay(), 'secondary_link').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'tertiary' }}).isOneWay(), 'tertiary').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'tertiary_link' }}).isOneWay(), 'tertiary_link').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'unclassified' }}).isOneWay(), 'unclassified').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'residential' }}).isOneWay(), 'residential').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'living_street' }}).isOneWay(), 'living_street').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'service' }}).isOneWay(), 'service').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'track' }}).isOneWay(), 'track').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'path' }}).isOneWay(), 'path').to.be.false;
|
||||
});
|
||||
|
||||
it('returns false when oneway=no overrides implied oneway tag', function() {
|
||||
expect(iD.Way({tags: { junction: 'roundabout', oneway: 'no' }}).isOneWay()).to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'motorway', oneway: 'no' }}).isOneWay()).to.be.false;
|
||||
expect(iD.Way({tags: { junction: 'roundabout', oneway: 'no' }}).isOneWay(), 'roundabout').to.be.false;
|
||||
expect(iD.Way({tags: { highway: 'motorway', oneway: 'no' }}).isOneWay(), 'motorway').to.be.false;
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -100,4 +100,29 @@ describe('iD', function() {
|
||||
expect(context.presets().match(way, graph).id).to.eql('mines');
|
||||
});
|
||||
});
|
||||
|
||||
describe('#debug', function() {
|
||||
it('sets and gets debug flags', function() {
|
||||
var context = iD(),
|
||||
flags = {
|
||||
tile: false,
|
||||
collision: false,
|
||||
imagery: false,
|
||||
imperial: false,
|
||||
driveLeft: false
|
||||
};
|
||||
|
||||
expect(context.debugFlags()).to.eql(flags);
|
||||
|
||||
context.setDebug('tile', true);
|
||||
expect(context.getDebug('tile')).to.be.true;
|
||||
|
||||
context.setDebug('collision');
|
||||
expect(context.getDebug('collision')).to.be.true;
|
||||
|
||||
context.setDebug('tile', false);
|
||||
expect(context.getDebug('tile')).to.be.false;
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -7,7 +7,7 @@ describe("iD.svg.Areas", function () {
|
||||
|
||||
beforeEach(function () {
|
||||
surface = d3.select(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
|
||||
.call(iD.svg.Layers(iD()));
|
||||
.call(iD.svg.Layers(projection, iD()));
|
||||
});
|
||||
|
||||
it("adds way and area classes", function () {
|
||||
|
||||
@@ -7,7 +7,7 @@ describe("iD.svg.Lines", function () {
|
||||
|
||||
beforeEach(function () {
|
||||
surface = d3.select(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
|
||||
.call(iD.svg.Layers(iD()));
|
||||
.call(iD.svg.Layers(projection, iD()));
|
||||
});
|
||||
|
||||
it("adds way and line classes", function () {
|
||||
|
||||
@@ -7,7 +7,7 @@ describe("iD.svg.Midpoints", function () {
|
||||
beforeEach(function () {
|
||||
context = iD();
|
||||
surface = d3.select(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
|
||||
.call(iD.svg.Layers(context));
|
||||
.call(iD.svg.Layers(projection, context));
|
||||
});
|
||||
|
||||
it("creates midpoint on segment completely within the extent", function () {
|
||||
|
||||
@@ -6,7 +6,7 @@ describe("iD.svg.Points", function () {
|
||||
beforeEach(function () {
|
||||
context = iD().presets(iD.data.presets);
|
||||
surface = d3.select(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
|
||||
.call(iD.svg.Layers(context));
|
||||
.call(iD.svg.Layers(projection, context));
|
||||
});
|
||||
|
||||
it("adds tag classes", function () {
|
||||
|
||||
@@ -6,7 +6,7 @@ describe("iD.svg.Vertices", function () {
|
||||
beforeEach(function () {
|
||||
context = iD();
|
||||
surface = d3.select(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))
|
||||
.call(iD.svg.Layers(context));
|
||||
.call(iD.svg.Layers(projection, context));
|
||||
});
|
||||
|
||||
it("adds the .shared class to vertices that are members of two or more ways", function () {
|
||||
|
||||
Reference in New Issue
Block a user