2011-06-07 167 views
-1

嗨它的東西,不明白爲什麼這不起作用?問題初始化地圖

$(document).ready(initialize); 

var map; 
var latLng; 
var varZoom; 

function initialize() { 

$.ajax({ 
    async: false, 
    type: "POST", 
    url: "SetMarkers.aspx/findMapParameters", 
    data: "{idMapa: '" + idMap + "'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (values) { 

     var location = values.d.split(","); 
     var lat = parseFloat(location[0]); 
     var lng = parseFloat(location[1]); 
     latLng = new google.maps.LatLng(lat, lng); 
     varZoom = location[2]; 

    } 
}); 

//build the map for the first time 
var mapDiv = document.getElementById('map-canvas'); 
map = new google.maps.Map(mapDiv, { 
    center: new google.maps.LatLng(5.965754, -64.577637), 
    zoom: varZoom, //this makes the difference 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    disableDefaultUI: true 
}); 

} 

編輯

它不是一個與所謂的ASPX方法,因爲我已經與查爾斯和工作的優良debbug問題。另外,因爲如果我鍵入值直接進入這樣的腳本

map = new google.maps.Map(mapDiv, { 
    center: new google.maps.LatLng(5.965754, -64.577637), 
    zoom: 6, //<<<<---like this works 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    disableDefaultUI: true 
}); 

它的作品是不是值的問題。此外,它與中心

它是地圖上沒有顯示

+1

*如何*它不工作?它的什麼部分?什麼症狀?使用調試器時會發生什麼?你的各種變量在不同的時間是什麼樣的? – 2011-06-07 18:47:56

+0

@ T.J。 Crowder我編輯了這個問題 – Jorge 2011-06-07 18:53:22

+0

......但沒有解決我提出的問題。當你用調試器瀏覽你的*客戶端代碼時,你會發現什麼?我的意思是,顯然'varZoom'不會有正確的值,問題是爲什麼不呢?如果您逐步完成代碼,設置ajax'success'回調中的斷點以及創建地圖的位置,您可能會看到發生了什麼問題。如果您不確定客戶端調試的問題,那很容易,而且這些工具是免費的 - 您可能已經擁有了它們:http://blog.niftysnippets.org/2011/03/no-excuse.html(順便說一句,不是我的downvote或近距離投票) – 2011-06-07 19:06:37

回答

0

我解決了問題,MI我真的不知道該怎麼解釋這個問題的一個問題,但是當我調試我的代碼意識到,不知何故jQuery不要讓谷歌地圖呈現避免創建地圖,所以我解決了這樣的問題。

使Ajax代碼只是爲了填補這一goblal瓦爾那麼它的時候建立映射

var zoom; 
var lat; 
var lng 

$.ajax({ 
    async: false, 
    type: "POST", 
    url: "SetMarkers.aspx/findMapParameters", 
    data: "{idMapa: '" + idMap + "'}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: response 
}); 

/*****take the vars and set the new map****/ 
var mapDiv = document.getElementById('map-canvas'); 
map = new google.maps.Map(mapDiv, { 
    center: new google.maps.LatLng(lat, lng), 
    zoom: zoom, 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
    disableDefaultUI: true 
}); 

/***Sets the values in the map****/ 
function response(values) { 

    var location = values.d.split(","); 
    lat = parseFloat(location[0]); 
    lng = parseFloat(location[1]); 
    zoom = parseInt(location[2]); 
    return false; 
}