今天发现OpenLayers中每次zoom后Marker的位置并不随地理坐标在视图中的位置变化,很是苦恼。早先遇到移动地图不变的问题,执行setVisibility(false)和setVisibility(true)后就可以实现重画,但是这次发现不得不手动移动marker们。
方法是在map的zoomend事件中遍历marker层的所有marker,根据地理坐标重新计算视图坐标,执行moveTo,移动到新的位置。
[code=js]
map.events.register("zoomend", this, function(e){
for(var i=0; i
this.markerLayer.markers[i].lonlat);
this.markerLayer.markers[i].moveTo(px);
}
});
[code]
另外今天晚上完成了Winter客户端的最后一点改进,明天正式发布。我对Java客户端的受欢迎程度并不是非常在意,主要是这个Swing的客户端上实现了地图操作和HTTP操作,挑战性还是足够的。

