请选择 进入手机版 | 继续访问电脑版
帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
6
帖子
0
勋章
96
Y币

[云开发] amap模块 stopLocation方法无效

[复制链接]
发表于 2022-7-1 15:59:52
amap模块 开启多个定位后   调用stopLocation方法定位停止不了
具体是怎么调用的,发下代码
6
帖子
0
勋章
96
Y币
   getNowWayBill()
        // 获取运单
        function getNowWayBill() {
            var parm = {
                "pageNumber": 1,
                "pageSize": 10,
                "search_EQ_status": 105  //105为起运状态
            }

            dealData("driver/transport/wwlist", 'get', parm, function (res) {
                console.log("定位返回数据:", JSON.stringify(res));
                if (res.status === 0) {
                    nowWayBillCount = res.data.pageContent.length;
                    // 有运单就开始定位
                    if (res.data && res.data.pageContent && res.data.pageContent.length !== 0) {
                        var waybillInfo = {
                            waybillId: res.data.pageContent[0].fphm,
                            waybillSerial: res.data.pageContent[0].drivertel,
                        }


                        if (sys === "ios") {
                            iosAddLocation(waybillInfo);
                        }
                        else {
                            //添加定位
                            androidAddLocation(waybillInfo);
                        }

                    } else {
                        console.log("没有需要定位的运单")
                        // 停止定位
                        nowWayBillCount = 0;
                        aMap.stopLocation();
                    }
                } else {
                    api.toast({
                        msg: res.message,
                        duration: 5000,
                        location: 'middle'
                    });
                }
                setTimeout('api.refreshHeaderLoadDone()', '500');
            },
                function (err) {
                    api.toast({
                        msg: '运单数据获取失败,请检查网络',
                        duration: 5000,
                        location: 'middle'
                    });
                }
            )
        }
