X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/c061d3fd3d4c9135fdbda0af273d9fc0dc5b5535..51dab2d73981ff460f7ddc4408df9767ce81ce7a:/src/pages/DetailsPage.svelte
diff --git a/src/pages/DetailsPage.svelte b/src/pages/DetailsPage.svelte
index d480050..1f6d84e 100644
--- a/src/pages/DetailsPage.svelte
+++ b/src/pages/DetailsPage.svelte
@@ -4,20 +4,22 @@
import {
osmLink, wikipediaLink, coverageType, isAdminBoundary,
- formatAddressRank, formatKeywordToken
+ formatAddressRank, formatKeywordToken, formatOSMType
} from '../lib/helpers.js';
import Header from '../components/Header.svelte';
import MapIcon from '../components/MapIcon.svelte';
import SearchSectionDetails from '../components/SearchSectionDetails.svelte';
import DetailsOneRow from '../components/DetailsOneRow.svelte';
import DetailsLink from '../components/DetailsLink.svelte';
+ import DetailsPostcodeHint from '../components/DetailsPostcodeHint.svelte';
+ import InfoRow from '../components/DetailsInfoRow.svelte';
+ import InfoRowList from '../components/DetailsInfoRowList.svelte';
import Map from '../components/Map.svelte';
let aPlace;
- let errorResponse;
- let base_url = window.location.search;
- let current_result;
+ let base_url;
let api_request_params;
+ let api_request_finished = false;
function loaddata(search_params) {
api_request_params = {
@@ -32,6 +34,7 @@
polygon_geojson: 1,
format: 'json'
};
+ api_request_finished = false;
if (api_request_params.place_id || (api_request_params.osmtype && api_request_params.osmid)) {
@@ -43,149 +46,105 @@
fetch_from_api('details', api_request_params, function (data) {
window.scrollTo(0, 0);
- if (data.error) {
- errorResponse = data;
- current_result = undefined;
- } else {
- aPlace = data;
- errorResponse = undefined;
- current_result = data;
- }
+ api_request_finished = true;
+ aPlace = (data && !data.error) ? data : undefined;
});
} else {
aPlace = undefined;
}
}
+ function place_has_keywords(aThisPlace) {
+ // Return false if Nominatim API sends 'keywords: { name: [], address: [] }'
+ return (
+ aThisPlace.keywords && aThisPlace.keywords.name && aThisPlace.keywords.address
+ && (aThisPlace.keywords.name.length > 0 || aThisPlace.keywords.address.length > 0)
+ );
+ }
+
$: {
let pageinfo = $page;
if (pageinfo.tab === 'details') {
loaddata(pageinfo.params);
+ base_url = window.location.search;
}
}
+ $: reverse_only = Nominatim_Config.Reverse_Only;
Name | -
- {#each Object.keys(aPlace.names) as name}
-
- {aPlace.names[name]} ({name})
-
- {/each}
- |
-
Type | -{aPlace.category}:{aPlace.type} | -
Last Updated | -{aPlace.indexed_date} | -
Admin Level | -{aPlace.admin_level} | -
Search Rank | -{aPlace.rank_search} | -
Address Rank | -{aPlace.rank_address} ({formatAddressRank(aPlace.rank_address)}) | -
Importance | -
+ |
-
Coverage | -{coverageType(aPlace)} | -
Centre Point (lat,lon) | -
+ |
-
OSM | -{@html osmLink(aPlace)} - |
- Place Id - (on this server) - | -{aPlace.place_id} | -
Wikipedia Calculated | -{@html wikipediaLink(aPlace)} | -
Computed Postcode | -{aPlace.calculated_postcode} | -
Address Tags | -
- {#each Object.keys(aPlace.addresstags) as name}
-
- {aPlace.addresstags[name]} ({name})
-
- {/each}
- |
-
Extra Tags | -
- {#each Object.keys(aPlace.extratags) as name}
-
- {aPlace.extratags[name]} ({name})
-
- {/each}
- |
-
There are more child objects which are not shown.
+ {#if Object.keys(aPlace.hierarchy) > 500} +There are more child objects which are not shown.
+ {/if} + {:else} +