2011-09-15 4 views
0

onclickでジオロケーションjsを有効にすることはできますか?Google Maps API Geolocation onclickを有効にすることはできますか?

ジオロケーションコード(http://code.google.com/apis/maps/documentation/javascript/basics.html#DetectingUserLocation)をマップに含めると、問題なく動作しますが、コードのロードが開始されます。

私がしたいことは、ボタンを使ってジオロケーションを割り当てることです。私はonclick()関数に関連するコードを移動しようとしましたが、それはそのトリックをしていないようです。ここで

は私のコードです:

function initialize() { 
var latlng = new google.maps.LatLng(51.5146984674518, -0.0723123550415039); 
var myOptions = { 
    zoom: 14, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    mapTypeControl: true, 
    mapTypeControlOptions: { 
    style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, 
    position: google.maps.ControlPosition.RIGHT_BOTTOM 
}, 
panControl: true, 
    panControlOptions: { 
    position: google.maps.ControlPosition.TOP_RIGHT 
}, 
zoomControl: true, 
zoomControlOptions: { 
    style: google.maps.ZoomControlStyle.LARGE, 
    position: google.maps.ControlPosition.TOP_RIGHT 
}, 
streetViewControl: false, 
}; 
var map = new google.maps.Map(document.getElementById("energymap"), 
    myOptions); 
} 

$('a#geolocate').click(function() { 
// Try W3C Geolocation (Preferred) 
    if(navigator.geolocation) { 
    browserSupportFlag = true; 
    navigator.geolocation.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
     map.setCenter(initialLocation); 
    }, function() { 
     handleNoGeolocation(browserSupportFlag); 
    }); 
    // Try Google Gears Geolocation 
    } else if (google.gears) { 
    browserSupportFlag = true; 
    var geo = google.gears.factory.create('beta.geolocation'); 
    geo.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.latitude,position.longitude); 
     map.setCenter(initialLocation); 
    }, function() { 
     handleNoGeoLocation(browserSupportFlag); 
    }); 
    // Browser doesn't support Geolocation 
    } else { 
    browserSupportFlag = false; 
    handleNoGeolocation(browserSupportFlag); 
    } 

    function handleNoGeolocation(errorFlag) { 
    if (errorFlag == true) { 
     alert("Geolocation service failed."); 
     initialLocation = newyork; 
    } else { 
     alert("Your browser doesn't support geolocation. We've placed you in Siberia."); 
     initialLocation = siberia; 
    } 
    map.setCenter(initialLocation); 
    } 

}); 

答えて

2

はい、それは可能です。あなたの$でのクリックイベントコード(ドキュメント).ready(関数()ブロックを含む試してみてください、そうのように:

$(document).ready(function() { 
    $('a#geolocate').click(function() { 
     .... 
    }); 
}); 

私は自分のコードでいくつかのテストを行なったし、私は$でそれを含めたら、それは私のために働きました(文書).readyハンドラ

+0

ありがとうございました。私はonloadからbutton onclickに移行する方法を探していましたが、これは美しく機能しました。 –

関連する問題