从支持gps的设备获取当前经度和纬度

时间:2010-08-10 18:35:36

标签: javascript api mobile geolocation gps

我想从网络浏览器直接获取支持gps的移动设备的当前位置的纬度和经度。我可以知道这可能吗?怎么做?它需要地理位置api吗?一些编码示例会有所帮助。谢谢。

4 个答案:

答案 0 :(得分:16)

使用HTML5地理位置API,此处为official spec and examples

修改

我已更新我的答案,包括当前的浏览器支持。

W3C地理位置API支持

Firefox 3.5+
Safari 5.0+
Chrome 5.0+
Opera
iPhone 3.0+
Android 2.0+

··
上面未列出的其他手机使用Gears或他们自己的平台特定API。

啊,我们会不会只有一个API? :)

非常感谢Mark Pilgrim的出色post

答案 1 :(得分:9)

这是一个使用HTML5 Geolocation API的实际JavaScript代码。以下适用于Android浏览器和iPhone Safari:

            function onPositionUpdate(position)
            {
                var lat = position.coords.latitude;
                var lng = position.coords.longitude;
                alert("Current position: " + lat + " " + lng);
            }

            if(navigator.geolocation)
                navigator.geolocation.getCurrentPosition(onPositionUpdate);
            else
                alert("navigator.geolocation is not available");

答案 2 :(得分:0)

您无需使用最新的手机即可使用GPS和Geolocation API。几乎每个移动浏览器(没有代理服务器)都可用于从buidin GPS读取位置。如果您的手机中有Java和GPS - 您可以使用mobile-gps-web-gate - 请参阅http://code.google.com/p/mobile-gps-web-gate/

答案 3 :(得分:0)

将来对某人有帮助

<!DOCTYPE html>
<html>
<body>

<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
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) {
 var a = position.coords.latitude + ',' + position.coords.longitude;

 alert(a);
}
</script>
</body>
</html>