Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

se connecter à MapServer avec un programme java

7 réponses
Avatar
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

7 réponses

Avatar
JavaCodeur
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é.
Avatar
Jean-Marie
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é.


Avatar
Christian Laborde
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
Avatar
jmtrg
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
Avatar
jmtrg
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à
Avatar
Christian Laborde
"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
Avatar
jmtrg
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