2017-08-20 10 views
1

J'essaie d'imprimer ma couche de géoserveur sur mon site Web. Mon application et mon instance geoserver sont exécutées sur des tomcats distincts et utilisent des ports différents.Openlayers n'imprime pas la couche à partir de geoserver

J'ai remarqué dans mes journaux d'inspecteur de réseau de Firefox que les images png appropriées sont téléchargées à partir de geoserver. J'ai remarqué requêtes http telles que:

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 

et quand j'utilise un tel lien dans un navigateur, il me donne un .png avec certains de mes éléments. Cependant, mon application n'imprime aucun des éléments.

Mon code est en quelque sorte comme ça:

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

Bien sûr, j'ai quelques div ainsi:

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

Quelle peut être la cause de ce problème? Je ne vois aucune erreur sur la console Firefox javascript. J'étais complètement coincé.

Cordialement

+0

Je ne suis pas sûr de savoir quel est le problème, mais vous pouvez essayer de reprojeter votre couche dans geoserver à 4326 ou 3857 et supprimer la projection de votre code openlayers. – ylka

+0

Je l'ai fait. Et j'ai changé le SRS Déclaré de ma couche dans mon geoserver en EPSG: 3857. My Native Bounding Box calculé à partir des données sont 4,761, -8,004, 4,951, -7,775 mais j'ai découvert mes demandes d'application BBOX = 0, -20037508.342789244,10018754.171394622, -10018754.171394622. J'ai essayé de le changer en mettant l'étendue: [4762.7, -8003.55, 4950.55, -7717.57] à mon avis mais la demande n'a pas changé. – Gandalf

+0

J'ai vérifié que le problème est lié à des applications séparées de l'application geoserver et de ma propre application. Quand je les lance tous les deux sur une seule instance de Tomcat, cela semble fonctionner correctement. Malheureusement, je ne peux pas exécuter les deux applications sur une même instance de tomcat dans un environnement de production. – Gandalf

Répondre

0

j'ai finalement résolu le problème. Le problème était dans la ligne dans tileWMS:

crossOrigin: 'anonymous' 

Après l'avoir enlevé, tout fonctionne comme prévu. Merci à tous pour votre soutien!