{"service":"duara-geo","version":"2.0.0","services":{"address_validation":{"available":true,"provider":"nominatim+photon+overpass"},"autocomplete":{"available":true,"provider":"nominatim+photon+overpass"},"elevation":{"available":true,"provider":"valhalla","notes":["requires the routing engine to have been built with elevation data (build_elevation=True); without it this endpoint answers 501 rather than returning zeroes"]},"embed":{"available":true,"provider":"built-in"},"fare":{"available":true,"provider":"built-in","degraded":true,"notes":["NO OPERATOR TARIFF FILE IS LOADED. Fares come from the built-in reference table, which is indicative, dated, and moves with the fuel price. Set GEO_TARIFFS_FILE before charging anybody","time-of-day pricing needs a local zone; without one it is skipped and the quote says so"]},"geocoding":{"available":true,"provider":"nominatim+photon+overpass"},"geofencing":{"available":true,"provider":"built-in","notes":["0 zone(s) loaded","no zones are defined, so every point is served and nothing is restricted. POST a zone to /v1/geofences (admin token) or load a GeoJSON file with GEO_GEOFENCES_FILE"]},"geolocation":{"available":false,"reason":"wifi and cell-tower positioning needs a radio map, which is a dataset this deployment does not have; the endpoint answers 501 rather than guessing"},"isochrone":{"available":true,"provider":"valhalla"},"map_matching":{"available":true,"provider":"valhalla"},"matrix":{"available":true,"provider":"valhalla"},"place_details":{"available":true,"provider":"nominatim+photon+overpass"},"places_nearby":{"available":true,"provider":"nominatim+photon+overpass"},"places_search":{"available":true,"provider":"nominatim+photon+overpass"},"plus_codes":{"available":true,"provider":"open-location-code","notes":["encode and decode are exact; recovering a short code needs a reference point, and resolving one from a place name needs geocoding"]},"reverse_geocoding":{"available":true,"provider":"nominatim+photon+overpass"},"roads":{"available":true,"provider":"valhalla"},"routing":{"available":true,"provider":"valhalla"},"static_maps":{"available":true,"provider":"built-in renderer"},"structured_geocoding":{"available":true,"provider":"nominatim+photon+overpass"},"tiles":{"available":true,"provider":"upstream","notes":["8 layers; pick one with /v1/tiles/{layer}/{z}/{x}/{y} or /v1/style/{layer}.json"]},"timezone":{"available":true,"provider":"built-in country table","degraded":true,"notes":["no boundary dataset is loaded, so zones are resolved from country bounding boxes. Every answer carries method=country and a certainty; a coordinate in a border overlap whose candidates disagree about the offset is refused rather than guessed","set GEO_TIMEZONE_DATA for exact boundaries (`make timezone-data` downloads them)"]},"tour":{"available":true,"provider":"valhalla"},"traffic":{"available":true,"provider":"observations from this deployment's own vehicles","degraded":true,"notes":["0 road segment(s) observed, 0 with a live reading","NOTHING HAS BEEN REPORTED YET, so every duration is free-flow. There is no third-party traffic feed behind this and none is invented: it fills from YOUR vehicles' traces, POSTed to /v1/traffic/report","observations live in this process's memory, so several replicas hold several partial pictures -- the same trade this service makes for rate limits"]}},"costing_models":["auto","motor_scooter","motorcycle","bicycle","pedestrian","truck","bus","taxi"],"default_costing":"motor_scooter","service_area":{"min_latitude":-1.8,"min_longitude":29.3,"max_latitude":4.5,"max_longitude":35.2},"limits":{"max_matrix_cells":256,"max_tour_stops":25,"max_isochrone_minutes":60,"max_isochrone_contours":4,"max_elevation_points":2000,"max_static_map_width":2048,"max_static_map_height":2048,"max_request_bytes":1048576},"basemap":{"available":true,"default":"streets","layers":[{"id":"streets","label":"Streets","format":"jpg","raster":true,"min_zoom":0,"max_zoom":19,"attribution":"© Esri, HERE, Garmin, USGS, NGA, and the GIS User Community","tile_url":"https://maps.duara.shop/v1/tiles/streets/{z}/{x}/{y}.jpg","style_url":"https://maps.duara.shop/v1/style/streets.json","policy":"Esri's legacy ArcGIS Online tile service: no key today, attribution required. Esri considers these endpoints mature and directs new applications at a keyed service with a monthly free allowance, so read their terms before building a commercial product on them. For unambiguous unlimited terms use the `vector` layer instead."},{"id":"light","label":"Light","format":"jpg","raster":true,"min_zoom":0,"max_zoom":16,"attribution":"© Esri, HERE, Garmin, and the GIS User Community","tile_url":"https://maps.duara.shop/v1/tiles/light/{z}/{x}/{y}.jpg","style_url":"https://maps.duara.shop/v1/style/light.json","policy":"Esri legacy tile service. A muted canvas, which is what coloured route and isochrone overlays read best against. Same terms as `streets`."},{"id":"dark","label":"Dark","format":"jpg","raster":true,"min_zoom":0,"max_zoom":16,"attribution":"© Esri, HERE, Garmin, and the GIS User Community","tile_url":"https://maps.duara.shop/v1/tiles/dark/{z}/{x}/{y}.jpg","style_url":"https://maps.duara.shop/v1/style/dark.json","policy":"Esri legacy tile service. Same terms as `streets`."},{"id":"satellite","label":"Satellite","format":"jpg","raster":true,"min_zoom":0,"max_zoom":19,"attribution":"Imagery © Esri, Maxar, Earthstar Geographics, and the GIS User Community","tile_url":"https://maps.duara.shop/v1/tiles/satellite/{z}/{x}/{y}.jpg","style_url":"https://maps.duara.shop/v1/style/satellite.json","policy":"Esri legacy tile service. The layer that answers a question no street map can: whether a delivery address is a compound, a market or an empty field. Same terms as `streets`."},{"id":"terrain","label":"Terrain","format":"png","raster":true,"min_zoom":0,"max_zoom":17,"attribution":"© OpenTopoMap (CC-BY-SA), data © OpenStreetMap contributors, SRTM","tile_url":"https://maps.duara.shop/v1/tiles/terrain/{z}/{x}/{y}.png","style_url":"https://maps.duara.shop/v1/style/terrain.json","policy":"OpenTopoMap is community-run on donated hardware with a fair-use expectation. Behind this service's tile cache an application is fine; a bulk crawl is not."},{"id":"humanitarian","label":"Humanitarian","format":"png","raster":true,"min_zoom":0,"max_zoom":19,"attribution":"© OpenStreetMap contributors, tiles by the Humanitarian OSM Team","tile_url":"https://maps.duara.shop/v1/tiles/humanitarian/{z}/{x}/{y}.png","style_url":"https://maps.duara.shop/v1/style/humanitarian.json","policy":"Humanitarian OSM Team cartography, hosted by OpenStreetMap France on donated hardware; fair use. Worth knowing about rather than skipping past: this style was designed for places commercial cartography is thin, and it renders much of sub-Saharan Africa and South Asia better than the global styles do."},{"id":"cycling","label":"Cycling","format":"png","raster":true,"min_zoom":0,"max_zoom":18,"attribution":"CyclOSM, hosted by OpenStreetMap France, data © OpenStreetMap contributors","tile_url":"https://maps.duara.shop/v1/tiles/cycling/{z}/{x}/{y}.png","style_url":"https://maps.duara.shop/v1/style/cycling.json","policy":"OpenStreetMap France infrastructure, fair use. Shows surface and track quality, which matters for a two-wheeler and is invisible on a car-oriented map."},{"id":"vector","label":"Vector streets","format":"mvt","raster":false,"min_zoom":0,"max_zoom":14,"attribution":"OpenFreeMap © OpenMapTiles Data from OpenStreetMap","tile_url":"https://maps.duara.shop/v1/tiles/vector/{z}/{x}/{y}.mvt","style_url":"https://maps.duara.shop/v1/style/vector.json","policy":"OpenFreeMap: no key, no registration, NO REQUEST LIMIT, commercial use explicitly allowed. The only basemap here whose terms do not need reading twice, and the right choice for production -- point MapLibre GL at /v1/style/vector.json."}],"source":"upstream","format":"jpg","min_zoom":0,"max_zoom":19,"raster":true,"attribution":"© Esri, HERE, Garmin, USGS, NGA, and the GIS User Community","tile_url":"https://maps.duara.shop/v1/tiles/{z}/{x}/{y}.jpg","style_url":"https://maps.duara.shop/v1/style.json"},"auth":{"key_required":true,"methods":["Authorization: Bearer \u003ckey\u003e","X-API-Key: \u003ckey\u003e","?key=\u003ckey\u003e"],"scopes":["routing","geocoding","isochrone","tiles","static","elevation","timezone"]},"place_categories":["airport","atm","bakery","bank","bar","book_store","bureau_de_change","bus_station","cafe","car_repair","charging_station","cinema","clinic","clothing_store","courthouse","dentist","drinking_water","electronics_store","embassy","fast_food","fire_station","florist","fuel","furniture_store","gas_station","grocery_store","gym","hair_care","hardware_store","hospital","hotel","laundry","library","lodging","market","mobile_money","museum","park","parking","pharmacy","place_of_worship","police","post_office","restaurant","school","shopping_mall","stadium","store","supermarket","taxi_stand","toilet","tourist_attraction","townhall","train_station","university","veterinary_care"],"links":{"documentation":"https://maps.duara.shop/docs","javascript_sdk":"https://maps.duara.shop/sdk/duara-geo.js","openapi":"https://maps.duara.shop/openapi.json","playground":"https://maps.duara.shop/playground"}}
