0

Google マップを使用しています。関数内の変数にアクセスしようとしていますが、方法がわかりません。

 if(navigator.geolocation) {

    browserSupportFlag = true;
    navigator.geolocation.getCurrentPosition(function(position) {
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
     // map.setCenter(initialLocation);
       markerL = new google.maps.Marker({
                        position: initialLocation,
                       map: map,
                        title: "You are Here",
                    });

                     markerL.setMap(map);
    }, function() {
      handleNoGeolocation(browserSupportFlag);
    });

  } 

ここでinitalLocationにアクセスしたい

var directionsService = new google.maps.DirectionsService();
     var directionsDisplay = new google.maps.DirectionsRenderer();
  directionsDisplay.setMap(map);
     directionsDisplay.setPanel(document.getElementById('panel'));

     var request = {
       origin: window.initialLocation, 
       destination: 'london',
       travelMode: google.maps.DirectionsTravelMode.DRIVING
     };

     directionsService.route(request, function(response, status) {
       if (status == google.maps.DirectionsStatus.OK) {
         directionsDisplay.setDirections(response);
       }
     });

Firebug は、initalLocation が定義されていないことを教えてくれます。何か案は?

乾杯

4

2 に答える 2

0

次のように値を設定してみてください。

window.initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);

つまり、常にwindow.接頭辞を使用します。

グローバル変数を保持するために window オブジェクトを使用することは、最良のプログラミング方法ではないことに注意してください。スクリプトが小さい場合でも問題ありません。

于 2013-03-13T13:06:02.837 に答える