Log4Classicning

好读书 不求甚解 每有会意 便欣然忘食

OpenLayers中Marker的位置
2008年4月14日

最近平菇比较严,上课浪费了大量的时间,只好抓住有限的时间改一些东西。

今天发现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 var px=this.map.getLayerPxFromLonLat(
this.markerLayer.markers[i].lonlat);
this.markerLayer.markers[i].moveTo(px);
}
});
[code]

另外今天晚上完成了Winter客户端的最后一点改进,明天正式发布。我对Java客户端的受欢迎程度并不是非常在意,主要是这个Swing的客户端上实现了地图操作和HTTP操作,挑战性还是足够的。

« Winter上CnBeta了。。。Winter客户端发布 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Search

站点统计

  • 文章总数:732
  • 评论总数:2568
  • 引用总数:4
  • 浏览总数:5693
  • 留言总数:42
  • 当前主题:ClassicningDailyLog Style
  • 当前样式:footoo

网站收藏

图标汇集

  • Creative Commons License
  • Widgetize!
  • visitor stats

Powered By Z-Blog 1.8 Spirit Build 80722

2004 - 2007 Classicning.com. 苏ICP备06039259号.