【问题标题】:FusionTablesLayer with Multiple Location columns具有多个位置列的 FusionTablesLayer
【发布时间】:2023-12-29 15:40:02
【问题描述】:

所以我有一个 FusionTablesLayer,其中多个位置列都设置为 KML 值。您可以在双击该行后选择“预览KML”来查看坐标。我合成了一张图片来显示预期结果的各个列(按比例缩放)。

第一列Islands 用红色表示,West 用绿色表示,East 用蓝色表示。 尝试在 JSFiddle 中使用它根本不起作用。每个图层在切换到时都使用 same 列。预期结果是单击 West 时向西显示单个绿色标记,单击 East 时向东显示单个蓝色标记。请注意,这些是我在 3 个不相交的 FusionTableLayers 上使用的 3 个不同的位置列,分别显示。

根据Google Maps API #FusionTablesQuery,我应该能够选择我想用作Location 的任何列。这是一个错误,还是我误读了文档?

【问题讨论】:

  • 我认为您需要重新考虑您的设计。一张地图上最多可以有 5 个融合表图层,其中一个最多可以应用 5 种样式。 reference
  • 是的,我知道这 5 种样式,这就是为什么我一次只能看到一个图层(我什至也多次回答过这个常见问题)。重点是从除第一个 Location 列之外的另一列中选择位置值。
  • 在单层中一次只能使用一个位置列(如果一个是纬度,另一个是经度,则两个)。
  • 对,JSFiddle 显示了这一点。 3 个不相交的图层,每个图层选择一列。我不是要求同时显示所有 3 个,也许我对图像不清楚。

标签: javascript google-maps google-maps-api-3 kml google-fusion-tables


【解决方案1】:

您在查询中的字符串周围有一组额外的引号(例如“'Islands'”->“Islands”)。

    layers = [new google.maps.FusionTablesLayer({
        query: {
            select: "Islands", //Location KML with a Polygon and a single Point inside it
            from: table
        },
        styles: styles[0],
        map: map
    }), new google.maps.FusionTablesLayer({
        query: {
            select: "West",  //Location KML that is a single Point to the West of Islands Polygon
            from: table
        },
        styles: styles[1]
    }), new google.maps.FusionTablesLayer({
        query: {
            select: "East",  //Location KML that is a single Point to the East of Islands Polygon
            from: table
        },
        styles: styles[2]

working fiddle

【讨论】:

  • 哇,我不敢相信我忽略了这么简单的事情,并认为我已经尝试过了。由于列名有多个单词,我不得不提前插入它们。