2016-03-18 1 views
-1

У меня есть функция для получения координат из базы данных и функции для установки маркера (setMarker()). Я проверяю базу данных с помощью setInterval(setMarker()) и обновляю маркер, вызывая setMarker(), если местоположение изменилось.Создан прозрачный оверлей, кроме маркера первого времени.

Я проверяю, если это первый раз, когда я создаю маркер и не обновляю его, если нет, то я markerArray[i].setMap(null). Во второй раз, когда я вхожу в цикл, я пытаюсь установить значение null. Но я получаю сообщение об ошибке markerArray не определено.

Проверка выполняется внутри цикла foreach, который должен зацикливаться на длину (количество координат местоположения), а затем я установил значение null.

 function setMarker(){ 
     var markerArray = []; 
     latArray.forEach(function(lat, i) { 
      //    marker = new google.maps.Marker(); 
      var infoWindow = new google.maps.InfoWindow({ 
       content: '<div id="content>' + '<p style="color:#000000">DeviceID:<p>' + '<p>' + deviceId[i] + '</p>' + '</div>' 
      }); 
      if(markerCount >(latArray.length)) //check if marker is created for first time,if not, set to null 
      { 
       //console.log("!------------------"); 
       //console.log(marker); 


      } 
      else{ //if first time, increment so that next time marker can be set to null to create new marker in new position 
       markerCount++; 

       console.log("else"+markerCount); 
      } 

      var marker = new google.maps.Marker({ 
       map: map, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       //position: new google.maps.LatLng(latArray[i], lngArray[i]), 
       icon: "phone6.png" 
      }); 
      markerArray.push(marker); 
      //console.log(markerArray[i]); 
      markerArray[i].setPosition(new google.maps.LatLng(latArray[i],lngArray[i])); //marker undefined here 
      markerArray[i].addListener("click", function() { 
       infoWindow.open(map, marker); 
       //marker.setMap(null); 
      }); 

     }); 

    } 

ответ

0

попытка индексации маркеры с уникальными идентификаторами, как следующее ...

var getMarkerUniqueId = function(lat, lng) { 
    return lat + '_' + lng; 
}; 

, а затем вы можете проследить конкретный маркер ..

Смежные вопросы