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

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

回答(3)

3 years ago

使用HTML5 Geolocation API,这里是official spec and examples .

EDIT

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

W3C Geolocation API support

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

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

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

非常感谢马克·皮尔格里姆的出色表现post .

3 years ago

这是一个使用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");

3 years ago

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