2017-08-20 6 views
1

私のウェブサイト上にジオサーバレイヤを印刷しようとしています。私のアプリケーションと私のジオサーバーインスタンスは、別々のtomcatで動作し、異なるポートを使用しています。Openlayersがジオサーバからレイヤを印刷しない

Firefoxのネットワークインスペクタのログに、適切なPNGイメージがgeoserverからダウンロードされていることが気付きました。

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 

このようなリンクをブラウザで使用すると、いくつかの要素があることがわかりました。しかし、私のアプリケーションは要素のいずれも印刷しません。

私のコードは、そのように何とかです:

もちろん
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 }); 

私もいくつかのdivを持っている:

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

が何この問題の原因である可能性がありますか?私はFirefoxのjavascriptコンソールでエラーを見ることができません。私は完全に立ち往生していた。

よろしく

+0

私は問題が何であるか分かりませんが、geoserverでレイヤーを4326または3857に再投影して、openlayersコードから投影を取り除こうとする可能性があります。 – ylka

+0

私はそれをしました。私のジオサーバで宣言したレイヤの宣言SRSをEPSG:3857に変更しました。私のネイティブのバウンディングボックスは、データから計算して4,761、-8,004,4,951,7,775ですが、私は自分のアプリケーションリクエストBBOX = 0、-20037508.342789244,10018754.171394622、-10018754.171394622を発見しました。私はエクステントを[4762.7、-8003.55、4950.55、-7717.57]と見なして変更しようとしましたが、要求は変更されませんでした。 – Gandalf

+0

問題は、ジオサーバアプリケーションと私自身のアプリケーションの別々のtomcatsに関連していることを確認しました。単一のTomcatインスタンス上で両方を実行すると、正しく動作しているようです。残念ながら、私は両方のアプリケーションを本番環境の単一のTomcatインスタンス上で実行することはできません。 – Gandalf

答えて

0

は、私は最終的に問題を解決しました。問題は、tileWMS内の行にありました。

crossOrigin: 'anonymous' 

それを削除した後、すべてが正常に機能します。 ご協力いただきありがとうございます。

関連する問題