0

我正在使用此代码来获取准确的用户位置...

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.")
}

bt 我得到的结果不准确。我使用的代码有问题吗?

4

4 回答 4

1

准确性取决于您Geolocation设备的功能。navigator.geolocation只是API与该设备一起使用的一个。如果设备不支持高精度,你就不能用它做任何事情。

于 2012-07-04T10:25:36.403 回答
1

这是下面的代码以获得准确的位置。我已经用 HTML 5 编写了这段代码。

  1. 在 html 文档中创建地图占位符。

< output id="mapToYou" >正在搜索您的当前位置...</output >

  1. 在页面加载中调用此 js 脚本。
    window.addEventListener("加载", function() {
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(成功,错误);
        } 别的 {
            错误('不支持');
        }
    },错误的);

    功能成功(位置){
        var mapToYou = document.querySelector('#mapToYou');
        alert("知道了!");
        var latlng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
        var myOptions = {
                    缩放:15,
                    中心:latlng,
            地图类型控制:假,
            导航控制选项:{
                风格:google.maps.NavigationControlStyle.SMALL
            },
            mapTypeId:google.maps.MapTypeId.ROADMAP
        };

        var googleMap = new google.maps.Map(mapToYou, myOptions);
        var 标记 = 新的 google.maps.Marker({
          位置:latlng,
          地图:谷歌地图,
          标题:“你来了!”
        });
    }

    功能错误(味精){
        var mapToYou = document.querySelector('#mapToYou');
        mapToYou.innerHTML = typeof msg == 'string' ? 味精:“失败”;
        mapToYou.className = '失败';

        // console.log(参数);
    }

于 2012-07-04T10:35:17.773 回答
0

我在http://www.geoplugin.com找到了这个有用的链接,它提供了一个非常好的位置过滤 API,并且在预测用户位置方面具有非常可怕的精度。

这是如何使用的示例:http ://www.jquery4u.com/api-calls/geo-location-2-lines-javascript/#.T_QZrxdo3IU

于 2012-07-04T10:33:03.883 回答
0

你试过谷歌的位置 API 吗?

如果没有,这里是链接: https ://developers.google.com/maps/documentation/directions/

实际上有很多由谷歌开发的 API 来提高定位的准确性

于 2012-07-04T10:22:09.390 回答