在OpenLayers中调用setCenter后,热图显示为偏移

时间:2014-01-17 22:02:57

标签: javascript openlayers heatmap

我有一个热图和一组标记,可以在OpenLayers中正常渲染。之后,当我使用map.setCenter以编程方式更改地图的中心时,热图的偏移量恰好是中心位置变化的两倍。 (因此,如果新中心位于东边1公里处,热图会向东偏移2公里)

几乎就像热图图层的重绘过度补偿一样。

有没有人遇到这个并解决了它?我试过称为heatmapLayer.redraw()无济于事。

我正在使用OpenLayers 2.13.1和Patrick Weid的heatmap.js'openlayers支持。

1 个答案:

答案 0 :(得分:0)

我设法找到了解决办法。不知道为什么这似乎有效,但是当heatmaplayer.redraw()没有时。

为了他人的利益: -

this.map.setCenter( new OpenLayers.LonLat(lon,lat).transform(
  this.transformWgs84, this.map.projection), zoom,true,true);

第二个'真'做了伎俩。根据OpenLayers文档,这应该只是强制缩放变化。它似乎也强制热图层重绘。 (第一个真实参数强制拖动事件)

文档:http://dev.openlayers.org/docs/files/OpenLayers/Map-js.html#OpenLayers.Map.setCenter