1

所以这让我觉得,也许,一个非常不起眼的错误。

我正在为即将到来的魁北克选举绘制地图。你可以在这里看到

所以我用所有的骑行多边形建立了一个融合表,我已经开始为感兴趣的骑行添加点。他们都工作正常 - 除了一个。如果您放大蒙特利尔周围的区域(特别是拉瓦尔),则会有一个蓝点卡在红色多边形后面,根本无法点击。

我已经尝试使用 zindex 来处理所有标记,但运气不佳。这就是我正在做的事情:

var layer = new google.maps.FusionTablesLayer({
    query: 
    {
        select: 'Geocodable address',
        from: '4722124'
    },
    styles: 
    [
        {
            markeroptions: { zindex: 1, }
        }, 
        {
            polygonOptions: { zindex: 2, }
        }
    ]
});

layer.setMap(map);

除此之外,我不完全确定该怎么做。其余的标记工作正常。

目前,我只是将这些点手动插入融合表中。我应该使用 CSS 删除它们并以这种方式编辑 zindex 吗?(假设这只是一个小故障,没有其他解决方案。)

谢谢!

4

2 回答 2

0

我自己已经为此苦苦挣扎了很长时间。我尝试以不同的顺序创建标记和多边形(例如,首先是多边形,其次是标记,反之亦然),但没有找到控制哪个项目在另一个之上的方法。

我的解决方法是将融合表导出到 KML 文件,然后手动重新组织文件中项目的顺序。地标在 KML 文件中出现的位置越高,它在地图上的项目顺序中就越靠近顶部。也就是说——首先放置标记,然后放置多边形,然后您将能够单击标记。

希望这可以帮助!

向 FUSION 团队提问——你确定可以将这个逻辑写入 Fusion Tables 代码吗?

于 2013-07-21T23:16:09.837 回答
0

我知道强制标记位于顶部的唯一方法是将它们放在单独的层中

var layer1 = new google.maps.FusionTablesLayer({
  query: {
    select: 'Geography',
    where: "Marker does not contain '_'",
    from: '4749709' // '4722124'
 }});
layer1.setMap(map);
var layer2 = new google.maps.FusionTablesLayer({
  query: {
    select: 'Geography',
    where: "Marker contains '_'",
    from: '4749709' // '4722124'
 }});
layer2.setMap(map);

工作示例

这样做的缺点是可能同时显示两个信息窗口。一种解决方法是自己管理信息窗口。

带有单个信息窗口的工作示例

于 2012-07-31T12:44:53.450 回答