【问题标题】:How to find exact location (not by ip address) Rails?如何找到确切的位置(不是通过 IP 地址)Rails?
【发布时间】:2017-05-27 20:21:02
【问题描述】:

所以我尝试了地理编码,但它只能根据 IP 地址找到用户的位置,但我需要用户的确切纬度和经度值。顺便说一句,ip地址方法的准确性是多少。

【问题讨论】:

    标签: ruby-on-rails location geocode rails-geocoder


    【解决方案1】:

    向客户端的用户询问地理位置权限。您将直接获得坐标,而无需进行任何地理编码。如果用户没有给你权限,你无论如何都不应该试图找到他们。

    简单的 JS 示例:

    var x = document.getElementById("demo");
    
    function getLocation() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(showPosition);
        } else {
            x.innerHTML = "Geolocation is not supported by this browser.";
        }
    }
    
    function showPosition(position) {
        // Do something with the coordinates
    
        x.innerHTML = "Latitude: " + position.coords.latitude + 
        "<br>Longitude: " + position.coords.longitude;
    }
    

    更多信息here

    【讨论】:

    • 请注意,在 Chrome 中,这需要安全域 (SSL)。目前,Firefox 没有。没有在其他人身上测试过。
    • @CarlMarkham 好点!在我看来,通过未加密的连接传输此类敏感数据是疏忽的。
    • firefox 现在也要求 ssl
    【解决方案2】:

    您可以使用Google GeoCode API,但在 2000 次请求之后,您需要付费。这适用于您拥有用户地址甚至只是邮政编码(邮政编码)的想法。

    就从 IP 检测位置而言,即使不是不可能,也很难。您通常可以获得广泛的位置(城市、县或州),但不能获得实际的房屋或街道等。

    【讨论】:

    • 取决于请求来自静态公司还是动态IP。但是您不能说请求是否只是通过具有此 IP 的网关路由,而用户实际上是在一个非常不同的地方。所以你基本上是对的。
    • @Tobias Yeh,我觉得我会弄错一些。重点是您无法通过 IP 地址准确定位位置。
    猜你喜欢
    • 2013-05-17
    • 2021-09-22
    • 1970-01-01
    • 2020-04-16
    • 2012-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2016-08-21
    相关资源
    最近更新 更多