当前位置:首页 > VUE

vue实现搜索附近医院

2026-01-21 19:27:17VUE

实现思路

使用Vue结合高德地图API或百度地图API实现附近医院搜索功能。核心步骤包括获取用户位置、调用地图API搜索附近医院、展示搜索结果。

获取用户位置

通过浏览器Geolocation API获取用户经纬度坐标。需要用户授权位置权限。

vue实现搜索附近医院

navigator.geolocation.getCurrentPosition(
  (position) => {
    const { latitude, longitude } = position.coords;
    this.userLocation = { lat: latitude, lng: longitude };
  },
  (error) => {
    console.error("获取位置失败:", error);
  }
);

调用地图API

以高德地图为例,需要先引入AMap SDK,注册开发者账号获取Key。

vue实现搜索附近医院

<script src="https://webapi.amap.com/maps?v=2.0&key=您的Key"></script>

创建地图实例并搜索周边医院:

initMap() {
  const map = new AMap.Map("map-container", {
    center: [this.userLocation.lng, this.userLocation.lat],
    zoom: 15
  });

  AMap.plugin("AMap.PlaceSearch", () => {
    const placeSearch = new AMap.PlaceSearch({
      type: "医院",
      pageSize: 20
    });
    placeSearch.searchNearBy(
      "",
      [this.userLocation.lng, this.userLocation.lat],
      5000,
      (status, result) => {
        if (status === "complete") {
          this.hospitals = result.poiList.pois;
        }
      }
    );
  });
}

展示搜索结果

在Vue模板中循环渲染医院列表:

<div v-for="hospital in hospitals" :key="hospital.id">
  <h3>{{ hospital.name }}</h3>
  <p>地址:{{ hospital.address }}</p>
  <p>距离:{{ (hospital.distance/1000).toFixed(1) }}公里</p>
</div>

注意事项

  1. 需要处理用户拒绝位置授权的情况,提供手动输入位置功能
  2. 对移动端需要做响应式适配
  3. 医院数据可能需要进一步过滤,排除非医疗机构
  4. 考虑添加路线规划功能

完整组件示例

<template>
  <div>
    <div id="map-container"></div>
    <div v-if="hospitals.length">
      <div v-for="hospital in hospitals" :key="hospital.id">
        <h3>{{ hospital.name }}</h3>
        <p>电话:{{ hospital.tel || '暂无' }}</p>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      userLocation: null,
      hospitals: []
    };
  },
  mounted() {
    this.getLocation();
  },
  methods: {
    getLocation() {
      if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(
          this.initMap,
          this.handleLocationError
        );
      }
    },
    initMap(position) {
      // 地图初始化代码
    },
    handleLocationError(error) {
      console.error("位置获取错误:", error);
    }
  }
};
</script>

标签: 附近医院
分享给朋友:

相关文章

Js实现附近订单

Js实现附近订单

实现附近订单功能的方法 获取用户位置 使用浏览器提供的Geolocation API获取用户的当前位置坐标。代码示例如下: navigator.geolocation.getCurrentPosit…

vue实现搜索附近医院

vue实现搜索附近医院

实现思路 通过Vue结合高德地图API或百度地图API实现搜索附近医院功能。核心步骤包括获取用户位置、调用地图API搜索附近医院、展示结果。 获取用户位置 使用浏览器Geolocation API获…

PHP实现医院

PHP实现医院

PHP实现医院挂号系统 医院挂号系统通常包含患者注册、医生排班、挂号预约、缴费管理等功能模块。以下是一个基于PHP和MySQL的简化实现方案: 数据库设计 创建核心数据表结构: CREATE TA…

uniapp医院

uniapp医院

以下是关于使用UniApp开发医院相关应用的实用信息整合: 开发框架选择 UniApp基于Vue.js语法,支持多端发布(微信小程序、H5、App等)。医院类应用需注重跨平台兼容性,建议使用…

php实现附近的人

php实现附近的人

PHP 实现附近的人功能 附近的人功能通常基于地理位置信息,通过计算用户之间的距离来筛选附近的其他用户。以下是实现该功能的几种方法: 使用 MySQL 空间函数 MySQL 提供了空间函数,可以高效…

Js实现附近订单

Js实现附近订单

实现附近订单功能的核心思路 附近订单功能通常涉及地理位置计算和排序,需要获取用户当前位置,计算订单距离,并按距离排序展示。以下是具体实现方法: 获取用户地理位置 使用浏览器Geolocation A…