se connecter à MapServer avec un programme java

Le
Jean-Marie
Bonjour

je souhaite me connecter à un serveur de cartographie, en l'occurrence
MapServer
existe-t'il un package spécifique pour cela ?

merci bien

Jean-Marie
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JavaCodeur
Le #19447061
Mais explique toi est ce que tu developpe en mobile ou desktop. car
c'est tres different. en mobile ou dektop dans tout les cas il y'a
pas de package specifique pour se connecter à un serveur. Juste des
classes standard à utiliser pour se connecter. Mais tout depends de ce
que tu veux faire ! est ce retirer ou envoyer des cartes dans ce cas
tu sera obligé de les convertir en byte d'abord avant de les passer
a un flux.( Stream).
J'espere t'avoir aidé.
Jean-Marie
Le #19467711
c'est une application "desktop" et je dois récupérer des cartes en
envoyant des requêtes à MapServer ; j'ai pondu le code ci-dessous ;
le fichier reçu "test.gif" ne donne rien à l'affichage
alors que le contenu commence par GIF87.... et semble "donc" indiquer un GIF
je précise que cette requête tapée dans l'url d'un navigateur
affiche bien la carte attendue ;

URL url = new
URL("http://xxx/cgi-bin/mapserver/mapserv?map=/home/geo/mapfile.map&service=WMS&version=1.1.0&request=GetMap&width00&height•0&bbox=-20,27,30,74&format=image/gif&SRS=epsg:4326&layers=terre,admin");
HttpURLConnection urlconnection=(HttpURLConnection)url.openConnection();
BufferedReader in = new BufferedReader(new
InputStreamReader(urlconnection.getInputStream(),"ISO-8859-1"));
FileWriter filewriter = new FileWriter("d:/tmp/test.gif");
String message = "";
String st;
while ((st=in.readLine()) != null) {
message += st;
System.out.println("st = "+st);
}
filewriter.write(message);
filewriter.close();

il doit manquer quelque chose mais je ne sais pas quoi

JM


JavaCodeur a écrit :
Mais explique toi est ce que tu developpe en mobile ou desktop. car
c'est tres different. en mobile ou dektop dans tout les cas il y'a
pas de package specifique pour se connecter à un serveur. Juste des
classes standard à utiliser pour se connecter. Mais tout depends de ce
que tu veux faire ! est ce retirer ou envoyer des cartes dans ce cas
tu sera obligé de les convertir en byte d'abord avant de les passer
a un flux.( Stream).
J'espere t'avoir aidé.


Christian Laborde
Le #19469001
Exception in thread "main" java.net.UnknownHostException:xxx

impossible de tester ce code.

A+

Jean-Marie a écrit :
c'est une application "desktop" et je dois récupérer des cartes en
envoyant des requêtes à MapServer ; j'ai pondu le code ci-dessous ;
le fichier reçu "test.gif" ne donne rien à l'affichage
alors que le contenu commence par GIF87.... et semble "donc" indiquer un
GIF
je précise que cette requête tapée dans l'url d'un navigateur
affiche bien la carte attendue ;

URL url = new
URL("http://xxx/cgi-bin/mapserver/mapserv?map=/home/geo/mapfile.map&service=WMS&version=1.1.0&request=GetMap&width00&height•0&bbox=-20,27,30,74&format=image/gif&SRS=epsg:4326&layers=terre,admin");

HttpURLConnection urlconnection=(HttpURLConnection)url.openConnection();
BufferedReader in = new BufferedReader(new
InputStreamReader(urlconnection.getInputStream(),"ISO-8859-1"));
FileWriter filewriter = new FileWriter("d:/tmp/test.gif");
String message = "";
String st;
while ((st=in.readLine()) != null) {
message += st;
System.out.println("st = "+st);
}
filewriter.write(message);
filewriter.close();

il doit manquer quelque chose mais je ne sais pas quoi

JM


JavaCodeur a écrit :
Mais explique toi est ce que tu developpe en mobile ou desktop. car
c'est tres different. en mobile ou dektop dans tout les cas il y'a
pas de package specifique pour se connecter à un serveur. Juste des
classes standard à utiliser pour se connecter. Mais tout depends de ce
que tu veux faire ! est ce retirer ou envoyer des cartes dans ce cas
tu sera obligé de les convertir en byte d'abord avant de les passer
a un flux.( Stream).
J'espere t'avoir aidé.





