openlayers 2.12 和2.11在IE10中错位的原因分析及解决方法【转】
来源:互联网 发布:商城源码授权便宜 编辑:程序博客网 时间:2024/06/01 07:25
原文http://www.openlayers.cn/forum.php?mod=viewthread&tid=195&extra=page%3D1
openlayers 2.12 和2.11在IE10中均存在错位现象,2.13 dev中已经修复了此bug
最近有用户反映在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版本 OpenLayers.Layer.Grid.js第507行的下一行加入如下代码:
if(tileoffsetlon != startLon && colidx==0 ) {
tileoffsetlon = startLon
}
在 在openlayers2.12版本第1013行的下一行加入以上代码:
就OK了。
大家可以测试下
- openlayers 2.12 和2.11在IE10中错位的原因分析及解决方法【转】
- listview图片错位的原因及解决方法
- asp.net在IE10下事件丢失的原因分析
- table在ie10中的错位
- IE9、IE10和IE8在程序开发中冲突,菜鸟刚发现的解决方法
- 由于无法安装KB2670838导致无法安装IE10的原因及解决方法
- 花生壳不稳定的原因分析及解决方法
- “display:block-inline形式的Span或Div中添加文字后,导致Span或Div排版掉落、错位”的原因及解决方法
- “display:block-inline形式的Span或Div中添加文字后,导致Span或Div排版掉落、错位”的原因及解决方法
- div层调整z-index属性在IE中无效原因分析及解决方法
- div层调整zindex属性在IE中无效原因分析及解决方法
- div层调整z-index属性在IE中无效原因分析及解决方法
- div层调整z-index属性在IE中无效原因分析及解决方法
- Android的ListView异步加载图片时,错位、重复、闪烁问题的分析及解决方法
- 部署在服务器上的应用请求json文件返回404解决方法及原因分析
- res中添加的资源不能在R.java中自动生成的原因及解决方法
- ANR原因分析及解决方法
- ANR原因分析及解决方法
- 通过重定向来获取log4j的控制台输出
- 静态库链接学习
- Ubuntu 12.04 网络设置 IP GATEWAY netmask DNS
- 关于 字节对齐
- 【转】用XAMPP在本地安装调试WordPress
- openlayers 2.12 和2.11在IE10中错位的原因分析及解决方法【转】
- ASIHTTPRequest
- 如何修改mysql数据库的密码
- hdu1871 无题
- java基础
- Windows编程中的映射模式和坐标转换
- 初识block
- 一个简单的DNS server
- javascript,pagemethods