0
我已經實現了谷歌地圖,我得到了經度和緯度,我希望這些值可以在谷歌地圖功能之外使用。只有當我在谷歌地圖代碼中調用這些變量時,纔可以將它們添加到DOM。我怎樣才能將這些變量外部用於Google Maps功能。JavaScript封閉解決方案在這裏,如何使用它?
點擊地圖,我需要將這些緯度和經度值作爲查詢字符串追加到URL中。
我不確定閉包是如何工作的。有人可以幫助我將這些緯度和經度值添加到谷歌地圖initilaize()函數以外的查詢字符串。
以下是我的代碼;
<script>
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(44.397, -122.644),
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(44.397, -122.644),
map: map,
draggable: true
});
google.maps.event.addListener(map, 'mousemove', function ques(event) {
var lat_value = event.latLng.lat();
var lon_value = event.latLng.lng();
document.getElementById("llat").value = lat_value;
document.getElementById("llon").value = lon_value;
});
google.maps.event.addListener(map, 'click', function cclick() {
})
}
</script>
<script>
$(function() {
// Access functions and variables defined in google maps initialize() function here
if(document.location.href.indexOf('?') == -1) {
window.location = window.location + "?lat_value";
}
});
</script>
謝謝,沒關係,我不能在initilaize函數中使用這個,我需要做一個單獨的函數,如但顯然這些值不會在這裏定義,所以我的問題出現了。我的問題是如何使用這些變量以外的initiliaze功能。其實在一個新的腳本塊。 – Mike 2013-03-10 06:16:10
@Mike緯度和經度值必須來自地圖點擊事件。它們是在用戶單擊鼠標按鈕時生成的。 maps api沒有提供獲取與屏幕座標相對應的LatLng對象的方法,因此您無法使用常規的DOM單擊事件來獲取它。儘管如此,您不必在該方法中執行處理:您可以在其他位置定義方法,並從點擊處理程序內部調用該方法,並傳入'lat_value'和'long_value'作爲參數。但是這在功能上是等同的。 – nbrooks 2013-03-10 06:36:53
@Mike也許如果你解釋一下你的需求,我可以做更多的幫助:你想要完成的是什麼?兩個方法是否在同一個腳本塊中定義與它們的處理方式無關。 – nbrooks 2013-03-10 06:39:03