当前位置:编程学习 > JAVA >>

openlayers显示离线地图,设置中心点并添加标记响应鼠标单击事件

大家好,我现在用openlayers显示离线地图,地图已经显示,但是还有两个问题,希望好心人和楼主解答:
    问题一:我在地图上加上标记之后,地图的中心点设置就无效了,为什么?
    问题二:我定一个鼠标单击事件,虽然能够响应,但是当我用for循环让它分别响应多个事件时,就出现问题了,问题是,无论我单击哪个标记,它都显示最后一个标记的内容,为什么?



问题的图形如下,




图形总是显示在右上角,无论我的中心点设在什么地方
单击蓝色标记,但是在红色标记显示了内容,无论点击哪个,都是这样、

部分代码如下,


for(var i=0;i<lon.length;i++){

lo[i] = lon[i] * 20037508.34 / 180;

la[i] = Math.log (Math.tan ((90 + lat[i]) * PI / 360)) / (PI / 180);

la[i] = la[i] * 20037508.34 / 180;

var popupId = "popup_"+i;

var lonLatMarker = new OpenLayers.Marker(new OpenLayers.LonLat(lo[i], la[i]),icon[i]);

markers.addMarker(lonLatMarker);

//var llmarkers=new OpenLayers.LonLat(lon[i], lat[i]);

   var popup = new OpenLayers.Popup.FramedCloud(popupId, new OpenLayers.LonLat(lo[i], la[i]),

                                 new OpenLayers.Size(160,100),

                                 "<div style='font-size:15'><strong>"+str[i]+"</strong>"+"<br>经度:"+lon[i]+"E"+" <br>纬度:"+lat[i] +"N"+"<br><br><a href='http://ditu.google.cn/maps'>详细信息...</a>"+"</div>",

                                 null, true,closePopUp);

popup.autoSize=false;

    map.addPopup(popup);

popup.hide();

   

lonLatMarker.events.register('click', new OpenLayers.LonLat(lon[i], lat[i]),function(){popup.show()} );

}

function closePopUp(){

    this.hide();

}


注意:我是用js+openlayers显示离线地图并且添加标记的、 --------------------编程问答-------------------- 哥们问题解决了吗?我们也在开发离线地图,有时间交流一下经验 --------------------编程问答-------------------- 哥们问题解决了吗?我们也在开发离线地图,有时间交流一下经验 --------------------编程问答-------------------- 我也遇到了这个问题,解决了吗?可以分享一下吗 --------------------编程问答-------------------- 我还没显示出来离线地图呢,谁来帮帮我吧。
补充:Java ,  Java相关
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,