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
                });     

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";
};

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;
} 

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.


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;
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.