簡體   English   中英

使用OpenLayers判斷地圖圖塊圖像是否已成功加載的方法

[英]Way to tell if a map tile image has loaded successfully using OpenLayers

使用OpenLayers,是否可以通過“loadend”事件輕松判斷地圖圖像是否已正確加載?

我們正在從GeoServer中讀取地圖圖塊,並使用OpenLayers來顯示它們。 大多數情況下,圖像會在合理的時間內顯示。 偶爾(特別是使用鼠標滾輪來回滾動時),“loadend”事件會被激活,就好像圖像已加載一樣,但沒有顯示任何內容。

當我調查HTML時,似乎圖像具有正確的URL,但背景顏色為粉紅色(通常是透明的),我在事件對象中看不到任何有用的東西。

有任何想法嗎?

很可能GeoServer不時無法生成切片。 你可以做些調整來提高性能,所以我可能會花一些時間來研究它。

從OpenLayers的角度來看,您可以做一些可能有用的簡單事情。 首先,有一個名為OpenLayers.IMAGE_RELOAD_ATTEMPTS的屬性,它告訴圖層如果無法獲取圖像,將重試多少次。 該值默認為0(零)。 我會嘗試將其設置為代碼頂部的3,看看是否有幫助。

OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;

此外,如果你得到一個破碎的瓷磚並希望它顯示為粉紅色以外的東西,你可以更新代碼頂部的OpenLayers.Util.onImageLoadErrorColor值。

OpenLayers.Util.onImageLoadErrorColor = 'transparent';

您可以在此處瀏覽所有這些內容的來源: http//trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Util.js

使用OpenLayers 2.12所需的css是

    .olImageLoadError
    {
        display: none !important;
    }

如果出現錯誤,則HTML中應包含以下CSS類: olImageLoadError

如果要隱藏它,請將以下內容添加到樣式表中:

.olImageLoadError { 
    display: none;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM