我正在使用此代码来获取准确的用户位置...
watchID=navigator.geolocation.watchPosition(handleGetCurrentPosition, handleGetCurrentPositionError, {enableHighAccuracy:true});
function handleGetCurrentPosition(location)
{
document.getElementById("lat").value = location.coords.latitude;
document.getElementById("lon").value = location.coords.longitude;
document.getElementById("accu").value =location.coords.accuracy;
document.forms["myform"].submit();
}
function handleGetCurrentPositionError(){
alert("Location could not be found.")
}
但我得到的结果并不准确。 我正在使用的代码有什么问题吗?
答案 0 :(得分:1)
准确度取决于Geolocation
设备的功能。 navigator.geolocation
只是API
,可与该设备配合使用。如果设备不支持高精度,则无法使用它。
答案 1 :(得分:1)
这下面的代码可以获得准确的位置。我用HTML 5编写了这段代码。
< output id =“mapToYou”>搜索您当前的位置...< / output>
window.addEventListener("load", function() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(success, error); } else { error('not supported'); } },false); function success(position) { var mapToYou = document.querySelector('#mapToYou'); alert("Gotcha!"); var latlng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); var myOptions = { zoom: 15, center: latlng, mapTypeControl: false, navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, mapTypeId: google.maps.MapTypeId.ROADMAP }; var googleMap = new google.maps.Map(mapToYou, myOptions); var marker = new google.maps.Marker({ position: latlng, map: googleMap, title:"You are here!" }); } function error(msg) { var mapToYou = document.querySelector('#mapToYou'); mapToYou.innerHTML = typeof msg == 'string' ? msg : "failed"; mapToYou.className = 'fail'; // console.log(arguments); }
答案 2 :(得分:0)
你有没有尝试过谷歌的位置api?
如果没有,这是链接: https://developers.google.com/maps/documentation/directions/
实际上,Google正在开发许多正在进行的API,以提高定位的准确性
答案 3 :(得分:0)
我在http://www.geoplugin.com找到了这个有用的链接,它提供了一个非常好的位置过滤API,并且在预测用户位置时具有非常可靠的精确度。
以下是如何使用它的示例:http://www.jquery4u.com/api-calls/geo-location-2-lines-javascript/#.T_QZrxdo3IU