создать новую карту с помощью функции jquery - PullRequest
0 голосов
/ 24 мая 2011

Я использую 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
});

} 

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Вам необходимо преобразовать строковое значение для уровня масштабирования в целое число:

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 правильно его обработал.

0 голосов
/ 24 мая 2011

Вы включили ссылку на скрипт Google Maps в заголовок вашей страницы?

вы получаете какие-либо ошибки JavaScript при загрузке страницы?

Вы уверены, что ваш сервисный вызов возвращает данные и в правильном формате? он может возвращать XML вместо JSON.

EDIT:

я заметил, что вы делаете var mapDiv = $ ("# map-canvas") [0]; что является причиной для обработки его как массив? вы просите об этом по имени, так что в любом случае на странице должен быть только один ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...