--
Christian Laborde
La Révolution citoyenne, c'est sur : http://c.lab.over-blog.com/
Le forum des électrons libres :
http://electrons-libres.forumactif.fr
Les citoyens qui voient Net : http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse
jmtrg
Le #19471041
On 2 juin, 13:14, Christian Laborde wrote:
Exception in thread "main" java.net.UnknownHostException:xxx

impossible de tester ce code.

A+

Jean-Marie a écrit :



> c'est une application "desktop" et je dois récupérer des cartes en
> envoyant des requêtes à MapServer ; j'ai pondu le code ci-dessous ;
> le fichier reçu "test.gif" ne donne rien à l'affichage
> alors que le contenu commence par GIF87.... et semble "donc" indiquer u n
> GIF
> je précise que cette requête tapée dans l'url d'un navigateur
> affiche bien la carte attendue ;

> URL url = new
> URL("http://xxx/cgi-bin/mapserver/mapserv?map=/home/geo/mapfile.map&s ervic...");

> HttpURLConnection urlconnection=(HttpURLConnection)url.openConnection ();
> BufferedReader in = new BufferedReader(new
> InputStreamReader(urlconnection.getInputStream(),"ISO-8859-1"));
> FileWriter filewriter = new FileWriter("d:/tmp/test.gif");
> String message = "";
> String st;
> while ((st=in.readLine()) != null) {
>       message += st;
>       System.out.println("st = "+st);
> }
> filewriter.write(message);
> filewriter.close();

> il doit manquer quelque chose mais je ne sais pas quoi

> JM

> JavaCodeur a écrit :
>> Mais explique toi est ce que tu developpe en mobile ou desktop. car
>> c'est tres different. en mobile ou dektop  dans tout les cas il y'a
>> pas de package specifique pour se connecter à un serveur. Juste des
>> classes standard à utiliser pour se connecter. Mais tout depends de ce
>> que tu veux faire ! est ce retirer ou envoyer des cartes dans ce cas
>> tu sera obligé  de les convertir en  byte d'abord avant de les p asser
>> a un flux.( Stream).
>> J'espere t'avoir aidé.

--
Christian Laborde
La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/
Le forum des électrons libres :http://electrons-libres.forumactif.fr
Les citoyens qui voient Net :http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse



désolé mais je ne peux pas donner l'accès ;
par contre je peux vous envoyer le fichier résultat test.gif

JM
jmtrg
Le #19471591
On 2 juin, 17:49, wrote:
On 2 juin, 13:14, Christian Laborde wrote:



> Exception in thread "main" java.net.UnknownHostException:xxx

> impossible de tester ce code.

> A+

> Jean-Marie a écrit :

> > c'est une application "desktop" et je dois récupérer des cartes e n
> > envoyant des requêtes à MapServer ; j'ai pondu le code ci-dessous ;
> > le fichier reçu "test.gif" ne donne rien à l'affichage
> > alors que le contenu commence par GIF87.... et semble "donc" indiquer un
> > GIF
> > je précise que cette requête tapée dans l'url d'un navigateur
> > affiche bien la carte attendue ;

> > URL url = new
> > URL("http://xxx/cgi-bin/mapserver/mapserv?map=/home/geo/mapfile.map &servic...");

> > HttpURLConnection urlconnection=(HttpURLConnection)url.openConnecti on();
> > BufferedReader in = new BufferedReader(new
> > InputStreamReader(urlconnection.getInputStream(),"ISO-8859-1"));
> > FileWriter filewriter = new FileWriter("d:/tmp/test.gif");
> > String message = "";
> > String st;
> > while ((st=in.readLine()) != null) {
> >       message += st;
> >       System.out.println("st = "+st);
> > }
> > filewriter.write(message);
> > filewriter.close();

> > il doit manquer quelque chose mais je ne sais pas quoi

> > JM

