Zoom to searches before stops load
This commit is contained in:
parent
ae5ad9fabc
commit
7823349f8f
2 changed files with 24 additions and 5 deletions
|
|
@ -124,6 +124,7 @@ function restoreSearchFromUrl() {
|
|||
: null;
|
||||
if (coordinates) {
|
||||
byId('search-input').value = `${coordinates.lat}, ${coordinates.lon}`;
|
||||
showLocationImmediately({...coordinates, label: `${coordinates.lat}, ${coordinates.lon}`});
|
||||
loadUrl(`${API_URLS.stops}?${new URLSearchParams(coordinates)}`);
|
||||
return;
|
||||
}
|
||||
|
|
@ -358,10 +359,21 @@ function renderGeocodeChoices(data) {
|
|||
function chooseLocation(locationResult) {
|
||||
const coordinates = {lat: locationResult.lat, lon: locationResult.lon};
|
||||
setSearchUrl(new URLSearchParams(coordinates));
|
||||
showLocationImmediately(locationResult);
|
||||
const apiParams = new URLSearchParams({...coordinates, label: locationResult.label});
|
||||
loadUrl(`${API_URLS.stops}?${apiParams}`);
|
||||
}
|
||||
|
||||
/** Mark and zoom to known coordinates without waiting for the stop query. */
|
||||
function showLocationImmediately(locationResult) {
|
||||
if (searchMarker) searchMarker.remove();
|
||||
searchMarker = L.circleMarker([locationResult.lat, locationResult.lon], {
|
||||
radius: 7, color: '#0d6efd', fillColor: '#fff', fillOpacity: 1, weight: 3,
|
||||
}).bindTooltip(locationResult.label || 'Search location').addTo(map);
|
||||
if (isMobile()) setPanel(true);
|
||||
moveMap(() => centrePointInVisibleMap(locationResult.lat, locationResult.lon, 16));
|
||||
}
|
||||
|
||||
/** Choose marker colours that make different transport modes easy to scan. */
|
||||
function markerColour(stop) {
|
||||
const type = stop.transport_type || '';
|
||||
|
|
@ -619,6 +631,7 @@ byId('search-form').addEventListener('submit', event => {
|
|||
if (coordinates) {
|
||||
const params = new URLSearchParams(coordinates);
|
||||
setSearchUrl(params);
|
||||
showLocationImmediately({...coordinates, label: `${coordinates.lat}, ${coordinates.lon}`});
|
||||
loadUrl(`${API_URLS.stops}?${params}`);
|
||||
} else {
|
||||
const params = new URLSearchParams({q: query});
|
||||
|
|
@ -637,6 +650,7 @@ byId('locate-button').addEventListener('click', () => {
|
|||
const params = new URLSearchParams(coordinates);
|
||||
setSearchUrl(params);
|
||||
byId('search-input').value = `${coordinates.lat}, ${coordinates.lon}`;
|
||||
showLocationImmediately({...coordinates, label: 'Your location'});
|
||||
const apiParams = new URLSearchParams({...coordinates, label: 'Your location'});
|
||||
loadUrl(`${API_URLS.stops}?${apiParams}`);
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue