在Telerik拆分器内部时,Mapbox不会绘制所有切片

时间:2014-11-05 21:18:03

标签: javascript telerik leaflet mapbox

我们有一个遗留网站,我们需要决定删除所有Google地图,并将其替换为MapBox提供的地图。因此,我正处于崩溃项目的中间,将旧的换成新的。

这就是我的问题:旧网站是用ASP.NET编写的,大量使用Telerik的控件。在此页面中,我们有一个RadSplitter,并在RadPane中绘制了Google地图。

使用MapBox地图更换Google地图非常简单,只是MapBox地图无法正确呈现。只有窗格左边缘的图块才会绘制。但是 - 当我调整浏览器窗口的大小时,其余的瓷砖都会绘制。

div的定义位置为:absolute,top,bottom,right和left设置为0.使用哪些Google地图。

我的猜测是,Telerik正在做一些让MapBox渲染代码混淆div的实际大小的东西。当窗口调整大小时,MapBox会重新评估事物,并使其正确。

我现在已经玩了几个小时了,并且无处可去:

  • 我已经尝试在代码中触发调整大小事件,并且图块没有绘制。
  • 我尝试将地图放在一个固定大小的div中,在窗格内,地图画到边缘,然后div用滚动条坐在窗格内,这向我确认,我和#39; m处理尺寸问题,但我没有滚动条,所以
  • 我尝试将div的宽度和高度设置为窗格的大小,代码中,并且没有触发地图来绘制丢失的窗格。

我的想法已经不多了。

MapBox渲染器上是否有某些事件或函数会导致它重绘浏览器调整大小时的方式?

2 个答案:

答案 0 :(得分:2)

原来答案非常简单:

map.invalidateSize();

已编辑 - 几天图层

原来只适用于IE。在Chrome中,invalidateSize()不会导致地图正确调整自身大小。

答案 1 :(得分:0)

所以地图是在一个伪帧中绘制的,这可能会导致计算出什么"可见" ...

你有办法分享实际输出的HTML吗?喜欢jsfiddle?

有任何控制台错误吗?也许它就像你已经达到地图拼贴服务器的配额一样简单......

尝试不同的磁贴服务器?