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