[h5+]计算自己与周边商店的位置


做商家列表,要求查看自己距离周边的商家的距离,并对远近进行排序

1.使用h5plus提供的方法获取自己当前位置的经纬值
2.使用高德地图提供的api来进行距离计算距离

mui.plusReady(function () {
            var latlong = []
            plus.geolocation.getCurrentPosition(
                function (p) {
                    latlong = [p.coords.longitude, p.coords.latitude]; //获取当前定位
                    localStorage.setItem('latlong', latlong )//保存当前定位,但保存后会变为string
                })
        })

这是最坑的地方,获取的定位信息只能在此方法内用,只能使用缓存方法,一直想有没用好的方法,2小时后我妥协了。

template.defaults.imports.latlong = function (long, lat) {
            var thislatlong = localStorage.getItem('latlong').split(',')//将当前定位取出,并转为array
            var newlatlong = []
            for (var i = 0; i < thislatlong.length; i++) {
                newlatlong.push(parseFloat(thislatlong[i]))//将新array内的string转为float类型
            }
            var shoplatlong = [long, lat] //传入商户位置
            var dis = AMap.GeometryUtil.distance(newlatlong, shoplatlong);//计算距离
            if (shoplatlong[0] != 0) {
                dis = (dis / 1000).toFixed(1) + '公里'//将m单位改为km
            } else {
                dis = '未知'//用户未传入定位的情况
            }
            return dis
        }

使用的引擎模板,使用模板变量方法,将获取商户的经纬度传入

你可能感兴趣的:([h5+]计算自己与周边商店的位置)