DB görünümü / Tablo boş olduğunda Pembe döşemeleri nasıl önleyebilirim?


10

Onlar diğer tablodan bazı uzamsal sütun seçin bir anlamda uzamsal görüş var. Bu tablo geoserver kullanılarak yayınlanmaktadır. Bu tablo yayında ve bazen hiç veri yok. Tabloda veri yoksa, görüntülenen wms hepsi redve kundakçı konsolunda hata: resim açıklamasını buraya girin

WMS şunu döndürdü:

>  <?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE
> ServiceExceptionReport SYSTEM
> "http://192.168.70.65:80/geoserver/schemas/wms/1.1.1/WMS_exception_1_1_1.dtd"> <ServiceExceptionReport version="1.1.1" >   <ServiceException>
>           java.lang.NullPointerException
>     null
>     </ServiceException></ServiceExceptionReport>

Kod:

function init(){    
            OpenLayers.IMAGE_RELOAD_ATTEMPTS = 1;
                OpenLayers.Util.onImageLoadErrorColor = "transparent";    

                map = new OpenLayers.Map('map', {   
                    projection: new OpenLayers.Projection("EPSG:900913"),
                    displayProjection: new OpenLayers.Projection("EPSG:4326"),
                    numZoomLevels: 21,
                    maxExtent: new OpenLayers.Bounds(-20037508, -20037508,20037508, 20037508.34),   
                    controls: [
                        new OpenLayers.Control.Navigation(),
                        new OpenLayers.Control.PanZoomBar(),
                        new OpenLayers.Control.LayerSwitcher({'ascending':false}),                       
                        new OpenLayers.Control.ScaleLine(),
                        new OpenLayers.Control.MousePosition(),
                        new OpenLayers.Control.OverviewMap(),
                        new OpenLayers.Control.KeyboardDefaults()
                    ]   


                });

GeoExt kullanma:

<script src="http://localhost/geoserver/www/ext/adapter/ext/ext-base.js" type="text/javascript"></script>
        <script src="http://localhost/geoserver/www/ext/ext-all.js"  type="text/javascript"></script>
        <link rel="stylesheet" type="text/css" href="http://localhost/geoserver/www/ext/resources/css/ext-all.css"/>

        <link rel="stylesheet" href="http://localhost/geoserver/www/openLayers/theme/default/style.css" type="text/css" />
        <script src="http://localhost/geoserver/www/openLayers/OpenLayers.js" type="text/javascript"></script>

        <script src="http://localhost/geoserver/www/geoext/lib/GeoExt.js" type="text/javascript"></script>        
        <link rel="stylesheet" type="text/css" href="http://localhost/geoserver/www/geoext/resources/css/geoext-all.css"/>


        <script>

            OpenLayers.Util.onImageLoadErrorColor = 1;
            OpenLayers.Util.onImageLoadErrorColor = "transparent";          

            Ext.BLANK_IMAGE_URL = "http://localhost/geoserver/www/ext/resources/images/default/s.gif";
            var app, items = [], controls = [];
            var lon = 85.344;
            var lat = 27.7;
            var zoom = 12;
            var url = "http://localhost/geoserver/wms";



            Ext.onReady(function() {            
                app = new Ext.Viewport({
                    layout: "border",
                    items: items
                });     

Sorun nedir?
underdark

@underdark görünüm veri yok, yani satır yok resimde gösterildiği gibi
kinkajou

... ve kırmızı kiremitlerden nasıl kurtulacağınızı bilmek mi istiyorsunuz?
underdark

@underdark evet bunu yapmanın herhangi bir yolu var
kinkajou

Yanıtlar:


5

resim hatasına bazı varsayılan resimler eklemek için bunu denediniz mi:

OpenLayers.Util.onImageLoadError = function(){
     this.src = "images/blank.png";
};

harika bir çözüm benim için çalıştı.
kinkajou

23

OpenLayers'ın yeni sürümleri (2.11 sonrası) bunun için CSS sınıflarını kullanmalıdır.

.olImageLoadError { 
    /* when OL encounters a 404, don't display the pink image */
    display: none !important;
} 

1
Style.css sitesinden: .olImageLoadError {background-color: pink; opaklık: 0.5; filtre: alfa (opaklık = 50); / * IE * /}
ca0v

5

OpenLayers'da aşağıdaki parametreleri ayarlayın:

// Avoid pink error tiles
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
OpenLayers.Util.onImageLoadErrorColor = "transparent";

Referans belge / eğitim:

http://workshops.opengeo.org/stack-intro/openlayers.html

3'ün IMHO yeniden yükleme denemeleri için çok yüksek toleranslı bir değer olduğunu ve sadece 1'e düşürülebileceğini lütfen unutmayın.


Bu parametreleri ekledim ama yine de aynı hata Ben de kod ekledim
kinkajou

Herhangi bir openlayers nesnesi oluşturulmadan ÖNCE parametreleri ayarlamanız gerekir.
unicoletti

geoext kullanarak bu değişken benim düzenlememin gösterdiği gibi üstte bildirildi ancak yine de çalışmıyor. Sadece benim açılış ile ilgili herhangi bir sorun sadece openlayers kullandığımda çalışır?
kinkajou

Geoext'i en başından kullandığınızı açıklamış olabilirsiniz. SSS de var: catb.org/esr/faqs/smart-questions.html
unicoletti

benim kötü :( iyi bazı sayfalarım sadece açık katmanlar kullanın ve diğerleri geoext + openlayers kullanın sadece açık katman çalışır kullanarak çalıştı ama diğer ile sıkışmış
kinkajou

3

Benim İçin Çalıştı OpenLayers V2.13.1

.olTileImage.olImageLoadError {
    display: none !important;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.