जब डीबी व्यू / टेबल खाली हो तो पिंक टाइल्स से कैसे बचें?


10

मेरे पास ऐसे विचार हैं जो इस अर्थ में स्थानिक हैं कि वे अन्य तालिका से कुछ स्थानिक कॉलम का चयन करते हैं। यह तालिका भू-आकृति का उपयोग करके प्रकाशित की गई है। यह तालिका लाइव है और कुछ समय के लिए कोई डेटा नहीं है। जब तालिका में कोई डेटा नहीं होता है तो प्रदर्शित wms सभी है redऔर फायरबग कंसोल में त्रुटि है: यहां छवि विवरण दर्ज करें

WMS ने लौटाया:

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

कोड:

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 का उपयोग करना:

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

क्या पूछते हैं?
UnderDark

@underdark जब दृश्य का कोई डेटा नहीं होता है तो कोई पंक्ति नहीं होती जैसा कि चित्र में दिखाया गया है
kinkajou

... और आप जानना चाहते हैं कि लाल टाइल्स से कैसे छुटकारा पाया जाए?
UnderDark

@underdark हां ऐसा करने का कोई तरीका है
kinkajou

जवाबों:


5

क्या आपने छवि त्रुटि पर कुछ डिफ़ॉल्ट छवि जोड़ने के लिए यह कोशिश की:

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

महान समाधान मेरे लिए काम किया।
किंकजौ

23

OpenLayers (2.11 पोस्ट) के नए संस्करणों को इसके लिए CSS कक्षाओं का उपयोग करना चाहिए।

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

1
Style.css से: .olImageLoadError {पृष्ठभूमि-रंग: गुलाबी; अपारदर्शिता: 0.5; फ़िल्टर: अल्फा (अपारदर्शिता = 50); / * IE * /}
ca0v

5

OpenLayers में निम्नलिखित पैरामीटर सेट करें:

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

संदर्भ दस्तावेज़ / ट्यूटोरियल:

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

कृपया ध्यान दें कि 3 पुनः लोड प्रयासों के लिए एक बहुत ही उच्च सहिष्णुता मूल्य है IMHO और इसे केवल 1 पर उतारा जा सकता है।


मैंने इन मापदंडों को जोड़ा है, लेकिन अभी भी एक ही त्रुटि मैंने कोड भी जोड़ दी है
किंकजौ

आपको कोई भी ओपनर ऑब्जेक्ट बनाए जाने से पहले परम को सेट करना होगा।
unicoletti

जियोक्स्ट का उपयोग करते हुए इन चर को मेरे शो शो के रूप में शीर्ष पर घोषित किया गया था लेकिन फिर भी यह काम नहीं करता है। यह केवल तभी काम करता है जब मैं अपने शुरुआती के साथ किसी भी समस्या का उपयोग कर रहा हूँ?
किंकजौ

आप यह समझा सकते हैं कि आप शुरू से ही जियोसेक्स का उपयोग कर रहे थे। यह faq में भी है: catb.org/esr/faqs/smart-questions.html
unicoletti

मेरा बुरा :( अच्छी तरह से मेरे कुछ पृष्ठ केवल खुली परतों का उपयोग करते हैं और अन्य लोग जियोक्स + का उपयोग करते हैं + सलामी बल्लेबाजों ने केवल खुली परत का उपयोग करके इसे ठीक करने की कोशिश की, लेकिन अन्य के साथ अटक गया
kinkajou

3

यह सिर्फ मेरे लिए काम करता है OpenLayers V2.13.1

.olTileImage.olImageLoadError {
    display: none !important;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.