#1 Thu 24 June 2004 11:51
- Rcharret
- Invité
MapServer
De: CHARRET
Bonjour
Je debute dans l'utilisation de Mapserver et PHP_Mapscript.
Je les utilises pour Oracle, Postgis ou des fichiers Shapefile.
Mon environnement est Windows XP, Php 4.3.6, Mapserver 4.1 et php_mapscript 4.2.
Je n'utilise et ne veut pas utiliser Cygwin et Maplab.
Jusque la, cela fonctionne tres bien.
J'ai deux problemes:
-Je voudrais savoir comment executer des requetes par rapport a la position au clic de la souris sur une image en utilisant Mapscript.
Je n'arrive pas a recuperer les objets qui resultent de cette requete. Mapserver m'affiche toute la couche a chaque fois
Voila une partie de mon code
= ->getlayerbyname( Parcelles );
->setXY(660000 , 88000); //Valeur de test sans clic
->queryByPoint(, MS_SINGLE , 2);
= ->getNumResults();
echo nb find: .; //La, il m'affiche bien le bon nombre d'objets trouves.
= ->drawQuery(); //Il me dessine toute la couche
= ->saveWebImage();
echo '';
Dans les exemples qu'il y a sur internet, ils parlent de TEMPLATE. A quoi cela sert? Comment ca marche? Et es ce utile?
-Je voudrais aussi savoir comment calculer des longueurs saisies avec la souris sur une image en utilisant le moins possible de javascript.
Merci d'avance.
#2 Thu 24 June 2004 16:46
- Fx Gamoy
- Invité
Re: MapServer
Bonjour
debut de reponse pour la recherche:
-verifiez que la valeur de la tolerance sur le fichier map.
-verifiez les unites (peut etre pense t'il que vous ete en DD c a dire en
lat long)
- verifier que le parametre template n'est pas vide : j'ai l'habitude de
mettre un truc bidon du style
TEMPLATE consultable
Sinon le template sert a utiliser des fichiers types, qui a travers des mots
clefs, permettent de faire une mise en page de fiche simplifiee...
Good luck
fx gamoy
http://www.geomatika.fr/
----- Original Message -----
From:
To:
Sent: Thursday, June 24, 2004 11:45 AM
Subject: [cartonet_dev] MapServer
> De: CHARRET
> Bonjour
>
> Je debute dans l'utilisation de Mapserver et PHP_Mapscript.
> Je les utilises pour Oracle, Postgis ou des fichiers Shapefile.
> Mon environnement est Windows XP, Php 4.3.6, Mapserver 4.1 et
php_mapscript 4.2.
> Je n'utilise et ne veut pas utiliser Cygwin et Maplab.
> Jusque la, cela fonctionne tres bien.
>
> J'ai deux problemes:
> -Je voudrais savoir comment executer des requetes par rapport a la
position au clic de la souris sur une image en utilisant Mapscript.
> Je n'arrive pas a recuperer les objets qui resultent de cette requete.
Mapserver m'affiche toute la couche a chaque fois
> Voila une partie de mon code
>
> = ->getlayerbyname( Parcelles );
>
> ->setXY(660000 , 88000); //Valeur de test sans clic
> ->queryByPoint(, MS_SINGLE , 2);
>
> = ->getNumResults();
>
> echo nb find: .; //La, il m'affiche bien le
bon nombre d'objets trouves.
>
> = ->drawQuery(); //Il me dessine toute la couche
> = ->saveWebImage();
>
> echo '';
>
> Dans les exemples qu'il y a sur internet, ils parlent de TEMPLATE. A quoi
cela sert? Comment ca marche? Et es ce utile?
>
> -Je voudrais aussi savoir comment calculer des longueurs saisies avec la
souris sur une image en utilisant le moins possible de javascript.
>
> Merci d'avance.
>
>
>
>
#3 Thu 24 June 2004 16:46
- Pierre GIRAUD
- Invité
Re: MapServer
Bonjour,
pour completer la reponse de fx, j'ajouterai plusieurs choses.
Il faut en tout premier lieu s'assurer que l'objet QUERYMAP est bien
present dans votre mapfile afin que l'image generee affiche les objets
selectionnes.
exemple :
QUERYMAP
COLOR 0 255 0
STATUS ON
STYLE Hilite
END
C'est cette partie qui permet de generer une carte avec les objets
selectionnes surlignes (en vert dans ce cas).
D'autre part, les templates que vous evoquez sont surtout pour des
utilisations de mapserver en cgi ce qui n'est pas votre cas
(php-mapscript). Ils permettent des mises en page simplifiees comme le
precise fx.
Par contre, il faut rajouter un attribut TEMPLATE ttt (par exemple)
dans les objets LAYER du mapfile que vous souhaitez interroger. C'est
cet attribut qui rend la couche queriable. Mais cela semble etre le cas
puisque vous retournez un nombre d'objets selectionnes.
Je vous renvoie pour tout ca a la MAPFILE REFERENCE
(http://mapserver.gis.umn.edu/doc/mapfile-reference.html)
Si vous etes toujours sans resultats avec ces elements, il est alors
preferable d'envoyer egalement le mapfile.
Pour votre deuxieme question, on peut distinguer plusieurs reponses.
A la demande d'un client, nous avons ete amenes a developper un outil en
DHTML (HTML + CSS + javascript) leger qui permet entre autres choses de
calculer (cote client) des distances et des surfaces. Vous en trouverez
un exemple sur http://sitn.ne.ch/
Mais si vous souhaitez vous passer completement du javascript, on peut
imaginer un developpement en php qui stockerait les valeurs de clic pour
les envoyer au serveur qui executerai le calcul. Les solutions
techniques existent.
Cordialement.
Pierre GIRAUD
camptocamp.com
>Bonjour
>debut de reponse pour la recherche:
>-verifiez que la valeur de la tolerance sur le fichier map.
>-verifiez les unites (peut etre pense t'il que vous ete en DD c a dire en
>lat long)
>- verifier que le parametre template n'est pas vide : j'ai l'habitude de
>mettre un truc bidon du style
>TEMPLATE consultable
>
>Sinon le template sert a utiliser des fichiers types, qui a travers des mots
>clefs, permettent de faire une mise en page de fiche simplifiee...
>
>Good luck
>fx gamoy
>http://www.geomatika.fr/
>
>----- Original Message -----
>From:
>To:
>Sent: Thursday, June 24, 2004 11:45 AM
>Subject: [cartonet_dev] MapServer
>
>>De: CHARRET
>>Bonjour
>>
>>Je debute dans l'utilisation de Mapserver et PHP_Mapscript.
>>Je les utilises pour Oracle, Postgis ou des fichiers Shapefile.
>>Mon environnement est Windows XP, Php 4.3.6, Mapserver 4.1 et
>>
>>
>php_mapscript 4.2.
>
>>Je n'utilise et ne veut pas utiliser Cygwin et Maplab.
>>Jusque la, cela fonctionne tres bien.
>>
>>
>>J'ai deux problemes:
>>-Je voudrais savoir comment executer des requetes par rapport a la
>>
>>
>position au clic de la souris sur une image en utilisant Mapscript.
>
>>Je n'arrive pas a recuperer les objets qui resultent de cette requete.
>>
>>
>Mapserver m'affiche toute la couche a chaque fois
>
>>Voila une partie de mon code
>>
>>
>>
>> = ->getlayerbyname( Parcelles );
>>
>>->setXY(660000 , 88000); //Valeur de test sans clic
>>->queryByPoint(, MS_SINGLE , 2);
>>
>>
>> = ->getNumResults();
>>
>>echo nb find: .; //La, il m'affiche bien le
>>
>>
>bon nombre d'objets trouves.
>
>> = ->drawQuery(); //Il me dessine toute la couche
>> = ->saveWebImage();
>>
>>echo '';
>>
>>
>>Dans les exemples qu'il y a sur internet, ils parlent de TEMPLATE. A quoi
>>
>>
>cela sert? Comment ca marche? Et es ce utile?
>
>>
>>
>>
>>-Je voudrais aussi savoir comment calculer des longueurs saisies avec la
>>
>>
>souris sur une image en utilisant le moins possible de javascript.
>
>>Merci d'avance.
>>
>>
>>