奇怪的行为谷歌融合表

时间:2013-04-22 18:56:32

标签: javascript google-maps google-fusion-tables

我想知道为什么我收到以下错误:

TypeError:e.row.beachID未定义

我的click事件处理程序按预期工作,但我的mouseover和mouseout事件处理程序虽然类似于click处理程序,但会输出上面提到的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; 
    });
}

我错过了一些明显的东西吗?任何想法总是受到赞赏。

提前致谢。 迈克尔

1 个答案:

答案 0 :(得分:0)

FusionTablesLayer上唯一有效的事件是点击:

点击| FusionTablesMouseEvent |单击图层中的要素时会触发此事件。

返回FusionTablesMouseEvent object