javascript
// script.js// 获取用户位置
const getLocation = () => {return new Promise((resolve, reject) => {navigator.geolocation.getCurrentPosition(resolve, reject);});
};// 获取查询参数
const getQueryParams = () => {const params = new URLSearchParams(window.location.search);return {location: params.get('location'),carRepair: params.has('car-repair'),shoeRepair: params.has('shoe-repair'),};
};// 格式化地址
const formatAddress = (address) => {return address.replace(/\s+/g, '+');
};// 搜索修车店/修鞋店
const search = async (params) => {// 谷歌地图API密钥const apiKey = 'YOUR_API_KEY';//搜索请求URLconst url = `${formatAddress(params.location)}&radius=5000&keyword=${params.carRepair ? 'car repair' : 'shoe repair'}&key=${apiKey}`;// 发送请求并处理响应try {const response = await fetch(url);const data = await response.json();return data.results;} catch (error) {console.error(error);return [];}
};// 显示搜索结果
const displayResults = (results) => {const carRepairResults = document.querySelector('results > ul:first-child');const shoeRepairResults = document.querySelector('results > ul:last-child');results.forEach((result) => {const name = result.name;const address = result.vicinity;const listItem = document.createElement('li');const link = document.createElement('a');link.href = `${name} ${address}`;link.textContent = `${name} (${address})`;listItem.appendChild(link);if (result.types.includes('car_repair')) {carRepairResults.appendChild(listItem);} else {shoeRepairResults.appendChild(listItem);}
});
};// 主函数
const init = async () => {const params = getQueryParams();if (!params.location || !(params.carRepair || params.shoeRepair)) {alert('请填写必要的信息。');return;}const location = await getLocation();if (!location) {alert('无法获取您的位置。');return;}params.location = `${location.coords.latitude},${location.coords.longitude}`;const results = await search(params);displayResults(results);
};init();