首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何延迟加载包含mapstraction的openlayer地图

如何延迟加载包含mapstraction的openlayer地图
EN

Stack Overflow用户
提问于 2011-09-07 19:50:14
回答 2查看 903关注 0票数 0

我有一个页面显示10个标记在通过mapstraction使用的openlayers地图。

我想先加载地图,然后一个接一个地标记。我尝试使用window.setTimeout()加载地图,然后只加载第一个标记,然后停止加载。

代码语言:javascript
复制
  var map;
  var lat = new Array() ;
  lat=${latitude};
  var lon= new Array();
  lon=${longitude};
  var oneByOneCounter=0;
  var count=10;
  function initMap(){  
       map = new Mapstraction('mymap','openlayers');
       map.setCenter(new LatLonPoint(0.0,0.0));
       map.addControls({pan: true, zoom:'small', map_type:true});
       renderMarkerOneByOne();
       map.autoCenterAndZoom();
     };


   function renderMarkerOneByOne() {
   if (oneByOneCounter < count) {
       latitude= lat[oneByOneCounter];
       longitude= lon[oneByOneCounter];
       var point = new LatLonPoint(latitude,longitude);
       var marker = new Marker(point);
       var info = "("+(oneByOneCounter+1)+")";
       marker.setInfoBubble(info);
       marker.setHover(true);
       marker.setIcon('icon_green.png', [27,31]);
       map.addMarker(marker);    
       oneByOneCounter++;
       window.setTimeout("renderMarkerOneByOne()", 1000);
     } else {
       oneByOneCounter = 0;
    }
   }

我不能确定我在哪里做错了,renderMarkerOneByOne()函数正确执行,在放入alert()时,我可以看到标记对象一直在创建,但由于某些原因,在绘制第一个标记之后,其他标记没有在地图上绘制。

欢迎任何帮助或建议

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-09-08 19:48:55

尝试使用setInterval(),而不是setTimeout()。

票数 0
EN

Stack Overflow用户

发布于 2011-09-08 20:04:51

它必须是这样的

代码语言:javascript
复制
var map;
var lat = new Array() ;
lat=${latitude};
var lon= new Array();
lon=${longitude};
var oneByOneCounter=0;
var count=10;
var centerPoint;
function initMap(){  
   map = new Mapstraction('mymap','openlayers');    
   map.addControls({pan: true, zoom:'small', map_type:true});
  centerPoint= new LatLonPoint(lat[0],lon[0]);// or any point anyone wants to put center
   renderMarkerOneByOne();
   map.setCenterAndZoom(centerPoint,"desired zoom level");
 };

在调试代码上浪费了太多时间之后,我找到了解决方案。许多mapstraction函数在openlayers中不能正常工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7333393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档