• 使用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;
    
        
    });
  • 相关阅读:
    转载:SqlServer数据库性能优化详解
    复杂事件处理技术概览(一)
    Netty : writeAndFlush的线程安全及并发问题
    如何在RCP程序中添加一个banner栏
    AChecker + Selenium2对需要登录的页面进行自动化可访问性测试
    5分钟开启Esper之旅
    使SWT/JFace支持跨平台
    Ubuntu上Docker安装Trouble Shooting
    使Docker Container支持运行SWT程序
    Xcode5中如何切换Storyboards为xib
  • 原文地址:https://www.cnblogs.com/ecalf/p/4413819.html
Copyright © 2020-2023  润新知