PhoneGap GeoLocation 变量类型

Posted

技术标签:

【中文标题】PhoneGap GeoLocation 变量类型【英文标题】:PhoneGap GeoLocation var types 【发布时间】:2013-04-23 15:11:08 【问题描述】:
//   This method accepts a `Position` object, which contains
//   the current GPS coordinates
function onSuccess(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: '          +                                         position.timestamp             + '<br />';

这是从 phonegap 自己的网站上获取的关于 geoLocation 的示例,但有一些问题我不能安静地理解,我们使用位置变量对象来访问坐标的成员,如纬度,经度但是我们如何在 js 中创建位置对象,即使有不是变量类型。

【问题讨论】:

【参考方案1】:

“位置”变量由 Phonegap 创建,并在您执行以下操作时传递给回调成功函数:

navigator.geolocation.getCurrentPosition(onSuccess, onError);

onSuccess 函数:

function onSuccess(position) 
    //Process the position here

Phonegap api 文档中的完整示例:

<!DOCTYPE html>
<html>
  <head>
    <title>Exemple Geolocation</title>

    <script type="text/javascript" charset="utf-8" src="phonegap-1.3.0.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Attendre que PhoneGap soit prêt
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // PhoneGap est prêt
    //
    function onDeviceReady() 
        navigator.geolocation.getCurrentPosition(onSuccess, onError);
    

    // Fonction de callback onSuccess, reçoit un objet Position
    //
    function onSuccess(position) 
        var element = document.getElementById('geolocation');
        element.innerHTML = 'Latitude : '                + position.coords.latitude          + '<br/>' +
                            'Longitude : '               + position.coords.longitude         + '<br/>' +
                            'Altitude : '                + position.coords.altitude          + '<br/>' +
                            'Précision : '               + position.coords.accuracy          + '<br/>' +
                            'Précision de l'altitude : ' + position.coords.altitudeAccuracy  + '<br/>' +
                            'Direction : '               + position.coords.heading           + '<br/>' +
                            'Vitesse : '                 + position.coords.speed             + '<br/>';
    

    // Fonction de callback onError, reçoit un objet PositionError
    //
    function onError(error) 
        alert('code : '    + error.code    + '\n' +
              'message : ' + error.message + '\n');
    

    </script>
  </head>
  <body>
    <p id="geolocation">Recherche de géolocalisation...</p>
  </body>
</html>

希望这会有所帮助!再见!

【讨论】:

没问题:)!不要忘记将此答案标记为解决问题。 你知道我该怎么做吗? 通过单击答案左侧的复选框轮廓将其标记为已接受的答案。请参阅:FAQ

以上是关于PhoneGap GeoLocation 变量类型的主要内容,如果未能解决你的问题,请参考以下文章

实现Phonegap Android的Geolocation API

phonegap android中navigator.geolocation.getCurrentLocation的奇怪行为

在 Android 2.0+ 上的 WebView 中使用 navigator.geolocation.getCurrentPosition(PhoneGap 相关)

Android Geolocation onError Phonegap

为啥 PhoneGap Geolocation onSuccess 从来没有第一次触发?

Phonegap/Cordova Geolocation 不适用于 Android 4.0+,但适用于所有其他平台