帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
17
帖子
1
勋章
186
Y币

[多端开发] aMapLBS定位失败

[复制链接]
发表于 2024-5-19 19:43:13
显示定位失败是为什么,已经把位置的权限给打开了,代码是有哪里写错了吗 6649e536e8923.png 6649e58f496f3.png
  1. <template>
  2. <safe-area class="page">
  3.     <text>当前位置: {{ currentPosition }}</text> <!-- 显示当前位置 -->
  4.     <view id="mapContainer" style="width: 100%; height: 100%;"></view>
  5. </safe-area>
  6. </template>

  7. <script>
  8. export default {
  9.     name: 'map1',
  10.     data() {
  11.         return {
  12.             map: null, // 用于存储地图实例
  13.             aMapLBS: null, // 用于存储定位插件实例
  14.             currentPosition: '' // 用于存储当前位置的经纬度
  15.         };
  16.     },
  17.     mounted() {
  18.         this.initMap();
  19.     },
  20.     methods: {
  21.         initMap() {
  22.             var aMap = api.require('aMap');
  23.             this.setupPrivacy(aMap); // 封装隐私协议调用

  24.             // 确保地图容器的宽高设置正确
  25.             var mapContainer = document.getElementById('mapContainer');
  26.             mapContainer.style.width = '100%';
  27.             mapContainer.style.height = '100%';

  28.             // 通过 open 方法打开地图
  29.             this.map = aMap.open({
  30.                 rect: {
  31.                     x: 0,
  32.                     y: 0,
  33.                     w: '100%',
  34.                     h: '100%'
  35.                 },
  36.                 showUserLocation: true,
  37.                 zoomLevel: 10,
  38.                 center: {
  39.                     lon: 116.40,
  40.                     lat: 39.90
  41.                 },
  42.                 fixedOn: api.frameName
  43.             }, (ret, err) => {
  44.                 if (ret && ret.status) {
  45.                     console.log('地图加载成功');
  46.                     this.initLocation(); // 地图加载成功后初始化定位
  47.                 } else {
  48.                     console.error('地图加载失败', err);
  49.                 }
  50.             });
  51.         },
  52.         setupPrivacy(aMap) {
  53.             aMap.updateMapViewPrivacy({
  54.                 privacyAgree: 'didAgree',
  55.                 privacyShow: 'didShow',
  56.                 containStatus: 'didContain'
  57.             });
  58.             aMap.updateSearchPrivacy({
  59.                 privacyAgree: 'didAgree',
  60.                 privacyShow: 'didShow',
  61.                 containStatus: 'didContain'
  62.             });
  63.         },
  64.          initLocation() {
  65.             var aMapLBS = api.require('aMapLBS');
  66.             this.aMapLBS = aMapLBS; // 保存实例
  67.             // 设置定位类隐私权限
  68.             aMapLBS.updateLocationPrivacy({
  69.                 privacyAgree: 'didAgree',
  70.                 privacyShow: 'didShow',
  71.                 containStatus: 'didContain'
  72.             });

  73.             // 配置定位信息
  74.             aMapLBS.configManager({
  75.                 accuracy: 'best', // 设置最高定位精度
  76.                 filter: 1
  77.             }, (ret, err) => {
  78.                 console.log("高德坐标配置定位信息" + JSON.stringify(ret));
  79.                 if (ret.status) {
  80.                     aMapLBS.singleLocation({
  81.                         timeout: 10
  82.                     }, (ret, err) => {
  83.                         console.log("高德坐标单次定位" + JSON.stringify(ret));
  84.                         if (ret.status) {
  85.                             this.successFun(ret);
  86.                         } else {
  87.                             this.errorFun(err);
  88.                         }
  89.                     });
  90.                 } else {
  91.                     console.error('定位配置失败', err);
  92.                 }
  93.             });
  94.         },

  95.         successFun(ret) {
  96.             // 定位成功的处理逻辑
  97.             this.currentPosition = `纬度: ${ret.lat}, 经度: ${ret.lon}`;
  98.             if (this.map) {
  99.                 this.map.setCenter({ lat: ret.lat, lon: ret.lon });
  100.             }
  101.         },

  102.         errorFun(err) {
  103.             // 定位失败的处理逻辑
  104.             api.toast({
  105.                 msg: '定位失败',
  106.                 location: "middle"
  107.             });
  108.             this.currentPosition = '无法获取当前位置,请检查定位权限和网络连接。';
  109.         }
  110.     }
  111. }
  112. </script>

  113. <style>
  114.     .page {
  115.         height: 100%;
  116.         background: #fff;
  117.     }
  118.    
  119.     #mapContainer {
  120.         width: 100%;
  121.         height: 100%;
  122.     }
  123. </style>
复制代码


怎么解决的。
17
帖子
1
勋章
186
Y币

是说定位吗

是的,是不是你手机里面的位置没有开启导致的。
17
帖子
1
勋章
186
Y币
chyd④④⑤⑤②⑦⑧⑤② · 2024-5-20 08:48是的,是不是你手机里面的位置没有开启导致的。

手机的位置有开,现在还是显示定位失败,但是可以定位到
center: {
                   lon:116.213,         
                    lat:39.213
                },这个位置
BIP289437 · 2024-5-20 08:50手机的位置有开,现在还是显示定位失败,但是可以定位到
center: {
                   lon:116.213,         

手机上面的定位功能确认开启的吗,不是app的定位权限哦。
17
帖子
1
勋章
186
Y币
664a9f9370956.png
17
帖子
1
勋章
186
Y币
chyd④④⑤⑤②⑦⑧⑤② · 2024-5-20 08:54手机上面的定位功能确认开启的吗,不是app的定位权限哦。

手机的定位也有开
17
帖子
1
勋章
186
Y币
是代码的问题吗
17
帖子
1
勋章
186
Y币

微信图片_20240520090800.jpg
微信图片_20240520090804.jpg
12下一页
您需要登录后才可以回帖 登录

本版积分规则