> > JavaCodeur a écrit :
> >> Mais explique toi est ce que tu developpe en mobile ou desktop. car
> >> c'est tres different. en mobile ou dektop  dans tout les cas il y' a
> >> pas de package specifique pour se connecter à un serveur. Juste de s
> >> classes standard à utiliser pour se connecter. Mais tout depends d e ce
> >> que tu veux faire ! est ce retirer ou envoyer des cartes dans ce cas
> >> tu sera obligé  de les convertir en  byte d'abord avant de les passer
> >> a un flux.( Stream).
> >> J'espere t'avoir aidé.

> --
> Christian Laborde
> La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/
> Le forum des électrons libres :http://electrons-libres.forumactif.fr
> Les citoyens qui voient Net :http://www.netoyens.info
> True E-mail : remove -no-spam-
> Sentier des Vinches
> CH 1091 Grandvaux
> Suisse

désolé mais je ne peux pas donner l'accès ;
par contre je peux vous envoyer le fichier résultat test.gif

JM



en comparant les 2 fichiers : celui obtenu par le navigateur
m'affichant bien la carte
et le fichier généré par le code ci-dessus je m'aperçois qu'il y a
bien le même nombre de ligne,
pratiquement le même nombre de caractères,
mais que la codification change ; notamment dans le fichier que je
génère avec ce petit programme
il y a pas de caractère accentué alors que le fichier gif (que
j'obtiens en sauvegardant la carte
depuis le navigateur) contient des caractères accentués ;
comme le MapServer tourne sur unix et que le programme tourne sous
windows, le pb doit venir de là
Christian Laborde
Le #19472221
"An InputStreamReader is a bridge from byte streams to
character streams: It reads bytes and decodes them into
characters using a specified charset."

Puisque c'est une image qu'on récupère, il faut lire des
bytes sans conversion. Essayer un DataInputStream plutôt.
A+

a écrit :
On 2 juin, 17:49, wrote:
On 2 juin, 13:14, Christian Laborde wrote:



Exception in thread "main" java.net.UnknownHostException:xxx
impossible de tester ce code.
A+
Jean-Marie a écrit :
c'est une application "desktop" et je dois récupérer des cartes en
envoyant des requêtes à MapServer ; j'ai pondu le code ci-dessous ;
le fichier reçu "test.gif" ne donne rien à l'affichage
alors que le contenu commence par GIF87.... et semble "donc" indiquer un
GIF
je précise que cette requête tapée dans l'url d'un navigateur
affiche bien la carte attendue ;
URL url = new
URL("http://xxx/cgi-bin/mapserver/mapserv?map=/home/geo/mapfile.map&servic...");
HttpURLConnection urlconnection=(HttpURLConnection)url.openConnection();
BufferedReader in = new BufferedReader(new
InputStreamReader(urlconnection.getInputStream(),"ISO-8859-1"));
FileWriter filewriter = new FileWriter("d:/tmp/test.gif");
String message = "";
String st;
while ((st=in.readLine()) != null) {
message += st;
System.out.println("st = "+st);
}
filewriter.write(message);
filewriter.close();
il doit manquer quelque chose mais je ne sais pas quoi
JM
JavaCodeur a écrit :
Mais explique toi est ce que tu developpe en mobile ou desktop. car
c'est tres different. en mobile ou dektop dans tout les cas il y'a
pas de package specifique pour se connecter à un serveur. Juste des
classes standard à utiliser pour se connecter. Mais tout depends de ce
que tu veux faire ! est ce retirer ou envoyer des cartes dans ce cas
tu sera obligé de les convertir en byte d'abord avant de les passer
a un flux.( Stream).
J'espere t'avoir aidé.




--
Christian Laborde
La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/
Le forum des électrons libres :http://electrons-libres.forumactif.fr
Les citoyens qui voient Net :http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse


désolé mais je ne peux pas donner l'accès ;
par contre je peux vous envoyer le fichier résultat test.gif

JM



en comparant les 2 fichiers : celui obtenu par le navigateur
m'affichant bien la carte
et le fichier généré par le code ci-dessus je m'aperçois qu'il y a
bien le même nombre de ligne,
pratiquement le même nombre de caractères,
mais que la codification change ; notamment dans le fichier que je
génère avec ce petit programme
il y a pas de caractère accentué alors que le fichier gif (que
j'obtiens en sauvegardant la carte
depuis le navigateur) contient des caractères accentués ;
comme le MapServer tourne sur unix et que le programme tourne sous
windows, le pb doit venir de là





