赞
踩
- import myBMap from '@/utils/baiduMap/bdMap.js';
-
-
- // 获取城市/区的具体地理位置
- const getCity = () => {
- myBMap.init().then(BMap => {
- const geolocation = new BMap.Geolocation();
-
- geolocation.getCurrentPosition(
- positionOptions => {
- // console.log(positionOptions);
- currentCity.value = positionOptions ? positionOptions.address?.district : currentCity.value;
- },
- positionError => {
- console.log(positionError.message);
- },
- { enableHighAccuracy: true }
- );
- });
- };
打印出来的positionOptions包含经纬度和省份城市区域
下图是myBMap里封装的代码
- export default {
- init: function () {
- const AK = ''; // 你的AK
- const BMap_URL = 'https://api.map.baidu.com/api?v=2.0&ak=' + AK + '&s=1&callback=onBMapCallback';
- return new Promise((resolve, _reject) => {
- // 如果已加载直接返回
- if (typeof BMap !== 'undefined') {
- resolve(BMap);
- return true;
- }
- // 百度地图异步加载回调处理
- window.onBMapCallback = function () {
- resolve(BMap);
- };
-
- // 插入script脚本
- let scriptNode = document.createElement('script');
- // scriptNode.setAttribute(type, 'text/javascript');
- scriptNode.setAttribute('src', BMap_URL);
- document.body.appendChild(scriptNode);
- });
- }
- };
实测: 谷歌浏览器只能第一次允许地理位置才会出位置信息,火狐可以正常获取
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。