X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/8e602e40f04bb048adba103dd1dde79ba2cfdffc..f695e7586420364987aaae322cbb95ce0db15ab5:/src/assets/js/base.js?ds=sidebyside
diff --git a/src/assets/js/base.js b/src/assets/js/base.js
index ef7fc1c..c7ae6f9 100644
--- a/src/assets/js/base.js
+++ b/src/assets/js/base.js
@@ -3,13 +3,33 @@
var map;
var last_click_latlng;
+// *********************************************************
+// DEFAULTS
+// *********************************************************
+
+var Nominatim_Config_Defaults = {
+ Nominatim_API_Endpoint: 'http://localhost/nominatim/',
+ Images_Base_Url: '/mapicons/',
+ Search_AreaPolygons: 1,
+ Reverse_Default_Search_Zoom: 18,
+ Map_Default_Lat: 20.0,
+ Map_Default_Lon: 0.0,
+ Map_Default_Zoom: 2,
+ Map_Tile_URL: 'https://{s}.tile.osm.org/{z}/{x}/{y}.png',
+ Map_Tile_Attribution: 'OpenStreetMap contributors'
+};
// *********************************************************
// HELPERS
// *********************************************************
+
function get_config_value(str, default_val) {
- return (typeof Nominatim_Config[str] !== 'undefined' ? Nominatim_Config[str] : default_val);
+ var value = ((typeof Nominatim_Config !== 'undefined')
+ && (typeof Nominatim_Config[str] !== 'undefined'))
+ ? Nominatim_Config[str]
+ : Nominatim_Config_Defaults[str];
+ return (typeof value !== 'undefined' ? value : default_val);
}
function parse_and_normalize_geojson_string(part) {
@@ -29,7 +49,10 @@ function parse_and_normalize_geojson_string(part) {
}
function map_link_to_osm() {
- return 'https://openstreetmap.org/#map=' + map.getZoom() + '/' + map.getCenter().lat + '/' + map.getCenter().lng;
+ var zoom = map.getZoom();
+ var lat = map.getCenter().lat;
+ var lng = map.getCenter().lng;
+ return 'https://openstreetmap.org/#map=' + zoom + '/' + lat + '/' + lng;
}
function map_viewbox_as_string() {
@@ -58,12 +81,18 @@ function map_viewbox_as_string() {
// *********************************************************
function fetch_from_api(endpoint_name, params, callback) {
- // `&a=&b=&c=1` => '&c='
- for (var k in params) {
- if (typeof (params[k]) === 'undefined' || params[k] === '' || params[k] === null) delete params[k];
+ //
+ // `&a=&b=&c=1` => '&c=1'
+ var param_names = Object.keys(params);
+ for (var i = 0; i < param_names.length; i += 1) {
+ var val = params[param_names[i]];
+ if (typeof (val) === 'undefined' || val === '' || val === null) {
+ delete params[param_names[i]];
+ }
}
- var api_url = get_config_value('Nominatim_API_Endpoint') + endpoint_name + '.php?' + $.param(params);
+ var api_url = get_config_value('Nominatim_API_Endpoint') + endpoint_name + '.php?'
+ + $.param(params);
if (endpoint_name !== 'status') {
$('#api-request-link').attr('href', api_url);
}
@@ -105,7 +134,8 @@ function hide_error() {
$(document).ajaxError(function (event, jqXHR, ajaxSettings/* , thrownError */) {
// console.log(thrownError);
// console.log(ajaxSettings);
- show_error('Error fetching results from ' + ajaxSettings.url + '');
+ var url = ajaxSettings.url;
+ show_error('Error fetching results from ' + url + '');
});