改进说明和解释:HTML 结构改进: 添加了 `result-container`, `hotel-item`等类用于样式控制,使结果显示更清晰。 关键的是,添加了 `overflow-x: auto;` 到 `.result-container`,以便在酒店列表很多时可以水平滚动查看。 样式改进: 添加了CSS样式,让结果更美观, 添加了图片显示,并且限制了图片高度`max-height: 200px;`,方便用户查看。JavaScript 改进:模拟数据: 用 `hotels` 数组模拟酒店数据。 实际应用中,请替换为实际的API调用,例如使用地图API获取附近酒店信息。清空结果: `resultsDiv.innerHTML = "";` 在每次搜索时清空之前的结果,避免重复显示。添加错误处理: 如果搜索无结果,显示"未找到符合条件的酒店。"提示。关键逻辑: `filteredHotels` 数组用于过滤符合条件的酒店。请注意,实际应用中需要使用地理位置API计算距离,以此来实现准确的过滤。用户体验: 添加了搜索半径输入框,让结果更精准。如何实际使用 (关键部分):1. 获取地理位置: 你需要使用 JavaScript 的地理位置 API 获取用户的当前位置。 这部分需要用户同意分享位置。
2. 使用地图API: 使用地图API(例如 Google Maps API 或百度地图API)计算酒店与用户当前位置的距离。 你需要将酒店的经纬度信息和用户的位置经纬度信息传递给API。
3. 过滤酒店: 在搜索结果中,根据距离过滤酒店列表,只显示在指定半径内的酒店。完整的实现需要:地图API密钥: 获取并配置地图API密钥。API调用:使用地图API获取酒店信息,并计算与用户位置的距离。数据处理: 将API返回的数据解析成 `hotel` 对象数组。代码整合: 将以上步骤整合到 `searchHotels()` 函数中。示例API调用 (Google Maps API -示意):
javascript
// ... (获取用户位置代码)function searchHotels() {// ... (获取用户位置)let geocoder = new google.maps.Geocoder();geocoder.geocode({ 'address': location }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {// 存储用户位置经纬度}});// ... (使用地图API获取酒店信息,并计算距离)
}请注意:以上代码只是一个框架,需要根据具体需求和API进行修改和完善。地图API调用和位置获取需要在服务器端或前端进行。需要处理可能出现的错误和用户交互。 例如,用户拒绝分享位置时提供提示。需要考虑性能,大规模数据时需要进行优化。这个改进后的例子提供了一个更实际的框架,你需要将JavaScript部分替换成使用地图API的代码才能得到正确的结果。记住,你需要一个合适的API密钥才能真正使用地图API。
本文由:成都民宿于(2025-03-02)发表了关于
附近最近的酒店住宿查询 (附近最近的酒店)的文章
。如转载请注明出处:http://www.cdcy-mail.com
如果您对此感兴趣,可以通过以下联系方式与我们联系:
成都区销售
重庆区销售
云贵区销售
华南区销售
华北区销售
华东区销售
华为企业邮箱销售热线:400-0828-083