改进说明:HTML 结构改进: 添加了 `search-box` 类来增强样式,并使用 `searchResults` id 来动态添加结果。JavaScript 优化: 清空结果: 在每次搜索后清空 `searchResults` 元素,避免结果堆叠。显式处理无结果: 添加 `noResults` 元素,在没有找到结果时显示它,而不是显示空列表。过滤数据: 使用 `filter` 函数来过滤距离小于 500 米的餐厅。模拟数据: 提供了 mockData,模拟实际应用中从 API 获取数据的过程,便于测试。在实际应用中,请使用合适的 API 或数据库来获取数据。样式改进: 添加了 CSS 样式,使页面更美观,包括基本的布局和元素样式。使用方法和注意事项:1. 替换模拟数据: 将 `mockData` 替换为实际从地图 API 或数据库获取的数据。这是非常关键的步骤。 你需要使用相应的 API 来获取附近的餐厅信息,并根据返回数据构建结构。
2. 地图 API 集成: 选择合适的地理位置服务 API,如百度地图 API、高德地图 API 或 Google Maps API。 这些 API 可以根据用户输入的地址和范围查询附近的餐厅。
3. 数据处理: API 返回的数据格式通常会是 JSON 格式。你需要解析 JSON 数据,提取餐厅名称、地址、距离等信息,并将其添加到 `mockData` 数组中。
4. 距离计算: 你需要使用地图 API 提供的距离计算功能或相应的算法来计算餐厅与用户位置之间的距离。
5. 错误处理: 添加适当的错误处理机制,以便在 API 调用失败或数据获取失败时,显示友好的错误消息,避免页面崩溃。例子(使用模拟API调用):
javascript
// 模拟API调用,实际应用中请替换为真实的API调用
function getRestaurants(location) {// ... (模拟API调用逻辑) ...//返回格式:[{name: "餐厅名", address: "地址", distance: 距离(单位米) }, ...]
}// 在searchRestaurants函数中调用
function searchRestaurants() {const location = document.getElementById("locationInput").value;getRestaurants(location).then(data => {// 这里处理从API获取的data数据, 然后处理距离计算,再继续使用mockData格式const mockData = data;// 通过API获取的数据// ...后续处理逻辑} ).catch(error => {//...处理错误})
}关键: 这段代码只是提供了基本的框架。你必须根据你的实际需求和 API 文档修改代码,并进行更全面的错误处理,以确保应用程序的稳定性和可靠性。 请确保使用合适的 API 密钥或身份验证机制。这个改进后的代码提供了更清晰的结构、更可靠的逻辑和更友好的用户体验,并为实际应用提供了更完整的框架。 请根据你的项目需求进行进一步的定制和优化。记住替换模拟API和数据库访问。
本文由:成都民宿于(2025-03-02)发表了关于
附近小饭店查询500米内 (附近小饭店查询地址)的文章
。如转载请注明出处:http://www.cdcy-mail.com
如果您对此感兴趣,可以通过以下联系方式与我们联系:
成都区销售
重庆区销售
云贵区销售
华南区销售
华北区销售
华东区销售
华为企业邮箱销售热线:400-0828-083