は、このにあなたのコードを変更してください:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.write(latitude, longitude);
});
}
</script>
位置が取得されたときにgetCurrentPosition()
に渡す関数が実行されます。それだけでポジションにアクセスすることができ、latitude
とlongitude
という変数を設定し、それらをドキュメントに書き込むことができます。あなたのコードgetCurrentPosition()
で
は、その後すぐにそのdocument.write(latitude,longitude);
が実行されます後に道latitude
とlongitude
利用可能になる前である、呼び出されます。 document.write()
をLocation()
に移動する必要があります。
アップデート1(コメントに基づいて):
あなたは、コールバック関数内document.write()
を行うにはしたくないが、あなたは別の関数を呼び出したい場合は、あなたがコールバック関数からそれを呼び出す必要があります。
それは次のようになります。
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
myFunction(latitude, longitude);
});
}
function myFunction(latitude, longitude) {
// you can do here anything you wish
document.write(latitude, longitude);
}
</script>
アップデート2(コメントや更新の質問に基づいて):
を位置に基づいてマップをロード処理する仕方を呼び出すためにすることですinitialize()
Location()
latitude
およびlongitude
をパラメータとする。ページがロードされたときにHTML要素で動作するコードが実行されるようにするには、Location()
の内部で実行できます。
window.onload = intialize(latitude, longitude);
完全なコードのためにthisを参照してください。
私はそれを呼んでいないことを知っていますが、それでも動作します!値を出力していません。 – jony
深いところでジャンプして、言語のもっとも単純な概念を踏まずに何かをしようとするのではなく、いくつかの基本的なJavaScriptチュートリアルを読むことをお勧めします。 –