Pages: 1
- Sujet précédent - [GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers - Sujet suivant
#1 Thu 11 October 2012 10:55
- yo_haha
- Participant occasionnel
- Lieu: Martil
- Date d'inscription: 28 Sep 2008
- Messages: 47
[GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers
Bonjour,
J'essaie d'intégrer la fonctionnalité d'impression de carte à mon application GeoExt/OpenLayers, à partir du module d'impression de Geoserver.
La carte OpenLayers.Map contient plusieurs layers, dont OpenStreetMap.
J'ai créé un bouton qui déclenche le processus d'impression et j'ai affecté le code suivant à ce bouton :
Code:
// Configuration de la connexion au service d'impression. var printProvider = new GeoExt.data.PrintProvider({ method: "GET", capabilities: printCapabilities, customParams: { mapTitle: "Navigueo", comment: "olpmijk" } }); // Bouton d'impression. print = new Ext.Button({ iconCls: 'print', tooltip: "imprimer la carte", handler: function(){ // Fenêtre d'aperçu avant impression. printDialog = new Ext.Window({ title: "Aperçu avant impression", width: 500, autoHeight: true, items: [{ xtype: "gx_printmappanel", map: {controls: [new OpenLayers.Control.Navigation()]}, sourceMap: mapPanel, // mapPanel est mon objet GeoExt contenant la carte. printProvider: printProvider }], bbar: ['->', { text: "Exporter en PDF", handler: function(){ printDialog.items.get(0).print(); } }] }); printDialog.show(); } });
L'objet printCapabilities est défini dans le fichier HTML :
Code:
<script src="http://ip-de-mon-serveur/geoserver/pdf/info.json?var=printCapabilities"></script>
Dans le fichier chemin/vers/geoserver/data/printing/config.yaml, j'ai ajouté dans la section hosts les deux lignes suivantes :
Code:
- !dnsMatch host: tile.openstreetmap.org
Quand je clique sur le bouton qui lance l'impression de la carte, j'obtiens l'erreur suivante :
Code:
org.mapfish.print.InvalidJsonValueException: spec.layers[0].baseURL has an invalid value: http://a.tile.openstreetmap.org/ (spec.layers[0].baseURL has an invalid value: http://a.tile.openstreetmap.org/)
J'ai la même erreur en utilisant l'objet printCapabilities de Opengeo :
Code:
http://demo.opengeo.org/geoserver/pdf/info.json?var=printCapabilities
Si je ne mets pas la couche Open Street Map sur la carte, cette erreur n'apparaît pas.
Auriez-vous des pistes ?
Cordialement.
Hors ligne
#2 Fri 12 October 2012 13:27
- yo_haha
- Participant occasionnel
- Lieu: Martil
- Date d'inscription: 28 Sep 2008
- Messages: 47
Re: [GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers
C'est résolu ! Il suffit d'ajouter dans la section hosts : a.tile.openstreetmap.org au lieu de tile.openstreetmap.org.
Hors ligne
#3 Mon 15 October 2012 15:48
Re: [GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers
yo_hahan
Tu as aussi b.tile.openstreetmap.org et c.tile.openstreetmap.org à rajouter. Tu peux avoir des problèmes suivant le sous domaine utilisé.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Mon 15 October 2012 16:08
- yo_haha
- Participant occasionnel
- Lieu: Martil
- Date d'inscription: 28 Sep 2008
- Messages: 47
Re: [GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers
a, b et c dépendent de la zone affichée dans le monde ou c'est arbitraire ?
Il n'y a que a, b et c ?
Hors ligne
#5 Tue 16 October 2012 18:28
Re: [GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers
Bonsoir,
Ce sont trois sous-domaine qui renvoie vers les mêmes tuiles du même serveur (a priori le même serveur).
Cela permet aux navigateurs de récupérer plus vite les tuiles (pour faire simple).
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
Pages: 1
- Sujet précédent - [GeoExt][Geoserver][Module d'impression] Impression avec OpenLayers - Sujet suivant