• 使用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;
    
        
    });
  • 相关阅读:
    关于网站的性能瓶颈——(阅读笔记)
    Servlet原理解析
    配置Ubuntu Server高速aptget源
    字节对齐
    linux学习笔记—之—linux文件管理
    JavaWeb过滤器Filter
    C语言编程程序的内存布局
    修改Linux下MySQL编码
    C语言中——关于typedef
    linux学习笔记—之—LVM管理
  • 原文地址:https://www.cnblogs.com/ecalf/p/4413819.html
Copyright © 2020-2023  润新知