1

我想根据融合表中的字段设置我的融合表标记的样式。如果我使用默认的 Google 标记,则以下代码有效:

        layer = new google.maps.FusionTablesLayer({
      query: {
        select: 'bizCity',
        from: '1yfyijoeC3GwDnnLutBI8IFOH8y2mfZ8LJGUDly4'
      },
    styles: [
  {where: "'bizCatSub' = 'Antique & Classic Motorcycle Dealers'", markerOptions:{ iconName:"star"}}, // other landmarks
  {where: "'bizCatSub' = 'Other moto business'", markerOptions:{ iconName:"wht_pushpin"}}, //businesses
  {where: "'bizCatSub' = 'Shop'", markerOptions:{iconName:"red_blank"}}, //town houses
  {where: "'bizCatSub' = '12'", markerOptions:{ iconName:"orange_blank"}}, //country homes
  {where: "'bizCatSub' = '15'", markerOptions:{ iconName:"target"}},
  ]  
    });
    layer.setMap(map);

你可以在这里看到 jsfiddle

但是,我想使用我自己的自定义标记。为此,我尝试了这样的事情:

        layer = new google.maps.FusionTablesLayer({
      query: {
        select: 'bizCity',
        from: '1yfyijoeC3GwDnnLutBI8IFOH8y2mfZ8LJGUDly4'
      },
    styles: [
  {where: "'bizCatSub' = 'Antique & Classic Motorcycle Dealers'", markerOptions:{ url: "http://pollster.net/test/icons/dealer.png" }}, 
  {where: "'bizCatSub' = 'Other moto business'", markerOptions:{ url: "http://pollster.net/test/icons/othermoto.png" }}, 
  {where: "'bizCatSub' = 'Shop'", markerOptions:{ url: "http://pollster.net/test/icons/shop.png" }}
  ]  
    });
    layer.setMap(map);

使用上面的代码,数据会显示在地图上,但它使用默认标记而不是按要求设置样式。 Jsfiddle 在这里。我查看了有关样式、标记选项和图标的文档,并尝试了不同的变体,但没有什么对我有用。我想我错过了一些简单的东西,但不确定是什么。

有人知道我错过了什么吗?

4

2 回答 2

10

Fusion Table Layer 实际上不允许自定义标记图标。这是一个已知问题:http ://code.google.com/p/fusion-tables/issues/detail?id=69

但是,有一些解决方法,其中最简单的可能是几个月前 Google 员工在该线程底部附近发布的:http://code.google.com/p/fusion-tables/issues/detail? id=69#c107

解决方法的要点是您将不再使用 FusionTableLayer,而是使用 javascript 来获取融合表数据并自己添加自定义标记。这是更多的代码,但它似乎工作得很好:https ://googledrive.com/host/0B9htKoV1ZaKUU1g3ZnJCUWQyd28/customicons_viaApi.html

于 2013-01-28T21:05:16.460 回答
3

您不能将自己的自定义图标与 FusionTablesLayers 一起使用,您只能使用按名称定义的图标(请参见此处)。

如果您需要使用自己的并且可以承受不使用基于 FusionTablesLayer 平铺渲染的性能影响,您可以使用 GViz 或 Fusion Tables Query API 来查询表格以使用 Google Maps API v3 自定义图标。

请参阅已标记为“不可行”的此问题,但包括解决方法。

于 2013-01-28T21:12:24.837 回答