У меня есть представления, которые являются пространственными в том смысле, что они выбирают некоторый пространственный столбец из другой таблицы. Эта таблица опубликована с использованием геосервера. Эта таблица жива и иногда вообще не имеет данных. Когда в таблице нет данных, отображается wms red
и ошибка в консоли firebug:
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
});
Ответы:
Вы пробовали это для добавления изображения по умолчанию при ошибке изображения:
источник
Более новые версии OpenLayers (пост 2.11) должны использовать CSS-классы для этого.
источник
Установите следующие параметры в OpenLayers:
Справочный документ / учебное пособие:
http://workshops.opengeo.org/stack-intro/openlayers.html
Обратите внимание, что значение 3 является очень высокой допустимой величиной для попыток перезагрузки IMHO и может быть уменьшено до 1.
источник
Это просто сработало для меня OpenLayers V2.13.1
источник