0

我即将开发一个谷歌地图应用程序,其中标记将从具有以下结构(简化)的表中填充:

marker_id (INT)
label (TEXT)
latitude (FLOAT)
longitude (FLOAT)
creation_date (DATE/TIME)

信息可以存储在 Fusion 表(首选)或 MySQL 中。所有标记都将以红色显示在地图上。地图旁边将有日期选择器组件,我希望所有创建日期在所选日期的标记的颜色更改为其他颜色(例如黄色)。有什么方法可以做到这一点,而不必在客户端创建所有标记并保存对它们的引用?可能有很多标记(超过 10K,可能高达 100K),所以我不确定这在客户端的效果如何(这就是我更喜欢融合表层的原因)。

4

2 回答 2

1

这可以通过 GMaps API 使用 FT 层来完成。有关基础知识,请参阅API 文档

styles: [{
    where: "creation_date = '4/1/2013' ",
    markerOptions: {
      iconName: "small_yellow"
    }
  },
  {  // default style
    markerOptions: {
     iconName: "small_red"
  } ]

有这么多标记 FT 是要走的路。

于 2013-04-01T20:52:49.357 回答
0

编辑:没有看到您想避免在客户端进行引用。AFAIK如果不创建标记就不可能在谷歌地图上显示标记......也许如果你遇到可伸缩性问题,你可以想办法一次显示更少的标记


根据需要手动设置或更改图标:

var redIcon = {
  url:'/icons/redIcon.png',
};

var yellowIcon = {
  url:'/icons/yellowIcon.png',
};

// Populate some data structure to associate pins with data
var dataPlusMarkers = [
{ data: 99,  pin: new google.maps.Marker(...) },
{ data: 200, pin: new google.maps.Marker(...) }
];

function setColors(){
  dataPlusMarkers.forEach(function(one){
    if(one.data > 100){ 
      one.pin.setIcon(yellowIcon);
    } else {
      one.pin.setIcon(redIcon);
    }
  });
};
于 2013-03-27T13:53:43.327 回答