From 19c0da82b139a34ab6569652a4a9c341482bac9c Mon Sep 17 00:00:00 2001 From: Aaron Lidman Date: Thu, 31 Oct 2013 15:11:51 -0700 Subject: [PATCH 1/5] Add name-suggestion-index sources --- Makefile | 4 + build.js | 3 +- data/name-suggestions.json | 5082 ++++++++++++++++++++++++++++++++++++ package.json | 3 +- 4 files changed, 5090 insertions(+), 2 deletions(-) create mode 100644 data/name-suggestions.json diff --git a/Makefile b/Makefile index 8c2f86d16..c5c4d5609 100644 --- a/Makefile +++ b/Makefile @@ -88,6 +88,10 @@ translations: imagery: npm install editor-imagery-index@git://github.com/osmlab/editor-imagery-index.git#gh-pages && node data/update_imagery +suggestions: + npm install name-suggestion-index@git://github.com/osmlab/name-suggestion-index.git + cp node_modules/name-suggestion-index/name-suggestions.json data/name-suggestions.json + SPRITE = inkscape --export-area-page dist/img/line-presets.png: svg/line-presets.svg diff --git a/build.js b/build.js index 49e3925f5..87b7ffdc2 100644 --- a/build.js +++ b/build.js @@ -139,5 +139,6 @@ fs.writeFileSync('data/data.js', 'iD.data = ' + stringify({ featureIcons: r('feature-icons.json'), operations: r('operations-sprite.json'), locales: r('locales.json'), - en: read('dist/locales/en.json') + en: read('dist/locales/en.json'), + suggestions: r('name-suggestions.json') }) + ';'); diff --git a/data/name-suggestions.json b/data/name-suggestions.json new file mode 100644 index 000000000..4265a6a24 --- /dev/null +++ b/data/name-suggestions.json @@ -0,0 +1,5082 @@ +{ + "amenity": { + "bank": { + "ABN AMRO": { + "count": 129 + }, + "ABSA": { + "count": 88 + }, + "AIB": { + "count": 71 + }, + "ANZ": { + "count": 199 + }, + "AXA": { + "count": 66 + }, + "Alior Bank": { + "count": 71 + }, + "Allied Bank": { + "count": 115 + }, + "Alpha Bank": { + "count": 94 + }, + "Argenta": { + "count": 84 + }, + "Axis Bank": { + "count": 52 + }, + "BAWAG PSK": { + "count": 105 + }, + "BB&T": { + "count": 126 + }, + "BBK": { + "count": 69 + }, + "BBVA": { + "count": 574 + }, + "BCI": { + "count": 57 + }, + "BCR": { + "count": 137 + }, + "BDO": { + "count": 275 + }, + "BES": { + "count": 68 + }, + "BMO": { + "count": 160 + }, + "BNL": { + "count": 78 + }, + "BNP": { + "count": 109 + }, + "BNP Paribas": { + "count": 574 + }, + "BNP Paribas Fortis": { + "count": 204 + }, + "BPI": { + "count": 393 + }, + "BRD": { + "count": 179 + }, + "BW-Bank": { + "count": 97 + }, + "BZ WBK": { + "count": 65 + }, + "Banamex": { + "count": 130 + }, + "Banca Intesa": { + "count": 58 + }, + "Banca Popolare di Novara": { + "count": 51 + }, + "Banca Popolare di Vicenza": { + "count": 67 + }, + "Banca Transilvania": { + "count": 131 + }, + "Bancaja": { + "count": 58 + }, + "Banco BCI": { + "count": 51 + }, + "Banco Estado": { + "count": 67 + }, + "Banco G&T Continental": { + "count": 62 + }, + "Banco Itaú": { + "count": 82 + }, + "Banco Nación": { + "count": 59 + }, + "Banco Pastor": { + "count": 62 + }, + "Banco Popular": { + "count": 262 + }, + "Banco Provincia": { + "count": 62 + }, + "Banco Santander": { + "count": 91 + }, + "Banco de Chile": { + "count": 95 + }, + "Banco de Costa Rica": { + "count": 64 + }, + "Banco de Desarrollo Banrural": { + "count": 74 + }, + "Banco de la Nación": { + "count": 93 + }, + "Banco do Brasil": { + "count": 440 + }, + "BancoEstado": { + "count": 79 + }, + "Bancolombia": { + "count": 85 + }, + "Bancomer": { + "count": 96 + }, + "Bancpost": { + "count": 51 + }, + "Banesco": { + "count": 86 + }, + "Banesto": { + "count": 198 + }, + "Bank Austria": { + "count": 174 + }, + "Bank Mandiri": { + "count": 56 + }, + "Bank Spółdzielczy": { + "count": 142 + }, + "Bank of America": { + "count": 836 + }, + "Bank of Ireland": { + "count": 109 + }, + "Bank of Montreal": { + "count": 111 + }, + "Bank of Scotland": { + "count": 85 + }, + "Bank of the West": { + "count": 86 + }, + "Bankia": { + "count": 108 + }, + "Bankinter": { + "count": 54 + }, + "Banorte": { + "count": 65 + }, + "Banque Nationale": { + "count": 56 + }, + "Banque Populaire": { + "count": 399 + }, + "Barclays": { + "count": 925 + }, + "Belfius": { + "count": 219 + }, + "Bendigo Bank": { + "count": 88 + }, + "Berliner Sparkasse": { + "count": 61 + }, + "Berliner Volksbank": { + "count": 79 + }, + "Bicentenario": { + "count": 183 + }, + "Bradesco": { + "count": 236 + }, + "CIBC": { + "count": 306 + }, + "CIC": { + "count": 393 + }, + "Caisse d'Épargne": { + "count": 801 + }, + "Caixa": { + "count": 99 + }, + "Caixa Econômica Federal": { + "count": 131 + }, + "Caixa Geral de Depósitos": { + "count": 119 + }, + "Caja Círculo": { + "count": 65 + }, + "Caja Duero": { + "count": 58 + }, + "Caja Madrid": { + "count": 115 + }, + "Caja Rural": { + "count": 87 + }, + "Caja de Burgos": { + "count": 58 + }, + "Cajamar": { + "count": 61 + }, + "Cajero Automatico Bancared": { + "count": 147 + }, + "Canara Bank": { + "count": 82 + }, + "Cassa di Risparmio del Veneto": { + "count": 58 + }, + "Chase": { + "count": 623 + }, + "China Bank": { + "count": 59 + }, + "Chinabank": { + "count": 54 + }, + "Citibank": { + "count": 249 + }, + "Citizens Bank": { + "count": 107 + }, + "CityCommerce Bank": { + "count": 53 + }, + "Commercial Bank of Ceylon PLC": { + "count": 80 + }, + "Commerzbank": { + "count": 799 + }, + "Commonwealth Bank": { + "count": 218 + }, + "Credit Agricole": { + "count": 143 + }, + "Credit Suisse": { + "count": 69 + }, + "Crédit Agricole": { + "count": 1160 + }, + "Crédit Mutuel": { + "count": 648 + }, + "Crédit Mutuel de Bretagne": { + "count": 335 + }, + "Crédit du Nord": { + "count": 88 + }, + "Danske Bank": { + "count": 130 + }, + "Davivienda": { + "count": 83 + }, + "De Venezuela": { + "count": 127 + }, + "Del Tesoro": { + "count": 94 + }, + "Deutsche Bank": { + "count": 836 + }, + "Dresdner Bank": { + "count": 77 + }, + "Ecobank": { + "count": 54 + }, + "Erste Bank": { + "count": 178 + }, + "Eurobank": { + "count": 89 + }, + "FNB": { + "count": 90 + }, + "Fifth Third Bank": { + "count": 66 + }, + "First National Bank": { + "count": 76 + }, + "GE Money Bank": { + "count": 72 + }, + "HDFC Bank": { + "count": 85 + }, + "HSBC": { + "count": 1039 + }, + "Halifax": { + "count": 214 + }, + "Hamburger Sparkasse": { + "count": 157 + }, + "Handelsbanken": { + "count": 178 + }, + "HypoVereinsbank": { + "count": 570 + }, + "ICICI Bank": { + "count": 78 + }, + "ING": { + "count": 468 + }, + "ING Bank Śląski": { + "count": 64 + }, + "Ibercaja": { + "count": 58 + }, + "Intesa San Paolo": { + "count": 60 + }, + "Itaú": { + "count": 278 + }, + "KBC": { + "count": 194 + }, + "Key Bank": { + "count": 139 + }, + "Komerční banka": { + "count": 136 + }, + "Kreissparkasse": { + "count": 579 + }, + "Kreissparkasse Köln": { + "count": 67 + }, + "LCL": { + "count": 508 + }, + "La Banque Postale": { + "count": 61 + }, + "La Caixa": { + "count": 513 + }, + "Landbank": { + "count": 79 + }, + "Lloyds Bank": { + "count": 612 + }, + "M&T Bank": { + "count": 80 + }, + "Maybank": { + "count": 81 + }, + "Mercantil": { + "count": 220 + }, + "Metrobank": { + "count": 253 + }, + "Millenium Bank": { + "count": 60 + }, + "Millennium Bank": { + "count": 415 + }, + "Monte dei Paschi di Siena": { + "count": 126 + }, + "NAB": { + "count": 123 + }, + "NatWest": { + "count": 606 + }, + "National Bank": { + "count": 87 + }, + "Nationwide": { + "count": 193 + }, + "Nedbank": { + "count": 74 + }, + "Nordea": { + "count": 312 + }, + "OLB": { + "count": 52 + }, + "OTP": { + "count": 184 + }, + "Oberbank": { + "count": 87 + }, + "Oldenburgische Landesbank": { + "count": 56 + }, + "Osuuspankki": { + "count": 74 + }, + "PKO BP": { + "count": 239 + }, + "PNB": { + "count": 106 + }, + "PNC Bank": { + "count": 215 + }, + "PSBank": { + "count": 57 + }, + "Pekao SA": { + "count": 53 + }, + "Peoples Bank": { + "count": 55 + }, + "Postbank": { + "count": 433 + }, + "RBC": { + "count": 220 + }, + "RBS": { + "count": 136 + }, + "RCBC": { + "count": 117 + }, + "Rabobank": { + "count": 619 + }, + "Raiffeisenbank": { + "count": 2028 + }, + "Regions Bank": { + "count": 59 + }, + "Royal Bank": { + "count": 65 + }, + "Royal Bank of Scotland": { + "count": 108 + }, + "SEB": { + "count": 129 + }, + "Santander": { + "count": 1181 + }, + "Santander Consumer Bank": { + "count": 81 + }, + "Santander Totta": { + "count": 63 + }, + "Sberbank": { + "count": 61 + }, + "Scotiabank": { + "count": 379 + }, + "Security Bank": { + "count": 71 + }, + "Slovenská sporiteľňa": { + "count": 127 + }, + "Société Générale": { + "count": 592 + }, + "Sparda-Bank": { + "count": 313 + }, + "Sparkasse": { + "count": 4521 + }, + "Sparkasse Aachen": { + "count": 58 + }, + "Sparkasse KölnBonn": { + "count": 55 + }, + "Stadtsparkasse": { + "count": 86 + }, + "Standard Bank": { + "count": 100 + }, + "State Bank of India": { + "count": 132 + }, + "SunTrust": { + "count": 63 + }, + "SunTrust Bank": { + "count": 66 + }, + "Swedbank": { + "count": 219 + }, + "TD Bank": { + "count": 178 + }, + "TD Canada Trust": { + "count": 421 + }, + "TSB": { + "count": 51 + }, + "Targobank": { + "count": 167 + }, + "Tatra banka": { + "count": 65 + }, + "UBS": { + "count": 129 + }, + "UCPB": { + "count": 87 + }, + "US Bank": { + "count": 214 + }, + "Ulster Bank": { + "count": 85 + }, + "UniCredit Bank": { + "count": 376 + }, + "Unicredit Banca": { + "count": 224 + }, + "Unicaja": { + "count": 74 + }, + "Union Bank": { + "count": 110 + }, + "VR-Bank": { + "count": 421 + }, + "Volksbank": { + "count": 2573 + }, + "VÚB": { + "count": 108 + }, + "Wachovia": { + "count": 61 + }, + "Wells Fargo": { + "count": 781 + }, + "Western Union": { + "count": 84 + }, + "Westpac": { + "count": 194 + }, + "Yorkshire Bank": { + "count": 60 + }, + "ČSOB": { + "count": 157 + }, + "Česká spořitelna": { + "count": 207 + }, + "Альфа-Банк": { + "count": 183 + }, + "Банк Москвы": { + "count": 116 + }, + "Белагропромбанк": { + "count": 66 + }, + "Беларусбанк": { + "count": 223 + }, + "ВТБ": { + "count": 54 + }, + "ВТБ24": { + "count": 298 + }, + "Возрождение": { + "count": 56 + }, + "Газпромбанк": { + "count": 93 + }, + "Ощадбанк": { + "count": 292 + }, + "ПриватБанк": { + "count": 480 + }, + "Промсвязьбанк": { + "count": 86 + }, + "Райффайзен Банк Аваль": { + "count": 57 + }, + "Росбанк": { + "count": 172 + }, + "Россельхозбанк": { + "count": 181 + }, + "Сбербанк": { + "count": 4579 + }, + "Совкомбанк": { + "count": 51 + }, + "УкрСиббанк": { + "count": 125 + }, + "Уралсиб": { + "count": 83 + }, + "ლიბერთი ბანკი (Liberty Bank)": { + "count": 55 + }, + "みずほ銀行": { + "count": 68 + }, + "みずほ銀行 (Mizuho Bank)": { + "count": 227 + }, + "三井住友銀行": { + "count": 122 + }, + "三菱東京UFJ銀行": { + "count": 149 + }, + "中国银行": { + "count": 65 + }, + "광주은행 (Gwangju Bank)": { + "count": 55 + }, + "국민은행": { + "count": 167 + }, + "농협": { + "count": 51 + }, + "신한은행 (Sinhan Bank)": { + "count": 218 + }, + "우리은행 (Uri Bank)": { + "count": 293 + }, + "중소기업은행 (Industrial Bank of Korea)": { + "count": 53 + }, + "하나은행": { + "count": 78 + } + }, + "cafe": { + "Bar": { + "count": 100 + }, + "Cafe": { + "count": 122 + }, + "Cafe Amazon": { + "count": 51 + }, + "Cafe Coffee Day": { + "count": 103 + }, + "Cafeteria": { + "count": 69 + }, + "Caffe Nero": { + "count": 72 + }, + "Caffè Nero": { + "count": 87 + }, + "Café": { + "count": 72 + }, + "Café Central": { + "count": 58 + }, + "Caribou Coffee": { + "count": 92 + }, + "Coffee Time": { + "count": 94 + }, + "Costa": { + "count": 289 + }, + "Costa Coffee": { + "count": 259 + }, + "Dunkin Donuts": { + "count": 365 + }, + "Eiscafe": { + "count": 115 + }, + "Eiscafe Venezia": { + "count": 108 + }, + "Eiscafé Venezia": { + "count": 68 + }, + "Eisdiele": { + "count": 64 + }, + "Panera Bread": { + "count": 72 + }, + "Pret A Manger": { + "count": 115 + }, + "Second Cup": { + "count": 170 + }, + "Segafredo": { + "count": 67 + }, + "Starbuck's": { + "count": 125 + }, + "Starbucks": { + "count": 2975 + }, + "Starbucks Coffee": { + "count": 737 + }, + "Subway": { + "count": 61 + }, + "Tchibo": { + "count": 91 + }, + "Tim Horton's": { + "count": 136 + }, + "Tim Hortons": { + "count": 804 + }, + "Traveler's Coffee": { + "count": 59 + }, + "Кафе": { + "count": 244 + }, + "Кофе Хауз": { + "count": 99 + }, + "Столовая": { + "count": 320 + }, + "Шашлычная": { + "count": 51 + }, + "Шоколадница": { + "count": 124 + }, + "คาเฟ่ อเมซอน": { + "count": 63 + }, + "カフェ・ド・クリエ (Cafe de CRIE)": { + "count": 68 + }, + "スターバックス": { + "count": 54 + }, + "スターバックス (Starbucks)": { + "count": 191 + }, + "ドトール": { + "count": 88 + }, + "ドトールコーヒーショップ (DOUTOR)": { + "count": 75 + } + }, + "car_rental": { + "AVIS": { + "count": 64 + }, + "Avis": { + "count": 199 + }, + "Budget": { + "count": 81 + }, + "Enterprise": { + "count": 112 + }, + "Enterprise Rent-A-Car": { + "count": 61 + }, + "Europcar": { + "count": 271 + }, + "Hertz": { + "count": 276 + }, + "Sixt": { + "count": 150 + }, + "stadtmobil CarSharing-Station": { + "count": 162 + } + }, + "fast_food": { + "A&W": { + "count": 255 + }, + "Ali Baba": { + "count": 57 + }, + "Arby's": { + "count": 714 + }, + "Asia Imbiss": { + "count": 103 + }, + "Baskin Robbins": { + "count": 69 + }, + "Boston Market": { + "count": 57 + }, + "Burger King": { + "count": 3449 + }, + "Carl's Jr.": { + "count": 272 + }, + "Chick-fil-A": { + "count": 214 + }, + "Chipotle": { + "count": 260 + }, + "Chowking": { + "count": 138 + }, + "Church's Chicken": { + "count": 86 + }, + "Culver's": { + "count": 427 + }, + "Dairy Queen": { + "count": 722 + }, + "Del Taco": { + "count": 137 + }, + "Domino's Pizza": { + "count": 896 + }, + "Dunkin Donuts": { + "count": 411 + }, + "Döner": { + "count": 221 + }, + "El Pollo Loco": { + "count": 61 + }, + "Fish & Chips": { + "count": 82 + }, + "Five Guys": { + "count": 124 + }, + "Greggs": { + "count": 77 + }, + "Hallo Pizza": { + "count": 76 + }, + "Hardee's": { + "count": 242 + }, + "Harvey's": { + "count": 83 + }, + "Hesburger": { + "count": 97 + }, + "Hungry Jacks": { + "count": 163 + }, + "Imbiss": { + "count": 181 + }, + "In-N-Out Burger": { + "count": 58 + }, + "Istanbul": { + "count": 52 + }, + "Jack in the Box": { + "count": 517 + }, + "Jamba Juice": { + "count": 60 + }, + "Jimmy John's": { + "count": 119 + }, + "Jollibee": { + "count": 384 + }, + "KFC": { + "count": 2975 + }, + "Kebab": { + "count": 167 + }, + "Kochlöffel": { + "count": 69 + }, + "Kotipizza": { + "count": 75 + }, + "Little Caesars": { + "count": 61 + }, + "Long John Silver's": { + "count": 76 + }, + "Mang Inasal": { + "count": 66 + }, + "McDonald's": { + "count": 11760 + }, + "Mr. Sub": { + "count": 108 + }, + "Nando's": { + "count": 58 + }, + "Nordsee": { + "count": 159 + }, + "Panda Express": { + "count": 212 + }, + "Panera Bread": { + "count": 59 + }, + "Papa John's": { + "count": 274 + }, + "Pizza": { + "count": 132 + }, + "Pizza Express": { + "count": 65 + }, + "Pizza Hut": { + "count": 1010 + }, + "Pizza Nova": { + "count": 57 + }, + "Pizza Pizza": { + "count": 202 + }, + "Pizzeria": { + "count": 97 + }, + "Pollo Campero": { + "count": 63 + }, + "Popeye's": { + "count": 77 + }, + "Popeyes": { + "count": 70 + }, + "Quick": { + "count": 484 + }, + "Quizno's": { + "count": 79 + }, + "Quiznos": { + "count": 183 + }, + "Red Rooster": { + "count": 145 + }, + "Sibylla": { + "count": 61 + }, + "Sonic": { + "count": 335 + }, + "Sonic Drive In": { + "count": 51 + }, + "Sonic Drive-In": { + "count": 120 + }, + "Steers": { + "count": 139 + }, + "Subway": { + "count": 5022 + }, + "Subway Sandwiches": { + "count": 91 + }, + "Taco Bell": { + "count": 1257 + }, + "Taco John's": { + "count": 64 + }, + "Taco Time": { + "count": 82 + }, + "Telepizza": { + "count": 188 + }, + "Tim Horton's": { + "count": 70 + }, + "Tim Hortons": { + "count": 222 + }, + "Wendy's": { + "count": 1346 + }, + "Wendys": { + "count": 141 + }, + "Whataburger": { + "count": 147 + }, + "White Castle": { + "count": 74 + }, + "Wimpy": { + "count": 136 + }, + "Макдоналдс": { + "count": 309 + }, + "Робин Сдобин": { + "count": 72 + }, + "Русский Аппетит": { + "count": 65 + }, + "Столовая": { + "count": 189 + }, + "Теремок": { + "count": 63 + }, + "すき家": { + "count": 245 + }, + "なか卯": { + "count": 52 + }, + "ケンタッキーフライドチキン (Kentucky Fried Chicken)": { + "count": 158, + "name:en": "KFC" + }, + "マクドナルド": { + "count": 632, + "name:en": "McDonald's" + }, + "モスバーガー": { + "count": 102 + }, + "モスバーガー (MOS BURGER)": { + "count": 135 + }, + "吉野家": { + "count": 172 + }, + "松屋": { + "count": 160 + }, + "松屋 (Matsuya)": { + "count": 64 + }, + "肯德基": { + "count": 81 + }, + "麥當勞": { + "count": 51 + } + }, + "fuel": { + "76": { + "count": 282 + }, + "1-2-3": { + "count": 71 + }, + "7 Eleven": { + "count": 87 + }, + "7-11": { + "count": 107 + }, + "7-Eleven": { + "count": 228 + }, + "ABC": { + "count": 80 + }, + "AGIP": { + "count": 122 + }, + "ANP": { + "count": 65 + }, + "ARAL": { + "count": 304 + }, + "AVIA": { + "count": 257 + }, + "Afriquia": { + "count": 90 + }, + "Agip": { + "count": 2532 + }, + "Agrola": { + "count": 72 + }, + "Api": { + "count": 313 + }, + "Aral": { + "count": 1334 + }, + "Aral Tankstelle": { + "count": 67 + }, + "Arco": { + "count": 153 + }, + "Auchan": { + "count": 52 + }, + "Avanti": { + "count": 92 + }, + "Avia": { + "count": 551 + }, + "BFT": { + "count": 88 + }, + "BP": { + "count": 2197 + }, + "BR": { + "count": 81 + }, + "Benzina": { + "count": 70 + }, + "Bliska": { + "count": 149 + }, + "C. C. E. Leclerc": { + "count": 84 + }, + "CAMPSA": { + "count": 630 + }, + "CARREFOUR": { + "count": 75 + }, + "CEPSA": { + "count": 1020 + }, + "COSMO": { + "count": 65 + }, + "Caltex": { + "count": 948 + }, + "Canadian Tire": { + "count": 63 + }, + "Carrefour": { + "count": 128 + }, + "Carrefour Market": { + "count": 68 + }, + "Casey's": { + "count": 57 + }, + "Casey's General Store": { + "count": 105 + }, + "Cenex": { + "count": 106 + }, + "Cepsa": { + "count": 75 + }, + "Chevron": { + "count": 825 + }, + "Circle K": { + "count": 149 + }, + "Citgo": { + "count": 246 + }, + "Coles Express": { + "count": 99 + }, + "Conoco": { + "count": 169 + }, + "Coop": { + "count": 55 + }, + "Copec": { + "count": 496 + }, + "E Leclerc": { + "count": 107 + }, + "E.Leclerc": { + "count": 143 + }, + "EKO": { + "count": 61 + }, + "ENEOS": { + "count": 644 + }, + "ERG": { + "count": 74 + }, + "ESSO": { + "count": 364 + }, + "Eko": { + "count": 58 + }, + "Elan": { + "count": 114 + }, + "Elf": { + "count": 55 + }, + "Eneos": { + "count": 97 + }, + "Engen": { + "count": 224 + }, + "Eni": { + "count": 199 + }, + "Erg": { + "count": 609 + }, + "Esso": { + "count": 3123 + }, + "Esso Express": { + "count": 81 + }, + "Exxon": { + "count": 435 + }, + "Flying V": { + "count": 130 + }, + "Freie Tankstelle": { + "count": 210 + }, + "Fuel": { + "count": 193 + }, + "Fuel Station": { + "count": 65 + }, + "GALP": { + "count": 433 + }, + "Galp": { + "count": 149 + }, + "Gas Station": { + "count": 134 + }, + "Gasolinera": { + "count": 93 + }, + "Gulf": { + "count": 184 + }, + "HEM": { + "count": 216 + }, + "HP": { + "count": 59 + }, + "Hess": { + "count": 110 + }, + "Holiday": { + "count": 96 + }, + "Husky": { + "count": 115 + }, + "IDEMITSU": { + "count": 79 + }, + "IES": { + "count": 62 + }, + "INA": { + "count": 118 + }, + "IP": { + "count": 830 + }, + "Indian Oil": { + "count": 134 + }, + "Indipend.": { + "count": 178 + }, + "Intermarché": { + "count": 417 + }, + "Ipiranga": { + "count": 79 + }, + "Irving": { + "count": 79 + }, + "JET": { + "count": 177 + }, + "JOMO": { + "count": 65 + }, + "Jet": { + "count": 439 + }, + "Kum & Go": { + "count": 76 + }, + "Kwik Trip": { + "count": 100 + }, + "LPG": { + "count": 151 + }, + "Lotos": { + "count": 168 + }, + "LukOil": { + "count": 81 + }, + "Lukoil": { + "count": 586 + }, + "MEROIL": { + "count": 80 + }, + "MOL": { + "count": 216 + }, + "Marathon": { + "count": 154 + }, + "Metano": { + "count": 205 + }, + "Migrol": { + "count": 66 + }, + "Mobil": { + "count": 564 + }, + "Mol": { + "count": 58 + }, + "Morrisons": { + "count": 104 + }, + "Neste": { + "count": 197 + }, + "Neste A24": { + "count": 58 + }, + "OIL!": { + "count": 57 + }, + "OK": { + "count": 159 + }, + "OKKO": { + "count": 56 + }, + "OKQ8": { + "count": 186 + }, + "OMV": { + "count": 718 + }, + "Oilibya": { + "count": 65 + }, + "Orlen": { + "count": 541 + }, + "PEMEX": { + "count": 83 + }, + "PETRONOR": { + "count": 209 + }, + "PTT": { + "count": 175 + }, + "Pemex": { + "count": 274 + }, + "Pertamina": { + "count": 176 + }, + "Petro Canada": { + "count": 189 + }, + "Petro-Canada": { + "count": 277 + }, + "Petrobras": { + "count": 256 + }, + "Petrol": { + "count": 92 + }, + "Petrol Pump": { + "count": 77 + }, + "Petrol Station": { + "count": 60 + }, + "Petrom": { + "count": 253 + }, + "Petron": { + "count": 824 + }, + "Petronas": { + "count": 143 + }, + "Phillips 66": { + "count": 193 + }, + "Phoenix": { + "count": 138 + }, + "Q8": { + "count": 1137 + }, + "QuikTrip": { + "count": 84 + }, + "REPSOL": { + "count": 1610 + }, + "Raiffeisenbank": { + "count": 118 + }, + "Repsol": { + "count": 390 + }, + "Rompetrol": { + "count": 161 + }, + "SHELL": { + "count": 293 + }, + "Sainsbury's": { + "count": 55 + }, + "Sasol": { + "count": 55 + }, + "Sheetz": { + "count": 95 + }, + "Shell": { + "count": 7329 + }, + "Shell Express": { + "count": 67 + }, + "Shell Gas Station": { + "count": 64 + }, + "Shell Station": { + "count": 66 + }, + "Shell express": { + "count": 66 + }, + "Sinclair": { + "count": 78 + }, + "Slovnaft": { + "count": 217 + }, + "Sokimex": { + "count": 59 + }, + "Speedway": { + "count": 124 + }, + "St1": { + "count": 100 + }, + "Stacja paliw": { + "count": 84 + }, + "Star": { + "count": 253 + }, + "Station Avia": { + "count": 63 + }, + "Station Bp": { + "count": 59 + }, + "Station Elf": { + "count": 83 + }, + "Station Esso": { + "count": 79 + }, + "Station Shell": { + "count": 118 + }, + "Station Total": { + "count": 168 + }, + "Statoil": { + "count": 588 + }, + "Stewart's": { + "count": 62 + }, + "Sunoco": { + "count": 307 + }, + "Super U": { + "count": 122 + }, + "TOTAL": { + "count": 68 + }, + "Tamoil": { + "count": 864 + }, + "Tango": { + "count": 119 + }, + "Tankstelle": { + "count": 114 + }, + "Teboil": { + "count": 119 + }, + "Tela": { + "count": 113 + }, + "Terpel": { + "count": 255 + }, + "Tesco": { + "count": 192 + }, + "Texaco": { + "count": 645 + }, + "Tinq": { + "count": 218 + }, + "Topaz": { + "count": 78 + }, + "Total": { + "count": 2262 + }, + "TotalErg": { + "count": 71 + }, + "Turmöl": { + "count": 57 + }, + "Ultramar": { + "count": 119 + }, + "United": { + "count": 83 + }, + "Valero": { + "count": 328 + }, + "WOG": { + "count": 139 + }, + "Wawa": { + "count": 78 + }, + "Westfalen": { + "count": 97 + }, + "YPF": { + "count": 141 + }, + "Z": { + "count": 76 + }, + "bft": { + "count": 168 + }, + "bp": { + "count": 74 + }, + "shell": { + "count": 66 + }, + "star": { + "count": 63 + }, + "ÖMV": { + "count": 100 + }, + "АГЗС": { + "count": 471 + }, + "АЗС": { + "count": 1012 + }, + "Башнефть": { + "count": 52 + }, + "Белоруснефть": { + "count": 55 + }, + "Газпром": { + "count": 104 + }, + "Газпром нефть": { + "count": 152 + }, + "Газпромнефть": { + "count": 471 + }, + "Лукоил": { + "count": 63 + }, + "Лукойл": { + "count": 1409 + }, + "Макпетрол": { + "count": 110 + }, + "НК Альянс": { + "count": 89 + }, + "ОККО": { + "count": 112 + }, + "ОМВ": { + "count": 57 + }, + "ПТК": { + "count": 82 + }, + "Петрол": { + "count": 82 + }, + "Роснефть": { + "count": 594 + }, + "Славнефть": { + "count": 53 + }, + "Сургутнефтегаз": { + "count": 60 + }, + "ТНК": { + "count": 503 + }, + "Татнефтепродукт": { + "count": 55 + }, + "Татнефть": { + "count": 250 + }, + "บางจาก": { + "count": 60 + }, + "ป ต ท": { + "count": 154 + }, + "ปตท": { + "count": 89 + }, + "コスモ石油 (COSMO)": { + "count": 132 + }, + "出光": { + "count": 65 + }, + "出光 (IDEMITSU)": { + "count": 140 + }, + "昭和シェル (Showa-shell)": { + "count": 93 + } + }, + "pharmacy": { + "36,6": { + "count": 107 + }, + "Adler Apotheke": { + "count": 152 + }, + "Adler-Apotheke": { + "count": 150 + }, + "Alte Apotheke": { + "count": 85 + }, + "Apotheke": { + "count": 167 + }, + "Apotheke am Markt": { + "count": 62 + }, + "Apteka": { + "count": 335 + }, + "Bahnhof-Apotheke": { + "count": 64 + }, + "Boots": { + "count": 738 + }, + "Boots Pharmacy": { + "count": 71 + }, + "Brunnen-Apotheke": { + "count": 52 + }, + "Burg-Apotheke": { + "count": 56 + }, + "Bären-Apotheke": { + "count": 72 + }, + "CVS": { + "count": 906 + }, + "CVS Pharmacy": { + "count": 296 + }, + "CVS/Pharmacy": { + "count": 66 + }, + "CVS/pharmacy": { + "count": 132 + }, + "Clicks": { + "count": 110 + }, + "Cruz Verde": { + "count": 96 + }, + "Engel Apotheke": { + "count": 56 + }, + "Engel-Apotheke": { + "count": 70 + }, + "Eurovaistinė": { + "count": 60 + }, + "Farmacia": { + "count": 571 + }, + "Farmacia Comunale": { + "count": 103 + }, + "Farmacias Ahumada": { + "count": 101 + }, + "Farmacias Cruz Verde": { + "count": 84 + }, + "Farmacias SalcoBrand": { + "count": 133 + }, + "Farmacie": { + "count": 79 + }, + "Farmacity": { + "count": 62 + }, + "Farmahorro": { + "count": 61 + }, + "Farmatodo": { + "count": 133 + }, + "Gintarinė vaistinė": { + "count": 100 + }, + "Hirsch-Apotheke": { + "count": 80 + }, + "Hubertus Apotheke": { + "count": 52 + }, + "Hubertus-Apotheke": { + "count": 51 + }, + "Jean Coutu": { + "count": 56 + }, + "Kinney Drugs": { + "count": 67 + }, + "Linden Apotheke": { + "count": 67 + }, + "Linden-Apotheke": { + "count": 91 + }, + "Lindenapotheke": { + "count": 52 + }, + "Ljekarna": { + "count": 55 + }, + "Lloyds Bank": { + "count": 124 + }, + "Lloyds Pharmacy": { + "count": 286 + }, + "Löwen Apotheke": { + "count": 96 + }, + "Löwen-Apotheke": { + "count": 179 + }, + "Löwenapotheke": { + "count": 79 + }, + "Marien Apotheke": { + "count": 82 + }, + "Marien-Apotheke": { + "count": 163 + }, + "Marienapotheke": { + "count": 70 + }, + "Markt Apotheke": { + "count": 59 + }, + "Markt-Apotheke": { + "count": 102 + }, + "Mercury Drug": { + "count": 401 + }, + "Neue Apotheke": { + "count": 111 + }, + "Parafarmacia": { + "count": 53 + }, + "Pharmacie": { + "count": 410 + }, + "Pharmacie Centrale": { + "count": 60 + }, + "Pharmacy": { + "count": 129 + }, + "Pharmaprix": { + "count": 57 + }, + "Pharmasave": { + "count": 63 + }, + "Rathaus Apotheke": { + "count": 63 + }, + "Rathaus-Apotheke": { + "count": 67 + }, + "Rats-Apotheke": { + "count": 85 + }, + "Rite Aid": { + "count": 503 + }, + "Rite Aid Pharmacy": { + "count": 53 + }, + "Rite-Aid": { + "count": 103 + }, + "Rosen Apotheke": { + "count": 55 + }, + "Rosen-Apotheke": { + "count": 98 + }, + "Rosenapotheke": { + "count": 55 + }, + "Rowlands Pharmacy": { + "count": 68 + }, + "SalcoBrand": { + "count": 88 + }, + "Shoppers Drug Mart": { + "count": 396 + }, + "Sonnen Apotheke": { + "count": 69 + }, + "Sonnen-Apotheke": { + "count": 143 + }, + "Sonnenapotheke": { + "count": 94 + }, + "Stadt Apotheke": { + "count": 51 + }, + "Stadt-Apotheke": { + "count": 135 + }, + "Stadtapotheke": { + "count": 114 + }, + "Stern-Apotheke": { + "count": 67 + }, + "Superdrug": { + "count": 108 + }, + "The Generics Pharmacy": { + "count": 82 + }, + "Walgreen's": { + "count": 308 + }, + "Walgreens": { + "count": 1139 + }, + "Айболит": { + "count": 51 + }, + "Аптека": { + "count": 1879 + }, + "Аптека 36,6": { + "count": 113 + }, + "Аптечный пункт": { + "count": 136 + }, + "Вита": { + "count": 107 + }, + "Имплозия": { + "count": 59 + }, + "Классика": { + "count": 66 + }, + "Невис": { + "count": 58 + }, + "Первая помощь": { + "count": 73 + }, + "Радуга": { + "count": 69 + }, + "Ригла": { + "count": 109 + }, + "Фармакор": { + "count": 71 + }, + "Фармация": { + "count": 118 + }, + "Фармленд": { + "count": 80 + }, + "аптека": { + "count": 100 + }, + "ავერსი (Aversi)": { + "count": 63 + }, + "サンドラッグ": { + "count": 52 + }, + "スギ薬局": { + "count": 76 + }, + "トモズ (Tomod's)": { + "count": 82 + }, + "ドラッグてらしま (Drug Terashima)": { + "count": 96 + }, + "マツモトキヨシ": { + "count": 107 + } + }, + "pub": { + "Bar": { + "count": 52 + }, + "Cross Keys": { + "count": 59 + }, + "Irish Pub": { + "count": 82 + }, + "Kings Arms": { + "count": 68 + }, + "Kings Head": { + "count": 56 + }, + "New Inn": { + "count": 89 + }, + "Prince of Wales": { + "count": 76 + }, + "Red Lion": { + "count": 201 + }, + "Rose & Crown": { + "count": 51 + }, + "Rose and Crown": { + "count": 77 + }, + "Royal Hotel": { + "count": 52 + }, + "Royal Oak": { + "count": 149 + }, + "The Anchor": { + "count": 64 + }, + "The Angel": { + "count": 55 + }, + "The Bell": { + "count": 121 + }, + "The Black Horse": { + "count": 94 + }, + "The Bull": { + "count": 67 + }, + "The Castle": { + "count": 56 + }, + "The Chequers": { + "count": 65 + }, + "The Cross Keys": { + "count": 55 + }, + "The Crown": { + "count": 239 + }, + "The Crown Inn": { + "count": 69 + }, + "The Fox": { + "count": 78 + }, + "The George": { + "count": 109 + }, + "The Green Man": { + "count": 52 + }, + "The Greyhound": { + "count": 97 + }, + "The Kings Arms": { + "count": 59 + }, + "The Kings Head": { + "count": 54 + }, + "The New Inn": { + "count": 105 + }, + "The Plough": { + "count": 173 + }, + "The Prince of Wales": { + "count": 51 + }, + "The Queens Head": { + "count": 51 + }, + "The Railway": { + "count": 100 + }, + "The Red Lion": { + "count": 230 + }, + "The Rising Sun": { + "count": 70 + }, + "The Royal Oak": { + "count": 207 + }, + "The Ship": { + "count": 89 + }, + "The Ship Inn": { + "count": 80 + }, + "The Star": { + "count": 74 + }, + "The Swan": { + "count": 148 + }, + "The Victoria": { + "count": 68 + }, + "The Wheatsheaf": { + "count": 120 + }, + "The White Hart": { + "count": 133 + }, + "The White Horse": { + "count": 121 + }, + "The White Lion": { + "count": 64 + }, + "White Hart": { + "count": 90 + }, + "White Horse": { + "count": 80 + }, + "White Lion": { + "count": 53 + } + }, + "restaurant": { + "Adler": { + "count": 154 + }, + "Akropolis": { + "count": 149 + }, + "Alte Post": { + "count": 62 + }, + "Applebee's": { + "count": 374 + }, + "Applebees": { + "count": 93 + }, + "Athen": { + "count": 65 + }, + "Bella Italia": { + "count": 125 + }, + "Bob Evans": { + "count": 99 + }, + "Boston Market": { + "count": 57 + }, + "Boston Pizza": { + "count": 148 + }, + "Buffalo Grill": { + "count": 192 + }, + "Buffalo Wild Wings": { + "count": 147 + }, + "Burger King": { + "count": 141 + }, + "Bären": { + "count": 58 + }, + "California Pizza Kitchen": { + "count": 56 + }, + "Chili's": { + "count": 294 + }, + "China Garden": { + "count": 64 + }, + "China Town": { + "count": 70 + }, + "Chipotle": { + "count": 125 + }, + "Chowking": { + "count": 53 + }, + "Courtepaille": { + "count": 95 + }, + "Cracker Barrel": { + "count": 162 + }, + "Da Vinci": { + "count": 53 + }, + "Dairy Queen": { + "count": 92 + }, + "Delphi": { + "count": 86 + }, + "Denny's": { + "count": 395 + }, + "Deutsches Haus": { + "count": 88 + }, + "Dionysos": { + "count": 68 + }, + "Dolce Vita": { + "count": 74 + }, + "Domino's Pizza": { + "count": 98 + }, + "El Greco": { + "count": 80 + }, + "Flunch": { + "count": 71 + }, + "Frankie & Benny's": { + "count": 58 + }, + "Friendly's": { + "count": 72 + }, + "Gasthaus Adler": { + "count": 51 + }, + "Gasthaus Krone": { + "count": 54 + }, + "Gasthof zur Post": { + "count": 72 + }, + "Golden Corral": { + "count": 91 + }, + "Grüner Baum": { + "count": 116 + }, + "Hard Rock Cafe": { + "count": 66 + }, + "Hellas": { + "count": 54 + }, + "Hippopotamus": { + "count": 91 + }, + "Hirsch": { + "count": 77 + }, + "Hirschen": { + "count": 83 + }, + "Hong Kong": { + "count": 81 + }, + "Hooters": { + "count": 94 + }, + "IHOP": { + "count": 286 + }, + "KFC": { + "count": 191 + }, + "Kantine": { + "count": 52 + }, + "Kelsey's": { + "count": 56 + }, + "Kirchenwirt": { + "count": 79 + }, + "Kreuz": { + "count": 75 + }, + "Krone": { + "count": 173 + }, + "La Cantina": { + "count": 54 + }, + "La Dolce Vita": { + "count": 68 + }, + "La Perla": { + "count": 66 + }, + "La Piazza": { + "count": 67 + }, + "Lamm": { + "count": 67 + }, + "Linde": { + "count": 102 + }, + "Lindenhof": { + "count": 82 + }, + "Little Chef": { + "count": 68 + }, + "Longhorn Steakhouse": { + "count": 56 + }, + "Lotus": { + "count": 64 + }, + "Löwen": { + "count": 114 + }, + "Mamma Mia": { + "count": 61 + }, + "Mandarin": { + "count": 64 + }, + "Mang Inasal": { + "count": 81 + }, + "McDonald's": { + "count": 297 + }, + "Mensa": { + "count": 87 + }, + "Milano": { + "count": 52 + }, + "Mykonos": { + "count": 59 + }, + "Nando's": { + "count": 162 + }, + "Nandos": { + "count": 57 + }, + "Ochsen": { + "count": 93 + }, + "Olive Garden": { + "count": 241 + }, + "Olympia": { + "count": 78 + }, + "Outback Steakhouse": { + "count": 189 + }, + "Panda Express": { + "count": 53 + }, + "Panera Bread": { + "count": 171 + }, + "Panorama": { + "count": 60 + }, + "Peking": { + "count": 54 + }, + "Perkins": { + "count": 96 + }, + "Pizza": { + "count": 81 + }, + "Pizza Express": { + "count": 241 + }, + "Pizza Hut": { + "count": 1038 + }, + "Pizzeria": { + "count": 302 + }, + "Poseidon": { + "count": 111 + }, + "Prezzo": { + "count": 68 + }, + "Ratskeller": { + "count": 148 + }, + "Red Lobster": { + "count": 205 + }, + "Red Robin": { + "count": 169 + }, + "Restaurant": { + "count": 116 + }, + "Restaurante": { + "count": 62 + }, + "Rhodos": { + "count": 80 + }, + "Roma": { + "count": 60 + }, + "Ruby Tuesday": { + "count": 137 + }, + "Rössli": { + "count": 68 + }, + "Sakura": { + "count": 69 + }, + "San Marco": { + "count": 66 + }, + "Schwarzer Adler": { + "count": 58 + }, + "Schützenhaus": { + "count": 129 + }, + "Seeblick": { + "count": 51 + }, + "Shanghai": { + "count": 79 + }, + "Shari's": { + "count": 63 + }, + "Sonne": { + "count": 123 + }, + "Sportheim": { + "count": 57 + }, + "Spur": { + "count": 60 + }, + "Sternen": { + "count": 78 + }, + "Subway": { + "count": 470 + }, + "Swiss Chalet": { + "count": 101 + }, + "TGI Friday's": { + "count": 73 + }, + "TGI Fridays": { + "count": 65 + }, + "Taco Bell": { + "count": 82 + }, + "Taj Mahal": { + "count": 101 + }, + "Texas Roadhouse": { + "count": 96 + }, + "The Keg": { + "count": 52 + }, + "Traube": { + "count": 65 + }, + "Vapiano": { + "count": 81 + }, + "Village Inn": { + "count": 88 + }, + "Vips": { + "count": 51 + }, + "Waffle House": { + "count": 182 + }, + "Wagamama": { + "count": 58 + }, + "Waldschänke": { + "count": 55 + }, + "Wendy's": { + "count": 86 + }, + "Zizzi": { + "count": 62 + }, + "Zum Löwen": { + "count": 82 + }, + "Zur Krone": { + "count": 92 + }, + "Zur Linde": { + "count": 200 + }, + "Zur Post": { + "count": 117 + }, + "Zur Sonne": { + "count": 73 + }, + "Евразия": { + "count": 98 + }, + "Столовая": { + "count": 126 + }, + "Якитория": { + "count": 74 + }, + "ガスト": { + "count": 145 + }, + "ガスト (Gusto)": { + "count": 59 + }, + "サイゼリヤ": { + "count": 81 + }, + "ジョナサン": { + "count": 56 + }, + "デニーズ": { + "count": 73 + }, + "바다횟집 (Bada Fish Restaurant)": { + "count": 55 + } + } + }, + "shop": { + "alcohol": { + "Alko": { + "count": 141 + }, + "BWS": { + "count": 58 + }, + "Bargain Booze": { + "count": 59 + }, + "Botilleria": { + "count": 75 + }, + "Gall & Gall": { + "count": 514 + }, + "LCBO": { + "count": 214 + }, + "Nicolas": { + "count": 109 + }, + "SAQ": { + "count": 66 + }, + "Systembolaget": { + "count": 199 + }, + "The Beer Store": { + "count": 141 + }, + "Ароматный мир": { + "count": 56 + }, + "Живое пиво": { + "count": 62 + } + }, + "bakery": { + "Anker": { + "count": 65 + }, + "Backwerk": { + "count": 94 + }, + "Bakery": { + "count": 76 + }, + "Boulangerie": { + "count": 232 + }, + "Boulangerie Patisserie": { + "count": 76 + }, + "Bäcker": { + "count": 65 + }, + "Bäckerei": { + "count": 163 + }, + "Bäckerei Schmidt": { + "count": 56 + }, + "Dat Backhus": { + "count": 62 + }, + "Der Beck": { + "count": 97 + }, + "Goeken backen": { + "count": 52 + }, + "Goldilocks": { + "count": 55 + }, + "Greggs": { + "count": 255 + }, + "Hofpfisterei": { + "count": 108 + }, + "Ihle": { + "count": 76 + }, + "K&U": { + "count": 54 + }, + "Kamps": { + "count": 252 + }, + "Müller": { + "count": 91 + }, + "Oebel": { + "count": 57 + }, + "Panaderia": { + "count": 84 + }, + "Panadería": { + "count": 70 + }, + "Panificio": { + "count": 63 + }, + "Paul": { + "count": 74 + }, + "Piekarnia": { + "count": 52 + }, + "Stadtbäckerei": { + "count": 58 + }, + "Stadtbäckerei Junge": { + "count": 53 + }, + "Steinecke": { + "count": 135 + }, + "Thürmann": { + "count": 57 + }, + "Хлеб": { + "count": 81 + } + }, + "books": { + "Barnes & Noble": { + "count": 162 + }, + "Barnes and Noble": { + "count": 77 + }, + "Bruna": { + "count": 55 + }, + "Libro": { + "count": 59 + }, + "Thalia": { + "count": 122 + }, + "Waterstones": { + "count": 85 + }, + "Weltbild": { + "count": 72 + }, + "Книги": { + "count": 110 + } + }, + "car_repair": { + "A.T.U.": { + "count": 55 + }, + "ATU": { + "count": 202 + }, + "AutoZone": { + "count": 51 + }, + "Carglass": { + "count": 99 + }, + "Euromaster": { + "count": 80 + }, + "Feu Vert": { + "count": 104 + }, + "Firestone": { + "count": 77 + }, + "Garage": { + "count": 57 + }, + "Jiffy Lube": { + "count": 178 + }, + "Kwik Fit": { + "count": 73 + }, + "Midas": { + "count": 171 + }, + "Norauto": { + "count": 141 + }, + "O'Reilly Auto Parts": { + "count": 62 + }, + "Peugeot": { + "count": 80 + }, + "Pit Stop": { + "count": 55 + }, + "Renault": { + "count": 158 + }, + "Roady": { + "count": 52 + }, + "Speedy": { + "count": 104 + }, + "ÖAMTC": { + "count": 51 + }, + "Автозапчасти": { + "count": 172 + }, + "Автосервис": { + "count": 314 + }, + "СТО": { + "count": 338 + }, + "Шиномонтаж": { + "count": 995 + } + }, + "car": { + "Audi": { + "count": 101 + }, + "BMW": { + "count": 139 + }, + "Chevrolet": { + "count": 75 + }, + "Citroen": { + "count": 131 + }, + "Citroën": { + "count": 128 + }, + "Fiat": { + "count": 83 + }, + "Ford": { + "count": 216 + }, + "Honda": { + "count": 134 + }, + "Hyundai": { + "count": 146 + }, + "Mazda": { + "count": 96 + }, + "Mercedes": { + "count": 75 + }, + "Mercedes Benz": { + "count": 56 + }, + "Mercedes-Benz": { + "count": 87 + }, + "Mitsubishi": { + "count": 66 + }, + "Nissan": { + "count": 173 + }, + "Opel": { + "count": 161 + }, + "Peugeot": { + "count": 291 + }, + "Renault": { + "count": 356 + }, + "Skoda": { + "count": 92 + }, + "Suzuki": { + "count": 73 + }, + "Toyota": { + "count": 238 + }, + "VW": { + "count": 65 + }, + "Volkswagen": { + "count": 135 + }, + "Volvo": { + "count": 82 + }, + "Автозапчасти": { + "count": 290 + }, + "Автомагазин": { + "count": 64 + }, + "Шиномонтаж": { + "count": 263 + } + }, + "chemist": { + "BIPA": { + "count": 99 + }, + "Bipa": { + "count": 177 + }, + "Boots": { + "count": 94 + }, + "DM": { + "count": 292 + }, + "Douglas": { + "count": 62 + }, + "Etos": { + "count": 465 + }, + "Ihr Platz": { + "count": 76 + }, + "Kruidvat": { + "count": 114 + }, + "Müller": { + "count": 195 + }, + "Rossmann": { + "count": 1623 + }, + "Schlecker": { + "count": 201 + }, + "Superdrug": { + "count": 64 + }, + "dm": { + "count": 456 + }, + "dm Drogeriemarkt": { + "count": 52 + }, + "dm-drogerie markt": { + "count": 73 + } + }, + "clothes": { + "AWG": { + "count": 62 + }, + "Ackermans": { + "count": 91 + }, + "Adidas": { + "count": 81 + }, + "Adler": { + "count": 53 + }, + "American Apparel": { + "count": 53 + }, + "Benetton": { + "count": 96 + }, + "Bonita": { + "count": 143 + }, + "C&A": { + "count": 484 + }, + "Calzedonia": { + "count": 56 + }, + "Cecil": { + "count": 51 + }, + "Celio": { + "count": 71 + }, + "Charles Vögele": { + "count": 63 + }, + "Deichmann": { + "count": 61 + }, + "Dorothy Perkins": { + "count": 51 + }, + "Edgars": { + "count": 111 + }, + "Ernsting's Family": { + "count": 81 + }, + "Ernsting's family": { + "count": 130 + }, + "Ernstings Family": { + "count": 75 + }, + "Esprit": { + "count": 209 + }, + "Etam": { + "count": 51 + }, + "Gap": { + "count": 74 + }, + "Gerry Weber": { + "count": 68 + }, + "H & M": { + "count": 51 + }, + "H&M": { + "count": 556 + }, + "Jack & Jones": { + "count": 51 + }, + "Jack Wolfskin": { + "count": 55 + }, + "Jet": { + "count": 62 + }, + "Jules": { + "count": 61 + }, + "KIK": { + "count": 223 + }, + "KiK": { + "count": 281 + }, + "Kiabi": { + "count": 139 + }, + "Kik": { + "count": 372 + }, + "Kohl's": { + "count": 101 + }, + "Lacoste": { + "count": 66 + }, + "Levi's": { + "count": 58 + }, + "Lindex": { + "count": 70 + }, + "Mango": { + "count": 115 + }, + "Matalan": { + "count": 83 + }, + "Mexx": { + "count": 65 + }, + "Mr Price": { + "count": 86 + }, + "NKD": { + "count": 444 + }, + "New Look": { + "count": 115 + }, + "New Yorker": { + "count": 173 + }, + "Next": { + "count": 163 + }, + "Old Navy": { + "count": 154 + }, + "Orsay": { + "count": 71 + }, + "Peacocks": { + "count": 86 + }, + "Pep": { + "count": 136 + }, + "Pimkie": { + "count": 72 + }, + "Primark": { + "count": 87 + }, + "Promod": { + "count": 71 + }, + "River Island": { + "count": 56 + }, + "Ross": { + "count": 77 + }, + "Street One": { + "count": 74 + }, + "TK Maxx": { + "count": 73 + }, + "Takko": { + "count": 377 + }, + "Takko Fashion": { + "count": 99 + }, + "Tally Weijl": { + "count": 67 + }, + "Tommy Hilfiger": { + "count": 65 + }, + "Truworths": { + "count": 64 + }, + "Ulla Popken": { + "count": 59 + }, + "United Colors of Benetton": { + "count": 90 + }, + "Urban Outfitters": { + "count": 61 + }, + "Vero Moda": { + "count": 89 + }, + "Vögele": { + "count": 129 + }, + "Winners": { + "count": 59 + }, + "Woolworths": { + "count": 116 + }, + "Zara": { + "count": 199 + }, + "Zeeman": { + "count": 108 + }, + "kik": { + "count": 272 + }, + "s.Oliver": { + "count": 53 + }, + "Одежда": { + "count": 68 + }, + "洋服の青山": { + "count": 86 + } + }, + "computer": { + "DNS": { + "count": 119 + }, + "PC World": { + "count": 58 + } + }, + "convenience": { + "24 часа": { + "count": 56 + }, + "7 Eleven": { + "count": 326 + }, + "7-11": { + "count": 983 + }, + "7-ELEVEN": { + "count": 54 + }, + "7-Eleven": { + "count": 2360 + }, + "7-eleven": { + "count": 51 + }, + "8 à Huit": { + "count": 57 + }, + "ABC": { + "count": 138 + }, + "Alepa": { + "count": 63 + }, + "Alfamart": { + "count": 74 + }, + "Almacen": { + "count": 201 + }, + "BP": { + "count": 157 + }, + "Biedronka": { + "count": 67 + }, + "Boutique": { + "count": 59 + }, + "CBA": { + "count": 122 + }, + "COOP": { + "count": 122 + }, + "COOP Jednota": { + "count": 160 + }, + "CVS": { + "count": 64 + }, + "Carrefour City": { + "count": 54 + }, + "Carrefour Express": { + "count": 73 + }, + "Casey's General Store": { + "count": 80 + }, + "Casino": { + "count": 85 + }, + "Centra": { + "count": 112 + }, + "Central Convenience Store": { + "count": 52 + }, + "Chevron": { + "count": 57 + }, + "Circle K": { + "count": 269 + }, + "Citgo": { + "count": 63 + }, + "Co-Op": { + "count": 67 + }, + "Co-op": { + "count": 194 + }, + "Coop": { + "count": 244 + }, + "Coop Jednota": { + "count": 58 + }, + "Costcutter": { + "count": 272 + }, + "Cumberland Farms": { + "count": 62 + }, + "Delikatesy": { + "count": 77 + }, + "Dollar General": { + "count": 101 + }, + "Dorfladen": { + "count": 76 + }, + "Epicerie": { + "count": 64 + }, + "Esso": { + "count": 64 + }, + "Family Mart": { + "count": 168 + }, + "FamilyMart": { + "count": 321 + }, + "Food Mart": { + "count": 88 + }, + "Four Square": { + "count": 51 + }, + "Franprix": { + "count": 64 + }, + "Groszek": { + "count": 57 + }, + "Hasty Market": { + "count": 53 + }, + "Indomaret": { + "count": 126 + }, + "Jednota": { + "count": 56 + }, + "K-Market": { + "count": 57 + }, + "Kiosk": { + "count": 57 + }, + "Konzum": { + "count": 164 + }, + "Kum & Go": { + "count": 55 + }, + "Kwik Trip": { + "count": 69 + }, + "LAWSON": { + "count": 239 + }, + "Lawson": { + "count": 158 + }, + "Lewiatan": { + "count": 111 + }, + "Lidl": { + "count": 81 + }, + "Londis": { + "count": 341 + }, + "Mac's": { + "count": 147 + }, + "Mace": { + "count": 111 + }, + "Market": { + "count": 73 + }, + "McColl's": { + "count": 97 + }, + "Mercator": { + "count": 59 + }, + "Mini Market": { + "count": 113 + }, + "Mini Stop": { + "count": 121 + }, + "Minimarket": { + "count": 77 + }, + "Ministop": { + "count": 89 + }, + "Mobil": { + "count": 63 + }, + "Nisa": { + "count": 52 + }, + "Nisa Local": { + "count": 71 + }, + "OXXO": { + "count": 196 + }, + "One Stop": { + "count": 142 + }, + "Oxxo": { + "count": 418 + }, + "Petit Casino": { + "count": 227 + }, + "Picard": { + "count": 53 + }, + "Potraviny": { + "count": 243 + }, + "Premier": { + "count": 123 + }, + "Proxi": { + "count": 114 + }, + "QuikTrip": { + "count": 59 + }, + "Rossmann": { + "count": 62 + }, + "SPAR": { + "count": 185 + }, + "Sainsbury's Local": { + "count": 96 + }, + "Sale": { + "count": 80 + }, + "Select": { + "count": 58 + }, + "Seven Eleven": { + "count": 124 + }, + "Shell": { + "count": 241 + }, + "Siwa": { + "count": 212 + }, + "Sklep": { + "count": 61 + }, + "Sklep Spożywczy": { + "count": 52 + }, + "Sklep spożywczo-przemysłowy": { + "count": 54 + }, + "Sklep spożywczy": { + "count": 129 + }, + "Spar": { + "count": 888 + }, + "Społem": { + "count": 84 + }, + "Spożywczy": { + "count": 67 + }, + "Statoil": { + "count": 69 + }, + "Stewart's": { + "count": 254 + }, + "Stores": { + "count": 61 + }, + "Studenac": { + "count": 74 + }, + "Sunkus": { + "count": 63 + }, + "Tchibo": { + "count": 54 + }, + "Tesco": { + "count": 55 + }, + "Tesco Express": { + "count": 415 + }, + "The Co-operative Food": { + "count": 109 + }, + "Tienda": { + "count": 79 + }, + "Valintatalo": { + "count": 62 + }, + "Vival": { + "count": 182 + }, + "Volg": { + "count": 110 + }, + "Walgreens": { + "count": 89 + }, + "Wawa": { + "count": 129 + }, + "abc": { + "count": 61 + }, + "Żabka": { + "count": 497 + }, + "Авоська": { + "count": 53 + }, + "Березка": { + "count": 71 + }, + "Весна": { + "count": 56 + }, + "Визит": { + "count": 55 + }, + "Виктория": { + "count": 67 + }, + "Гастроном": { + "count": 136 + }, + "Дикси": { + "count": 118 + }, + "Кировский": { + "count": 69 + }, + "Копеечка": { + "count": 56 + }, + "Кулинария": { + "count": 53 + }, + "Магазин": { + "count": 760 + }, + "Магнит": { + "count": 645 + }, + "Мария-Ра": { + "count": 76 + }, + "Мечта": { + "count": 53 + }, + "Минимаркет": { + "count": 97 + }, + "Монетка": { + "count": 59 + }, + "Надежда": { + "count": 54 + }, + "Перекрёсток": { + "count": 51 + }, + "Продукти": { + "count": 153 + }, + "Продуктовый": { + "count": 65 + }, + "Продуктовый магазин": { + "count": 87 + }, + "Продукты": { + "count": 3813 + }, + "Пятерочка": { + "count": 106 + }, + "Пятёрочка": { + "count": 271 + }, + "Радуга": { + "count": 80 + }, + "Смак": { + "count": 70 + }, + "Теремок": { + "count": 53 + }, + "Универсам": { + "count": 75 + }, + "магазин": { + "count": 102 + }, + "продукты": { + "count": 113 + }, + "เซเว่นอีเลฟเว่น": { + "count": 193 + }, + "მარკეტი (Market)": { + "count": 145 + }, + "サンクス": { + "count": 373 + }, + "サンクス (sunkus)": { + "count": 144 + }, + "サークルK": { + "count": 322 + }, + "サークルK (CircleK)": { + "count": 128 + }, + "スリーエフ": { + "count": 84 + }, + "セイコーマート (Seicomart)": { + "count": 52 + }, + "セブン-イレブン": { + "count": 169 + }, + "セブン-イレブン (Seven-Eleven)": { + "count": 1352 + }, + "セブン-イレブン (Seven-Eleven) ": { + "count": 53 + }, + "セブンイレブン": { + "count": 1168 + }, + "デイリーヤマザキ": { + "count": 124 + }, + "ファミリーマート": { + "count": 883 + }, + "ファミリーマート (FamilyMart)": { + "count": 410 + }, + "ファミリーマート(FamilyMart)": { + "count": 59 + }, + "ミニストップ": { + "count": 204 + }, + "ミニストップ (MINISTOP)": { + "count": 78 + }, + "ローソン": { + "count": 828 + }, + "ローソン (LAWSON)": { + "count": 571 + }, + "ローソンストア100": { + "count": 65 + }, + "ローソンストア100 (LAWSON STORE 100)": { + "count": 84 + }, + "全家": { + "count": 60 + }, + "全家便利商店": { + "count": 104 + } + }, + "department_store": { + "Big W": { + "count": 51 + }, + "Canadian Tire": { + "count": 69 + }, + "Costco": { + "count": 79 + }, + "Debenhams": { + "count": 65 + }, + "Galeria Kaufhof": { + "count": 57 + }, + "Karstadt": { + "count": 62 + }, + "Kmart": { + "count": 120 + }, + "Kohl's": { + "count": 123 + }, + "Macy's": { + "count": 119 + }, + "Marks & Spencer": { + "count": 59 + }, + "Sears": { + "count": 208 + }, + "Target": { + "count": 468 + }, + "Walmart": { + "count": 523 + }, + "Woolworth": { + "count": 74 + }, + "Универмаг": { + "count": 57 + } + }, + "doityourself": { + "Ace Hardware": { + "count": 130 + }, + "B&Q": { + "count": 222 + }, + "Bauhaus": { + "count": 178 + }, + "Baumax": { + "count": 94 + }, + "Brico": { + "count": 99 + }, + "Bricomarché": { + "count": 213 + }, + "Bricorama": { + "count": 59 + }, + "Bunnings Warehouse": { + "count": 87 + }, + "Canadian Tire": { + "count": 92 + }, + "Castorama": { + "count": 160 + }, + "Gamma": { + "count": 105 + }, + "Hagebau": { + "count": 61 + }, + "Hagebaumarkt": { + "count": 109 + }, + "Hellweg": { + "count": 62 + }, + "Home Depot": { + "count": 594 + }, + "Home Hardware": { + "count": 66 + }, + "Homebase": { + "count": 224 + }, + "Hornbach": { + "count": 124 + }, + "Hubo": { + "count": 72 + }, + "Lagerhaus": { + "count": 71 + }, + "Leroy Merlin": { + "count": 197 + }, + "Lowe's": { + "count": 251 + }, + "Lowes": { + "count": 880 + }, + "Max Bahr": { + "count": 86 + }, + "Menards": { + "count": 62 + }, + "Mr Bricolage": { + "count": 87 + }, + "OBI": { + "count": 316 + }, + "Obi": { + "count": 102 + }, + "Praktiker": { + "count": 187 + }, + "Rona": { + "count": 57 + }, + "The Home Depot": { + "count": 195 + }, + "Toom": { + "count": 69 + }, + "Toom Baumarkt": { + "count": 65 + }, + "Weldom": { + "count": 70 + }, + "Wickes": { + "count": 120 + }, + "Стройматериалы": { + "count": 165 + }, + "Хозтовары": { + "count": 68 + } + }, + "electronics": { + "Best Buy": { + "count": 297 + }, + "Comet": { + "count": 62 + }, + "Currys": { + "count": 80 + }, + "Darty": { + "count": 71 + }, + "Euronics": { + "count": 109 + }, + "Expert": { + "count": 117 + }, + "Future Shop": { + "count": 69 + }, + "Maplin": { + "count": 63 + }, + "Media Markt": { + "count": 162 + }, + "MediaMarkt": { + "count": 59 + }, + "Mediamarkt": { + "count": 52 + }, + "Radio Shack": { + "count": 170 + }, + "RadioShack": { + "count": 56 + }, + "Saturn": { + "count": 147 + }, + "М.Видео": { + "count": 74 + }, + "Эльдорадо": { + "count": 171 + } + }, + "furniture": { + "But": { + "count": 58 + }, + "Conforama": { + "count": 90 + }, + "Dänisches Bettenlager": { + "count": 290 + }, + "IKEA": { + "count": 162 + }, + "Jysk": { + "count": 92 + }, + "Matratzen Concord": { + "count": 51 + }, + "Roller": { + "count": 77 + }, + "Мебель": { + "count": 190 + } + }, + "hairdresser": { + "Barber Shop": { + "count": 72 + }, + "Coiffeur": { + "count": 60 + }, + "Franck Provost": { + "count": 64 + }, + "Friseur": { + "count": 127 + }, + "Great Clips": { + "count": 155 + }, + "Klier": { + "count": 105 + }, + "Peluqueria": { + "count": 56 + }, + "Supercuts": { + "count": 89 + }, + "Парикмахерская": { + "count": 485 + }, + "Салон красоты": { + "count": 65 + } + }, + "hardware": { + "1000 мелочей": { + "count": 53 + }, + "Ace Hardware": { + "count": 82 + }, + "Home Depot": { + "count": 81 + }, + "Хозтовары": { + "count": 143 + } + }, + "hifi": { + "Best Buy": { + "count": 94 + }, + "Media Markt": { + "count": 57 + } + }, + "jewelry": { + "Bijou Brigitte": { + "count": 53 + }, + "Christ": { + "count": 55 + }, + "Swarovski": { + "count": 70 + } + }, + "mobile_phone": { + "AT&T": { + "count": 95 + }, + "Bell": { + "count": 191 + }, + "Bitė": { + "count": 73 + }, + "Carphone Warehouse": { + "count": 109 + }, + "Movistar": { + "count": 55 + }, + "O2": { + "count": 180 + }, + "Orange": { + "count": 220 + }, + "SFR": { + "count": 70 + }, + "Sprint": { + "count": 91 + }, + "T-Mobile": { + "count": 158 + }, + "The Phone House": { + "count": 81 + }, + "Verizon Wireless": { + "count": 97 + }, + "Vodafone": { + "count": 311 + }, + "au": { + "count": 56 + }, + "Билайн": { + "count": 113 + }, + "Евросеть": { + "count": 466 + }, + "МТС": { + "count": 311 + }, + "Мегафон": { + "count": 227 + }, + "Связной": { + "count": 396 + }, + "ソフトバンクショップ (SoftBank shop)": { + "count": 256 + }, + "ドコモショップ (docomo shop)": { + "count": 113 + } + }, + "optician": { + "Alain Afflelou": { + "count": 68 + }, + "Apollo Optik": { + "count": 142 + }, + "Fielmann": { + "count": 219 + }, + "Krys": { + "count": 65 + }, + "Optic 2000": { + "count": 87 + }, + "Specsavers": { + "count": 109 + }, + "Vision Express": { + "count": 54 + }, + "Оптика": { + "count": 165 + } + }, + "pet": { + "Das Futterhaus": { + "count": 61 + }, + "Fressnapf": { + "count": 300 + }, + "PetSmart": { + "count": 98 + }, + "Petco": { + "count": 79 + }, + "Pets at Home": { + "count": 53 + }, + "Petsmart": { + "count": 52 + }, + "Зоомагазин": { + "count": 95 + } + }, + "shoes": { + "Bata": { + "count": 88 + }, + "Brantano": { + "count": 67 + }, + "Clarks": { + "count": 97 + }, + "Deichmann": { + "count": 574 + }, + "Ecco": { + "count": 53 + }, + "Foot Locker": { + "count": 74 + }, + "La Halle aux Chaussures": { + "count": 63 + }, + "Payless Shoe Source": { + "count": 52 + }, + "Quick Schuh": { + "count": 69 + }, + "Reno": { + "count": 170 + }, + "Salamander": { + "count": 52 + }, + "Обувь": { + "count": 93 + } + }, + "sports": { + "Decathlon": { + "count": 213 + }, + "Dick's Sporting Goods": { + "count": 58 + }, + "Décathlon": { + "count": 73 + }, + "Intersport": { + "count": 265 + }, + "Sport 2000": { + "count": 83 + }, + "Sports Authority": { + "count": 63 + }, + "Спортмастер": { + "count": 80 + } + }, + "stationery": { + "McPaper": { + "count": 79 + }, + "Office Depot": { + "count": 83 + }, + "Staples": { + "count": 262 + }, + "Канцтовары": { + "count": 57 + } + }, + "supermarket": { + "AD Delhaize": { + "count": 66 + }, + "ADEG": { + "count": 64 + }, + "ALDI": { + "count": 1051 + }, + "ALDI Süd": { + "count": 77 + }, + "ASDA": { + "count": 178 + }, + "Albert": { + "count": 185 + }, + "Albert Heijn": { + "count": 445 + }, + "Albertson's": { + "count": 96 + }, + "Albertsons": { + "count": 133 + }, + "Aldi": { + "count": 4131 + }, + "Aldi Nord": { + "count": 194 + }, + "Aldi Süd": { + "count": 512 + }, + "Alimerka": { + "count": 58 + }, + "Asda": { + "count": 221 + }, + "Auchan": { + "count": 144 + }, + "BILLA": { + "count": 70 + }, + "Biedronka": { + "count": 1227 + }, + "Billa": { + "count": 1347 + }, + "Bodega Aurrera": { + "count": 70 + }, + "Budgens": { + "count": 86 + }, + "C1000": { + "count": 332 + }, + "CBA": { + "count": 160 + }, + "COOP": { + "count": 187 + }, + "COOP Jednota": { + "count": 67 + }, + "Caprabo": { + "count": 96 + }, + "Carrefour": { + "count": 935 + }, + "Carrefour City": { + "count": 109 + }, + "Carrefour Contact": { + "count": 73 + }, + "Carrefour Express": { + "count": 314 + }, + "Carrefour Market": { + "count": 640 + }, + "Carrefour market": { + "count": 79 + }, + "Casino": { + "count": 254 + }, + "Centra": { + "count": 51 + }, + "Champion": { + "count": 63 + }, + "Checkers": { + "count": 124 + }, + "Co-Op": { + "count": 112 + }, + "Co-op": { + "count": 527 + }, + "Co-operative": { + "count": 102 + }, + "Coles": { + "count": 381 + }, + "Colruyt": { + "count": 186 + }, + "Combi": { + "count": 56 + }, + "Conad": { + "count": 294 + }, + "Condis": { + "count": 65 + }, + "Consum": { + "count": 123 + }, + "Continente": { + "count": 66 + }, + "Coop": { + "count": 1119 + }, + "Coop Jednota": { + "count": 68 + }, + "Coop Konsum": { + "count": 78 + }, + "Costco": { + "count": 133 + }, + "Costcutter": { + "count": 62 + }, + "Countdown": { + "count": 90 + }, + "DIA": { + "count": 104 + }, + "DM": { + "count": 51 + }, + "Delhaize": { + "count": 219 + }, + "Delikatesy Centrum": { + "count": 56 + }, + "Denner": { + "count": 256 + }, + "Despar": { + "count": 143 + }, + "Dia": { + "count": 582 + }, + "Diska": { + "count": 69 + }, + "Dunnes Stores": { + "count": 70 + }, + "Día": { + "count": 63 + }, + "E-Center": { + "count": 67 + }, + "E.Leclerc": { + "count": 341 + }, + "EDEKA": { + "count": 498 + }, + "Edeka": { + "count": 1726 + }, + "Edeka Neukauf": { + "count": 85 + }, + "El Árbol": { + "count": 71 + }, + "Eroski": { + "count": 203 + }, + "Esselunga": { + "count": 82 + }, + "Eurospar": { + "count": 260 + }, + "Eurospin": { + "count": 153 + }, + "Extra": { + "count": 74 + }, + "Fakta": { + "count": 215 + }, + "Famiglia Cooperativa": { + "count": 62 + }, + "Famila": { + "count": 127 + }, + "Farmfoods": { + "count": 63 + }, + "Feneberg": { + "count": 61 + }, + "Food Basics": { + "count": 73 + }, + "Food Lion": { + "count": 175 + }, + "Foodland": { + "count": 92 + }, + "Foodworks": { + "count": 55 + }, + "Franprix": { + "count": 298 + }, + "Fred Meyer": { + "count": 63 + }, + "Fressnapf": { + "count": 66 + }, + "Føtex": { + "count": 67 + }, + "Game": { + "count": 53 + }, + "Giant": { + "count": 187 + }, + "Giant Eagle": { + "count": 69 + }, + "Géant Casino": { + "count": 53 + }, + "HEB": { + "count": 75 + }, + "HIT": { + "count": 62 + }, + "Hannaford": { + "count": 55 + }, + "Harris Teeter": { + "count": 84 + }, + "Hemköp": { + "count": 83 + }, + "Hofer": { + "count": 451 + }, + "Hoogvliet": { + "count": 52 + }, + "Hy-Vee": { + "count": 67 + }, + "ICA": { + "count": 195 + }, + "IGA": { + "count": 333 + }, + "Iceland": { + "count": 297 + }, + "Intermarche": { + "count": 107 + }, + "Intermarché": { + "count": 1097 + }, + "Intermarché Super": { + "count": 58 + }, + "Interspar": { + "count": 142 + }, + "Irma": { + "count": 61 + }, + "Jumbo": { + "count": 175 + }, + "K+K": { + "count": 104 + }, + "Kaiser's": { + "count": 167 + }, + "Kaisers": { + "count": 88 + }, + "Kaufland": { + "count": 996 + }, + "Kaufpark": { + "count": 100 + }, + "King Soopers": { + "count": 69 + }, + "Kiwi": { + "count": 164 + }, + "Konsum": { + "count": 139 + }, + "Konzum": { + "count": 225 + }, + "Kroger": { + "count": 280 + }, + "Kvickly": { + "count": 54 + }, + "LIDL": { + "count": 901 + }, + "Leader Price": { + "count": 242 + }, + "Leclerc": { + "count": 132 + }, + "Lewiatan": { + "count": 88 + }, + "Lider": { + "count": 65 + }, + "Lidl": { + "count": 6116 + }, + "M-Preis": { + "count": 81 + }, + "MPreis": { + "count": 54 + }, + "Makro": { + "count": 130 + }, + "Markant": { + "count": 91 + }, + "Marktkauf": { + "count": 133 + }, + "Match": { + "count": 146 + }, + "Maxi": { + "count": 100 + }, + "Maxima": { + "count": 107 + }, + "Maxima X": { + "count": 111 + }, + "Meijer": { + "count": 74 + }, + "Mercadona": { + "count": 707 + }, + "Mercator": { + "count": 119 + }, + "Merkur": { + "count": 113 + }, + "Metro": { + "count": 250 + }, + "Migros": { + "count": 433 + }, + "Minipreço": { + "count": 99 + }, + "Monoprix": { + "count": 194 + }, + "Morrisons": { + "count": 405 + }, + "NETTO": { + "count": 134 + }, + "NORMA": { + "count": 113 + }, + "NP": { + "count": 153 + }, + "Nah & Frisch": { + "count": 76 + }, + "Nahkauf": { + "count": 166 + }, + "Netto": { + "count": 3736 + }, + "Netto Marken-Discount": { + "count": 262 + }, + "Netto Markendiscount": { + "count": 54 + }, + "Neukauf": { + "count": 81 + }, + "New World": { + "count": 67 + }, + "No Frills": { + "count": 101 + }, + "Norma": { + "count": 1054 + }, + "PENNY": { + "count": 78 + }, + "Pam": { + "count": 53 + }, + "Penny": { + "count": 1766 + }, + "Penny Market": { + "count": 343 + }, + "Penny Markt": { + "count": 367 + }, + "Penny market": { + "count": 54 + }, + "Penny-Markt": { + "count": 97 + }, + "Petit Casino": { + "count": 106 + }, + "Pick 'n Pay": { + "count": 79 + }, + "Pick n Pay": { + "count": 158 + }, + "Piggly Wiggly": { + "count": 53 + }, + "Pingo Doce": { + "count": 238 + }, + "Piotr i Paweł": { + "count": 52 + }, + "Plodine": { + "count": 52 + }, + "Plus": { + "count": 138 + }, + "Polo Market": { + "count": 81 + }, + "Price Chopper": { + "count": 96 + }, + "Profi": { + "count": 55 + }, + "Publix": { + "count": 312 + }, + "REWE": { + "count": 1440 + }, + "Real": { + "count": 178 + }, + "Reliance Fresh": { + "count": 63 + }, + "Rema 1000": { + "count": 360 + }, + "Rewe": { + "count": 1194 + }, + "Rimi": { + "count": 103 + }, + "Rossmann": { + "count": 88 + }, + "S-Market": { + "count": 107 + }, + "SPAR": { + "count": 275 + }, + "Safeway": { + "count": 436 + }, + "Sainsbury's": { + "count": 369 + }, + "Sainsbury's Local": { + "count": 101 + }, + "Sainsburys": { + "count": 169 + }, + "Sam's Club": { + "count": 125 + }, + "Santa Isabel": { + "count": 123 + }, + "Shopi": { + "count": 57 + }, + "Shoprite": { + "count": 235 + }, + "Simply": { + "count": 117 + }, + "Simply Market": { + "count": 193 + }, + "Sobeys": { + "count": 117 + }, + "Soriana": { + "count": 91 + }, + "Spar": { + "count": 2028 + }, + "Społem": { + "count": 54 + }, + "Stokrotka": { + "count": 84 + }, + "Stop & Shop": { + "count": 55 + }, + "Super Brugsen": { + "count": 63 + }, + "Super U": { + "count": 462 + }, + "SuperBrugsen": { + "count": 68 + }, + "Supermarket": { + "count": 632 + }, + "Supermercado": { + "count": 74 + }, + "TESCO": { + "count": 103 + }, + "Target": { + "count": 199 + }, + "Tegut": { + "count": 106 + }, + "Tengelmann": { + "count": 191 + }, + "Tesco": { + "count": 1182 + }, + "Tesco Express": { + "count": 373 + }, + "Tesco Extra": { + "count": 118 + }, + "Tesco Metro": { + "count": 125 + }, + "The Co-operative": { + "count": 60 + }, + "The Co-operative Food": { + "count": 113 + }, + "Trader Joe's": { + "count": 182 + }, + "Treff 3000": { + "count": 95 + }, + "Unimarc": { + "count": 169 + }, + "Unimarkt": { + "count": 80 + }, + "Volg": { + "count": 127 + }, + "Waitrose": { + "count": 252 + }, + "Walmart": { + "count": 703 + }, + "Wasgau": { + "count": 60 + }, + "Whole Foods": { + "count": 191 + }, + "Willys": { + "count": 54 + }, + "Woolworths": { + "count": 519 + }, + "Zielpunkt": { + "count": 240 + }, + "coop": { + "count": 71 + }, + "dm": { + "count": 57 + }, + "nahkauf": { + "count": 79 + }, + "netto": { + "count": 123 + }, + "real": { + "count": 79 + }, + "real,-": { + "count": 80 + }, + "sky": { + "count": 100 + }, + "tegut": { + "count": 114 + }, + "АТБ": { + "count": 289 + }, + "Десяточка": { + "count": 51 + }, + "Дикси": { + "count": 562 + }, + "Евроопт": { + "count": 57 + }, + "Карусель": { + "count": 55 + }, + "Квартал": { + "count": 93 + }, + "Копейка": { + "count": 96 + }, + "Магазин": { + "count": 113 + }, + "Магнит": { + "count": 1635 + }, + "Магнолия": { + "count": 70 + }, + "Мария-Ра": { + "count": 94 + }, + "Монетка": { + "count": 163 + }, + "Народная 7Я семьЯ": { + "count": 147 + }, + "Перекресток": { + "count": 190 + }, + "Перекрёсток": { + "count": 120 + }, + "Полушка": { + "count": 133 + }, + "Продукты": { + "count": 96 + }, + "Пятерочка": { + "count": 231 + }, + "Пятёрочка": { + "count": 1001 + }, + "Седьмой континент": { + "count": 81 + }, + "Семья": { + "count": 61 + }, + "Сільпо": { + "count": 118 + }, + "Фора": { + "count": 52 + }, + "Фуршет": { + "count": 76 + }, + "マルエツ": { + "count": 52 + }, + "ヨークマート (YorkMart)": { + "count": 62 + }, + "西友 (SEIYU)": { + "count": 55 + } + }, + "toys": { + "La Grande Récré": { + "count": 55 + }, + "Toys R Us": { + "count": 135 + }, + "Детский мир": { + "count": 81 + } + }, + "variety_store": { + "Dollar General": { + "count": 53 + }, + "Dollar Tree": { + "count": 76 + }, + "Dollarama": { + "count": 90 + }, + "TEDi": { + "count": 53 + }, + "Tedi": { + "count": 85 + } + }, + "video": { + "Blockbuster": { + "count": 197 + }, + "World of Video": { + "count": 66 + } + } + } +} \ No newline at end of file diff --git a/package.json b/package.json index a67688857..5429b9bb1 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "request": "~2.16.2", "jsonschema": "~0.3.2", "delve": "0.2", - "editor-imagery-index": "git://github.com/osmlab/editor-imagery-index.git#gh-pages" + "editor-imagery-index": "git://github.com/osmlab/editor-imagery-index.git#gh-pages", + "name-suggestion-index": "0.0.1" }, "engines": { "node": ">=0.10.0" From 5a119f6eed878a4018b64e346767b3daf4499061 Mon Sep 17 00:00:00 2001 From: Aaron Lidman Date: Thu, 31 Oct 2013 16:36:29 -0700 Subject: [PATCH 2/5] Add name autocomplete --- data/data_dev.js | 6 ++++-- js/id/ui/preset/localized.js | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/data/data_dev.js b/data/data_dev.js index f20fca45e..ce8273867 100644 --- a/data/data_dev.js +++ b/data/data_dev.js @@ -17,7 +17,8 @@ iD.data = { path + 'data/feature-icons.json', path + 'data/operations-sprite.json', path + 'data/locales.json', - path + 'dist/locales/en.json' + path + 'dist/locales/en.json', + path + 'data/name-suggestions.json' ], d3.json, function (err, data) { iD.data = { @@ -35,7 +36,8 @@ iD.data = { featureIcons: data[9], operations: data[10], locales: data[11], - en: data[12] + en: data[12], + suggestions: data[13] }; callback(); diff --git a/js/id/ui/preset/localized.js b/js/id/ui/preset/localized.js index 0a4034705..ab49ed4ec 100644 --- a/js/id/ui/preset/localized.js +++ b/js/id/ui/preset/localized.js @@ -1,4 +1,4 @@ -iD.ui.preset.localized = function(field) { +iD.ui.preset.localized = function(field, context) { var event = d3.dispatch('change'), wikipedia = iD.wikipedia(), @@ -18,6 +18,8 @@ iD.ui.preset.localized = function(field) { .on('blur', change) .on('change', change); + input.call(d3.combobox().fetcher(suggestNames)); + var translateButton = selection.selectAll('.localized-add') .data([0]); @@ -89,6 +91,35 @@ iD.ui.preset.localized = function(field) { event.change(t); } + function suggestNames(value, callback) { + var suggest = [], + s9s = iD.data.suggestions; + if (value && value.length > 2) { + var selected = context.selectedIDs(), + entity = context.entity(selected), + preset = context.presets().match(entity, context.graph()); + preset = preset.id.split('/', 2); + var k = preset[0], + v = preset[1]; + if (s9s[k] && s9s[k][v]) { + for (var sugg in s9s[k][v]) { + var dist = iD.util.editDistance(value, sugg.substring(0, value.length)); + if (dist < 5) { + suggest.push({ + title: sugg, + value: sugg, + dist: dist + }); + } + } + } + suggest.sort(function(a, b) { + return a.dist - b.dist; + }); + } + callback(suggest); + } + function fetcher(value, cb) { var v = value.toLowerCase(); From 872cec67206df25b972f02ab8969dd74938d909b Mon Sep 17 00:00:00 2001 From: Aaron Lidman Date: Fri, 1 Nov 2013 15:23:59 -0700 Subject: [PATCH 3/5] Limit suggestions to three 'closest' matches --- data/name-suggestions.json | 893 ++++++++--------------------------- js/id/ui/preset/localized.js | 13 +- 2 files changed, 195 insertions(+), 711 deletions(-) diff --git a/data/name-suggestions.json b/data/name-suggestions.json index 4265a6a24..eb1869954 100644 --- a/data/name-suggestions.json +++ b/data/name-suggestions.json @@ -413,7 +413,7 @@ "count": 79 }, "Lloyds Bank": { - "count": 612 + "count": 541 }, "M&T Bank": { "count": 80 @@ -700,7 +700,7 @@ "みずほ銀行": { "count": 68 }, - "みずほ銀行 (Mizuho Bank)": { + "りそな銀行": { "count": 227 }, "三井住友銀行": { @@ -721,10 +721,10 @@ "농협": { "count": 51 }, - "신한은행 (Sinhan Bank)": { + "신한은행": { "count": 218 }, - "우리은행 (Uri Bank)": { + "우리은행": { "count": 293 }, "중소기업은행 (Industrial Bank of Korea)": { @@ -735,12 +735,6 @@ } }, "cafe": { - "Bar": { - "count": 100 - }, - "Cafe": { - "count": 122 - }, "Cafe Amazon": { "count": 51 }, @@ -750,14 +744,8 @@ "Cafeteria": { "count": 69 }, - "Caffe Nero": { - "count": 72 - }, "Caffè Nero": { - "count": 87 - }, - "Café": { - "count": 72 + "count": 159 }, "Café Central": { "count": 58 @@ -769,10 +757,7 @@ "count": 94 }, "Costa": { - "count": 289 - }, - "Costa Coffee": { - "count": 259 + "count": 548 }, "Dunkin Donuts": { "count": 365 @@ -781,10 +766,7 @@ "count": 115 }, "Eiscafe Venezia": { - "count": 108 - }, - "Eiscafé Venezia": { - "count": 68 + "count": 176 }, "Eisdiele": { "count": 64 @@ -801,14 +783,8 @@ "Segafredo": { "count": 67 }, - "Starbuck's": { - "count": 125 - }, "Starbucks": { - "count": 2975 - }, - "Starbucks Coffee": { - "count": 737 + "count": 3837 }, "Subway": { "count": 61 @@ -816,11 +792,8 @@ "Tchibo": { "count": 91 }, - "Tim Horton's": { - "count": 136 - }, "Tim Hortons": { - "count": 804 + "count": 940 }, "Traveler's Coffee": { "count": 59 @@ -847,33 +820,25 @@ "count": 68 }, "スターバックス": { - "count": 54 + "count": 54, + "name:en": "Starbucks" }, "スターバックス (Starbucks)": { "count": 191 }, "ドトール": { - "count": 88 - }, - "ドトールコーヒーショップ (DOUTOR)": { - "count": 75 + "count": 163 } }, "car_rental": { - "AVIS": { - "count": 64 - }, "Avis": { - "count": 199 + "count": 263 }, "Budget": { "count": 81 }, "Enterprise": { - "count": 112 - }, - "Enterprise Rent-A-Car": { - "count": 61 + "count": 173 }, "Europcar": { "count": 271 @@ -1033,9 +998,6 @@ "Papa John's": { "count": 274 }, - "Pizza": { - "count": 132 - }, "Pizza Express": { "count": 65 }, @@ -1048,26 +1010,17 @@ "Pizza Pizza": { "count": 202 }, - "Pizzeria": { - "count": 97 - }, "Pollo Campero": { "count": 63 }, "Popeye's": { - "count": 77 - }, - "Popeyes": { - "count": 70 + "count": 147 }, "Quick": { "count": 484 }, - "Quizno's": { - "count": 79 - }, "Quiznos": { - "count": 183 + "count": 262 }, "Red Rooster": { "count": 145 @@ -1076,22 +1029,13 @@ "count": 61 }, "Sonic": { - "count": 335 - }, - "Sonic Drive In": { - "count": 51 - }, - "Sonic Drive-In": { - "count": 120 + "count": 506 }, "Steers": { "count": 139 }, "Subway": { - "count": 5022 - }, - "Subway Sandwiches": { - "count": 91 + "count": 5113 }, "Taco Bell": { "count": 1257 @@ -1105,17 +1049,11 @@ "Telepizza": { "count": 188 }, - "Tim Horton's": { - "count": 70 - }, "Tim Hortons": { - "count": 222 + "count": 292 }, "Wendy's": { - "count": 1346 - }, - "Wendys": { - "count": 141 + "count": 1487 }, "Whataburger": { "count": 147 @@ -1127,7 +1065,8 @@ "count": 136 }, "Макдоналдс": { - "count": 309 + "count": 309, + "name:en": "McDonald's" }, "Робин Сдобин": { "count": 72 @@ -1147,28 +1086,25 @@ "なか卯": { "count": 52 }, - "ケンタッキーフライドチキン (Kentucky Fried Chicken)": { - "count": 158, + "ケンタッキーフライドチキン": { + "count": 54, "name:en": "KFC" }, + "ケンタッキーフライドチキン (Kentucky Fried Chicken)": { + "count": 104 + }, "マクドナルド": { "count": 632, "name:en": "McDonald's" }, "モスバーガー": { - "count": 102 - }, - "モスバーガー (MOS BURGER)": { - "count": 135 + "count": 237 }, "吉野家": { "count": 172 }, "松屋": { - "count": 160 - }, - "松屋 (Matsuya)": { - "count": 64 + "count": 224 }, "肯德基": { "count": 81 @@ -1184,26 +1120,20 @@ "1-2-3": { "count": 71 }, - "7 Eleven": { - "count": 87 - }, - "7-11": { - "count": 107 - }, "7-Eleven": { - "count": 228 + "count": 422 }, "ABC": { "count": 80 }, - "AGIP": { - "count": 122 + "Agip": { + "count": 2654 }, "ANP": { "count": 65 }, "ARAL": { - "count": 304 + "count": 371 }, "AVIA": { "count": 257 @@ -1211,9 +1141,6 @@ "Afriquia": { "count": 90 }, - "Agip": { - "count": 2532 - }, "Agrola": { "count": 72 }, @@ -1223,9 +1150,6 @@ "Aral": { "count": 1334 }, - "Aral Tankstelle": { - "count": 67 - }, "Arco": { "count": 153 }, @@ -1236,13 +1160,13 @@ "count": 92 }, "Avia": { - "count": 551 + "count": 614 }, "BFT": { "count": 88 }, "BP": { - "count": 2197 + "count": 2330 }, "BR": { "count": 81 @@ -1275,16 +1199,10 @@ "count": 63 }, "Carrefour": { - "count": 128 - }, - "Carrefour Market": { - "count": 68 - }, - "Casey's": { - "count": 57 + "count": 196 }, "Casey's General Store": { - "count": 105 + "count": 162 }, "Cenex": { "count": 106 @@ -1313,11 +1231,8 @@ "Copec": { "count": 496 }, - "E Leclerc": { - "count": 107 - }, "E.Leclerc": { - "count": 143 + "count": 250 }, "EKO": { "count": 61 @@ -1328,8 +1243,8 @@ "ERG": { "count": 74 }, - "ESSO": { - "count": 364 + "Esso": { + "count": 3566 }, "Eko": { "count": 58 @@ -1338,7 +1253,7 @@ "count": 114 }, "Elf": { - "count": 55 + "count": 138 }, "Eneos": { "count": 97 @@ -1352,9 +1267,6 @@ "Erg": { "count": 609 }, - "Esso": { - "count": 3123 - }, "Esso Express": { "count": 81 }, @@ -1367,23 +1279,8 @@ "Freie Tankstelle": { "count": 210 }, - "Fuel": { - "count": 193 - }, - "Fuel Station": { - "count": 65 - }, "GALP": { - "count": 433 - }, - "Galp": { - "count": 149 - }, - "Gas Station": { - "count": 134 - }, - "Gasolinera": { - "count": 93 + "count": 582 }, "Gulf": { "count": 184 @@ -1451,11 +1348,8 @@ "Lotos": { "count": 168 }, - "LukOil": { - "count": 81 - }, "Lukoil": { - "count": 586 + "count": 667 }, "MEROIL": { "count": 80 @@ -1508,8 +1402,8 @@ "Orlen": { "count": 541 }, - "PEMEX": { - "count": 83 + "Pemex": { + "count": 357 }, "PETRONOR": { "count": 209 @@ -1517,30 +1411,15 @@ "PTT": { "count": 175 }, - "Pemex": { - "count": 274 - }, "Pertamina": { "count": 176 }, - "Petro Canada": { - "count": 189 - }, "Petro-Canada": { - "count": 277 + "count": 466 }, "Petrobras": { "count": 256 }, - "Petrol": { - "count": 92 - }, - "Petrol Pump": { - "count": 77 - }, - "Petrol Station": { - "count": 60 - }, "Petrom": { "count": 253 }, @@ -1574,8 +1453,8 @@ "Rompetrol": { "count": 161 }, - "SHELL": { - "count": 293 + "Shell": { + "count": 7936 }, "Sainsbury's": { "count": 55 @@ -1586,20 +1465,8 @@ "Sheetz": { "count": 95 }, - "Shell": { - "count": 7329 - }, "Shell Express": { - "count": 67 - }, - "Shell Gas Station": { - "count": 64 - }, - "Shell Station": { - "count": 66 - }, - "Shell express": { - "count": 66 + "count": 133 }, "Sinclair": { "count": 78 @@ -1620,25 +1487,10 @@ "count": 84 }, "Star": { - "count": 253 + "count": 316 }, - "Station Avia": { - "count": 63 - }, - "Station Bp": { - "count": 59 - }, - "Station Elf": { - "count": 83 - }, - "Station Esso": { - "count": 79 - }, - "Station Shell": { - "count": 118 - }, - "Station Total": { - "count": 168 + "Total": { + "count": 2498 }, "Statoil": { "count": 588 @@ -1652,9 +1504,6 @@ "Super U": { "count": 122 }, - "TOTAL": { - "count": 68 - }, "Tamoil": { "count": 864 }, @@ -1685,9 +1534,6 @@ "Topaz": { "count": 78 }, - "Total": { - "count": 2262 - }, "TotalErg": { "count": 71 }, @@ -1721,15 +1567,6 @@ "bft": { "count": 168 }, - "bp": { - "count": 74 - }, - "shell": { - "count": 66 - }, - "star": { - "count": 63 - }, "ÖMV": { "count": 100 }, @@ -1745,20 +1582,11 @@ "Белоруснефть": { "count": 55 }, - "Газпром": { - "count": 104 - }, - "Газпром нефть": { - "count": 152 - }, "Газпромнефть": { - "count": 471 - }, - "Лукоил": { - "count": 63 + "count": 727 }, "Лукойл": { - "count": 1409 + "count": 1472 }, "Макпетрол": { "count": 110 @@ -1809,10 +1637,7 @@ "count": 132 }, "出光": { - "count": 65 - }, - "出光 (IDEMITSU)": { - "count": 140 + "count": 205 }, "昭和シェル (Showa-shell)": { "count": 93 @@ -1823,10 +1648,7 @@ "count": 107 }, "Adler Apotheke": { - "count": 152 - }, - "Adler-Apotheke": { - "count": 150 + "count": 302 }, "Alte Apotheke": { "count": 85 @@ -1844,10 +1666,7 @@ "count": 64 }, "Boots": { - "count": 738 - }, - "Boots Pharmacy": { - "count": 71 + "count": 809 }, "Brunnen-Apotheke": { "count": 52 @@ -1859,16 +1678,7 @@ "count": 72 }, "CVS": { - "count": 906 - }, - "CVS Pharmacy": { - "count": 296 - }, - "CVS/Pharmacy": { - "count": 66 - }, - "CVS/pharmacy": { - "count": 132 + "count": 1400 }, "Clicks": { "count": 110 @@ -1876,18 +1686,12 @@ "Cruz Verde": { "count": 96 }, - "Engel Apotheke": { - "count": 56 - }, "Engel-Apotheke": { - "count": 70 + "count": 126 }, "Eurovaistinė": { "count": 60 }, - "Farmacia": { - "count": 571 - }, "Farmacia Comunale": { "count": 103 }, @@ -1900,9 +1704,6 @@ "Farmacias SalcoBrand": { "count": 133 }, - "Farmacie": { - "count": 79 - }, "Farmacity": { "count": 62 }, @@ -1919,10 +1720,7 @@ "count": 80 }, "Hubertus Apotheke": { - "count": 52 - }, - "Hubertus-Apotheke": { - "count": 51 + "count": 103 }, "Jean Coutu": { "count": 56 @@ -1930,47 +1728,23 @@ "Kinney Drugs": { "count": 67 }, - "Linden Apotheke": { - "count": 67 - }, "Linden-Apotheke": { - "count": 91 - }, - "Lindenapotheke": { - "count": 52 + "count": 210 }, "Ljekarna": { "count": 55 }, - "Lloyds Bank": { - "count": 124 - }, "Lloyds Pharmacy": { "count": 286 }, - "Löwen Apotheke": { - "count": 96 - }, "Löwen-Apotheke": { - "count": 179 - }, - "Löwenapotheke": { - "count": 79 - }, - "Marien Apotheke": { - "count": 82 + "count": 354 }, "Marien-Apotheke": { - "count": 163 - }, - "Marienapotheke": { - "count": 70 - }, - "Markt Apotheke": { - "count": 59 + "count": 315 }, "Markt-Apotheke": { - "count": 102 + "count": 161 }, "Mercury Drug": { "count": 401 @@ -1978,50 +1752,26 @@ "Neue Apotheke": { "count": 111 }, - "Parafarmacia": { - "count": 53 - }, - "Pharmacie": { - "count": 410 - }, "Pharmacie Centrale": { "count": 60 }, - "Pharmacy": { - "count": 129 - }, "Pharmaprix": { "count": 57 }, "Pharmasave": { "count": 63 }, - "Rathaus Apotheke": { - "count": 63 - }, "Rathaus-Apotheke": { - "count": 67 + "count": 130 }, "Rats-Apotheke": { "count": 85 }, "Rite Aid": { - "count": 503 - }, - "Rite Aid Pharmacy": { - "count": 53 - }, - "Rite-Aid": { - "count": 103 - }, - "Rosen Apotheke": { - "count": 55 + "count": 659 }, "Rosen-Apotheke": { - "count": 98 - }, - "Rosenapotheke": { - "count": 55 + "count": 208 }, "Rowlands Pharmacy": { "count": 68 @@ -2032,23 +1782,11 @@ "Shoppers Drug Mart": { "count": 396 }, - "Sonnen Apotheke": { - "count": 69 - }, "Sonnen-Apotheke": { - "count": 143 - }, - "Sonnenapotheke": { - "count": 94 - }, - "Stadt Apotheke": { - "count": 51 + "count": 306 }, "Stadt-Apotheke": { - "count": 135 - }, - "Stadtapotheke": { - "count": 114 + "count": 300 }, "Stern-Apotheke": { "count": 67 @@ -2059,11 +1797,8 @@ "The Generics Pharmacy": { "count": 82 }, - "Walgreen's": { - "count": 308 - }, "Walgreens": { - "count": 1139 + "count": 1447 }, "Айболит": { "count": 51 @@ -2130,9 +1865,6 @@ } }, "pub": { - "Bar": { - "count": 52 - }, "Cross Keys": { "count": 59 }, @@ -2257,22 +1989,33 @@ "count": 120 }, "The White Hart": { - "count": 133 + "count": 223 }, "The White Horse": { - "count": 121 + "count": 201 }, "The White Lion": { - "count": 64 + "count": 117 + } + }, + "recycling": { + "Altglas": { + "count": 98 }, - "White Hart": { - "count": 90 + "Déchèterie": { + "count": 244 }, - "White Horse": { - "count": 80 + "Glas": { + "count": 106 }, - "White Lion": { - "count": 53 + "Glascontainer": { + "count": 144 + }, + "Recyclinghof": { + "count": 131 + }, + "Wertstoffhof": { + "count": 262 } }, "restaurant": { @@ -2286,10 +2029,7 @@ "count": 62 }, "Applebee's": { - "count": 374 - }, - "Applebees": { - "count": 93 + "count": 467 }, "Athen": { "count": 65 @@ -2490,10 +2230,7 @@ "count": 59 }, "Nando's": { - "count": 162 - }, - "Nandos": { - "count": 57 + "count": 219 }, "Ochsen": { "count": 93 @@ -2522,18 +2259,12 @@ "Perkins": { "count": 96 }, - "Pizza": { - "count": 81 - }, "Pizza Express": { "count": 241 }, "Pizza Hut": { "count": 1038 }, - "Pizzeria": { - "count": 302 - }, "Poseidon": { "count": 111 }, @@ -2549,12 +2280,6 @@ "Red Robin": { "count": 169 }, - "Restaurant": { - "count": 116 - }, - "Restaurante": { - "count": 62 - }, "Rhodos": { "count": 80 }, @@ -2607,10 +2332,7 @@ "count": 101 }, "TGI Friday's": { - "count": 73 - }, - "TGI Fridays": { - "count": 65 + "count": 138 }, "Taco Bell": { "count": 82 @@ -2676,10 +2398,7 @@ "count": 74 }, "ガスト": { - "count": 145 - }, - "ガスト (Gusto)": { - "count": 59 + "count": 204 }, "サイゼリヤ": { "count": 81 @@ -2741,9 +2460,6 @@ "Backwerk": { "count": 94 }, - "Bakery": { - "count": 76 - }, "Boulangerie": { "count": 232 }, @@ -2793,10 +2509,7 @@ "count": 57 }, "Panaderia": { - "count": 84 - }, - "Panadería": { - "count": 70 + "count": 154 }, "Panificio": { "count": 63 @@ -2825,10 +2538,7 @@ }, "books": { "Barnes & Noble": { - "count": 162 - }, - "Barnes and Noble": { - "count": 77 + "count": 239 }, "Bruna": { "count": 55 @@ -2850,11 +2560,8 @@ } }, "car_repair": { - "A.T.U.": { - "count": 55 - }, "ATU": { - "count": 202 + "count": 257 }, "AutoZone": { "count": 51 @@ -2871,9 +2578,6 @@ "Firestone": { "count": 77 }, - "Garage": { - "count": 57 - }, "Jiffy Lube": { "count": 178 }, @@ -2931,10 +2635,7 @@ "count": 75 }, "Citroen": { - "count": 131 - }, - "Citroën": { - "count": 128 + "count": 259 }, "Fiat": { "count": 83 @@ -2951,14 +2652,8 @@ "Mazda": { "count": 96 }, - "Mercedes": { - "count": 75 - }, - "Mercedes Benz": { - "count": 56 - }, "Mercedes-Benz": { - "count": 87 + "count": 218 }, "Mitsubishi": { "count": 66 @@ -2984,11 +2679,8 @@ "Toyota": { "count": 238 }, - "VW": { - "count": 65 - }, "Volkswagen": { - "count": 135 + "count": 200 }, "Volvo": { "count": 82 @@ -3004,17 +2696,14 @@ } }, "chemist": { - "BIPA": { - "count": 99 - }, "Bipa": { - "count": 177 + "count": 276 }, "Boots": { "count": 94 }, - "DM": { - "count": 292 + "dm": { + "count": 873 }, "Douglas": { "count": 62 @@ -3039,15 +2728,6 @@ }, "Superdrug": { "count": 64 - }, - "dm": { - "count": 456 - }, - "dm Drogeriemarkt": { - "count": 52 - }, - "dm-drogerie markt": { - "count": 73 } }, "clothes": { @@ -3096,14 +2776,8 @@ "Edgars": { "count": 111 }, - "Ernsting's Family": { - "count": 81 - }, "Ernsting's family": { - "count": 130 - }, - "Ernstings Family": { - "count": 75 + "count": 286 }, "Esprit": { "count": 209 @@ -3117,11 +2791,8 @@ "Gerry Weber": { "count": 68 }, - "H & M": { - "count": 51 - }, "H&M": { - "count": 556 + "count": 607 }, "Jack & Jones": { "count": 51 @@ -3135,18 +2806,12 @@ "Jules": { "count": 61 }, - "KIK": { - "count": 223 - }, "KiK": { - "count": 281 + "count": 1148 }, "Kiabi": { "count": 139 }, - "Kik": { - "count": 372 - }, "Kohl's": { "count": 101 }, @@ -3217,10 +2882,7 @@ "count": 73 }, "Takko": { - "count": 377 - }, - "Takko Fashion": { - "count": 99 + "count": 476 }, "Tally Weijl": { "count": 67 @@ -3258,9 +2920,6 @@ "Zeeman": { "count": 108 }, - "kik": { - "count": 272 - }, "s.Oliver": { "count": 53 }, @@ -3283,20 +2942,8 @@ "24 часа": { "count": 56 }, - "7 Eleven": { - "count": 326 - }, - "7-11": { - "count": 983 - }, - "7-ELEVEN": { - "count": 54 - }, "7-Eleven": { - "count": 2360 - }, - "7-eleven": { - "count": 51 + "count": 3898 }, "8 à Huit": { "count": 57 @@ -3361,14 +3008,8 @@ "Citgo": { "count": 63 }, - "Co-Op": { - "count": 67 - }, - "Co-op": { - "count": 194 - }, "Coop": { - "count": 244 + "count": 505 }, "Coop Jednota": { "count": 58 @@ -3394,11 +3035,8 @@ "Esso": { "count": 64 }, - "Family Mart": { - "count": 168 - }, "FamilyMart": { - "count": 321 + "count": 489 }, "Food Mart": { "count": 88 @@ -3437,10 +3075,7 @@ "count": 69 }, "LAWSON": { - "count": 239 - }, - "Lawson": { - "count": 158 + "count": 397 }, "Lewiatan": { "count": 111 @@ -3457,9 +3092,6 @@ "Mace": { "count": 111 }, - "Market": { - "count": 73 - }, "McColl's": { "count": 97 }, @@ -3467,16 +3099,10 @@ "count": 59 }, "Mini Market": { - "count": 113 + "count": 190 }, "Mini Stop": { - "count": 121 - }, - "Minimarket": { - "count": 77 - }, - "Ministop": { - "count": 89 + "count": 210 }, "Mobil": { "count": 63 @@ -3487,15 +3113,12 @@ "Nisa Local": { "count": 71 }, - "OXXO": { - "count": 196 + "Oxxo": { + "count": 614 }, "One Stop": { "count": 142 }, - "Oxxo": { - "count": 418 - }, "Petit Casino": { "count": 227 }, @@ -3529,26 +3152,14 @@ "Select": { "count": 58 }, - "Seven Eleven": { - "count": 124 - }, "Shell": { "count": 241 }, "Siwa": { "count": 212 }, - "Sklep": { - "count": 61 - }, - "Sklep Spożywczy": { - "count": 52 - }, - "Sklep spożywczo-przemysłowy": { - "count": 54 - }, "Sklep spożywczy": { - "count": 129 + "count": 235 }, "Spar": { "count": 888 @@ -3586,9 +3197,6 @@ "The Co-operative Food": { "count": 109 }, - "Tienda": { - "count": 79 - }, "Valintatalo": { "count": 62 }, @@ -3661,7 +3269,7 @@ "Надежда": { "count": 54 }, - "Перекрёсток": { + "Перекресток": { "count": 51 }, "Продукти": { @@ -3676,11 +3284,8 @@ "Продукты": { "count": 3813 }, - "Пятерочка": { - "count": 106 - }, "Пятёрочка": { - "count": 271 + "count": 377 }, "Радуга": { "count": 80 @@ -3707,16 +3312,11 @@ "count": 145 }, "サンクス": { - "count": 373 - }, - "サンクス (sunkus)": { - "count": 144 + "count": 517 }, "サークルK": { - "count": 322 - }, - "サークルK (CircleK)": { - "count": 128 + "count": 450, + "name:en": "Circle K" }, "スリーエフ": { "count": 84 @@ -3724,41 +3324,22 @@ "セイコーマート (Seicomart)": { "count": 52 }, - "セブン-イレブン": { - "count": 169 - }, - "セブン-イレブン (Seven-Eleven)": { - "count": 1352 - }, - "セブン-イレブン (Seven-Eleven) ": { - "count": 53 - }, "セブンイレブン": { - "count": 1168 + "count": 2742 }, "デイリーヤマザキ": { "count": 124 }, "ファミリーマート": { - "count": 883 - }, - "ファミリーマート (FamilyMart)": { - "count": 410 - }, - "ファミリーマート(FamilyMart)": { - "count": 59 + "count": 1352, + "name:en": "FamilyMart" }, "ミニストップ": { - "count": 204 - }, - "ミニストップ (MINISTOP)": { - "count": 78 + "count": 282 }, "ローソン": { - "count": 828 - }, - "ローソン (LAWSON)": { - "count": 571 + "count": 1399, + "name:en": "LAWSON" }, "ローソンストア100": { "count": 65 @@ -3811,7 +3392,10 @@ "count": 468 }, "Walmart": { - "count": 523 + "count": 456 + }, + "Walmart Supercenter": { + "count": 67 }, "Woolworth": { "count": 74 @@ -3864,7 +3448,7 @@ "count": 62 }, "Home Depot": { - "count": 594 + "count": 789 }, "Home Hardware": { "count": 66 @@ -3884,11 +3468,8 @@ "Leroy Merlin": { "count": 197 }, - "Lowe's": { - "count": 251 - }, "Lowes": { - "count": 880 + "count": 1131 }, "Max Bahr": { "count": 86 @@ -3900,10 +3481,7 @@ "count": 87 }, "OBI": { - "count": 316 - }, - "Obi": { - "count": 102 + "count": 418 }, "Praktiker": { "count": 187 @@ -3911,9 +3489,6 @@ "Rona": { "count": 57 }, - "The Home Depot": { - "count": 195 - }, "Toom": { "count": 69 }, @@ -3959,19 +3534,10 @@ "count": 63 }, "Media Markt": { - "count": 162 - }, - "MediaMarkt": { - "count": 59 - }, - "Mediamarkt": { - "count": 52 + "count": 273 }, "Radio Shack": { - "count": 170 - }, - "RadioShack": { - "count": 56 + "count": 226 }, "Saturn": { "count": 147 @@ -4010,9 +3576,6 @@ } }, "hairdresser": { - "Barber Shop": { - "count": 72 - }, "Coiffeur": { "count": 60 }, @@ -4139,6 +3702,14 @@ "count": 113 } }, + "motorcycle": { + "Honda": { + "count": 56 + }, + "Yamaha": { + "count": 58 + } + }, "optician": { "Alain Afflelou": { "count": 68 @@ -4173,7 +3744,7 @@ "count": 300 }, "PetSmart": { - "count": 98 + "count": 150 }, "Petco": { "count": 79 @@ -4181,9 +3752,6 @@ "Pets at Home": { "count": 53 }, - "Petsmart": { - "count": 52 - }, "Зоомагазин": { "count": 95 } @@ -4228,14 +3796,11 @@ }, "sports": { "Decathlon": { - "count": 213 + "count": 286 }, "Dick's Sporting Goods": { "count": 58 }, - "Décathlon": { - "count": 73 - }, "Intersport": { "count": 265 }, @@ -4271,10 +3836,10 @@ "count": 64 }, "ALDI": { - "count": 1051 + "count": 5182 }, - "ALDI Süd": { - "count": 77 + "Aldi Süd": { + "count": 589 }, "ASDA": { "count": 178 @@ -4291,15 +3856,9 @@ "Albertsons": { "count": 133 }, - "Aldi": { - "count": 4131 - }, "Aldi Nord": { "count": 194 }, - "Aldi Süd": { - "count": 512 - }, "Alimerka": { "count": 58 }, @@ -4309,15 +3868,12 @@ "Auchan": { "count": 144 }, - "BILLA": { - "count": 70 + "Billa": { + "count": 1417 }, "Biedronka": { "count": 1227 }, - "Billa": { - "count": 1347 - }, "Bodega Aurrera": { "count": 70 }, @@ -4340,7 +3896,7 @@ "count": 96 }, "Carrefour": { - "count": 935 + "count": 1575 }, "Carrefour City": { "count": 109 @@ -4352,9 +3908,6 @@ "count": 314 }, "Carrefour Market": { - "count": 640 - }, - "Carrefour market": { "count": 79 }, "Casino": { @@ -4369,14 +3922,8 @@ "Checkers": { "count": 124 }, - "Co-Op": { - "count": 112 - }, - "Co-op": { - "count": 527 - }, - "Co-operative": { - "count": 102 + "Coop": { + "count": 1860 }, "Coles": { "count": 381 @@ -4399,9 +3946,6 @@ "Continente": { "count": 66 }, - "Coop": { - "count": 1119 - }, "Coop Jednota": { "count": 68 }, @@ -4417,11 +3961,11 @@ "Countdown": { "count": 90 }, - "DIA": { - "count": 104 + "Dia": { + "count": 749 }, - "DM": { - "count": 51 + "dm": { + "count": 108 }, "Delhaize": { "count": 219 @@ -4435,18 +3979,12 @@ "Despar": { "count": 143 }, - "Dia": { - "count": 582 - }, "Diska": { "count": 69 }, "Dunnes Stores": { "count": 70 }, - "Día": { - "count": 63 - }, "E-Center": { "count": 67 }, @@ -4457,10 +3995,7 @@ "count": 498 }, "Edeka": { - "count": 1726 - }, - "Edeka Neukauf": { - "count": 85 + "count": 1811 }, "El Árbol": { "count": 71 @@ -4568,10 +4103,7 @@ "count": 107 }, "Intermarché": { - "count": 1097 - }, - "Intermarché Super": { - "count": 58 + "count": 1155 }, "Interspar": { "count": 142 @@ -4586,10 +4118,7 @@ "count": 104 }, "Kaiser's": { - "count": 167 - }, - "Kaisers": { - "count": 88 + "count": 255 }, "Kaufland": { "count": 996 @@ -4687,8 +4216,8 @@ "Morrisons": { "count": 405 }, - "NETTO": { - "count": 134 + "Netto": { + "count": 4309 }, "NORMA": { "count": 113 @@ -4702,15 +4231,6 @@ "Nahkauf": { "count": 166 }, - "Netto": { - "count": 3736 - }, - "Netto Marken-Discount": { - "count": 262 - }, - "Netto Markendiscount": { - "count": 54 - }, "Neukauf": { "count": 81 }, @@ -4733,25 +4253,16 @@ "count": 1766 }, "Penny Market": { - "count": 343 + "count": 397 }, "Penny Markt": { - "count": 367 - }, - "Penny market": { - "count": 54 - }, - "Penny-Markt": { - "count": 97 + "count": 464 }, "Petit Casino": { "count": 106 }, - "Pick 'n Pay": { - "count": 79 - }, "Pick n Pay": { - "count": 158 + "count": 237 }, "Piggly Wiggly": { "count": 53 @@ -4784,7 +4295,7 @@ "count": 1440 }, "Real": { - "count": 178 + "count": 337 }, "Reliance Fresh": { "count": 63 @@ -4811,14 +4322,11 @@ "count": 436 }, "Sainsbury's": { - "count": 369 + "count": 538 }, "Sainsbury's Local": { "count": 101 }, - "Sainsburys": { - "count": 169 - }, "Sam's Club": { "count": 125 }, @@ -4831,11 +4339,8 @@ "Shoprite": { "count": 235 }, - "Simply": { - "count": 117 - }, "Simply Market": { - "count": 193 + "count": 310 }, "Sobeys": { "count": 117 @@ -4864,27 +4369,18 @@ "SuperBrugsen": { "count": 68 }, - "Supermarket": { - "count": 632 - }, - "Supermercado": { - "count": 74 - }, - "TESCO": { - "count": 103 + "Tesco": { + "count": 1285 }, "Target": { "count": 199 }, - "Tegut": { - "count": 106 + "tegut": { + "count": 220 }, "Tengelmann": { "count": 191 }, - "Tesco": { - "count": 1182 - }, "Tesco Express": { "count": 373 }, @@ -4919,7 +4415,10 @@ "count": 252 }, "Walmart": { - "count": 703 + "count": 600 + }, + "Walmart Supercenter": { + "count": 103 }, "Wasgau": { "count": 60 @@ -4939,27 +4438,12 @@ "coop": { "count": 71 }, - "dm": { - "count": 57 - }, "nahkauf": { "count": 79 }, - "netto": { - "count": 123 - }, - "real": { - "count": 79 - }, - "real,-": { - "count": 80 - }, "sky": { "count": 100 }, - "tegut": { - "count": 114 - }, "АТБ": { "count": 289 }, @@ -5000,10 +4484,7 @@ "count": 147 }, "Перекресток": { - "count": 190 - }, - "Перекрёсток": { - "count": 120 + "count": 310 }, "Полушка": { "count": 133 @@ -5011,11 +4492,8 @@ "Продукты": { "count": 96 }, - "Пятерочка": { - "count": 231 - }, "Пятёрочка": { - "count": 1001 + "count": 1232 }, "Седьмой континент": { "count": 81 @@ -5053,6 +4531,14 @@ "count": 81 } }, + "travel_agency": { + "Flight Centre": { + "count": 85 + }, + "Thomas Cook": { + "count": 100 + } + }, "variety_store": { "Dollar General": { "count": 53 @@ -5063,11 +4549,8 @@ "Dollarama": { "count": 90 }, - "TEDi": { - "count": 53 - }, "Tedi": { - "count": 85 + "count": 138 } }, "video": { diff --git a/js/id/ui/preset/localized.js b/js/id/ui/preset/localized.js index ab49ed4ec..398bfc149 100644 --- a/js/id/ui/preset/localized.js +++ b/js/id/ui/preset/localized.js @@ -93,16 +93,16 @@ iD.ui.preset.localized = function(field, context) { function suggestNames(value, callback) { var suggest = [], - s9s = iD.data.suggestions; + allSuggs = iD.data.suggestions; if (value && value.length > 2) { - var selected = context.selectedIDs(), - entity = context.entity(selected), - preset = context.presets().match(entity, context.graph()); + var preset = context.presets().match( + context.entity(context.selectedIDs()), + context.graph()); preset = preset.id.split('/', 2); var k = preset[0], v = preset[1]; - if (s9s[k] && s9s[k][v]) { - for (var sugg in s9s[k][v]) { + if (allSuggs[k] && allSuggs[k][v]) { + for (var sugg in allSuggs[k][v]) { var dist = iD.util.editDistance(value, sugg.substring(0, value.length)); if (dist < 5) { suggest.push({ @@ -117,6 +117,7 @@ iD.ui.preset.localized = function(field, context) { return a.dist - b.dist; }); } + suggest = suggest.slice(0,3); callback(suggest); } From 43aeaae67effe6316e7f8234e7e90db9577ceff7 Mon Sep 17 00:00:00 2001 From: Aaron Lidman Date: Fri, 1 Nov 2013 16:52:37 -0700 Subject: [PATCH 4/5] Add SuggestNames util --- index.html | 1 + js/id/ui/preset.js | 6 +---- js/id/ui/preset/localized.js | 44 ++++++++++-------------------------- js/id/util/suggest_names.js | 28 +++++++++++++++++++++++ 4 files changed, 42 insertions(+), 37 deletions(-) create mode 100644 js/id/util/suggest_names.js diff --git a/index.html b/index.html index dff77e08d..a1fd74225 100644 --- a/index.html +++ b/index.html @@ -38,6 +38,7 @@ + diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index 564731658..7b7ffff54 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -12,11 +12,7 @@ iD.ui.preset = function(context) { field.input = iD.ui.preset[field.type](field, context) .on('change', event.change); - if (field.type === 'address' || - field.type === 'wikipedia' || - field.type === 'maxspeed') { - field.input.entity(entity); - } + if (field.input.entity) field.input.entity(entity); field.keys = field.keys || [field.key]; diff --git a/js/id/ui/preset/localized.js b/js/id/ui/preset/localized.js index 398bfc149..b43b0fbf1 100644 --- a/js/id/ui/preset/localized.js +++ b/js/id/ui/preset/localized.js @@ -2,7 +2,8 @@ iD.ui.preset.localized = function(field, context) { var event = d3.dispatch('change'), wikipedia = iD.wikipedia(), - input, localizedInputs, wikiTitles; + input, localizedInputs, wikiTitles, + entity; function i(selection) { input = selection.selectAll('.localized-main') @@ -18,7 +19,12 @@ iD.ui.preset.localized = function(field, context) { .on('blur', change) .on('change', change); - input.call(d3.combobox().fetcher(suggestNames)); + if (field.id === 'name') { + var preset = context.presets().match(entity, context.graph()); + input.call(d3.combobox().fetcher( + iD.util.SuggestNames(preset, iD.data.suggestions) + )); + } var translateButton = selection.selectAll('.localized-add') .data([0]); @@ -91,36 +97,6 @@ iD.ui.preset.localized = function(field, context) { event.change(t); } - function suggestNames(value, callback) { - var suggest = [], - allSuggs = iD.data.suggestions; - if (value && value.length > 2) { - var preset = context.presets().match( - context.entity(context.selectedIDs()), - context.graph()); - preset = preset.id.split('/', 2); - var k = preset[0], - v = preset[1]; - if (allSuggs[k] && allSuggs[k][v]) { - for (var sugg in allSuggs[k][v]) { - var dist = iD.util.editDistance(value, sugg.substring(0, value.length)); - if (dist < 5) { - suggest.push({ - title: sugg, - value: sugg, - dist: dist - }); - } - } - } - suggest.sort(function(a, b) { - return a.dist - b.dist; - }); - } - suggest = suggest.slice(0,3); - callback(suggest); - } - function fetcher(value, cb) { var v = value.toLowerCase(); @@ -248,5 +224,9 @@ iD.ui.preset.localized = function(field, context) { input.node().focus(); }; + i.entity = function(_) { + entity = _; + }; + return d3.rebind(i, event, 'on'); }; diff --git a/js/id/util/suggest_names.js b/js/id/util/suggest_names.js new file mode 100644 index 000000000..79040c003 --- /dev/null +++ b/js/id/util/suggest_names.js @@ -0,0 +1,28 @@ +iD.util.SuggestNames = function(preset, suggestions) { + preset = preset.id.split('/', 2); + var k = preset[0], + v = preset[1]; + + return function(value, callback) { + var result = []; + if (value && value.length > 2) { + if (suggestions[k] && suggestions[k][v]) { + for (var sugg in suggestions[k][v]) { + var dist = iD.util.editDistance(value, sugg.substring(0, value.length)); + if (dist < 3) { + result.push({ + title: sugg, + value: sugg, + dist: dist + }); + } + } + } + result.sort(function(a, b) { + return a.dist - b.dist; + }); + } + result = result.slice(0,3); + callback(result); + }; +}; From ff97d44395127234e8a6fcbbefe2f9aef874bd12 Mon Sep 17 00:00:00 2001 From: Aaron Lidman Date: Fri, 1 Nov 2013 16:57:33 -0700 Subject: [PATCH 5/5] Add tests for suggestNames --- test/index.html | 2 ++ test/index_packaged.html | 1 + test/spec/ui/preset/localized.js | 2 +- test/spec/util/suggest_names.js | 36 ++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 test/spec/util/suggest_names.js diff --git a/test/index.html b/test/index.html index 14fb4087e..0ea970316 100644 --- a/test/index.html +++ b/test/index.html @@ -192,6 +192,7 @@ + @@ -273,6 +274,7 @@ + diff --git a/test/index_packaged.html b/test/index_packaged.html index 356e4b687..55c067b52 100644 --- a/test/index_packaged.html +++ b/test/index_packaged.html @@ -91,6 +91,7 @@ + diff --git a/test/spec/ui/preset/localized.js b/test/spec/ui/preset/localized.js index 040adc414..d02a0dc1a 100644 --- a/test/spec/ui/preset/localized.js +++ b/test/spec/ui/preset/localized.js @@ -3,7 +3,7 @@ describe('iD.ui.preset.localized', function() { beforeEach(function() { selection = d3.select(document.createElement('div')); - field = iD().presets().field('name'); + field = iD.presets.Field('test', {key: 'name'}); }); it("adds a blank set of fields when the + button is clicked", function() { diff --git a/test/spec/util/suggest_names.js b/test/spec/util/suggest_names.js new file mode 100644 index 000000000..a26934c51 --- /dev/null +++ b/test/spec/util/suggest_names.js @@ -0,0 +1,36 @@ +describe("iD.util.SuggestNames", function() { + var suggestions = { + 'key': { + 'value': { + 'abcdef': {}, + 'ghijkl': {} + } + } + }; + + var preset = { + 'id': 'key/value' + }; + + var a = iD.util.SuggestNames(preset, suggestions); + + it('provides suggestions for an entered value', function(done) { + a('abcd', function(result) { + expect(result).to.eql([ + { + title: 'abcdef', + value: 'abcdef', + dist: 0 + } + ]); + done(); + }); + }); + + it('provides no suggestions for short values', function(done){ + a('ab', function(result) { + expect(result).to.eql([]); + done(); + }); + }); +});