谷歌地图& javascript如何动态更新(重新显示)自定义地图图块?

时间:2011-10-17 15:44:47

标签: google-maps dynamic overlay tiles

我有一个存储有数千个(纬度,经度)点的数据库。使用图块服务器将这些点绘制到地图中。这样的图块服务器首先为每个图块计算落在图块内的点,然后绘制每个点(在坐标转换之后)。我的Javascript看起来如下:

var overlayMaps = [{
  getTileUrl: function(coord, zoom) {
    return "tileserver.php?x="+coord.x+"&y="+coord.y+"&z="+zoom+"&g=1";
  },

  tileSize: new google.maps.Size(256, 256),
  isPng: true,
  opacity: 1.0
}];

var overlayMap = new google.maps.ImageMapType(overlayMaps[0]);
map.overlayMapTypes.setAt(0,overlayMap);

现在,我每隔5秒动态地向数据库添加新记录,并且我希望每5秒更新(重新计算并重新显示)相应的切片。

我怎样才能触发我的磁贴服务器每5秒重新计算一次视口的图块?

补充:磁贴每5秒更新一次没有问题,但现在的主要问题是在地图上重新显示它们......

提前致谢...

1 个答案:

答案 0 :(得分:1)

瓷砖是图像,你不可能知道这些图片中的哪一个可能会改变。另外,你不能刷新单个瓷砖而是整个视口。你可以做,动态地为你的瓷砖提供服务,每次视口改变或不是瓷砖图像没有缓存,所以它们总是会改变。为此,你可以在你的磁贴网址代码中添加时间标记或随机数字。

"tileserver.php?x="+coord.x+"&y="+coord.y+"&z="+zoom+"&g=1&r=" + Math.random(); 

最好的问候