2017-12-30 14 views
0

関数とHTML5 GeoLocation APIについて少し助けてください。ジオロケーション応答オブジェクトを戻して、別の関数のパラメータとして使用する方法

ユーザーの現在地(緯度と経度)を使用してURLを生成したいと思います。

私は現在のユーザーの場所を見つけるためにコードを取得することができました とposition.coordsオブジェクトをcoordsという変数に割り当てます。

私が知りたいのは、locationSuccess関数でオブジェクトを返すことができるかどうかと、オブジェクトをgenerateURL関数のパラメータとして渡し、終了URLをコンソールログに取得するための緯度と経度を取得することです。

私は完全に間違っているかもしれませんが、いくつかの助けは素晴らしいでしょう。 TIA。オブジェクトを返す

// app.js 
 

 
function getUserLocation() { 
 

 
\t function locationSuccess(position) { 
 

 
\t \t console.log("success"); 
 

 
\t \t var coords = position.coords; 
 

 
\t } 
 

 
\t function locationError() { 
 

 
\t \t console.log("error") 
 

 
\t } 
 

 

 
navigator.geolocation.getCurrentPosition(locationSuccess, locationError); 
 

 
} 
 

 
function generateURL() { 
 

 

 
} 
 

 
function app() { 
 

 
\t getUserLocation(); 
 

 
} 
 

 
window.onload = app();

答えて

1

getCurrentPosition関数は非同期であるため、トラブルのビットです。

coordsオブジェクトを引数としてgenerateURL関数に渡して、locationSuccess関数内で呼び出すことができます。

function getUserLocation() { 

    function locationSuccess(position) { 
    console.log("success"); 
    var coords = position.coords; 
    generateURL(coords); 
    } 

    function locationError() { 
    console.log("error") 
    } 
    navigator.geolocation.getCurrentPosition(locationSuccess, locationError); 
} 

function generateURL(coords) { 
    var URL = 'http://example.com/?lat=' + coords.latitude + '&long=' + coords.longitude; 
    console.log(URL); 
} 

function app() { 
    getUserLocation(); 
} 

window.onload = app(); 

JSFiddle //スニペットは

1

があなたのgenerateURL()関数のパラメータとして変数positionを渡すためのiframeのセキュリティ問題の動作しません。以下の変更とコメントを参照してください。

// app.js 
 

 
function getUserLocation() { 
 

 
\t function locationSuccess(position) { 
 
      console.log("success"); 
 

 
      var coords = position.coords; 
 

 
      // Pass the object as a parameter to the generateURL() function. 
 
      generateURL(position); 
 
\t } 
 

 
\t function locationError() { 
 
\t  console.log("error") 
 
\t } 
 

 
     navigator.geolocation.getCurrentPosition(locationSuccess, locationError); 
 

 
} 
 

 
// Added: variable position as a parameter to the function 
 
function generateURL(position) { 
 
    console.log(position); 
 

 
} 
 

 
function app() { 
 
    getUserLocation(); 
 
} 
 

 
window.onload = app();

関連する問題