0

我正在尝试“谷歌地图标记分组”教程:

谷歌地图标记分组

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

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); } } }

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

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

4

1 回答 1

-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);"/>
于 2013-02-10T19:39:12.050 回答