解决Openlayers转化为墨卡托坐标系定位不准和隐去前3级的问题

由于使用了新地图瓦片,而改变了坐标系,使得定位有偏差,经过一系列的努力终于解决了这个问题。

 

问题出在了,坐标系范围和maxResolution系数上面。

改为:

 

maxResolution:156543.0339 maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34, 20037508.34, 20037508.34)  

 

如果要想隐去前三级的话,这样操作:

 

maxResolution:156543.0339/8, numZoomLevels: 16(原来19级) 

 

并在计算瓦片路径的地方对zoom加3:

getURL: function (bounds) { bounds = this.adjustBounds(bounds); var bx = (bounds.left + bounds.right)/2; var by = (bounds.bottom + bounds.top)/2; //alert(bx+" "+by); var zoom = this.map.getZoom(); zoom +=3; ...... 

 

这样就解决了Openlayers转化为墨卡托坐标系定位不准和隐去前3级的问题.

 

你可能感兴趣的:(GIS)