X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/0224e5348603ae8927c61acca5f41620e9e66dd9..aabb32c8a1e90534f3ee61e428e668280587dfd9:/src/assets/js/detailpage.js diff --git a/src/assets/js/detailpage.js b/src/assets/js/detailpage.js index aa3d771..65b2dc0 100644 --- a/src/assets/js/detailpage.js +++ b/src/assets/js/detailpage.js @@ -15,7 +15,7 @@ function init_map_on_detail_page(lat, lon, geojson) { L.tileLayer(get_config_value('Map_Tile_URL'), { // moved to footer - attribution: (get_config_value('Map_Tile_Attribution') || null ) //'© OpenStreetMap contributors' + attribution: (get_config_value('Map_Tile_Attribution') || null ) //'© OpenStreetMap contributors' }).addTo(map); var layerGroup = new L.layerGroup().addTo(map); @@ -25,7 +25,7 @@ function init_map_on_detail_page(lat, lon, geojson) { if (geojson) { var geojson_layer = L.geoJson( - // http://leafletjs.com/reference-1.0.3.html#path-option + // https://leafletjs.com/reference-1.0.3.html#path-option parse_and_normalize_geojson_string(geojson), { style: function(feature) { @@ -54,20 +54,50 @@ jQuery(document).ready(function(){ var api_request_params = { place_id: search_params.get('place_id'), - place_id: search_params.get('osmtype'), - place_id: search_params.get('osmid'), - group_parents: 1, + osmtype: search_params.get('osmtype'), + osmid: search_params.get('osmid'), + keywords: search_params.get('keywords'), + addressdetails: 1, + hierarchy: 1, + group_hierarchy: 1, + polygon_geojson: 1, format: 'json' }; - fetch_from_api('details', api_request_params, function(aFeature){ + if (api_request_params.place_id || (api_request_params.osmtype && api_request_params.osmid )){ + fetch_from_api('details', api_request_params, function(aFeature){ - var context = { aPlace: aFeature }; + var context = { aPlace: aFeature }; - render_template($('main'), 'detailspage-template', context); + render_template($('main'), 'detailspage-template', context); - update_data_date(); + update_data_date(); - init_map_on_detail_page(aFeature.lat, aFeature.lon, aFeature.asgeojson); + var lat = aFeature.centroid.coordinates[1]; + var lon = aFeature.centroid.coordinates[0]; + init_map_on_detail_page(lat, lon, aFeature.geometry); + }); + } else { + render_template($('main'), 'detailspage-index-template'); + } + + $('#form-by-type-and-id,#form-by-osm-url').on('submit', function(e){ + e.preventDefault(); + + var val = $(this).find('input[type=edit]').val(); + var matches = val.match(/^\s*([NWR])(\d+)\s*$/i); + + if (!matches) { + matches = val.match(/\/(relation|way|node)\/(\d+)\s*$/); + } + + if (matches) { + $(this).find('input[name=osmtype]').val(matches[1].charAt(0).toUpperCase()); + $(this).find('input[name=osmid]').val(matches[2]); + $(this).get(0).submit(); + } else { + alert('invalid input'); + } }); + }); \ No newline at end of file