0

今日は、Google Maps API を使用する最初の日です。今、私は次のコードを「マップ」するIDを持つDIVを持っています...

function initializeMap() {

        var opts = {
            center: new google.maps.LatLng( 0, 0), // ignore the zero values for now
            zoom: 10,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('map'), opts);
        geocoder = new google.maps.Geocoder();
}

そして、私はこれを使用して呼び出しますwindow.onload = initializeMap

わかりました、地図の中心を現在地に合わせたいと思います。を使用して経度と緯度を取得できることを知っています

navigator.geolocation.getCurrentPosition(displayLocation);

function displayLocation(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude; 
 }

ここで、位置オブジェクトが成功ハンドラーのdisplayLocationにプッシュされる方法に少し戸惑っています。とにかく、緯度と経度を initializeMap() 関数に渡すにはどうすればよいですか...

center: new google.maps.LatLng( latitude, longitude)

これを取得する方法があると確信しているので、現在Google Maps APIドキュメントを見ていますが、さまざまな関数で緯度、経度を使用したいので、これらの変数にアクセスできるようにする方法を尋ねていると思いますfunction でのみ使用できるのではなく、すべての関数 (グローバルではあるが悪いグローバルではない) にdisplayLocation。言葉遣いが下手で申し訳ありません...もし私が人々を混乱させているなら、言ってください、そして私はこの質問を言い直します.

4

1 に答える 1

0

宣言するだけ

var latitude, longitude;

親スコープに入るので、関数は

function displayLocation(position) {
    latitude = position.coords.latitude; /* no var keyword */
    longitude = position.coords.longitude; 
}

もちろん、これらの変数を定義するスコープの選択はあなた次第です。また、呼び出されないundefinedまで続くことに注意してくださいdisplayLocation

于 2012-05-25T12:31:30.387 に答える