切换功能中的“未定义标记”(GMaps API v3)

时间:2013-02-10 11:38:38

标签: javascript google-maps

我正在尝试“google maps marker grouping”教程:

Google Maps marker grouping

为了使标记可见不可见,我使用以下函数:

function displayMarkers(category) {
  var i;

 for (i = 0; i < markers.length; i++) {
   if (markers[i].category == category) {
     if (markers[i].getVisible()) {
          markers[i].setVisible(false); }

    else { markers[i].setVisible(true); } } }

在这里,我总是得到错误:未定义标记。

如果标记在函数中不可见,有点像。但是,如果函数出错,那么关于本教程的讨论中会有任何评论。 那么为什么这个错误呢? 坦克很多!

1 个答案:

答案 0 :(得分:-1)

这是整个代码:

 function initialize(){

  var deutschland = new google.maps.LatLng(51,9);

  var mapOptions = { zoom: 6,
                     center: deutschland,
                     streetViewControl: true,
                     scaleControl: true,
                     mapTypeControl: true,
                     mapTypeId: google.maps.MapTypeId.ROADMAP };

  var map = new google.maps.Map(document.getElementById("map-container"),mapOptions);
  var beaches = [
 ['Bondi Beach', 51, 9, 1],
 ['Coogee Beach', 52, 9, 1],
 ['Cronulla Beach', 51, 8, 2],
 ['Manly Beach',51.5, 9, 2],
 ['Maroubra Beach',52.5, 10, 2]
  ];

 var markers = [];
 var i, newMarker;

 for (i = 0; i < beaches.length; i++) {
   newMarker = new google.maps.Marker({
    position: new google.maps.LatLng(beaches[i][1], beaches[i][2]),
    map: map,
    title: beaches[i][0]
  });

 newMarker.category = beaches[i][3];
 newMarker.setVisible(true);

 markers.push(newMarker);
 } 

 }

function displayMarkers(category) {
  var i;

 for (i = 0; i < markers.length; i++) {
   if (markers[i].category == category) {
     if (markers[i].getVisible()) {
          markers[i].setVisible(false); }

    else { markers[i].setVisible(true); } } }

  }

<input type="button" value="Show Group 1" onclick="displayMarkers(1);"/>
   <input type="button" value="Show Group 2" onclick="displayMarkers(2);"/>