Deduplicate nearby station requests
This commit is contained in:
parent
0afe31fba3
commit
77a13639c6
2 changed files with 46 additions and 34 deletions
|
@ -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) {
|
||||
|
|
40
station.js
40
station.js
|
@ -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) {
|
||||
|
|
Loading…
Add table
Reference in a new issue