const axios = require('axios'); async function loc(lng, lat) { const primary = await place(lng, lat); if (!primary) { return await place1(lng, lat); } if (!primary.county_code) { const fallback = await place1(lng, lat); if (fallback && fallback.county_code) { primary.county_code = fallback.county_code; } } return primary; } async function place(lng, lat) { const apiKey = "6dc7fb95a3b246cfa0f3bcef5ce9ed9a"; const url = `https://api.geoapify.com/v1/geocode/reverse?lat=${lat}&lon=${lng}&apiKey=${apiKey}`; try { const r = await axios.get(url); if (r.status !== 200) return undefined; if (!r.data.features || r.data.features.length === 0) return undefined; const k = r.data.features[0].properties; return { continent: k?.timezone?.name?.split("/")?.[0] || undefined, country: k?.country || undefined, region: k?.state || undefined, postcode: k?.postcode || undefined, city: k?.city || undefined, county_code: k?.county_code || undefined, address: k?.address_line1 || undefined, timezone: k?.timezone?.name || undefined, time: k?.timezone?.offset_STD || undefined }; } catch (err) { return undefined; } } async function place1(lng, lat) { try { const r = await axios.get(`http://192.168.1.3:6565/query?${lng}&${lat}`); const k = r.data; const county = k?.province_code?.includes("-") ? k.province_code.split("-")[1] : k?.province_code; return { continent: k?.region || undefined, country: k?.country || undefined, region: undefined, postcode: undefined, city: undefined, county_code: county || undefined, address: undefined, timezone: undefined, time: undefined }; } catch (err) { return undefined; } } module.exports = loc;