Vue Baidu 지도는 주소 이름을 통해 주소의 위도 및 경도 GPS를 얻습니다.

Vue 프로젝트에서 Baidu 지도 JavaScript API를 사용하여 주소 이름에 따라 경도 및 위도 GPS를 얻는 기능을 실현할 수 있습니다. 구체적인 단계는 다음과 같습니다.

  1. index.html에 Baidu Maps JavaScript API에 대한 참조 추가
<!-- 引入百度地图的JavaScript API -->
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=<your-ak>"></script>

그 중 <your-ak>신청하신 바이두 지도개발자 AK키로 교체하셔야 합니다.

  1. Vue 컴포넌트의 메소드에서 지오코딩 함수 호출

구성 요소의 메서드에서 BMap.Geocoder클래스를 사용하여 지오코딩 작업을 수행합니다. 예를 들어 getPointByAddress주소 문자열을 매개 변수로 사용하고 해당 주소의 위도 및 경도 좌표를 반환하는 이라는 메서드를 정의할 수 있습니다.

export default {
    
    
  methods: {
    
    
    // 根据地址名称获取经纬度坐标
    getPointByAddress(address) {
    
    
      // 创建地理编码实例
      const myGeo = new BMap.Geocoder();

      return new Promise((resolve, reject) => {
    
    
        // 对地址进行地理编码
        myGeo.getPoint(address, (point) => {
    
    
          if (point) {
    
    
            // 地理编码成功,返回经纬度坐标对象
            resolve(point);
          } else {
    
    
            // 地理编码失败
            reject('地理编码失败');
          }
        }, '全国');
      });
    },
  },
};

위의 코드에서 먼저 BMap.Geocoder인스턴스가 생성됩니다. 그런 다음 인스턴스의 getPoint메서드를 사용하여 지오코딩하고 주소 문자열을 매개변수로 전달합니다. 마지막으로 지오코딩 비동기 요청의 결과는 Promise를 통해 처리됩니다.

  1. 주소의 위도와 경도를 가져오는 메서드를 호출합니다.

Vue 구성 요소에서 getPointByAddress메서드를 호출하여 지정된 주소의 위도 및 경도 좌표를 얻을 수 있습니다. 예를 들어 템플릿에 입력 상자와 버튼을 추가하고 사용자가 버튼을 클릭하면 getLocation메서드가 트리거되고 getPointByAddress메서드가 호출되어 현재 입력된 주소의 위도 및 경도 좌표를 가져옵니다.

<template>
  <div>
    <input type="text" v-model="address" />
    <button @click="getLocation">获取位置</button>
  </div>
</template>

<script>
export default {
      
      
  data() {
      
      
    return {
      
      
      address: '',
      point: null,
    };
  },
  methods: {
      
      
    // 获取当前地址的经纬度坐标
    async getLocation() {
      
      
      try {
      
      
        const point = await this.getPointByAddress(this.address);
        this.point = point;
        console.log('经度:', point.lng);
        console.log('纬度:', point.lat);
      } catch (error) {
      
      
        console.error(error);
      }
    },

    // 根据地址名称获取经纬度坐标
    getPointByAddress(address) {
      
      
      // 创建地理编码实例
      const myGeo = new BMap.Geocoder();

      return new Promise((resolve, reject) => {
      
      
        // 对地址进行地理编码
        myGeo.getPoint(address, (point) => {
      
      
          if (point) {
      
      
            // 地理编码成功,返回经纬度坐标对象
            resolve(point);
          } else {
      
      
            // 地理编码失败
            reject('地理编码失败');
          }
        }, '全国');
      });
    },
  },
};
</script>

위의 코드에서 사용자가 버튼을 클릭하면 비동기 함수의 반환 결과를 기다리는 getLocation메서드가 호출됩니다 . 지오코딩이 성공하면 위도 및 경도 값이 인쇄된 위도-경도 좌표 개체가 반환됩니다. 그렇지 않으면 콘솔에 오류 메시지가 출력됩니다.awaitgetPointByAddress

이런 식으로 Vue 프로젝트에서 주소 이름에 따라 경도 및 위도 GPS를 얻는 기능이 구현됩니다.

Supongo que te gusta

Origin blog.csdn.net/lu6545311/article/details/130717679
Recomendado
Clasificación