make more cdn's and API urls/settings configurable

* CDNs for OCI, NSI, etc.
* OSM API (URL and oauth API settings)
* taginfo API
* nominatim API
This commit is contained in:
Martin Raifer
2022-10-14 18:24:29 +02:00
parent e8ceba1107
commit c8a3cf154b
12 changed files with 74 additions and 62 deletions
+3 -1
View File
@@ -4,8 +4,10 @@ import RBush from 'rbush';
import { geoExtent } from '../geo';
import { utilQsString } from '../util';
import { nominatimApiUrl } from '../../config/id.js';
var apibase = 'https://nominatim.openstreetmap.org/';
var apibase = nominatimApiUrl;
var _inflight = {};
var _nominatimCache;
+10 -7
View File
@@ -4,6 +4,8 @@ import parseVersion from 'vparse';
import { fileFetcher, locationManager } from '../core';
import { presetManager } from '../presets';
import { nsiCdnUrl } from '../../config/id.js';
// Make very sure this resolves to iD's `package.json`
// If you mess up the `../`s, the resolver may import another random package.json from somewhere else.
import packageJSON from '../../package.json';
@@ -47,14 +49,15 @@ function setNsiSources() {
const nsiVersion = packageJSON.dependencies['name-suggestion-index'] || packageJSON.devDependencies['name-suggestion-index'];
const v = parseVersion(nsiVersion);
const vMinor = `${v.major}.${v.minor}`;
const cdn = nsiCdnUrl.replace('{version}', vMinor);
const sources = {
'nsi_data': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/nsi.min.json`,
'nsi_dissolved': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/dissolved.min.json`,
'nsi_features': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/featureCollection.min.json`,
'nsi_generics': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/genericWords.min.json`,
'nsi_presets': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/presets/nsi-id-presets.min.json`,
'nsi_replacements': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/replacements.min.json`,
'nsi_trees': `https://cdn.jsdelivr.net/npm/name-suggestion-index@${vMinor}/dist/trees.min.json`
'nsi_data': cdn + 'dist/nsi.min.json',
'nsi_dissolved': cdn + 'dist/dissolved.min.json',
'nsi_features': cdn + 'dist/featureCollection.min.json',
'nsi_generics': cdn + 'dist/genericWords.min.json',
'nsi_presets': cdn + 'dist/presets/nsi-id-presets.min.json',
'nsi_replacements': cdn + 'dist/replacements.min.json',
'nsi_trees': cdn + 'dist/trees.min.json'
};
let fileMap = fileFetcher.fileMap();
+14 -3
View File
@@ -10,21 +10,24 @@ import { geoExtent, geoRawMercator, geoVecAdd, geoZoomToScale } from '../geo';
import { osmEntity, osmNode, osmNote, osmRelation, osmWay } from '../osm';
import { utilArrayChunk, utilArrayGroupBy, utilArrayUniq, utilObjectOmit, utilRebind, utilTiler, utilQsString } from '../util';
import { osmApiConnections } from '../../config/id.js';
var tiler = utilTiler();
var dispatch = d3_dispatch('apiStatusChange', 'authLoading', 'authDone', 'change', 'loading', 'loaded', 'loadedNotes');
var urlroot = 'https://www.openstreetmap.org';
var urlroot = osmApiConnections[0].url;
var redirectPath = window.location.origin + window.location.pathname;
var oauth = osmAuth({
url: urlroot,
client_id: '0tmNTmd0Jo1dQp4AUmMBLtGiD9YpMuXzHefitcuVStc',
client_secret: 'BTlNrNxIPitHdL4sP2clHw5KLoee9aKkA7dQbc0Bj7Q',
client_id: osmApiConnections[0].client_id,
client_secret: osmApiConnections[0].client_secret,
scope: 'read_prefs write_prefs write_api read_gpx write_notes',
redirect_uri: redirectPath + 'land.html',
loading: authLoading,
done: authDone
});
var _apiConnections = osmApiConnections;
// hardcode default block of Google Maps
var _imageryBlocklists = [/.*\.google(apis)?\..*\/(vt|kh)[\?\/].*([xyz]=.*){3}.*/];
@@ -1276,6 +1279,14 @@ export default {
},
/* connection options for source switcher (optional) */
apiConnections: function(val) {
if (!arguments.length) return _apiConnections;
_apiConnections = val;
return this;
},
switch: function(newOptions) {
urlroot = newOptions.url;
+2 -1
View File
@@ -5,8 +5,9 @@ import { json as d3_json } from 'd3-fetch';
import { utilObjectOmit, utilQsString } from '../util';
import { localizer } from '../core/localizer';
import { taginfoApiUrl } from '../../config/id.js';
var apibase = 'https://taginfo.openstreetmap.org/api/4/';
var apibase = taginfoApiUrl;
var _inflight = {};
var _popularKeys = {};
var _taginfoCache = {};