嗨,这是无法理解为什么这不起作用的东西?
$(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
});
它的作品。这也是中心的问题
问题是地图没有显示
答案 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;
}