我正在使用谷歌地图v3,我想创建一个新的地图关联到一个组合的事件,但我不知道为什么不工作,看看我的代码。
注意我调试代码并解决了地图未显示的问题
$(document).ready(initialize);
var map;
function initialize() {
x = $(".comboMap");
x.change(buildMap);
}
function buildMap(){
$.ajax({
async: false,
type: "POST",
url: "SaveIndicators.aspx/findMapParameters",
data: "{idMapa: '" + $(".comboMap").val() + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: response
});
}
/***Sets the values in the map****/
function response(values) {
var location = values.d.split(",");
var lat = parseFloat(location[0]);
var lng = parseFloat(location[1]);
var latLng = new google.maps.LatLng(lat, lng);
var mapDiv = $("#map-canvas")[0];
map = new google.maps.Map(mapDiv, {
center: latLng,
zoom: location[2],
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true
});
}
答案 0 :(得分:1)
您需要将缩放级别的字符串值转换为整数:
function response(values) {
var location = values.d.split(",");
var lat = parseFloat(location[0]);
var lng = parseFloat(location[1]);
var zoom = parseInt(location[2]);
var latLng = new google.maps.LatLng(lat, lng);
var mapDiv = $("#map_canvas")[0];
map = new google.maps.Map(mapDiv, {
center: latLng,
zoom: zoom,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true
});
}
我原以为它会传播传递字符串的值,但事实并非如此。我不得不使用parseInt()来创建一个整数来让Map构造函数正确处理它。
答案 1 :(得分:0)
您是否在网页标题中添加了对Google地图脚本的引用?
您在页面加载时是否收到任何javascript错误?
您确定您的服务电话是以正确的格式返回数据吗?它可能是返回XML而不是JSON。
修改强>
我注意到你正在做var mapDiv = $(“#map-canvas”)[0];将它像阵列一样对待的原因是什么?你是按名字要求的,所以在页面上应该只有一个....