2012-05-12 10 views
1

私は自分のユーザー座標のjavascriptにいくつかの問題があります。すべての例で、ジオロケーションからのコールバックでアラートメッセージを出力しますが、印刷には緯度の長い座標を使用したり、他の値を設定します。このコードの問題は何ですか?誰もが親切にして説明することができます::)座標変数を使用

<script type="text/javascript"> 
navigator.geolocation.getCurrentPosition(success); 

function success(position) { 
var lat = position.coords.latitude; 
var long = position.coords.longitude; 
} 

document.write(lat); 
</script> 

これはPhoneGapのとエラーコードです:あなたはsuccess関数内latlongを宣言した

05-12 16:40:35.486: E/Web Console(15962): ReferenceError: Can't find variable: lat at file:///android_asset/www/showMap/showMap.html:31

おかげ

+0

http://www.w3schools.com/js/js_variables.asp – mikeycgto

答えて

3

、なるように彼らがスコープされている場所です。 successの機能の外にアクセスすることはできません。

あなたのような何かにあなたのコードを変更することができます:でも場合は、それはあなたを助けないだろうここlatlongグローバルを作った、ただ明確にすること

navigator.geolocation.getCurrentPosition(success); 

function success(position) { 
var lat = position.coords.latitude; 
var long = position.coords.longitude; 
// lat is accessible inside "success", we can write out the variable here: 
document.write(lat); 
} 

successgetCurrentPositionの実行が非同期に実行されています。

+0

大丈夫、グローバル化する方法はありますか? – user1391179

+0

@ user1391179唯一正しい解決策は、依存コードを「成功」に移動することです。コールバックと非同期へようこそ。 –

関連する問題