fixes
This commit is contained in:
24
src/functions/reverseGeocodeSocket.ts
Normal file
24
src/functions/reverseGeocodeSocket.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
// services/nominatimService.ts
|
||||
import { useSocketioStore } from 'stores/socketio';
|
||||
import type { NominatimResponse, NominatimRequest } from 'components/models';
|
||||
|
||||
const socketStore = useSocketioStore();
|
||||
|
||||
let lastRequestTime = 0;
|
||||
|
||||
export const reverseGeocodeRateLimited = async (
|
||||
lat: number,
|
||||
lon: number,
|
||||
): Promise<NominatimResponse> => {
|
||||
const now = Date.now();
|
||||
const timeSinceLast = now - lastRequestTime;
|
||||
|
||||
// Wait if less than 1000ms has passed
|
||||
if (timeSinceLast < 1000) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 1000 - timeSinceLast));
|
||||
}
|
||||
const response: NominatimResponse = await socketStore.revGeoCode({latitude: lat, longitude: lon} as NominatimRequest);
|
||||
|
||||
lastRequestTime = Date.now();
|
||||
return response;
|
||||
};
|
||||
Reference in New Issue
Block a user