Обновление Google Map не дает возможности добавлять маркеры - PullRequest
4 голосов
/ 24 ноября 2010

У меня проблема с "обновлением" моей карты Google, я не могу разместить маркер самостоятельно (клик) Но перед обновлением карты (с инициализацией) я могу разместить маркер, нажав. Могу ли я узнать, что не так с кодом?

Ниже приведены мои коды ...

//Initialize the map
function initialize() {
    var myLatlng = new google.maps.LatLng(2,110);
    var myOptions = {
        zoom: 3,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.HYBRID
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    infowindow = new google.maps.InfoWindow({
        content: "loading..."
    });
}

// Listen for click for markers
function marker()
{
    google.maps.event.addListener(map, 'click', function(event) {
        addMarker(event.latLng);
    });
}

// Place markers in by click

function addMarker(location) {
    marker = new google.maps.Marker({
        position: location,
        map: map,
        title:"Specified Location",
        icon: 'images/greenPoint.png'
    });
    markersArray.push(marker);
}


function refreshMap()
{
    var myLatlng = new google.maps.LatLng(1.1,107);
    var myOptions = {
        zoom: 4,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.HYBRID
    };
    map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);
}

Ответы [ 3 ]

1 голос
/ 24 ноября 2010

Почему вы сначала создаете новый объект google.maps.Map? Вы должны сделать что-то вроде этого:

function refreshMap()
{
    var myLatlng = new google.maps.LatLng(1.1,107);
    var myOptions = {
        zoom: 4,
        center: myLatlng,
    };
    map.setOptions(myOptions);
}
0 голосов
/ 16 августа 2013

Используя markersArray, вы сможете очистить карту, используя следующий подход: Google Maps API v3: как удалить все маркеры?

function clearOverlays() {
  for (var i = 0; i < markersArray.length; i++ ) {
    markersArray[i].setMap(null);
  }
  markersArray = [];
}
0 голосов
/ 24 ноября 2010

Если я правильно понимаю вашу проблему, вы говорите, что ваша карта не работает после вызова функции refreshMap. Звучит как проблема с областью видимости, когда переменная map находится во второй области во второй раз. Попробуйте поставить эту строку:

var map = null; 

в самом верху файла, чтобы убедиться, что все ссылки map относятся к одной глобальной переменной map.

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