【问题标题】:google maps api 3 - how to open infowindow, for polygons from FusionTables, on click on html element谷歌地图 api 3 - 如何打开信息窗口,来自 FusionTables 的多边形,点击 html 元素
【发布时间】:2012-04-11 06:39:29
【问题描述】:

所以我有一个问题;我有调用 2 个 Fusion 表的 google api 3 代码,现在我想添加一些可单击的 html 元素,当单击时,它们会从 fusion 表中调用某些多边形并自动打开它们的(已经自定义的)信息窗口。

我的代码在这里: http://jsfiddle.net/zVaGN/1/

我想得到这个效果: http://econym.org.uk/gmap/example_egeotestmon.htm

我一直在查看此代码,但找不到解决方案,因为我不擅长编码。我需要一些函数,通过调用一些属性(融合表中的列)从融合表中调用一个层,然后当用户单击 html 元素时,会弹出特定层的信息窗口。

请大家帮忙!

更新: 单击多边形时已经可以获取信息窗口,但是我想获得单击另一个html元素时打开信息窗口的效果,请看一下这个例子: jsfiddle.net/zVaGN 在这里,我将链接放在地图之前的顶部,上面写着“Sisak”,现在我希望当我点击这个链接时,这个多边形的信息窗口(在我的 fusiontalbe 中名为 Sisak)会弹出。这可能吗?

更新 2: 所以我已经有了在 fusiontables 中制作的自定义信息窗口,我只希望该函数使用 fusiontable 值查询 html 元素中的值并调用 infowindow 弹出窗口?你明白吗,所以我有我的多边形,我有每个多边形的自定义信息窗口,现在我想在我的 googlemap 之外制作一个 html 列表,以便当用户点击侧边栏列表中的特定名称时,然后是那个信息窗口多边形弹出窗口?

我已尝试放置此代码,该代码将调用 fusiontables 中的信息窗口,但我不工作。这是谷歌 api:

    function izbor() {
var infowindow = google.maps.FusionTablesLayer({
    });
infowindow.open(map);

}

稍后在 html 正文中我尝试实现此功能:

<div style="position:absolute; top:700px; left:100px;" >
<a href="#" title="Sisak" value="Sisak" onclick="izbor()">Sisak</a><br />
</div>

但没有发生这种情况

我也试过这段代码来调用在 fusiontables 中创建的信息窗口,它有一个 div class="googft-info-window":

function izbor() {
var infowindow = new google.maps.InfoWindow({
query: {"SELECT '.googft-info-window' FROM" + tableid};
    });
infowindow.open(map);
}

但什么也没发生

还尝试使用 ExtendedData 使用此代码,因为当我将 fusiontable 导出到 kml 时,它会将信息窗口解析为 ExtendedData

function izbor() {
var infowindow = new google.maps.InfoWindow({
query: {" SELECT 'ExtendedData' FROM " + tableid};
    });
infowindow.open(map);
}

但又什么都没有:(

【问题讨论】:

    标签: maps infowindow


    【解决方案1】:

    您的示例使用多边形,并且可以处理点击它。你也可以处理点击,但只能在你的区域(层)的边界上

    google.maps.event.addListener(layer, 'click', function()
    {
        // Your info window should be opened here
        alert("Clicked");
    });
    

    点击区域的边框查看:)

    更新:

    function izbor() {
        layer.setOptions({
            query: "SELECT geometry FROM " + tableid + " WHERE Naziv = 'Sisak'"
        });
    
        var infowindow = new google.maps.InfoWindow({
            content: "Info"
            , position: new google.maps.LatLng(44.75324026267657, 16.810970306396484)
        });
        infowindow.open(map);
    }
    

    【讨论】:

    • 感谢 Aleksej 的快速回复,但是单击多边形时已经可以获取信息窗口,但我想获得单击另一个 html 元素时打开信息窗口的效果,请采取看看这个例子:jsfiddle.net/zVaGN 在这里我把链接放在地图之前的顶部,上面写着“Sisak”,现在我想要当我点击这个链接时这个多边形的信息窗口(在我的 fusiontalbe 中命名为 Sisak)弹出。这可能吗?
    • 可能我不明白你的需要 :) 我发布了代码以在所需的 LatLng 位置打开信息窗口。希望这会有所帮助
    • 谢谢 Aleksej,但我已经有了在 fusiontables 中制作的自定义信息窗口,我只希望该函数使用 fusiontable 值查询 html 元素中的值并调用 infowindow 弹出窗口?你明白吗,所以我有我的多边形,我有每个多边形的自定义信息窗口,现在我想在我的 googlemap 之外制作一个 html 列表,以便当用户点击侧边栏列表中的特定名称时,然后是那个信息窗口多边形弹出窗口?
    猜你喜欢
    • 2011-02-20
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2013-02-15
    相关资源
    最近更新 更多