初始化地图的问题

时间:2011-06-07 18:46:36

标签: jquery google-maps

嗨,这是无法理解为什么这不起作用的东西?

$(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方法不是问题,因为我已经对查尔斯进行了调查并且工作正常。这也不是值的问题,因为如果我直接在脚本中键入值

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 个答案:

答案 0 :(得分:0)

我解决了mi问题我真的不知道如何解释,但是当我调试代码时我意识到不知何故jquery不让谷歌地图渲染避免创建地图所​​以我解决了这样的问题。

制作ajax代码只是为了填充这个goblal vars然后就是在构建地图时

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;
}