技术咨询-特特 · 2022-7-1 16:09具体是怎么调用的,发下代码
6
帖子
0
勋章
96
Y币
function androidAddLocation(waybillInfo) {
            console.log(nowWayBillCount)
            if (nowWayBillCount == 0) {
                aMap.stopLocation();
                reutrn;
            }
            // 获取手机号
            var iphone = $api.getStorage('mobile');
            var addInfo = waybillInfo;
            // //console.log("定位返回数据1:", JSON.stringify(ret));
            // 安卓通知工具,可用于创建安卓通知8.0以及以后版本通知通道创建
            var notificationUtil = api.require('notificationUtil');
            // 创建通知通道
            notificationUtil.creatChannel({
                Id: msgId,
                name: msgName,
                description: msgDescription
            }, function (ret, err) {

                if (ret && ret.status) {

                    // 获取定位
                    aMap.getLocation(
                        {
                            autoStop: false, //获取到位置信息后是否自动停止定位
                            enableLocInForeground: true,//后台定位
                            notification: { //通知栏的提示
                                title: msgName,//标题; 默认值:应用名称
                                content: msgDescription,//内容; 默认值:正在后台运行
                                channelId: msgId//通知通道号,argetSdkVersion大于等于28时必填
                            }
                        },
                        function (ret, err) {
                            // console.log("定位返回数据2:", JSON.stringify(ret));
                            if (ret.status) {
                                addInfo.longitude = ret.lon;
                                addInfo.latitude = ret.lat;
                                // 根据经纬度查找地址信息,
                                aMap.getNameFromCoords({
                                    lon: ret.lon,
                                    lat: ret.lat
                                }, function (ret, err) {
                                    // 获取上一次定位时间
                                    var lastTime = localStorage.getItem("iosLastLocation");
                                    //localStorage.setItem("iosLastLocation", timestamp);
                                    if (lastTime == null) {
                                        // 存入定位时间
                                        localStorage.setItem("iosLastLocation", new Date());
                                    }
                                    else {
                                        // 定位时间间隔
                                        var cz = calcTime(lastTime, new Date());
                                        if (cz < timeSpan) {
                                            return
                                        }
                                        else {
                                            localStorage.setItem("iosLastLocation", new Date());
                                        }
                                    }


                                    if (ret.status) {
                                        addInfo.positionAddress = ret.address;
                                        // 高德经纬度转百度经纬度
                                        var dw = gps_bgps(addInfo.longitude, addInfo.latitude)
                                        // 上传定位
                                        dealData("driver/transport/reportLocation?mobile=" + iphone + "&lng=" + dw.bd_lng + "&lat=" + dw.bd_lat, 'GET', {}, function (res) {

                                            console.log("定位返回数据:", JSON.stringify(res));
                                            if (res) {
                                                //添加定位
                                                //addLocation(waybillInfo);

                                            } else {
                                                $.mvalidateTip(res.message);
                                            }
                                            setTimeout('api.refreshHeaderLoadDone()', '500');
                                        },
                                            function (err) {

                                                api.toast({
                                                    msg: '定位数据推送失败,请检查网络',
                                                    duration: 5000,
                                                    location: 'middle'
                                                });
                                            }
                                        )
                                    } else {
                                        api.toast({
                                            msg: '定位数据解析失败,为获取到有效位置',
                                            duration: 5000,
                                            location: 'middle'
                                        });
                                    }
                                });
                            }
                            else {

                                errorCount++;
                                if (errorCount > tipsCount) {
                                    return;
                                }
                                //console.log("定位返回err:", JSON.stringify(err));
                                if (err && err.locationDetail) {
                                    var errmsg = err.locationDetail;
                                    if (errmsg.indexOf("#1201")) {
                                        errmsg = errmsg + "\r\n请选择[始终允许]";
                                    }
                                    //alert(err.locationDetail + new Date());
                                    //$.mvalidateTip(err.locationDetail + new Date());
                                    api.toast({
                                        msg: errmsg,
                                        duration: 5000,
                                        location: 'middle'
                                    });
                                }
                                else {
                                    api.toast({
                                        msg: '定位失败,定位信号弱',
                                        duration: 5000,
                                        location: 'middle'
                                    });
                                    //alert('定位失败,定位信号弱' + new Date());
                                    //$.mvalidateTip('定位失败,定位信号弱' + new Date());
                                }
                            }
                        });

                }
                else {
                    api.toast({
                        msg: '后台运行定位失败,请检查权限',
                        duration: 5000,
                        location: 'middle'
                    });
                }
            })
        }
BIP114388 · 2022-7-1 16:11getNowWayBill()
        // 获取运单
        function getNowWayBill() {
6
帖子
0
勋章
96
Y币
多个运单开启定位后  结束所有的运单  定位还在继续   aMap.stopLocation();方法也调用了  但是没什么用
BIP114388 · 2022-7-1 16:11function androidAddLocation(waybillInfo) {
            console.log(nowWayBillCount)
            if (nowWayBillCount == 0) {
6
帖子
0
勋章
96
Y币
有结果了嘛
技术咨询-特特 · 2022-7-1 16:09具体是怎么调用的,发下代码
380
帖子
4
勋章
6
Y币
什么是多个运单开启多个定位,你现在用的持续定位方法,调用一次不就可以了吗?
6
帖子
0
勋章
96
Y币
每个运单都会调用一次 这个持续定位的方法
技术咨询-F · 2022-7-2 12:44什么是多个运单开启多个定位,你现在用的持续定位方法,调用一次不就可以了吗?
380
帖子
4
勋章
6
Y币
什么意思?调一次不行吗, 如果调多次 ,autoStop可以设置为true autoStop: false
BIP114388 · 2022-7-4 08:46每个运单都会调用一次 这个持续定位的方法


6
帖子
0
勋章
96
Y币
多次只能设置autoStop:false吗  调用stopLocation这个方法不行吗
技术咨询-F · 2022-7-4 09:30什么意思?调一次不行吗, 如果调多次 ,autoStop可以设置为true autoStop: false
12下一页
您需要登录后才可以回帖 登录

本版积分规则