Deduplicate nearby station requests

This commit is contained in:
Kenneth Bruen 2023-11-02 05:26:35 +01:00
parent 0afe31fba3
commit 77a13639c6
Signed by: kbruen
GPG key ID: C1980A470C3EE5B1
2 changed files with 46 additions and 34 deletions

View file

@ -183,25 +183,31 @@ function rebuildSuggestions() {
if (nearbyStatus === 'notRequested') {
suggestionsArea.appendChild(a('', 'Load nearby stations').event$('click', function (event) {
event.preventDefault()
var latitude = 0
var longitude = 0
var watchId = navigator.geolocation.watchPosition(
function (data) {
var geoUrl = new URL('https://v6.db.transport.rest/locations/nearby')
geoUrl.searchParams.append('latitude', data.coords.latitude.toString())
geoUrl.searchParams.append('longitude', data.coords.longitude.toString())
geoUrl.searchParams.append('results', '10')
fetch(geoUrl)
.then(function (response) {
return response.json()
})
.then(function (data) {
nearbyStatus = 'gotData'
nearbyStations = data
rebuildSuggestions()
})
.catch(function () {
nearbyStatus = 'unavailable'
rebuildSuggestions()
})
if (data.coords.latitude !== latitude || data.coords.longitude !== longitude) {
latitude = data.coords.latitude
longitude = data.coords.longitude
var geoUrl = new URL('https://v6.db.transport.rest/locations/nearby')
geoUrl.searchParams.append('latitude', data.coords.latitude.toString())
geoUrl.searchParams.append('longitude', data.coords.longitude.toString())
geoUrl.searchParams.append('results', '10')
fetch(geoUrl)
.then(function (response) {
return response.json()
})
.then(function (data) {
nearbyStatus = 'gotData'
nearbyStations = data
rebuildSuggestions()
})
.catch(function () {
nearbyStatus = 'unavailable'
rebuildSuggestions()
})
}
},
function (error) {
if (nearbyStations.length === 0) {

View file

@ -145,25 +145,31 @@ function rebuildSuggestions() {
if (nearbyStatus === 'notRequested') {
suggestionsArea.appendChild(a('', 'Load nearby stations').event$('click', function (event) {
event.preventDefault()
var latitude = 0
var longitude = 0
var watchId = navigator.geolocation.watchPosition(
function (data) {
var geoUrl = new URL('https://v6.db.transport.rest/locations/nearby')
geoUrl.searchParams.append('latitude', data.coords.latitude.toString())
geoUrl.searchParams.append('longitude', data.coords.longitude.toString())
geoUrl.searchParams.append('results', '10')
fetch(geoUrl)
.then(function (response) {
return response.json()
})
.then(function (data) {
nearbyStatus = 'gotData'
nearbyStations = data
rebuildSuggestions()
})
.catch(function () {
nearbyStatus = 'unavailable'
rebuildSuggestions()
})
if (data.coords.latitude !== latitude || data.coords.longitude !== longitude) {
latitude = data.coords.latitude
longitude = data.coords.longitude
var geoUrl = new URL('https://v6.db.transport.rest/locations/nearby')
geoUrl.searchParams.append('latitude', data.coords.latitude.toString())
geoUrl.searchParams.append('longitude', data.coords.longitude.toString())
geoUrl.searchParams.append('results', '10')
fetch(geoUrl)
.then(function (response) {
return response.json()
})
.then(function (data) {
nearbyStatus = 'gotData'
nearbyStations = data
rebuildSuggestions()
})
.catch(function () {
nearbyStatus = 'unavailable'
rebuildSuggestions()
})
}
},
function (error) {
if (nearbyStations.length === 0) {