--
Christian Laborde
La Révolution citoyenne, c'est sur : http://c.lab.over-blog.com/
Le forum des électrons libres :
http://electrons-libres.forumactif.fr
Les citoyens qui voient Net : http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse
jmtrg
Le #19476261
On 2 juin, 20:03, Christian Laborde wrote:
"An InputStreamReader is a bridge from byte streams to
character streams: It reads bytes and decodes them into
characters using a specified charset."

Puisque c'est une image qu'on récupère, il faut lire des
bytes sans conversion. Essayer un DataInputStream plutôt.
A+

a écrit :



> On 2 juin, 17:49, wrote:
>> On 2 juin, 13:14, Christian Laborde >> wrote:

>>> Exception in thread "main" java.net.UnknownHostException:xxx
>>> impossible de tester ce code.
>>> A+
>>> Jean-Marie a écrit :
>>>> c'est une application "desktop" et je dois récupérer des cartes en
>>>> envoyant des requêtes à MapServer ; j'ai pondu le code ci-dessou s ;
>>>> le fichier reçu "test.gif" ne donne rien à l'affichage
>>>> alors que le contenu commence par GIF87.... et semble "donc" indique r un
>>>> GIF
>>>> je précise que cette requête tapée dans l'url d'un navigateur
>>>> affiche bien la carte attendue ;
>>>> URL url = new
>>>> URL("http://xxx/cgi-bin/mapserver/mapserv?map=/home/geo/mapfile.ma p&servic...");
>>>> HttpURLConnection urlconnection=(HttpURLConnection)url.openConnect ion();
>>>> BufferedReader in = new BufferedReader(new
>>>> InputStreamReader(urlconnection.getInputStream(),"ISO-8859-1"));
>>>> FileWriter filewriter = new FileWriter("d:/tmp/test.gif");
>>>> String message = "";
>>>> String st;
>>>> while ((st=in.readLine()) != null) {
>>>>       message += st;
>>>>       System.out.println("st = "+st);
>>>> }
>>>> filewriter.write(message);
>>>> filewriter.close();
>>>> il doit manquer quelque chose mais je ne sais pas quoi
>>>> JM
>>>> JavaCodeur a écrit :
>>>>> Mais explique toi est ce que tu developpe en mobile ou desktop. car
>>>>> c'est tres different. en mobile ou dektop  dans tout les cas il y 'a
>>>>> pas de package specifique pour se connecter à un serveur. Juste d es
>>>>> classes standard à utiliser pour se connecter. Mais tout depends de ce
>>>>> que tu veux faire ! est ce retirer ou envoyer des cartes dans ce ca s
>>>>> tu sera obligé  de les convertir en  byte d'abord avant de le s passer
>>>>> a un flux.( Stream).
>>>>> J'espere t'avoir aidé.
>>> --
>>> Christian Laborde
>>> La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/
>>> Le forum des électrons libres :http://electrons-libres.forumactif.f r
>>> Les citoyens qui voient Net :http://www.netoyens.info
>>> True E-mail : remove -no-spam-
>>> Sentier des Vinches
>>> CH 1091 Grandvaux
>>> Suisse
>> désolé mais je ne peux pas donner l'accès ;
>> par contre je peux vous envoyer le fichier résultat test.gif

>> JM

> en comparant les 2 fichiers :  celui obtenu par le navigateur
> m'affichant bien la carte
> et le fichier généré par le code ci-dessus je m'aperçois qu'il y a
> bien le même nombre de ligne,
> pratiquement le même nombre de caractères,
> mais que la codification change ; notamment dans le fichier que je
> génère avec ce petit programme
> il y a pas de caractère accentué alors que le fichier gif (que
> j'obtiens en sauvegardant la carte
> depuis le navigateur) contient des caractères accentués ;
> comme le MapServer tourne sur unix et que le programme tourne sous
> windows, le pb doit venir de là

--
Christian Laborde
La Révolution citoyenne, c'est sur :http://c.lab.over-blog.com/
Le forum des électrons libres :http://electrons-libres.forumactif.fr
Les citoyens qui voient Net :http://www.netoyens.info
True E-mail : remove -no-spam-
Sentier des Vinches
CH 1091 Grandvaux
Suisse



impeccable !
merci bien

JM
Publicité
Poster une réponse
Anonyme