`

openlayers2.11在IE10中错位的原因分析

 
阅读更多

       最近有用户反映在IE10下运行openlayers2.11版的地图网站会出现瓦片错位的现象(具体现象是瓦片上下错位,左右不错位)

       经过本人一番辛苦的调试,发现问题出现在Gird.js文件中的initGriddedTiles方法中的do while循环中。如附件中所示。

      initGriddedTiles方法中有一个嵌套的do while循环(do while语句中还有一个do while语句),里层的do while语句块在第一次执行的tileoffsetlon的值一定是等于startLon的,但是我测试发现,第一次执行里层的do while语句块的时候tileoffsetlon的值不等于startLon,地图就出现了上下错位,地图错位也确实是这个原因:第一次执行里层的do while语句块的时候tileoffsetlon的值不等于startLon。那这是为什么呢?经过本人自行查看代码,在do while循环中,本身没有代码修改startLon的值,当地图缩放到某一级别的时候(我测试通常是第7级开始错位)第一次执行里层的do while语句块的时候,tileoffsetlon的值不居然等于startLon。奇迹发生了,你不可不相信IE10能创造奇迹。在火狐,chrome,IE8,IE9等浏览器下测试不会发生的问题,在IE10(IE10 pro Release )下发生了;还有一个更神奇的事情是如果你开启了IE10的开发人员工具的debugger(代码中其实并没有debugger),也不会出现瓦片错位的现象。微软我很你,就为了这个问题我头都大了!谁都了我的奶酪(tileoffsetlon值不对是E10自己改动了,我很确认,因为代码中没有其他值修改startLon),

IE10。

       这里我猜测有可能是do while语句在IE10中存在某种缺陷。值被莫名修改,让人很没有安全感额!

最后跟大家说一下解决方案:

    在openlayers2.11版本第507行的下一行加入如下代码:

   if(tileoffsetlon != startLon && colidx==0 ) {

       tileoffsetlon = startLon

   }

   就OK了。

 

  • 大小: 13.6 KB
分享到:
评论
1 楼 mayang_lang 2013-05-15  
解决大问题了

相关推荐

    OpenLayers-2.11,资源补充

    在"OpenLayers-2.11,资源补充"中,我们可以推测这个压缩包可能包含了一些与OpenLayers 2.11相关的附加资源和教程,旨在帮助开发者更好地理解和使用这个库。具体来说,文件名"highstocks"和"highcharts"可能分别指向...

    openlayers中文.rar

    通过阅读这份中文手册,开发者不仅可以了解OpenLayers的基本概念,还能学习如何在实际项目中应用OpenLayers,从而构建出功能丰富的地图应用。不断实践和研究,将使你成为OpenLayers的熟练使用者。

    openlayers中文文档2

    在OpenLayers中,Map对象是整个地图应用的核心,包含了地图的视图、图层集合、控件等元素。你可以通过设置地图的中心点、分辨率、投影等属性来定制地图显示。此外,Map对象还提供了交互事件,如单击、双击、拖动等,...

    基于Openlayers的水利信息在线分析服务系统

    在本项目中,Openlayers3被用来绘制和操作水利地图,提供缩放、平移、图层控制等功能,使用户能够直观地查看水利设施分布、水文数据等信息。 JQuery是广泛使用的JavaScript库,简化了DOM操作、事件处理和AJAX交互。...

    openlayers项目分析文档

    OpenLayers 通过JavaScript实现,利用DOM(文档对象模型)在Web浏览器中创建地图交互功能。它采用了面向对象的编程方式,并且借用了Prototype框架和Rico库的部分组件,提供了一个高效且灵活的开发环境。此外,...

    openlayers中文文档1.zip

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS、TMS等,并且兼容各种浏览器,包括桌面端和移动设备。这个"openlayers中文文档1.zip"压缩包包含的...

    openlayers中文文档

    在OpenLayers中,你可以通过设置图层的类型来显示不同类型的地图。例如,瓦片图层(Tile Layer)适合加载大型数据集,因为它会将地图分割成小块进行加载;矢量图层(Vector Layer)可以显示动态数据,如点、线和面,...

    Openlayers扩展H5绘制10W+数据

    在现代Web开发中,地理信息系统(GIS)的应用越来越广泛,而OpenLayers作为一个强大的开源JavaScript库,为开发者提供了丰富的地图渲染和交互功能。当我们面临处理大量数据,如10万条以上的地理信息数据时,如何高效...

    openLayers geoserver常见问题

    在OpenLayers中,删除Layer中的marker可以通过以下步骤实现:首先,获取到你想要删除的marker对象,这通常基于用户交互事件(如点击)来完成。然后,调用Layer的removeFeatures方法,传入marker对象即可将其从地图上...

    openLayers-API中文

    OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图数据源,包括WMS、WFS、TMS等,并且兼容各种浏览器,使得Web开发者可以轻松地将地理信息系统(GIS)功能整合到自己的...

    openlayers中文api.zip

    OpenLayers 是一个强大的开源JavaScript库,专用于在Web上创建交互式地图应用。这个"openlayers中文api.zip"文件包含了OpenLayers中文版的API文档,为开发者提供了详细且易懂的指南,帮助他们更好地理解和使用这个库...

    openlayers 中文文档

    OpenLayers中文学习文档,原始文档是.md格式的转换成Html后转换成了chm格式,感谢原文作者。

    OpenLayers

    在OpenLayers-2.11 版本中,可能包含了一些特定的优化和修复,比如性能提升、新特性添加或已知问题的解决。尽管此版本相对较旧,但对于某些依赖稳定版本的项目,它仍然是一个可靠的选择。开发者可以根据项目需求选择...

    openLayers-API中文版.zip

    在压缩包中的"openLayers-API中文版"可能包含以下内容: - **API 文档**:详细的API参考指南,解释了OpenLayers库中的每个类、方法和属性,是开发过程中查找功能和解决问题的关键资源。 - **示例代码**:包含各种...

    最全最新的中文openLayers_api

    OpenLayers 是一个开源的JavaScript库,专门用于在Web浏览器中展示地图。这个API允许开发者创建交互式的、基于Web的地图应用,支持多种数据源,包括WMS、WMTS、TMS、GeoJSON等。"最全最新的中文openLayers_api...

    基于openlayers实现点密度、分级渲染等专题图

    在GIS(地理信息系统)领域,OpenLayers是一个广泛使用的开源JavaScript库,用于在Web浏览器中创建交互式的地图应用。本文将详细探讨如何利用OpenLayers实现点密度图、比例符号和分级渲染这三种重要的专题图表现形式...

    awesome-openlayers, 在OpenLayers库中,列出所有相关内容.zip

    awesome-openlayers, 在OpenLayers库中,列出所有相关内容 了不起的openlayers这个存储库目标是共享有关 OpenLayers 3 。4 & 5库的信息。请不要犹豫,请求提交更改,添加。使用OpenLayers的插件外部插件和项目网站...

    OpenLayers3文档

    10. **最佳实践与示例**:文档中的实例代码和最佳实践指导开发者如何有效利用OpenLayers3构建高效的地图应用。 总的来说,OpenLayers3提供了丰富的功能和灵活性,适用于各种地图应用开发,从简单的地图显示到复杂的...

    openlayers很多特效demo

    8. 数据源的动态加载和更新:OpenLayers 支持实时数据的加载和更新,这在处理动态数据如交通流量、天气预报等场景中非常有用。 9. 高级功能:如3D地图、地形剖面图、时间序列动画等,都是OpenLayers 强大的高级功能...

Global site tag (gtag.js) - Google Analytics