用jquery函数创建一个新地图

问题描述

| 我正在使用Google Maps 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
});

} 
    

解决方法

您需要将缩放级别的字符串值转换为整数:
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构造函数正确对待它。     ,您是否在页面标题中包含了对Google Maps脚本的引用? 页面加载时是否遇到任何JavaScript错误? 您确定服务电话以正确的格式返回数据吗?它可能会返回XML而不是JSON。 编辑: 我注意到您正在执行var mapDiv = $(\“#map-canvas \”)[0];将其视为数组的原因是什么?您是按名称要求的,所以无论如何页面上都应该只有一个。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...