造型图标标记 - 融合表

时间:2012-03-28 22:40:20

标签: google-fusion-tables

这是对像我这样的其他新手的帮助。

我努力想弄清楚如何在我的融合表项目中为不同类别的标记分配不同的图标。我发现文档有限且令人困惑,我想如果我感到困惑,那么其他人可能也是如此。

在其他人的帮助和大量测试的帮助下,我现在可以与您分享两种方法来实现这一目标。

首先请注意,可用于融合表的图标非常有限,您可以在此处看到一个集合: http://www.google.com/fusiontables/DataSource?dsrcid=308519
放大浮在海洋上的图标,然后点击你喜欢的图标来学习它们的名字。

1。融合表内部的样式:
创建一个名为“样式”的列。务必将其TYPE设置为TEXT 在该列中,添加要用于不同类别的图标的名称 名称示例:星号,目标和“red_blank” 当您在地图视图中时,单击配置样式按钮。在“点/标记”图标下,选择“列”。单击“使用列中指定的图标”,然后从下拉列表中选择您已设置的列名称,例如。 “样式”。
查看地图,您应该会看到各种图标显示。

2。在你的javascript中使用样式:
在代码中添加样式部分。这是一个例子(在这种情况下,样式类别用数字编码):

layer_2 = new google.maps.FusionTablesLayer({
  suppressInfoWindows:true,
  query: {
    select: 'Location',
    from: 'tableid' //add the id number of your table here, inside the quotes
  },

styles: [
  {where: "'style' = 14", markerOptions:{ iconName:"star"}}, // other landmarks
  {where: "'style' = 13", markerOptions:{ iconName:"wht_pushpin"}}, //businesses
  {where: "'style' = 11", markerOptions:{iconName:"red_blank"}}, //town houses
  {where: "'style' = 12", markerOptions:{ iconName:"orange_blank"}}, //country homes
  {where: "'style' = 15", markerOptions:{ iconName:"target"}},
  ]});

这两种方法都很有效。和我们一起工作后我觉得我更喜欢在融合表中这样做,只是因为我发现更简单的我可以保留javascript,对我来说效果更好。

但是,通过JS控制它可以更容易地动态更改图标,因为您只需更改一行代码,而不是通过样式列中的每一行更改图标名称。

我希望这很有用。
温迪

3 个答案:

答案 0 :(得分:2)

另外值得查看这篇帮助文章,该文章描述了如何使用Merge函数快速创建将样式/图标分配给表中行的列:

Using Merge to apply map styles by category

答案 1 :(得分:0)

对于自定义标记,请使用此代替FusionTablesLayer, http://code.google.com/p/gmaps-samples/source/browse/trunk/fusiontables/custom_markers.html?spec=svn2515&r=2515,我认为它们可以与makerclusters一起使用。

答案 2 :(得分:0)

另请注意,由于原因尚不清楚,您可以在经典和当前的融合表界面中获得不同的结果。我的fusiontablelayer在我的地图上没有显示正确的样式,即使在融合表可视化上看起来都很好,但当我切换到经典并重置图标列并修复了infowindow样式时,一切都落到了位置。奇怪,但它奏效了。