vue2 高德地图获取当前定位
时间: 2023-09-03 10:07:54 浏览: 236
在Vue2中,可以使用高德地图API来获取当前定位。首先,需要引入高德地图的SDK,并在Vue组件中使用AMap.Geolocation来获取当前位置的经纬度信息。以下是一个示例代码:
首先,在utils文件夹中创建一个名为getLocation.js的文件,用于封装获取经纬度的公用方法。该方法使用了Promise来确保在获取到经纬度信息后再进行后续操作。具体代码如下:
```javascript
function loadSDK() {
if (window.AMap) return;
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = 'http://webapi.amap.com/maps?v=1.4.6&key=*****************'; // ***为申请的高德key
document.head.appendChild(script);
script.onload = resolve;
script.onerror = reject;
});
}
export default async () => {
await loadSDK();
return new Promise((resolve) => {
AMap.plugin('AMap.Geolocation', () => {
const geolocation = new AMap.Geolocation({ enableHighAccuracy: false });
geolocation.getCurrentPosition((status, result) => {
const res = status === 'complete' ? result.position : { lat: 39.909187, lng: 116.397451 }; // 默认北京 116.397451、39.909187
console.log('定位结果', res);
resolve(res);
});
});
});
}
```
然后,在Vue组件中,可以通过调用上述封装的方法来获取当前定位的经纬度信息。具体代码如下:
```javascript
import getLocation from '@/utils/getLocation';
export default {
methods: {
async getCurrentLocation() {
try {
const position = await getLocation();
// 在这里可以使用获取到的经纬度信息进行后续操作
console.log('当前定位经纬度', position);
} catch (error) {
console.error('获取定位失败', error);
}
},
},
mounted() {
this.getCurrentLocation();
},
};
```
以上代码中,通过调用`getLocation`方法来获取当前定位的经纬度信息,并在`getCurrentLocation`方法中进行后续操作。在Vue组件的`mounted`钩子函数中调用`getCurrentLocation`方法来获取当前定位信息。
请注意,上述代码中的高德地图SDK的引入地址和申请的key需要根据实际情况进行修改。
#### 引用[.reference_title]
- *1* *2* [(2023进阶版)vue+h5 通过高德地图(原生) 获取当前位置定位](https://blog.csdn.net/yangzixiansheng/article/details/131308415)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [vue使用高德地图获取当前经纬度](https://blog.csdn.net/V_AYA_V/article/details/105275063)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文