使用html5 地理位置技术 和 百度地图api查询当前位置

使用了  zepto  和 requirejs

 

define(['zepto'],function($){
 var geolocation = {
        init:function(config,onSuccess,onError){
            if(typeof(config)=='function'){
                onError = onSuccess;
                onSuccess = config;
                config = undefined;
            }
            
            if(Object(config)===config){
                for(var k in this.option){
                    this.option[k] = config[k];
                }
            }
            
            if(typeof(onSuccess)=='function'){
                this.onSuccess = onSuccess;
            }
            
            if(typeof(onError)=='function'){
                this.onError = onError;
            }
            
            return this;
        },
        
          getPosition:function(returnType){//returnType==cityName,返回城市名称
                  var host = this;
                 navigator.geolocation.getCurrentPosition(function ( position){
                         console.log('getCurrentPosition success ',position);
                        if(!returnType){
                              host.onSuccess.call(null,position);
                          }else{
                              var lat = position.coords.latitude;
                            var lng = position.coords.longitude;
                        
                            var urls="http://api.map.baidu.com/geocoder/v2/?ak=0QoBGmQ4i5N0FycRCQMukgqd&callback=renderReverse&location="+lat+","+lng+"8&output=json&pois=0";
                        
                            $.ajax({
                                type: "POST",
                                url: urls,
                                dataType : "jsonp",
                                success: function(data){
                                    //alert(JSON.stringify(data));
                                    //alert(host.onSuccess)
                                    console.log('get city name>>>',data);
                                    host.onSuccess.call(null,data);
                                },
                                error:function(error){
                                    host.onError.call(null,error);
                                }
                          
                             }); 
                          }
                        
                    }, function(error){
                        
                        host.onError.call(null,error);
                    }, this.option);
                 
                 return this;
          },
          option:{
                enableHighAccuracy: true,
                maximumAge: 30000,
                timeout: 20000
          },
          onSuccess: function(data){
              console.log('geolocation.getCurrentPosition success:',data);
          },
          onError:function(error){
              console.log('geolocation.getCurrentPosition error:',error);
          }

 };

return geolocation;

    
});

 

转载于:https://www.cnblogs.com/ecalf/p/4413819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值