Geolocation 从浏览器获取客户端位置的方法?

Geolocation 从浏览器获取客户端位置的方法?,geolocation,Geolocation,我需要的是客户端的纵横比(通过浏览器) 在网上找到一些文章,在堆栈溢出本身中找到一些(一篇旧文章)。这个问题几乎在18个月前就得到了回答——我想知道是否还有其他(更有效的)方法可以从浏览器中获取用户的位置信息 秀发,找到2个 使用Maxmind 其他,使用谷歌的api w3c的GeoAPI将有向下兼容性问题:,所以不要选择它 找到一个站点,--当我们进入该站点时,第一次请求共享该位置。需要类似的内容可以通过以下方式找到用户:- 使用IP地址。 最容易实现,但由于网络地址的不确定性,最

我需要的是客户端的纵横比(通过浏览器)

在网上找到一些文章,在堆栈溢出本身中找到一些(一篇旧文章)。这个问题几乎在18个月前就得到了回答——我想知道是否还有其他(更有效的)方法可以从浏览器中获取用户的位置信息

秀发,找到2个

使用Maxmind

其他,使用谷歌的api

w3c的GeoAPI将有向下兼容性问题:,所以不要选择它


找到一个站点,--当我们进入该站点时,第一次请求共享该位置。需要类似的内容

可以通过以下方式找到用户:-

  • 使用IP地址。 最容易实现,但由于网络地址的不确定性,最不可靠/ 拓扑结构
  • 使用纬度、经度对 最精确的解决方案,但大多数最终用户不知道他们的纬度, 经度值
  • 使用zipcodes 想法不错,但很难实现,尽管ZipCodes正在用于
    相当长的一段时间,但这还不是一个标准。(见链接
    ).ZipCode本身不足以 距离的计算我们需要将其转换为纬度、经度对,这是一个
    头顶
  • 使用用户地址 最令人信服的想法,因为每个用户都至少有一个地理地址。 地址本身不足以计算我们需要将其转换为的距离 纬度,经度对,这是一个开销
  • 最好的选择是同时使用选项2、3.4,您可以通过两个步骤完成:-

  • 首先从地址确定纬度、经度
  • 然后使用此lat、long值进行进一步处理,即存储在 数据库等
  • 有关此功能的各种可用选项,请参见

    的答案,尝试HTML5地理定位

     function init() {
    
    
     var mapOptions = {
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
     };
    
    
     map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);
    
    
    
    if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      var pos = new google.maps.LatLng(position.coords.latitude,
                                       position.coords.longitude);
    
      var infowindow = new google.maps.InfoWindow({
        map: map,
        position: pos,
        content: 'Location found using HTML5.'
      });
    
      map.setCenter(pos);
    }
    
     } else {
    alert('Geolocation not detected');   
    }
    }
    
    。只需单击javascript+html并将代码复制到html文件中。

    
    反向地理编码
    var地理编码器;
    if(导航器.地理位置){
    var location_timeout=setTimeout(“geolocFail()”,10000);
    navigator.geolocation.getCurrentPosition(函数(位置){
    clearTimeout(位置超时);
    var lat=位置坐标纬度;
    var lng=位置坐标经度;
    geocodeLatLng(lat,lng);
    },函数(错误){
    警报(“内部错误”);
    clearTimeout(位置超时);
    geolocFail();
    });
    }否则{
    警报(“打开定位服务进行存款”);
    //无地理位置的回退
    geolocFail();
    }
    函数geolocFail(){
    警报(“打开定位服务进行存款”);
    文件。书写(“打开定位服务进行存款”);
    }
    /*if(导航器.地理位置){
    navigator.geolocation.getCurrentPosition(successFunction,errorFunction);
    }
    //得到纬度和经度;
    功能成功功能(位置){
    var lat=位置坐标纬度;
    var lng=位置坐标经度;
    codeLatLng(lat,lng)
    }
    函数errorFunction(){
    警报(“地理编码器失败”);
    } */
    函数初始化(){
    geocoder=新的google.maps.geocoder();
    }
    功能地理编码LATLNG(lat,lng){
    var latlng=新的google.maps.latlng(lat,lng);
    geocoder.geocode({'latLng':latLng},函数(结果,状态){
    if(status==google.maps.GeocoderStatus.OK){
    console.log(结果)
    如果(结果[1]){
    //格式化地址
    var add=results[0]。格式化的\u地址
    警报(添加);
    //城市数据
    //警报(city.short\u name+“”+city.long\u name)
    }否则{
    警报(“未发现结果”);
    }
    }否则{
    警报(“地理编码器因“+状态”而失败);
    }
    });
    }
    
    这是用于跟踪设备(浏览器/手机)位置的HTML代码。只需将上述文件保存为.HTML扩展名,并从系统或手机上的任何浏览器进行浏览,即可显示用户当前位置

    这里描述了地理位置:

    然后可以对lat/lng进行反向地理编码,以查找国家、地区和地址。等等


    W3C GeoLocaiton API是实现这一点的唯一方法,它不依赖于基于IP的位置数据库(如谷歌的)。您给出的示例网站同时使用了这两种API。请参见以下问题:请参见代码的答案……您是否可以为OP添加一些关于此代码的功能的解释?谢谢