2013-04-22 1 views
0

Я задаюсь вопросом, почему я получаю следующее сообщение об ошибке:Странное поведение таблицы фьюжн Google

TypeError: e.row.beachID неопределен

Мой обработчик события клика работает, как ожидалось, но мой Mouseover и MouseOut событие обработчик, хотя он аналогичен обработчику кликов, выводит сообщение TypeError, указанное выше. Если я могу получить данные слоя из gft с помощью «обработчика кликов», то почему я не могу сделать то же самое с обработчиком «mouseover» и «mouseout» - я пытаюсь извлечь данные из одной таблицы.

/* start map initialization */ 
function initialize() { 
    latlng = new google.maps.LatLng(49.894634, -97.119141); 
    var myOptions = { 
     center: latlng, 
     zoom: 7, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     zoomControlOptions: { 
      style: google.maps.ZoomControlStyle.SMALL 
     }, 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
      mapTypeIds: [ 
       google.maps.MapTypeId.ROADMAP, 
       google.maps.MapTypeId.SATELLITE, 
       google.maps.MapTypeId.HYBRID, 
       google.maps.MapTypeId.TERRAIN 
      ], 

      style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
     }, 
     overviewMapControl: true, 
     overviewMapControlOptions: { 
      opened: true 
     } 

    }; 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    layer = new google.maps.FusionTablesLayer({ 
     query: { 
      select: 'POINT', 
      from: tableID 
     }, 
     suppressInfoWindows: true 
    }); 
    layer.setMap(map); 
    infoWindow = new google.maps.InfoWindow(); 


    // begin tooltip section 
    layer.enableMapTips({ 
     select: "'beachID', 'beach'", 
     from: tableID, 
     geometryColumn: 'POINT', 
     suppressMapTips: true, 
     delay: 100, 
     tolerance: 8 
    }); 

    google.maps.event.addListener(layer, 'mouseover', function (e) { 
     $('#info').html(
      '<h3>' + e.row['beachID'].value + '</h3>', 
      '<h3>' + e.row['beach'].value + '</h3>'); 
    }); 

    google.maps.event.addListener(layer, 'mouseout', function (e) { 
     $('#info').html('<h2>Mouseout</h2>') ; 
    }); 
    // end tooltip section 


    google.maps.event.addListener(layer, 'click', function (e) { 
     // close infoWindow if open 
     if (infoWindow) { 
      infoWindow.close(); 
     } 
     beachID = e.row['beachID'].value; 
     beachName = e.row['beach'].value; 
     point = e.row['POINT'].value; 
     region = e.row['region'].value; 
     sampleDate = e.row['Date'].value; 
     ecoli_count = e.row['avg_ecoli_count'].value; 
     water_quality_guideline = e.row['water_quality_guideline'].value; 
    }); 
} 

Есть ли что-то очевидное, что я пропустил? Любые мысли всегда приветствуются.

Заранее спасибо. Майкл

ответ

0

Единственное допустимое событие на FusionTablesLayer является щелчок:

нажмите | FusionTablesMouseEvent | Это событие запускается при щелчке по объекту на этом слое.

Это возвращает FusionTablesMouseEvent object

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

  • Нет связанных вопросов^_^