3

OpenLayers からマップを印刷するにはどうすればよいですか? OpenLayers ページに印刷ボタンを追加したい =) ジオサーバー用の MapFish 拡張機能がありますが、それにリクエストを行う方法がわかりません。他のアイデアは大歓迎です)助けてください。

4

2 に答える 2

3

パブリックURLではなくinfo.jsoncontaisローカルIPリファレンスから回答を見つけたため、リバースプロキシを使用して同様の問題が発生しました

残酷に解決するために、私はajaxリクエストでipreferenzeをpublicurlに置き換えました(次のコードを参照してください。他の人に役立つことを願っています...

this.capabilities.createURL = this.capabilities.createURL.replaceAll("192.168.0.0:8080", "mypublicurl");
this.capabilities.printURL= this.capabilities.printURL.replaceAll("192.168.0.0:8080", "mypublicurl");


Ext.Ajax.request({
    url:this.capabilities.createURL,
    jsonData:jsonData,
    success:function(response){
        response.responseText = response.responseText.replaceAll("192.168.0.0:8080", "mypublicurl");
        window.open(Ext.decode(response.responseText).getURL);
  }
});
于 2012-11-09T08:30:36.847 に答える
1

最も簡単な方法は、GeoExt.PrintMapPanel ( geoext の例) を使用することです。そして必ずGeoServer 印刷モジュールを読んでください。

UPD GET リクエストの例。URL、「baseURL」、「layers」を変更する必要があります。既存のレイヤーを指定する場合、このリクエストは pdf ファイルを返す必要があります。

http://demo.opengeo.org/geoserver/pdf/print.pdf?spec={"units":"degrees","srs":"EPSG:4326","layout":"A4","dpi":75,"mapTitle":"Printing Demo","comment":"This is a simple map printed from GeoExt.","layers":[{"baseURL":"http://demo.opengeo.org/geoserver/wms","opacity":1,"singleTile":true,"type":"WMS","layers":["topp:tasmania_state_boundaries"],"format":"image/jpeg","styles":[""]}],"pages":[{"center":[146.56000000001,-41.56],"scale":8192000,"rotation":0}]}
于 2012-10-04T08:14:02.487 に答える