From 579e3ba89e44014ee004ef8795ab92c4e5fbd075 Mon Sep 17 00:00:00 2001 From: Natalia Kowalczyk Date: Sat, 25 Jan 2025 16:01:10 -0700 Subject: [PATCH] update tilehosting service to maptiler --- demo/index.js | 12 +-- lib/geocode.js | 4 +- lib/service/maptiler/index.js | 93 +++++++++++++++++ lib/service/tilehosting/index.js | 99 ------------------- test/replay/api.maptiler.com-443/forward | 21 ++++ test/replay/api.maptiler.com-443/place | 21 ++++ test/replay/api.maptiler.com-443/reverse | 21 ++++ .../geocoder.tilehosting.com-443/forward | 22 ----- .../replay/geocoder.tilehosting.com-443/place | 23 ----- .../geocoder.tilehosting.com-443/reverse | 22 ----- test/service/maptiler/index.js | 73 ++++++++++++++ test/service/tilehosting/index.js | 69 ------------- 12 files changed, 237 insertions(+), 243 deletions(-) create mode 100644 lib/service/maptiler/index.js delete mode 100644 lib/service/tilehosting/index.js create mode 100644 test/replay/api.maptiler.com-443/forward create mode 100644 test/replay/api.maptiler.com-443/place create mode 100644 test/replay/api.maptiler.com-443/reverse delete mode 100644 test/replay/geocoder.tilehosting.com-443/forward delete mode 100644 test/replay/geocoder.tilehosting.com-443/place delete mode 100644 test/replay/geocoder.tilehosting.com-443/reverse create mode 100644 test/service/maptiler/index.js delete mode 100644 test/service/tilehosting/index.js diff --git a/demo/index.js b/demo/index.js index dcf60d2..85fe4b9 100644 --- a/demo/index.js +++ b/demo/index.js @@ -127,12 +127,12 @@ if (process.env.POSITIONSTACK_KEY) { positionstack_key: process.env.POSITIONSTACK_KEY }); } -if (process.env.TILEHOSTING_KEY) { - service('tilehosting', { - order: ['tilehosting'], - tilehosting_parameters: { interval: 1000 }, - tilehosting_enable() { return true; }, - tilehosting_key: process.env.TILEHOSTING_KEY +if (process.env.MAPTILER_KEY) { + service('maptiler', { + order: ['maptiler'], + maptiler_parameters: { interval: 1000 }, + maptiler_enable() { return true; }, + maptiler_key: process.env.MAPTILER_KEY }); } diff --git a/lib/geocode.js b/lib/geocode.js index 7987976..abfa863 100644 --- a/lib/geocode.js +++ b/lib/geocode.js @@ -32,8 +32,8 @@ function furkotGeocode(options) { synchronous: { init: require('./service/synchronous') }, - tilehosting: { - init: require('./service/tilehosting') + maptiler: { + init: require('./service/maptiler') } }; diff --git a/lib/service/maptiler/index.js b/lib/service/maptiler/index.js new file mode 100644 index 0000000..7fad49b --- /dev/null +++ b/lib/service/maptiler/index.js @@ -0,0 +1,93 @@ +const normalize = require('../normalize'); +const status = require('../status'); +const util = require('../util'); + +module.exports = init; + +/* + * https://docs.maptiler.com/cloud/api/geocoding/ + */ +function getStatus(err, response) { + if (!response) { + return; + } + if (err) { + return err.status ? status.error : status.failure; + } + if (!(response.type === 'FeatureCollection' && response.features?.length)) { + return status.empty; + } + return status.success; +} + +function getUrl(url, key, op, query) { + let q; + if (op === 'forward') { + q = encodeURIComponent(query.address || query.place); + } else { + q = query.ll.join(','); + } + q += '.json?key=' + key; + if (query.max) { + q += '&limit=' + query.max; + } + if (query.bounds) { + q += '&bbox=' + [ + query.bounds[0][0], // west + query.bounds[0][1], // south + query.bounds[1][0], // east + query.bounds[1][1] // north + ].join(','); + } + return url + q; +} + +function prepareRequest() { + return true; +} + +function map(result) { + const res = { + ll: result.center + }; + + res.place = result.text; + res.house = result.address; + if (result.properties) { + res.type = result.properties.kind; + res.country = normalize.country(result.properties.country_code?.toUpperCase()); + } + res.address = result.place_name; + if (res.street !== res.place) { + const addr = res.address.split(', '); + if (addr.length > 1 && addr[0] === res.place) { + addr.shift(); + res.address = addr.join(', '); + } + } + // remove empties + return util.removeEmpties(res); +} + +function processResponse(response, query, result) { + if (!(response?.type === 'FeatureCollection' && response?.features?.length)) { + return; + } + result.places = response.features.map(map); + return result; +} + +function init(options) { + + options = util.defaults(options, { + forward: true, + reverse: true, + url: getUrl.bind(undefined, + options.maptiler_url || 'https://api.maptiler.com/geocoding/', + options.maptiler_key), + status: getStatus, + prepareRequest, + processResponse + }); + return require('..')(options); +} diff --git a/lib/service/tilehosting/index.js b/lib/service/tilehosting/index.js deleted file mode 100644 index 6c2c5ec..0000000 --- a/lib/service/tilehosting/index.js +++ /dev/null @@ -1,99 +0,0 @@ -const normalize = require('../normalize'); -const status = require('../status'); -const util = require('../util'); - -module.exports = init; - -/* - * https://cloud.maptiler.com/geocoding/ - */ -function getStatus(err, response) { - if (!response) { - return; - } - if (err) { - return err.status ? status.error : status.failure; - } - if (!(response.results && response.results.length)) { - return status.empty; - } - return status.success; -} - -function getUrl(url, key, op, query) { - let q; - if (op === 'forward') { - q = 'q/' + encodeURIComponent(query.address || query.place); - } else { - q = 'r/' + query.ll.join('/'); - } - return url + q + '.js?key=' + key; -} - -function prepareRequest() { - return true; -} - -function init(options) { - - function processResponse(response, query, result) { - if (!(response && response.results && response.results.length)) { - return; - } - result.places = response.results.map(function (result) { - const res = { - ll: [result.lon, result.lat] - }; - - let addr; - if (result.type) { - res.type = result.type; - } - if (result.name) { - res.place = result.name; - } - if (result.housenumbers) { - res.house = result.housenumbers.split(', ').shift(); - } - if (result.street) { - res.street = result.street; - } - if (result.city) { - res.town = result.city; - } - if (result.county) { - res.county = result.county; - } - if (result.state) { - res.province = normalize.state(result.state); - } - if (result.country) { - res.country = normalize.country(result.country); - } - if (result.display_name) { - res.address = result.display_name; - if (res.street !== res.place) { - addr = res.address.split(', '); - if (addr.length > 1 && addr[0] === res.place) { - addr.shift(); - res.address = addr.join(', '); - } - } - } - return res; - }); - return result; - } - - options = util.defaults(options, { - forward: true, - reverse: true, - url: getUrl.bind(undefined, - options.tilehosting_url || 'https://geocoder.tilehosting.com/', - options.tilehosting_key), - status: getStatus, - prepareRequest, - processResponse - }); - return require('..')(options); -} diff --git a/test/replay/api.maptiler.com-443/forward b/test/replay/api.maptiler.com-443/forward new file mode 100644 index 0000000..fb13e38 --- /dev/null +++ b/test/replay/api.maptiler.com-443/forward @@ -0,0 +1,21 @@ +GET /geocoding/Rua%20Cafel%C3%A2ndia%2C%20Carapicu%C3%ADba%2C%20Brasil.json?key=furkot +accept: application/json +accept-encoding: gzip,deflate + +HTTP/1.1 200 OK +date: Sat, 25 Jan 2025 22:56:23 GMT +content-type: application/json; charset=utf-8 +transfer-encoding: chunked +connection: close +cf-ray: 907bdb2f4be1530c-SLC +cf-cache-status: MISS +access-control-allow-origin: * +cache-control: public, max-age=14400 +last-modified: Sat, 25 Jan 2025 22:56:23 GMT +vary: Origin, User-Agent, Accept-Encoding +x-maptiler-free: 1 +set-cookie: _cfuvid=h.uowQ3mc8FR9xn5KGzZHxn_1JnEZvF3QCDYk7QUX0c-1737845783428-0.0.1.1-604800000; path=/; domain=.maptiler.com; HttpOnly; Secure; SameSite=None +server: cloudflare +alt-svc: h3=":443"; ma=86400 + +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"ref":"osm:w185327107","country_code":"br","kind":"street"},"geometry":{"type":"Point","coordinates":[-46.83655746281147,-23.537200177660463]},"bbox":[-46.83744963258505,-23.537359554959938,-46.8356652930379,-23.537040800360987],"center":[-46.83655746281147,-23.537200177660463],"place_name":"Rua Cafelândia, Carapicuíba, São Paulo 99999-999, Brasil","place_type":["address"],"relevance":1,"id":"address.10695521","text":"Rua Cafelândia","matching_place_name":"Rua Cafelândia, Carapicuíba, São Paulo 99999-999, Brasilia lihttodásseváldi","context":[{"ref":"oa:brazil-output/33763901","country_code":"br","id":"postal_code.1142734","text":"99999-999"},{"ref":"osm:n5277763294","country_code":"br","id":"place.371014","text":"Parque José Alexandre","kind":"place","osm:place_type":"suburb"},{"ref":"osm:r298480","country_code":"br","id":"municipality.42945","text":"Carapicuíba","wikidata":"Q176891","kind":"admin_area"},{"ref":"osm:r2661855","country_code":"br","id":"joint_submunicipality.163","text":"Região Metropolitana de São Paulo","wikidata":"Q1415666","kind":"admin_area"},{"ref":"osm:r4810113","country_code":"br","id":"joint_municipality.9864","text":"Região Imediata de São Paulo","wikidata":"Q48878625","kind":"admin_area"},{"ref":"osm:r4807856","country_code":"br","id":"county.5545","text":"Região Geográfica Intermediária de São Paulo","wikidata":"Q48878425","kind":"admin_area"},{"ref":"osm:r298204","country_code":"br","id":"subregion.251","text":"São Paulo","wikidata":"Q175","kind":"admin_area"},{"ref":"osm:r3073228","country_code":"br","id":"region.1190","text":"Região Sudeste","wikidata":"Q1088815","kind":"admin_area"},{"ref":"osm:w653288653","country_code":"br","id":"major_landform.5926264","text":"Córrego da Fábrica","categories":["stream"],"osm:tags":{"waterway":"stream"}},{"ref":"osm:r59470","country_code":"br","id":"country.99","text":"Brasil","wikidata":"Q155","kind":"admin_area"},{"ref":"osm:n36966069","country_code":"","id":"continental_marine.6","text":"South America","wikidata":"Q18","categories":["continent"],"osm:tags":{"population":"385742554","wikipedia":"en:South America","sqkm":"17840000","place":"continent"}}]},{"type":"Feature","properties":{"ref":"osm:w227589442","country_code":"br","kind":"street"},"geometry":{"type":"Point","coordinates":[-46.895270850509405,-23.61090479385711]},"bbox":[-46.896274499595165,-23.611554540880288,-46.89426720142365,-23.61025504683393],"center":[-46.895270850509405,-23.61090479385711],"place_name":"Rua Cafelândia, Cotia, São Paulo 06716-205, Brasil","place_type":["address"],"relevance":0.851852,"id":"address.11518318","text":"Rua Cafelândia","matching_place_name":"Rua Cafelândia, Cotia, São Paulo 06716-205, Brasilia lihttodásseváldi","context":[{"ref":"osm:w1042493663","country_code":"br","id":"postal_code.2143108","text":"06716-205"},{"ref":"osm:n4348155027","country_code":"br","id":"place.4031887","text":"Maranhão","kind":"place","osm:place_type":"suburb"},{"ref":"osm:r298252","country_code":"br","id":"municipality.42244","text":"Cotia","wikidata":"Q669305","kind":"admin_area"},{"ref":"osm:r2661855","country_code":"br","id":"joint_submunicipality.163","text":"Região Metropolitana de São Paulo","wikidata":"Q1415666","kind":"admin_area"},{"ref":"osm:r4810113","country_code":"br","id":"joint_municipality.9864","text":"Região Imediata de São Paulo","wikidata":"Q48878625","kind":"admin_area"},{"ref":"osm:r4807856","country_code":"br","id":"county.5545","text":"Região Geográfica Intermediária de São Paulo","wikidata":"Q48878425","kind":"admin_area"},{"ref":"osm:r298204","country_code":"br","id":"subregion.251","text":"São Paulo","wikidata":"Q175","kind":"admin_area"},{"ref":"osm:r3073228","country_code":"br","id":"region.1190","text":"Região Sudeste","wikidata":"Q1088815","kind":"admin_area"},{"ref":"osm:w775027337","country_code":"br","id":"major_landform.5514859","text":"Rio Cotia","categories":["river"],"osm:tags":{"waterway":"river"}},{"ref":"osm:r59470","country_code":"br","id":"country.99","text":"Brasil","wikidata":"Q155","kind":"admin_area"},{"ref":"osm:n36966069","country_code":"","id":"continental_marine.6","text":"South America","wikidata":"Q18","categories":["continent"],"osm:tags":{"population":"385742554","wikipedia":"en:South America","sqkm":"17840000","place":"continent"}}]},{"type":"Feature","properties":{"ref":"osm:w385907228","country_code":"br","kind":"street"},"geometry":{"type":"Point","coordinates":[-46.83837621781419,-23.42315807849958]},"bbox":[-46.843193918466575,-23.42518380263653,-46.8342125415802,-23.4201675939382],"center":[-46.83837621781419,-23.42315807849958],"place_name":"Rua Cafelândia, Cajamar, São Paulo 07750-000, Brasil","place_type":["address"],"relevance":0.851852,"id":"address.8653306","text":"Rua Cafelândia","matching_place_name":"Rua Cafelândia, Cajamar, São Paulo 07750-000, Brasilia lihttodásseváldi","context":[{"ref":"oa:brazil-output/29794557","country_code":"br","id":"postal_code.605605","text":"07750-000"},{"ref":"osm:r3032216","country_code":"br","id":"municipal_district.10006","text":"Polvilho","kind":"admin_area"},{"ref":"osm:r298462","country_code":"br","id":"municipality.42900","text":"Cajamar","wikidata":"Q1760376","kind":"admin_area"},{"ref":"osm:r2661855","country_code":"br","id":"joint_submunicipality.163","text":"Região Metropolitana de São Paulo","wikidata":"Q1415666","kind":"admin_area"},{"ref":"osm:r4810113","country_code":"br","id":"joint_municipality.9864","text":"Região Imediata de São Paulo","wikidata":"Q48878625","kind":"admin_area"},{"ref":"osm:r4807856","country_code":"br","id":"county.5545","text":"Região Geográfica Intermediária de São Paulo","wikidata":"Q48878425","kind":"admin_area"},{"ref":"osm:r298204","country_code":"br","id":"subregion.251","text":"São Paulo","wikidata":"Q175","kind":"admin_area"},{"ref":"osm:r3073228","country_code":"br","id":"region.1190","text":"Região Sudeste","wikidata":"Q1088815","kind":"admin_area"},{"ref":"osm:r13951160","country_code":"br","id":"major_landform.5061051","text":"Área de Proteção Ambiental Cajamar","categories":["protected area"],"osm:tags":{"boundary":"protected_area","contact:country":"BR","protect_class":"6","contact:postcode":"13070-178","contact:street":"Avenida Brasil","protection_title":"Área de Proteção Ambiental","website":"https://guiadeareasprotegidas.sp.gov.br/ap/area-de-protecao-ambiental-cajamar/","type":"boundary","operator":"Fundação Florestal - Secretaria de Infraestrutura e Meio Ambiente do Estado de São Paulo","contact:housenumber":"2340","related_law":"Lei Estadual nº 4.055, de 4 de Junho de 1984","opening_hours":"Mo-Fr 09:00-17:00","contact:city":"Campinas","start_date":"1984-06-04"}},{"ref":"osm:r59470","country_code":"br","id":"country.99","text":"Brasil","wikidata":"Q155","kind":"admin_area"},{"ref":"osm:n36966069","country_code":"","id":"continental_marine.6","text":"South America","wikidata":"Q18","categories":["continent"],"osm:tags":{"population":"385742554","wikipedia":"en:South America","sqkm":"17840000","place":"continent"}}]},{"type":"Feature","properties":{"ref":"osm:w250617796","country_code":"br","kind":"street"},"geometry":{"type":"Point","coordinates":[-46.890295517393156,-23.48591837620205]},"bbox":[-46.89501989632845,-23.48671031137588,-46.88546620309353,-23.48520201843251],"center":[-46.890295517393156,-23.48591837620205],"place_name":"Rua Cafelândia, Barueri, São Paulo 06415-070, Brasil","place_type":["address"],"relevance":0.851852,"id":"address.8526912","text":"Rua Cafelândia","matching_place_name":"Rua Cafelândia, Barueri, São Paulo 06415-070, Brasilia lihttodásseváldi","context":[{"ref":"osm:w671774095","country_code":"br","id":"postal_code.2140408","text":"06415-070"},{"ref":"osm:n5883128161","country_code":"br","id":"place.3899507","text":"Vila Engenho Novo - Gleba C","kind":"place","osm:place_type":"suburb"},{"ref":"osm:r298021","country_code":"br","id":"municipality.41418","text":"Barueri","wikidata":"Q461773","kind":"admin_area"},{"ref":"osm:r2661855","country_code":"br","id":"joint_submunicipality.163","text":"Região Metropolitana de São Paulo","wikidata":"Q1415666","kind":"admin_area"},{"ref":"osm:r4810113","country_code":"br","id":"joint_municipality.9864","text":"Região Imediata de São Paulo","wikidata":"Q48878625","kind":"admin_area"},{"ref":"osm:r4807856","country_code":"br","id":"county.5545","text":"Região Geográfica Intermediária de São Paulo","wikidata":"Q48878425","kind":"admin_area"},{"ref":"osm:r298204","country_code":"br","id":"subregion.251","text":"São Paulo","wikidata":"Q175","kind":"admin_area"},{"ref":"osm:r3073228","country_code":"br","id":"region.1190","text":"Região Sudeste","wikidata":"Q1088815","kind":"admin_area"},{"ref":"osm:w683187453","country_code":"br","id":"major_landform.5526341","text":"Córrego Nilo da Barra","categories":["stream"],"osm:tags":{"waterway":"stream"}},{"ref":"osm:r59470","country_code":"br","id":"country.99","text":"Brasil","wikidata":"Q155","kind":"admin_area"},{"ref":"osm:n36966069","country_code":"","id":"continental_marine.6","text":"South America","wikidata":"Q18","categories":["continent"],"osm:tags":{"population":"385742554","wikipedia":"en:South America","sqkm":"17840000","place":"continent"}}]},{"type":"Feature","properties":{"ref":"oa:brazil-output/15326861","country_code":"br","kind":"virtual_street"},"geometry":{"type":"Point","coordinates":[-54.809185014285845,-22.2456514930148]},"bbox":[-54.8108323,-22.258399200000017,-54.8075247,-22.232994900000016],"center":[-54.809185014285845,-22.2456514930148],"place_name":"RUA CAFELANDIA, Jardim Água Bôa, Dourados, Mato Grosso do Sul 79812-020, Brasil","place_type":["address"],"relevance":0.703704,"id":"address.1749266","text":"RUA CAFELANDIA","context":[{"ref":"oa:brazil-output/15327740","country_code":"br","id":"postal_code.1445792","text":"79812-020"},{"ref":"osm:r7127492","country_code":"br","id":"neighbourhood.21057","text":"Jardim Água Bôa","kind":"admin_area"},{"ref":"osm:r334017","country_code":"br","id":"municipality.29120","text":"Dourados","wikidata":"Q651874","kind":"admin_area"},{"ref":"osm:r12112250","country_code":"br","id":"joint_municipality.15917","text":"Região Geográfica Imediata de Dourados","wikidata":"Q56349056","kind":"admin_area"},{"ref":"osm:r4831653","country_code":"br","id":"county.5557","text":"Região Geográfica Intermediária de Dourados","wikidata":"Q65171895","kind":"admin_area"},{"ref":"osm:r334051","country_code":"br","id":"subregion.194","text":"Mato Grosso do Sul","wikidata":"Q43319","kind":"admin_area"},{"ref":"osm:r3359944","country_code":"br","id":"region.1408","text":"Região Centro-Oeste","wikidata":"Q980175","kind":"admin_area"},{"ref":"osm:w495042640","country_code":"br","id":"major_landform.5399550","text":"Córrego Água Bôa","categories":["stream"],"osm:tags":{"waterway":"stream"}},{"ref":"osm:r59470","country_code":"br","id":"country.99","text":"Brasil","wikidata":"Q155","kind":"admin_area"},{"ref":"osm:n36966069","country_code":"","id":"continental_marine.6","text":"South America","wikidata":"Q18","categories":["continent"],"osm:tags":{"population":"385742554","wikipedia":"en:South America","sqkm":"17840000","place":"continent"}}]}],"query":["rua","cafelândia","carapicuíba","brasil"],"attribution":"© MapTiler © OpenStreetMap contributors"} diff --git a/test/replay/api.maptiler.com-443/place b/test/replay/api.maptiler.com-443/place new file mode 100644 index 0000000..d20b0e9 --- /dev/null +++ b/test/replay/api.maptiler.com-443/place @@ -0,0 +1,21 @@ +GET /geocoding/Golden%20Gate%20Bridge.json?key=furkot +accept: application/json +accept-encoding: gzip,deflate + +HTTP/1.1 200 OK +date: Sat, 25 Jan 2025 22:53:12 GMT +content-type: application/json; charset=utf-8 +transfer-encoding: chunked +connection: close +cf-ray: 907bd687fbaa2c06-SLC +cf-cache-status: MISS +access-control-allow-origin: * +cache-control: public, max-age=14400 +last-modified: Sat, 25 Jan 2025 22:53:12 GMT +vary: Origin, User-Agent, Accept-Encoding +x-maptiler-free: 1 +set-cookie: _cfuvid=vsnlj.ZcvG0PGFvALjJePtQHoinUW09llr1sJHfyQOU-1737845592809-0.0.1.1-604800000; path=/; domain=.maptiler.com; HttpOnly; Secure; SameSite=None +server: cloudflare +alt-svc: h3=":443"; ma=86400 + +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"ref":"osm:n4609282243","country_code":"us","wikidata":"Q5579418","kind":"place","osm:place_type":"neighbourhood"},"geometry":{"type":"Point","coordinates":[-122.28275321424007,37.84177777704476]},"bbox":[-122.28275321424007,37.84177777704476,-122.28275321424007,37.84177777704476],"center":[-122.28275321424007,37.84177777704476],"place_name":"Golden Gate, Oakland, United States","place_type":["place"],"relevance":0.787037,"id":"place.4275979","text":"Golden Gate","context":[{"ref":"osm:r2833530","country_code":"us","id":"municipality.210569","text":"Oakland","wikidata":"Q17042","kind":"admin_area"},{"ref":"osm:r396499","country_code":"us","id":"county.19751","text":"Alameda","wikidata":"Q107146","kind":"admin_area"},{"ref":"osm:r165475","country_code":"us","id":"region.3051","text":"California","wikidata":"Q99","kind":"admin_area"},{"ref":"osm:w1050910942","country_code":"us","id":"major_landform.7245375","text":"Temescal Creek","wikidata":"Q7698100","categories":[],"osm:tags":{}},{"ref":"osm:r148838","country_code":"us","id":"country.1226","text":"United States","wikidata":"Q30","kind":"admin_area"},{"ref":"osm:n36966063","country_code":"","id":"continental_marine.4","text":"North America","wikidata":"Q49","categories":["continent"],"osm:tags":{"population":"528720588","place":"continent","wikipedia":"en:North America","sqkm":"24709000"}}]},{"type":"Feature","properties":{"ref":"osm:w14324020","country_code":"us","kind":"street"},"geometry":{"type":"Point","coordinates":[-115.25223143398762,36.11924305301785]},"bbox":[-115.25249127298595,36.119241969684424,-115.2519715949893,36.11924413635127],"center":[-115.25223143398762,36.11924305301785],"place_name":"Golden Gate, Spring Valley, Nevada 89147, United States","place_type":["address"],"relevance":0.787037,"id":"address.22257417","text":"Golden Gate","context":[{"ref":"osm:n5934682485","country_code":"us","id":"postal_code.3553434","text":"89147"},{"ref":"osm:r170049","country_code":"us","id":"municipality.207178","text":"Spring Valley","wikidata":"Q992507","kind":"admin_area"},{"ref":"osm:r166468","country_code":"us","id":"county.17048","text":"Clark","wikidata":"Q108403","kind":"admin_area"},{"ref":"osm:r165473","country_code":"us","id":"region.3050","text":"Nevada","wikidata":"Q1227","kind":"admin_area"},{"ref":"osm:r12129813","country_code":"","id":"major_landform.5422290","text":"Flamingo Wash Lateral","categories":["drain"],"osm:tags":{"destination":"Flamingo Wash","type":"waterway","waterway":"drain"}},{"ref":"osm:r148838","country_code":"us","id":"country.1226","text":"United States","wikidata":"Q30","kind":"admin_area"},{"ref":"osm:n36966063","country_code":"","id":"continental_marine.4","text":"North America","wikidata":"Q49","categories":["continent"],"osm:tags":{"population":"528720588","place":"continent","wikipedia":"en:North America","sqkm":"24709000"}}]},{"type":"Feature","properties":{"ref":"osm:w13357791","country_code":"us","kind":"street"},"geometry":{"type":"Point","coordinates":[-117.72235582146448,33.556243904729996]},"bbox":[-117.7224601060152,33.55599795895155,-117.72222105413677,33.55647629216575],"center":[-117.72235582146448,33.556243904729996],"place_name":"Golden Gate, Aliso Viejo, California 92656, United States","place_type":["address"],"relevance":0.787037,"id":"address.22865795","text":"Golden Gate","context":[{"ref":"usCaOrangeGovAp:92656","country_code":"us","id":"postal_code.3021800","text":"92656"},{"ref":"osm:r1550311","country_code":"us","id":"municipality.209185","text":"Aliso Viejo","wikidata":"Q948231","kind":"admin_area"},{"ref":"osm:r396466","country_code":"us","id":"county.19716","text":"Orange","wikidata":"Q5925","kind":"admin_area"},{"ref":"osm:r165475","country_code":"us","id":"region.3051","text":"California","wikidata":"Q99","kind":"admin_area"},{"ref":"osm:w60510246","country_code":"us","id":"major_landform.7116206","text":"Aliso Creek","categories":["stream"],"osm:tags":{"ref":"J01","waterway":"stream"}},{"ref":"osm:r148838","country_code":"us","id":"country.1226","text":"United States","wikidata":"Q30","kind":"admin_area"},{"ref":"osm:n36966063","country_code":"","id":"continental_marine.4","text":"North America","wikidata":"Q49","categories":["continent"],"osm:tags":{"population":"528720588","place":"continent","wikipedia":"en:North America","sqkm":"24709000"}}]},{"type":"Feature","properties":{"ref":"osm:n7820339450","country_code":"us","kind":"virtual_street"},"geometry":{"type":"Point","coordinates":[-83.65226963355241,41.566839645528866]},"bbox":[-83.6524412,41.56682929105719,-83.65209806710482,41.56684999999999],"center":[-83.65226963355241,41.566839645528866],"place_name":"Golden Gate, Maumee, Ohio 43537, United States","place_type":["address"],"relevance":0.787037,"id":"address.17728460","text":"Golden Gate","context":[{"ref":"oa:../oa-us/us/oh/toledo-city/c679a1e89cf3a404","country_code":"us","id":"postal_code.3666570","text":"43537"},{"ref":"osm:n357475897","country_code":"us","id":"place.4329582","text":"Maumee Uptown Historic District","kind":"place","osm:place_type":"neighbourhood"},{"ref":"osm:r11033020","country_code":"us","id":"municipality.222800","text":"Maumee","wikidata":"Q1004755","kind":"admin_area"},{"ref":"osm:r350384","country_code":"us","id":"county.17494","text":"Lucas","wikidata":"Q112107","kind":"admin_area"},{"ref":"osm:r162061","country_code":"us","id":"region.3012","text":"Ohio","wikidata":"Q1397","kind":"admin_area"},{"ref":"osm:r10679604","country_code":"","id":"major_landform.5731215","text":"Maumee River","wikidata":"Q282052","categories":["river"],"osm:tags":{"waterway":"river","destination":"Lake Erie","wikipedia":"en:Maumee River","type":"waterway"}},{"ref":"osm:r148838","country_code":"us","id":"country.1226","text":"United States","wikidata":"Q30","kind":"admin_area"},{"ref":"osm:n36966063","country_code":"","id":"continental_marine.4","text":"North America","wikidata":"Q49","categories":["continent"],"osm:tags":{"population":"528720588","place":"continent","wikipedia":"en:North America","sqkm":"24709000"}}]},{"type":"Feature","properties":{"ref":"osm:w1199315922","country_code":"us","kind":"street"},"geometry":{"type":"Point","coordinates":[-122.3878561212822,37.77149384056848]},"bbox":[-122.38860474356692,37.768930302899214,-122.38761652261017,37.77546436596438],"center":[-122.3878561212822,37.77149384056848],"place_name":"Bridgeview Way, San Francisco, California 94158, United States","place_type":["address"],"relevance":0.702963,"id":"address.28124357","text":"Bridgeview Way","context":[{"ref":"osm:w24446045","country_code":"us","id":"postal_code.3052123","text":"94158"},{"ref":"osm:n2094662089","country_code":"us","id":"place.4530113","text":"Mission Bay","wikidata":"Q6878535","kind":"place","osm:place_type":"quarter"},{"ref":"osm:r111968","country_code":"us","id":"county.16811","text":"San Francisco","wikidata":"Q62","kind":"admin_area"},{"ref":"osm:r165475","country_code":"us","id":"region.3051","text":"California","wikidata":"Q99","kind":"admin_area"},{"ref":"osm:n358763532","country_code":"","id":"major_landform.1556","text":"China Basin","categories":["bay"],"osm:tags":{"natural":"bay","ele":"-1"}},{"ref":"osm:r148838","country_code":"us","id":"country.1226","text":"United States","wikidata":"Q30","kind":"admin_area"},{"ref":"osm:n36966063","country_code":"","id":"continental_marine.4","text":"North America","wikidata":"Q49","categories":["continent"],"osm:tags":{"population":"528720588","place":"continent","wikipedia":"en:North America","sqkm":"24709000"}}]}],"query":["golden","gate","bridge"],"attribution":"© MapTiler © OpenStreetMap contributors"} diff --git a/test/replay/api.maptiler.com-443/reverse b/test/replay/api.maptiler.com-443/reverse new file mode 100644 index 0000000..858d5f1 --- /dev/null +++ b/test/replay/api.maptiler.com-443/reverse @@ -0,0 +1,21 @@ +GET /geocoding/14.5272,-22.6792.json?key=furkot +accept: application/json +accept-encoding: gzip,deflate + +HTTP/1.1 200 OK +date: Sat, 25 Jan 2025 22:12:28 GMT +content-type: application/json; charset=utf-8 +transfer-encoding: chunked +connection: close +cf-ray: 907b9ad999772c66-SLC +cf-cache-status: MISS +access-control-allow-origin: * +cache-control: public, max-age=14400 +last-modified: Sat, 25 Jan 2025 22:12:27 GMT +vary: Origin, User-Agent, Accept-Encoding +x-maptiler-free: 1 +set-cookie: _cfuvid=jygLl00irc6YnpVaifSpZs9aEkNMwImnvldjs8Gs9cI-1737843148027-0.0.1.1-604800000; path=/; domain=.maptiler.com; HttpOnly; Secure; SameSite=None +server: cloudflare +alt-svc: h3=":443"; ma=86400 + +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"ref":"osm:w184393212","country_code":"na","kind":"street"},"geometry":{"type":"Point","coordinates":[14.526541957636255,-22.679326596603442]},"bbox":[14.52529102563858,-22.679495432966316,14.527794197201729,-22.679167829568343],"center":[14.526541957636255,-22.679326596603442],"place_name":"Woermann Street, Namibia","place_type":["address"],"relevance":1,"id":"address.4951040","text":"Woermann Street","context":[{"ref":"osm:w967827141","country_code":"na","id":"postal_code.1142093","text":"13001"},{"ref":"osm:n973768869","country_code":"na","id":"place.3830184","text":"Central","wikidata":"Q2371923","kind":"place","osm:place_type":"suburb"},{"ref":"osm:r2279555","country_code":"na","id":"region.927","text":"Erongo Region","wikidata":"Q648753","kind":"admin_area"},{"ref":"osm:r195266","country_code":"na","id":"country.180","text":"Namibia","wikidata":"Q1030","kind":"admin_area"}]},{"type":"Feature","properties":{"ref":"osm:w967827141","country_code":"na"},"geometry":{"type":"Point","coordinates":[14.528999242461737,-22.670179503151715]},"bbox":[14.522709477839385,-22.685628153033754,14.544850029051304,-22.626319002350865],"center":[14.528999242461737,-22.670179503151715],"place_name":"13001, Namibia","place_type":["postal_code"],"relevance":1,"id":"postal_code.1142093","text":"13001","context":[{"ref":"osm:n973768869","country_code":"na","id":"place.3830184","text":"Central","wikidata":"Q2371923","kind":"place","osm:place_type":"suburb"},{"ref":"osm:r2279555","country_code":"na","id":"region.927","text":"Erongo Region","wikidata":"Q648753","kind":"admin_area"},{"ref":"osm:r195266","country_code":"na","id":"country.180","text":"Namibia","wikidata":"Q1030","kind":"admin_area"}]},{"type":"Feature","properties":{"ref":"osm:n973768869","country_code":"na","wikidata":"Q2371923","kind":"place","osm:place_type":"suburb"},"geometry":{"type":"Point","coordinates":[14.528741016983986,-22.679374167210533]},"bbox":[14.528741016983986,-22.679374167210533,14.528741016983986,-22.679374167210533],"center":[14.528741016983986,-22.679374167210533],"place_name":"Central, Namibia","place_type":["place"],"relevance":1,"id":"place.3830184","text":"Central","context":[{"ref":"osm:r2279555","country_code":"na","id":"region.927","text":"Erongo Region","wikidata":"Q648753","kind":"admin_area"},{"ref":"osm:r195266","country_code":"na","id":"country.180","text":"Namibia","wikidata":"Q1030","kind":"admin_area"}]},{"type":"Feature","properties":{"ref":"osm:r2279555","country_code":"na","wikidata":"Q648753","kind":"admin_area"},"geometry":{"type":"Point","coordinates":[14.531398750841618,-22.676783942177753]},"bbox":[13.632724285125732,-23.808878432672493,16.555964313447475,-20.49158887034093],"center":[14.531398750841618,-22.676783942177753],"place_name":"Erongo Region, Namibia","place_type":["region"],"relevance":1,"id":"region.927","text":"Erongo Region","context":[{"ref":"osm:r195266","country_code":"na","id":"country.180","text":"Namibia","wikidata":"Q1030","kind":"admin_area"}]},{"type":"Feature","properties":{"ref":"osm:r195266","country_code":"na","wikidata":"Q1030","kind":"admin_area"},"geometry":{"type":"Point","coordinates":[17.07727376371622,-22.577610236855115]},"bbox":[11.528038121759892,-28.969449722168974,25.261729136109356,-16.96351022785281],"center":[17.07727376371622,-22.577610236855115],"place_name":"Namibia","place_type":["country"],"relevance":1,"id":"country.180","text":"Namibia"}],"query":[14.527199999999993,-22.6792],"attribution":"© MapTiler © OpenStreetMap contributors"} diff --git a/test/replay/geocoder.tilehosting.com-443/forward b/test/replay/geocoder.tilehosting.com-443/forward deleted file mode 100644 index 923a8fe..0000000 --- a/test/replay/geocoder.tilehosting.com-443/forward +++ /dev/null @@ -1,22 +0,0 @@ -GET /q/Rua%20Cafel%C3%A2ndia%2C%20Carapicu%C3%ADba%2C%20Brasil.js?key=furkot -accept: application/json -accept-encoding: gzip,deflate - -HTTP/1.1 200 OK -date: Wed, 04 May 2022 11:59:27 GMT -content-type: application/json; charset=utf-8 -transfer-encoding: chunked -connection: close -access-control-allow-origin: * -etag: W/"cbe-Tvn4j5VqeHidcUMQ+C7dS47e7Yo" -cache-control: max-age=43200 -cf-cache-status: MISS -expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" -report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Kvejo2yx%2FlQyyWaHPpN62mvHkf6kpJeLTkES5RwaIuaLIL5pgYa6xJKe8A3QdOJp8xSKMY0XOuXhN5fZl9qLlpmdZgaft6Viy%2FJUeszibVAhb4kAZ1uRaJdvU5wP9RbjxKImR6MIjtGsRhQ%3D"}],"group":"cf-nel","max_age":604800} -nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} -vary: Accept-Encoding -server: cloudflare -cf-ray: 70611202e8fa0e1e-MXP -alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400 - -{"count":9,"nextIndex":9,"startIndex":0,"totalResults":9,"results":[{"alternative_names":"Rua Cafelândia","boundingbox":[-46.8365592,-23.5372062,-46.8365592,-23.5372062],"display_name":"Rua Cafelândia, Carapicuíba, Região Metropolitana de São Paulo, São Paulo","lon":-46.8365592,"lat":-23.5372062,"name":"Rua Cafelândia","name_suffix":"Carapicuíba, Região Metropolitana de São Paulo, São Paulo","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-46.8900124,-23.4851747,-46.8900124,-23.4851747],"display_name":"Rua Cafelândia, Barueri, Região Metropolitana de São Paulo, São Paulo","lon":-46.8900124,"lat":-23.4851747,"name":"Rua Cafelândia","name_suffix":"Barueri, Região Metropolitana de São Paulo, São Paulo","type":"street"},{"alternative_names":"Rua Cafelandia","boundingbox":[-46.895171,-23.6109183,-46.895171,-23.6109183],"display_name":"Rua Cafelandia, Cotia, Região Metropolitana de São Paulo, São Paulo","lon":-46.895171,"lat":-23.6109183,"name":"Rua Cafelandia","name_suffix":"Cotia, Região Metropolitana de São Paulo, São Paulo","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-46.3546169,-23.6822684,-46.3546169,-23.6822684],"display_name":"Rua Cafelândia, Ribeirão Pires, Região Metropolitana de São Paulo, São Paulo","lon":-46.3546169,"lat":-23.6822684,"name":"Rua Cafelândia","name_suffix":"Ribeirão Pires, Região Metropolitana de São Paulo, São Paulo","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-47.6611509,-22.754479,-47.6611509,-22.754479],"display_name":"Rua Cafelândia, Piracicaba, Mesorregião de Piracicaba, São Paulo","lon":-47.6611509,"lat":-22.754479,"name":"Rua Cafelândia","name_suffix":"Piracicaba, Mesorregião de Piracicaba, São Paulo","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-43.9182363,-19.9115813,-43.9182363,-19.9115813],"display_name":"Rua Cafelândia, Belo Horizonte, Mesorregião Metropolitana de Belo Horizonte, Minas Gerais","lon":-43.9182363,"lat":-19.9115813,"name":"Rua Cafelândia","name_suffix":"Belo Horizonte, Mesorregião Metropolitana de Belo Horizonte, Minas Gerais","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-48.8850045,-23.9794148,-48.8850045,-23.9794148],"display_name":"Rua Cafelândia, Itapeva, Mesorregião de Itapetininga, São Paulo","lon":-48.8850045,"lat":-23.9794148,"name":"Rua Cafelândia","name_suffix":"Itapeva, Mesorregião de Itapetininga, São Paulo","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-54.8101236,-22.238723,-54.8101236,-22.238723],"display_name":"Rua Cafelândia, Dourados, Mesorregião Sudoeste de Mato Grosso do Sul, Mato Grosso do Sul","lon":-54.8101236,"lat":-22.238723,"name":"Rua Cafelândia","name_suffix":"Dourados, Mesorregião Sudoeste de Mato Grosso do Sul, Mato Grosso do Sul","type":"street"},{"alternative_names":"Rua Cafelândia","boundingbox":[-54.8106798,-22.2345355,-54.8106798,-22.2345355],"display_name":"Rua Cafelândia, Dourados, Mesorregião Sudoeste de Mato Grosso do Sul, Mato Grosso do Sul","lon":-54.8106798,"lat":-22.2345355,"name":"Rua Cafelândia","name_suffix":"Dourados, Mesorregião Sudoeste de Mato Grosso do Sul, Mato Grosso do Sul","type":"street"}]} diff --git a/test/replay/geocoder.tilehosting.com-443/place b/test/replay/geocoder.tilehosting.com-443/place deleted file mode 100644 index 8bec4b2..0000000 --- a/test/replay/geocoder.tilehosting.com-443/place +++ /dev/null @@ -1,23 +0,0 @@ -GET /q/Golden%20Gate%20Bridge.js?key=furkot -accept: application/json -accept-encoding: gzip,deflate - -HTTP/1.1 200 OK -date: Wed, 04 May 2022 11:54:47 GMT -content-type: application/json; charset=utf-8 -transfer-encoding: chunked -connection: close -access-control-allow-origin: * -etag: W/"1431-Ej+c7qRWBp5Kc5XMBq11enWV9aM" -cache-control: max-age=43200 -cf-cache-status: HIT -age: 41 -expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" -report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=ON9stwvnMueiTrY%2FeT5ZOF6w2G6BECVEQVz%2Bn6lt%2BALXYJRQzn1KS%2F4jp%2FPCTLFAUm03h%2BZu4D4MzIvYPXcnOhmeO5qTP93E8pnTrnDcB4Ses3l4lxWQrvDsMSooRew%2FGF%2B4yn9MlnOmXzM%3D"}],"group":"cf-nel","max_age":604800} -nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} -vary: Accept-Encoding -server: cloudflare -cf-ray: 70610b2bdd1b83ba-MXP -alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400 - -{"count":17,"nextIndex":17,"startIndex":0,"totalResults":17,"results":[{"alternative_names":"Golden Gate Bridge","boundingbox":[-122.4773342,37.8096796,-122.4773342,37.8096796],"display_name":"Golden Gate Bridge, San Francisco, San Francisco City and County, California","lon":-122.4773342,"lat":37.8096796,"name":"Golden Gate Bridge","name_suffix":"San Francisco, San Francisco City and County, California","type":"street"},{"alternative_names":"Golden Gate Bridge","boundingbox":[15.6061501,48.0270329,15.6061501,48.0270329],"display_name":"Golden Gate Bridge, Marktl, Gemeinde Lilienfeld, Bezirk Lilienfeld, Lower Austria","lon":15.6061501,"lat":48.0270329,"name":"Golden Gate Bridge","name_suffix":"Marktl, Gemeinde Lilienfeld, Bezirk Lilienfeld, Lower Austria","type":"street"},{"alternative_names":"Martin's Golden Gate Bridge","boundingbox":[15.7966814,47.6171171,15.7966814,47.6171171],"display_name":"Martin's Golden Gate Bridge, Gemeinde Spital am Semmering, Bezirk Bruck-Mürzzuschlag, Styria","lon":15.7966814,"lat":47.6171171,"name":"Martin's Golden Gate Bridge","name_suffix":"Gemeinde Spital am Semmering, Bezirk Bruck-Mürzzuschlag, Styria","type":"street"},{"alternative_names":"Golden","boundingbox":[-105.24196108,39.70003098,-105.161859,39.78711099],"display_name":"Golden, Jefferson County, Colorado","lon":-105.2147584,"lat":39.7437125,"name":"Golden","name_suffix":"Jefferson County, Colorado","type":"city"},{"alternative_names":"Golden","boundingbox":[-116.99342235,51.27601258,-116.93665357,51.32207148],"display_name":"Golden, Columbia-Shuswap Regional District, British Columbia","lon":-116.9642685,"lat":51.2994688,"name":"Golden","name_suffix":"Columbia-Shuswap Regional District, British Columbia","type":"city"},{"alternative_names":"Golden","boundingbox":[-8.02654883,52.46751462,-7.92740147,52.52274843],"display_name":"Golden, Munster","lon":-7.969651,"lat":52.4951319,"name":"Golden","name_suffix":"Munster","type":"city"},{"alternative_names":"Golden","boundingbox":[-91.03071406,40.105713,-91.00718505,40.11448298],"display_name":"Golden, Adams County, Illinois","lon":-91.0192484,"lat":40.110138,"name":"Golden","name_suffix":"Adams County, Illinois","type":"city"},{"alternative_names":"Bridge","boundingbox":[-5.1790753,50.1174865,-5.1790753,50.1174865],"display_name":"Bridge, Constantine, Cornwall, England","lon":-5.1790753,"lat":50.1174865,"name":"Bridge","name_suffix":"Constantine, Cornwall, England","type":"subcity"},{"alternative_names":"Golden Gate","boundingbox":[-81.6950853,26.1878666,-81.6950853,26.1878666],"display_name":"Golden Gate, Collier County, Florida","lon":-81.6950853,"lat":26.1878666,"name":"Golden Gate","name_suffix":"Collier County, Florida","type":"subcity"},{"alternative_names":"Golden","boundingbox":[-147.9861112,60.9699999,-147.9861112,60.9699999],"display_name":"Golden, Unorganized Borough, Alaska","lon":-147.9861112,"lat":60.9699999,"name":"Golden","name_suffix":"Unorganized Borough, Alaska","type":"subcity"},{"alternative_names":"Golden Gate Bridge Bike Approach","boundingbox":[-122.4815678,37.8324728,-122.4815678,37.8324728],"display_name":"Golden Gate Bridge Bike Approach, Marin County, California","lon":-122.4815678,"lat":37.8324728,"name":"Golden Gate Bridge Bike Approach","name_suffix":"Marin County, California","type":"street"},{"alternative_names":"Gate Road","boundingbox":[-74.5401376,40.5820287,-74.5401376,40.5820287],"display_name":"Gate Road, Bridgewater Township, Somerset County, New Jersey","lon":-74.5401376,"lat":40.5820287,"name":"Gate Road","name_suffix":"Bridgewater Township, Somerset County, New Jersey","type":"street"},{"alternative_names":"Golden Street","boundingbox":[-80.2568306,39.2858178,-80.2568306,39.2858178],"display_name":"Golden Street, Bridgeport, Bridgeport, Harrison County, West Virginia","lon":-80.2568306,"lat":39.2858178,"name":"Golden Street","name_suffix":"Bridgeport, Bridgeport, Harrison County, West Virginia","type":"street"},{"alternative_names":"Golden Gate Court","boundingbox":[-118.3193096,33.9230783,-118.3193096,33.9230783],"display_name":"Golden Gate Court, Hawthorne, Los Angeles County, California","lon":-118.3193096,"lat":33.9230783,"name":"Golden Gate Court","name_suffix":"Hawthorne, Los Angeles County, California","type":"street"},{"alternative_names":"Golden Gate Drive","boundingbox":[-123.8378422,40.4633343,-123.8378422,40.4633343],"display_name":"Golden Gate Drive, Maple Grove, Humboldt County, California","lon":-123.8378422,"lat":40.4633343,"name":"Golden Gate Drive","name_suffix":"Maple Grove, Humboldt County, California","type":"street"},{"alternative_names":"Gate Lane","boundingbox":[-2.6502825,51.2020125,-2.6502825,51.2020125],"display_name":"Gate Lane, Mendip, Somerset, England","lon":-2.6502825,"lat":51.2020125,"name":"Gate Lane","name_suffix":"Mendip, Somerset, England","type":"street"},{"alternative_names":"Golden Drive","boundingbox":[-90.4988171,38.8199812,-90.4988171,38.8199812],"display_name":"Golden Drive, St. Charles, St. Charles County, Missouri","lon":-90.4988171,"lat":38.8199812,"name":"Golden Drive","name_suffix":"St. Charles, St. Charles County, Missouri","type":"street"}]} diff --git a/test/replay/geocoder.tilehosting.com-443/reverse b/test/replay/geocoder.tilehosting.com-443/reverse deleted file mode 100644 index a10950e..0000000 --- a/test/replay/geocoder.tilehosting.com-443/reverse +++ /dev/null @@ -1,22 +0,0 @@ -GET /r/14.5272/-22.6792.js?key=furkot -accept: application/json -accept-encoding: gzip,deflate - -HTTP/1.1 200 OK -date: Wed, 04 May 2022 11:48:45 GMT -content-type: application/json; charset=utf-8 -transfer-encoding: chunked -connection: close -access-control-allow-origin: * -etag: W/"2e8-8xndAZtsx9i4exFLDjf1RSUwhXY" -cache-control: max-age=43200 -cf-cache-status: MISS -expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" -report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Dp9cn6AAjivovJDOU0hQ%2FN83E%2FnU3ukerrXDVsmaSDqBQ6u%2BoUrQlsihgx56kzKiTUseUYK9p2esNDdCpDi8fVyIUbOEcaSzeJ1YFV0HZBXf9RiW6SOgkA1hb9fvDebjUDRuKb0oHFNMitU%3D"}],"group":"cf-nel","max_age":604800} -nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800} -vary: Accept-Encoding -server: cloudflare -cf-ray: 706102584cd95a31-MXP -alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400 - -{"count":3,"nextIndex":3,"startIndex":0,"totalResults":3,"results":[{"alternative_names":"Woermann St","boundingbox":[14.526695,-22.6793015,14.526695,-22.6793015],"display_name":"Woermann St, Erongo Region","lon":14.526695,"lat":-22.6793015,"name":"Woermann St","name_suffix":"Erongo Region","type":"street"},{"alternative_names":"Namibia","boundingbox":[11.52803833,-28.96945005,25.26176707,-16.96348553],"display_name":"Namibia","lon":17.0939596,"lat":-22.9744879,"name":"Namibia","name_suffix":"","type":"country"},{"alternative_names":"Erongo Region","boundingbox":[13.63286406,-23.80884454,16.55831599,-20.49104712],"display_name":"Erongo Region","lon":15.3530198,"lat":-22.1501256,"name":"Erongo Region","name_suffix":"","type":"state"}]} diff --git a/test/service/maptiler/index.js b/test/service/maptiler/index.js new file mode 100644 index 0000000..7f72152 --- /dev/null +++ b/test/service/maptiler/index.js @@ -0,0 +1,73 @@ +const should = require('should'); +const maptiler = require('../../../lib/service/maptiler'); + +describe('maptiler geocoding', function () { + + const { geocode } = maptiler({ + interval: 1, + name: 'maptiler', + maptiler_key: process.env.MAPTILER_KEY || 'furkot' + }); + + it('forward', async function () { + + const query = { + address: 'Rua Cafelândia, Carapicuíba, Brasil' + }; + const result = await geocode('forward', 1, query); + should.exist(result); + result.should.have.property('places').with.length(5); + result.places[0].should.deepEqual({ + ll: [-46.83655746281147, -23.537200177660463], + type: 'street', + place: 'Rua Cafelândia', + country: 'Brazil', + address: 'Brazil', + normal: 'BR' + }); + result.places[1].should.deepEqual({ + ll: [-46.895270850509405, -23.61090479385711], + type: 'street', + place: 'Rua Cafelândia', + country: 'Brazil', + address: 'Brazil', + normal: 'BR' + }); + }); + + it('place', async function () { + + const query = { + place: 'Golden Gate Bridge' + }; + const result = await geocode('forward', 1, query); + should.exist(result); + result.should.have.property('places').with.length(5); + result.places[0].should.deepEqual({ + ll: [-122.28275321424007, 37.84177777704476], + type: 'place', + place: 'Golden Gate', + country: 'USA', + address: 'United States', + normal: 'US' + }); + }); + + it('reverse', async function () { + + const query = { + ll: [14.5272, -22.6792] + }; + const result = await geocode('reverse', 1, query); + should.exist(result); + result.should.have.property('places').with.length(5); + result.places[0].should.deepEqual({ + ll: [14.526541957636255, -22.679326596603442], + type: 'street', + place: 'Woermann Street', + country: 'Namibia', + address: 'Namibia', + normal: 'NA' + }); + }); +}); diff --git a/test/service/tilehosting/index.js b/test/service/tilehosting/index.js deleted file mode 100644 index 48d5a7c..0000000 --- a/test/service/tilehosting/index.js +++ /dev/null @@ -1,69 +0,0 @@ -const should = require('should'); -const tilehosting = require('../../../lib/service/tilehosting'); - -describe('tilehosting geocoding', function () { - - const { geocode } = tilehosting({ - interval: 1, - name: 'tilehosting', - tilehosting_key: process.env.TILEHOSTING_KEY || 'furkot' - }); - - it('forward', async function () { - - const query = { - address: 'Rua Cafelândia, Carapicuíba, Brasil' - }; - const result = await geocode('forward', 1, query); - should.exist(result); - result.should.have.property('places').with.length(9); - result.places[0].should.deepEqual({ - ll: [-46.8365592, -23.5372062], - type: 'street', - place: 'Rua Cafelândia', - address: '', - normal: '' - }); - result.places[1].should.deepEqual({ - ll: [-46.8900124, -23.4851747], - type: 'street', - place: 'Rua Cafelândia', - address: '', - normal: '' - }); - }); - - it('place', async function () { - - const query = { - place: 'Golden Gate Bridge' - }; - const result = await geocode('forward', 1, query); - should.exist(result); - result.should.have.property('places').with.length(17); - result.places[0].should.deepEqual({ - ll: [-122.4773342, 37.8096796], - type: 'street', - place: 'Golden Gate Bridge', - address: '', - normal: '' - }); - }); - - it('reverse', async function () { - - const query = { - ll: [14.5272, -22.6792] - }; - const result = await geocode('reverse', 1, query); - should.exist(result); - result.should.have.property('places').with.length(3); - result.places[0].should.deepEqual({ - ll: [14.526695, -22.6793015], - type: 'street', - place: 'Woermann St', - address: '', - normal: '' - }); - }); -});