汽车网&支付宝--经纬度返回所在地的经销商

最近做的一个项目是汽车网和支付宝合作的一个抢红包项目,分为线上扫码和线下扫码两个。
线上扫码允许用户在任何地方进行扫码,然后领取红包;线下扫码必须要求用户到经销商店里面,才可以进行扫码领取红包。
领取红包和优惠券,调用接口时,都需要参数经销商code和经销商名称,所以我们使用了根据经纬度定位来返回经销商的信息。
线上和线下用的是不同的接口:线上扫码的接口可以返回用户所在地周围10公里之内(距离用户)的经销商,如果10公里之内没有经销商,那么就返回用户所在城市的距离用户最近的经销商。线下扫码的接口可以返回1公里之内的经销商。

获取用户所在城市:

$.getJSON('//whois.pconline.com.cn/ipJson.jsp?callback=?',function(obj){
            main.city2 = obj.city;
        });

线上扫码获取经销商(参数需要加上之前获取的城市):

getLocation:function(){

        var map, geolocation;
        //加载地图,调用浏览器定位服务
        map = new AMap.Map('container', {
            resizeEnable: true
        });
        map.plugin('AMap.Geolocation', function() {
            geolocation = new AMap.Geolocation({
                enableHighAccuracy: true,//是否使用高精度定位,默认:true
                timeout: 10000,          //超过10秒后停止定位,默认:无穷大
                buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
                zoomToAccuracy: true,      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
                buttonPosition:'RB'
            });
            map.addControl(geolocation);
            geolocation.getCurrentPosition();
            AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
            AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
        });
        //解析定位结果
        function onComplete(data) {
            main.x=data.position.getLng();
            main.y= data.position.getLat();
            //alert("'经度"+ + main.x+"纬度:"+ main.y)
            // main.x=121.446832;
            // main.y=30.933954;

            var url ="https://cat.pangku.com/activity/lbs/recent?key=yjlbs180831&location="+main.x+','+main.y+"&city="+main.city2;
            $.get(url,function(res){
                if(res.code == 0){
                    main.dealerCode = res.data.merchant_id;
                    main.dealer = res.data.name;
                    main.city = res.data.city;
                    main.getUserInfo();
                }else{
                    alert(res.msg);
                }
            });

        }
        //解析定位错误信息
        function onError(data) {
            alert('定位失败')
        }
    },

线下代码获取经销商:

getLocation:function(){
        var map, geolocation;
        //加载地图,调用浏览器定位服务
        map = new AMap.Map('container', {
            resizeEnable: true
        });
        map.plugin('AMap.Geolocation', function() {
            geolocation = new AMap.Geolocation({
                enableHighAccuracy: true,//是否使用高精度定位,默认:true
                timeout: 10000,          //超过10秒后停止定位,默认:无穷大
                buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
                zoomToAccuracy: true,      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
                buttonPosition:'RB'
            });
            map.addControl(geolocation);
            geolocation.getCurrentPosition();
            AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
            AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
        });
        //解析定位结果
        function onComplete(data) {
            main.x=data.position.getLng();
            main.y= data.position.getLat();
         //    alert("'经度"+ + main.x+"纬度:"+ main.y)
            // main.x=116.896505;
            // main.y=38.287724;

            var url ="https://cat.pangku.com/activity/lbs/is_exist?key=yjlbs180831&location="+main.x+','+main.y;
            $.get(url,function(res){
                if(res.code == 0){
                    main.dealerCode = res.data.merchant_id;
                    main.dealer = res.data.name;
                    main.city = res.data.city;
                    main.getUserInfo();
                }else{
                    alert(res.msg);
                }
            });

        }
        //解析定位错误信息
        function onError(data) {
            alert('定位失败')
        }
    },

你可能感兴趣的:(汽车网&支付宝--经纬度返回所在地的经销商)