作为一个例子,我实现了一个向我展示所有地理位置的方法。
function showLocation() {
navigator.geolocation.getCurrentPosition(onGeoSuccess, onGeoError);
}
function onGeoSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
'Longitude: ' + position.coords.longitude + '<br />' +
'Altitude: ' + position.coords.altitude + '<br />' +
'Accuracy: ' + position.coords.accuracy + '<br />' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '<br />' +
'Heading: ' + position.coords.heading + '<br />' +
'Speed: ' + position.coords.speed + '<br />' +
'Timestamp: ' + new Date(position.timestamp) + '<br />';
}
所以我按下这个按钮在街区附近散步:
<input type="submit" data-theme="d" name="login" id="login" value="Position" onclick="showLocation()"/>
但是,Altitude,Heading和Speed的属性始终显示为null。 Altitude Accuracy也显示为null,但phonegap文档说它不适用于android。那为什么这不起作用? 提前谢谢,丹尼尔
答案 0 :(得分:2)
dev.w3.org/geo/api/spec-source.html#coordinates_interface
它可能是特定于设备的,是否支持这些参数“如果实现无法提供{那些您遇到问题的变量}信息,则此属性的值必须为空。”
答案 1 :(得分:1)
从我使用phonegap 1.5进行的测试中,我发现如果我的设备处于运动状态,许多这些属性只会返回一个值。我确实得到了一个静止的准确度(我想我的手机里有一个gps传感器),它从几千米下降到不到100个。但是,当设备移动时我只能得到一个标题和速度。标题也是行进方向,它与手机的方向无关。