Bagaimana cara menghindari ubin Pink ketika tampilan / Tabel DB kosong?

10

Saya memiliki pandangan yang spasial dalam arti bahwa mereka memilih beberapa kolom spasial dari tabel lain. Tabel ini diterbitkan menggunakan geoserver. Tabel ini aktif dan terkadang tidak memiliki data sama sekali. Ketika tabel tidak memiliki data, wms yang ditampilkan adalah semua reddan kesalahan di konsol pembakar adalah: masukkan deskripsi gambar di sini

WMS kembali:

>  <?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>

Kode:

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()
                    ]   


                });

Menggunakan GeoExt:

<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
                });     
kinkajou
sumber
Apa pertanyaan Anda?
underdark
@underdark ketika tampilan tidak memiliki data yaitu tidak ada baris, layernya seperti yang ditunjukkan pada gambar
kinkajou
... dan Anda ingin tahu cara menyingkirkan ubin merah?
underdark
@underdark ya apakah ada cara untuk melakukannya
kinkajou

Jawaban:

5

apakah Anda mencoba ini untuk menambahkan beberapa gambar default pada kesalahan gambar:

OpenLayers.Util.onImageLoadError = function(){
     this.src = "images/blank.png";
};
Aragon
sumber
solusi hebat bekerja untuk saya.
kinkajou
23

Versi OpenLayers yang lebih baru (posting 2.11) harus menggunakan kelas CSS untuk ini.

.olImageLoadError { 
    /* when OL encounters a 404, don't display the pink image */
    display: none !important;
} 
perrygeo
sumber
1
Dari style.css: .olImageLoadError {background-color: pink; opacity: 0,5; filter: alpha (opacity = 50); / * IE * /}
ca0v
5

Setel parameter berikut di OpenLayers:

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

Dokumen referensi / tutorial:

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

Harap dicatat bahwa 3 adalah nilai toleransi yang sangat tinggi untuk upaya memuat ulang IMHO dan dapat diturunkan menjadi hanya 1.

unicoletti
sumber
Saya telah menambahkan parameter ini tetapi masih kesalahan yang sama saya telah menambahkan kode juga
kinkajou
Anda harus mengatur params SEBELUM objek openlayers dibuat.
unicoletti
menggunakan geoext, variabel ini dinyatakan di atas sebagai hasil edit saya tetapi tetap tidak berfungsi. Ini hanya berfungsi ketika saya hanya menggunakan openlayers masalah dengan inisialisasi saya?
kinkajou
Anda bisa menjelaskan bahwa Anda menggunakan geoext dari awal. Ini di faq juga: catb.org/esr/faqs/smart-questions.html
unicoletti
:( buruk saya beberapa halaman saya hanya menggunakan lapisan terbuka dan yang lain menggunakan geoext + openlayers mencoba ini menggunakan hanya lapisan terbuka berfungsi dengan baik tetapi terjebak dengan yang lain
kinkajou
3

Ini Hanya Bekerja Untuk Saya OpenLayers V2.13.1

.olTileImage.olImageLoadError {
    display: none !important;
}
MSS
sumber