使用JavaScript中的Google Maps API查找当前位置

jew*_*huq -1 javascript google-maps google-maps-api-3

我一直在尝试在我的一个项目中使用Google Maps API,问题是即使允许位置访问(它是一个网站项目),它也没有向我显示当前的确切位置.我的意思是它输出的位置,但200米之外.当我尝试在同一设备上使用谷歌地图的网络版时,它向我显示当前位置+ -20米.我们正试图找到确切的经度和纬度.这是JavaScript

function getCurrentLocation() {
    var  options = {
        enableHighAccuracy: true,
        timeout: 5000,
        maximumAge: 0
    }
}
// Try HTML5 geolocation.
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
        var pos = {
            lat: position.coords.latitude,
            lng: position.coords.longitude
        };
        var lat_and_long = pos.lat+","+pos.lng;
        $("#geocomplete").geocomplete("find", lat_and_long);
    }
}

$("#geocomplete").bind("geocode:dragged", function(event, latLng){
    $("input[name=lat]").val(pos.lat());
    $("input[name=lng]").val(pos.lng());
    $("#reset").show();
    console.log(latLng);
});
console.log(pos);

function handleLocationError(browserHasGeolocation, infoWindow, pos) {
        infoWindow.setPosition(pos);
        infoWindow.setContent(browserHasGeolocation ?
            'Error: The Geolocation service failed.' :
            'Error: Your browser doesn\'t support geolocation.');
        infoWindow.open(map);
}
Run Code Online (Sandbox Code Playgroud)

我们使用以下Google API与jQuery地理编码和地方自动完成插件(1.7.0) https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzaSyDJ2bLO-XXXXXXX"

Shi*_*hel 6

Google maps API根据以下来源提供位置:

  1. GPS:通过使用卫星(最多约20米)为您提供位置,有时它不准确,如恶劣的天气条件,地下或您是否在建筑物内.

  2. Wi-Fi:Wi-Fi网络IP地址的位置.

  3. 蜂窝塔:您与移动蜂窝网络塔的连接可以精确到几千米.

桌面浏览器:浏览Mozilla Firefox和Google Chrome等桌面浏览器时,依赖于本地网络信息,例如计算机等信号IP address.如果您允许共享有关附近无线接入点的信息,并且IP address将与Google位置服务共享以估算您的位置,则您的浏览器会要求您共享您 的位置.位置的准确性因地点而异.

移动浏览器: Chrome,Safari,Opera等移动浏览器使用的GPS sensors不是WiFi网络.

now enableHighAccuracy选项属性提供了一个提示,即应用程序希望获得最佳结果.这可能导致响应时间变慢或功耗增加.

根据W3C的地理位置API文档(https://w3c.github.io/geolocation-api/#high-accuracy)No guarantee is given that the API returns the device's actual location.

Geolocation API定义了与仅与托管实现的设备相关联的位置信息的高级接口,例如纬度和经度.API本身与底层位置信息源无关.常见的位置信息源包括全球定位系统(GPS)和从网络信号推断的位置,例如IP地址,RFID,WiFi和蓝牙MAC地址,以及GSM/CDMA小区ID,以及用户输入.不保证API返回设备的实际位置.