2017-08-20 2 views
1

Ich versuche meine Geoserver Schicht auf meiner Website zu drucken. Meine Anwendung und meine Geoserver-Instanz laufen auf separaten Rechnern und verwenden unterschiedliche Ports.Openlayers druckt keine Ebene von Geoserver

Ich habe in meinem Firefox 'Netzwerk Inspektor Protokolle festgestellt, dass entsprechende PNG Bilder von Geoserver heruntergeladen werden. Ich habe bemerkt, HTTP-Anfragen wie:

http://localhost:8081/geoserver/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=graves:graves&TILED=true&STYLES=graves&CQL_FILTER=not(id < 0)&WIDTH=256&HEIGHT=256&CRS=EPSG:2001&BBOX=4762.7,-7860.5599999999995,4905.6900000000005,-7717.57 

und wenn ich einen solchen Link in einem Browser verwenden, es gibt mir ein png mit einigen meiner Elemente. Meine Anwendung druckt jedoch keines der Elemente.

Mein Code ist irgendwie so:

var projection = new ol.proj.Projection({ 
    code: 'EPSG:2001', 
    extent: [4762.7, -8003.55, 4950.55, -7717.57], 
    units: 'm' 
}); 
ol.proj.addProjection(projection); 

var mapcenter = [4880, -7930]; 

var mapzoom = 2; 

var view = new ol.View({ 
    center: mapcenter, 
    projection: projection, 
    zoom: mapzoom 
}); 

var wmsSource = new ol.source.TileWMS({ 
    url: 'http://localhost:8081/geoserver/wms', 
    params: {'LAYERS': 'graves:graves', 'TILED': true, 'STYLES': 'graves' }, 
    serverType: 'geoserver', 
    crossOrigin: 'anonymous' 
}); 


var map = new ol.Map({ 
    layers: [ 
     new ol.layer.Tile({ 
      source: wmsSource 
     }) 
    ], 
    target: 'map', 
    controls: ol.control.defaults({ 
     attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ 
     collapsible: false 
     }) 
    }), 
    view: view }); 

Natürlich habe ich einige div auch:

<div id="map" class="map" style="width: 1030px; height: 650px;border: 1px solid #0066CC;margin-bottom: 10px;"></div> 

Was kann die Ursache für dieses Problem sein? Ich kann keinen Fehler in Firefox Javascript Konsole sehen. Ich war total festgefahren.

Mit freundlichen Grüßen

+0

Ich bin mir nicht sicher, was das Problem ist, aber Sie könnten versuchen, Ihre Schicht in Geoserver zu 4326 oder 3857 zu reprojizieren und die Projektion von Ihrem Openlayers-Code zu entfernen. – ylka

+0

Ich habe es getan. Und ich habe die Deklarierte SRS meiner Schicht in meinem Geoserver auf EPSG: 3857 geändert. Meine native Bounding Box berechnet aus Daten sind 4.761, -8.004, 4.951, -7.775, aber ich entdeckte meine Bewerbungsanfragen BBOX = 0, -20037508.342789244,10018754.171394622, -10018754.171394622. Ich habe versucht, es zu ändern, indem ich Ausdehnung ausdrückte: [4762.7, -8003.55, 4950.55, -7717.57] meiner Ansicht nach, aber die Anfrage änderte sich nicht. – Gandalf

+0

Ich habe überprüft, dass das Problem mit getrennten Tomcats der Geoserver-Anwendung und meiner eigenen Anwendung zusammenhängt. Wenn ich beide auf einer einzigen Tomcat-Instanz starte, scheint es richtig zu funktionieren. Leider kann ich nicht beide Anwendungen auf einer einzelnen Tomcat-Instanz in einer Produktionsumgebung ausführen. – Gandalf

Antwort

0

Ich habe endlich das Problem gelöst. Das Problem war in der Zeile in tileWMS:

crossOrigin: 'anonymous' 

Nach dem Entfernen funktioniert alles wie erwartet. Vielen Dank für Ihre Unterstützung!

Verwandte Themen