Mam widoki przestrzenne w tym sensie, że wybierają kolumnę przestrzenną z innej tabeli. Ta tabela jest publikowana przy użyciu geoserver. Ta tabela jest aktywna i czasami nie ma żadnych danych. Gdy tabela nie zawiera danych, wyświetlany jest wms, red
a błąd w konsoli Firebug to:
WMS zwrócił:
> <?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()
]
});
Za pomocą 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
});
Odpowiedzi:
próbowałeś tego, aby dodać domyślny obraz błędu obrazu:
źródło
Nowsze wersje OpenLayers (post 2.11) powinny do tego używać klas CSS.
źródło
Ustaw następujące parametry w OpenLayers:
Dokument referencyjny / samouczek:
http://workshop.opengeo.org/stack-intro/openlayers.html
Należy pamiętać, że 3 jest bardzo wysoką wartością tolerancji dla prób przeładowania IMHO i można ją obniżyć do zaledwie 1.
źródło
To po prostu działało dla mnie OpenLayers V2.13.1
źródło