Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Wed 18 July 2007 17:20

Bertrand DORNER
Participant actif
Lieu: COLMAR
Date d'inscription: 5 Sep 2005
Messages: 90

Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour,

Pour commencer, je ne suis pas l'auteur développeur de l'intranet cartographique de ma structure, sous mapserver et cartoweb. Celui-ci m'a laissé suffisamment de documentation pour que je puisse mettre à jour les données et leur présentation, des informations attributaires issues de tables MapInfo devant pouvoir être affichées grâce au bouton i de recherche d'informations sur les objets sélectionnés. En général, tout se passe bien, les messages d'erreurs étant rapidement interprétés lorsque je commets une erreur.

Pour le coup, je suis confronté à un fonctionnement erratique de la sélection d'objets, selon que je sélectionne en bloc un groupe d'objets ou que je les sélectionne un à un. Le champ en cause est en caractères, mais si certains enregistrements sont des lettres seules, d'autres sont des chiffres seuls. Aucun enregistrement du champ supposé en cause ne comporte de lettres et de chiffres mélangés. A noter que dans MapInfo le champ "POSTE", qui me semble en cause, est indexé (fusion d'objets à partir du champ POSTE d'une table source)

Dans le map file cela donne
LAYER
    NAME         "N_TRIAGE_ONF_AGREG_068"
    CONNECTIONTYPE  OGR
    CONNECTION  "foret\N_TRIAGE_ONF_AGREG_068.TAB"
    TYPE         Polygon
    MINSCALE  9900
    TRANSPARENCY 100
    TEMPLATE "ttt"
    STATUS ON
    PROJECTION
      "init=epsg:27582"
    END
    METADATA
        "id_attribute_string" "POSTE"
        "query_returned_attributes" "UOT_NOM AG"
    END
    CLASS
      NAME         "N_TRIAGE_ONF_AGREG_068"
      STYLE
        OUTLINECOLOR 255 112 255
        SIZE    1
      END
    END
  END

Lorsque je sélectionne des objets par un polygone de sélection à partir du bouton i, j'obtiens ceci (dernier test)
ID UOT_NOM AG
GUEBWILLER Guebwiller / Soultz COL
80250202 Saint Amarin MUL
80250203 Saint Amarin MUL
80250205 Saint Amarin MUL
80250206 Saint Amarin MUL
80250209 Saint Amarin MUL
80250210 Saint Amarin MUL
ANTOINE BRUN Rouffach COL
SONDERNACH-DIDIO Munster COL
VORDERLAUCHEN Rouffach COL
MITTLACH-EDOUARD Munster COL
SCHMELZRUNZ Rouffach COL
80250207 Saint Amarin MUL
où "80250207" et "ANTOINE BRUN" sont des valeurs du champ POSTE pour deux objets différents de la table MapInfo, et correspondent au champ ID de cette sélection d'objets.

Lorsque je décide de sélectionner individuellement des objets, qui vont s'ajouter dans la fenêtre web listant les donées attributaires des objets sélectionnés, je suis confronté au message d'erreur suivant (je fais une sélection à neuf, sans rajouter d'éléments à la liste sélectionnée) dès la sélection du second objet
Failure
class:   SoapFault
message:   Mapserver error: Error in msEvalExpression: Failed to parse expression
Error in msyyparse(): parse error

Backtrace:

file: 356 - C:\WWW\site\cartoweb3\server\ServerContext.php
call: ServerContext::checkMsErrors()

file: 180 - C:\WWW\site\cartoweb3\coreplugins\mapquery\server\ServerMapquery.php
call: ServerContext->checkMsErrors()

file: 248 - C:\WWW\site\cartoweb3\coreplugins\mapquery\server\ServerMapquery.php
call: ServerMapquery->queryLayerByAttributes(Object(ServerContext), "TriagesOnf", "POSTE", "('[POSTE]' = 'SONDERNACH-DIDIO')", False)

file: 265 - C:\WWW\site\cartoweb3\coreplugins\query\server\ServerQuery.php
call: ServerMapquery->queryByIdSelection(Object(QuerySelection))

file: 412 - C:\WWW\site\cartoweb3\coreplugins\query\server\ServerQuery.php
call: ServerQuery->queryLayer(Object(Bbox), Object(QuerySelection))

file: 74 - C:\WWW\site\cartoweb3\server\ServerPluginHelper.php
call: ServerQuery->handlePreDrawing(Object(QueryRequest))

file: 112 - C:\WWW\site\cartoweb3\server\ServerPluginHelper.php
call: ClientResponderHelper->callHandleFunction(Object(ServerQuery), "handlePreDrawing")

file: 270 - C:\WWW\site\cartoweb3\common\PluginManager.php
call: ClientResponderHelper->handlePreDrawingHelper(Object(ServerQuery))

file: 270 - C:\WWW\site\cartoweb3\common\PluginManager.php
call: call_user_func_array(Array(2), Array(1))

file: 288 - C:\WWW\site\cartoweb3\common\PluginManager.php
call: PluginManager->callPluginImplementing(Object(ServerQuery), "ClientResponder", "handlePreDrawing", Array(0))

file: 291 - C:\WWW\site\cartoweb3\server\Cartoserver.php
call: PluginManager->callPluginsImplementing("ClientResponder", "handlePreDrawing")

file: 333 - C:\WWW\site\cartoweb3\server\Cartoserver.php
call: Cartoserver->doGetMap(Object(MapRequest))

file: 354 - C:\WWW\site\cartoweb3\server\Cartoserver.php
call: Cartoserver->callWithExceptionCheck("doGetMap", Object(MapRequest))

file: 81 - C:\WWW\site\cartoweb3\server\MapResultCache.php
call: Cartoserver->cacheGetMap(Object(MapRequest))

file: 192 - C:\WWW\site\cartoweb3\server\MapResultCache.php
call: MapResultCache->getMapResultFromServer(Object(MapRequest))

file: 364 - C:\WWW\site\cartoweb3\server\Cartoserver.php
call: MapResultCache->getMap(Object(MapRequest))

file: 77 - C:\WWW\site\cartoweb3\client\CartoserverService.php
call: Cartoserver->getMap(Object(MapRequest))

file: 129 - C:\WWW\site\cartoweb3\client\CartoserverService.php
call: CartoserverService->callDirect("getMap", Object(MapRequest))

file: 194 - C:\WWW\site\cartoweb3\client\CartoserverService.php
call: CartoserverService->callFunction("getMap", Object(MapRequest))

file: 586 - C:\WWW\site\cartoweb3\client\Cartoclient.php
call: CartoserverService->getMap(Object(MapRequest))

file: 685 - C:\WWW\site\cartoweb3\client\Cartoclient.php
call: Cartoclient->getMapResultFromRequest(Object(MapRequest))

file: 752 - C:\WWW\site\cartoweb3\client\Cartoclient.php
call: Cartoclient->doMain()

file: 22 - C:\WWW\site\cartoweb3\htdocs\client.php
call: Cartoclient->main()

Je pense que le problème vient de la ligne identifiée "file 248", mais je ne comprends pas la signification de ce code. La sélection objet par objet fonctionne parfaitement pour une table MapInfo dont le champ identifiant est du type 563R129, mais aussi pour deux tables différentes, dont les objets respectifs apparaissent dans deux tableaux successifs, dans la même fenêtre de données attributaires. La table MapInfo du second test a elle aussi un champ indexé.

Merci d'avance pour vos explications

Hors ligne

 

#2 Fri 20 July 2007 17:30

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour,

Quelles version de CartoWeb utilisez vous ? Évitez autant que possible d'utiliser le format TAB avec mapserver (problème de performance et autre) même s'il est officiellement géré.

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

 

#3 Tue 24 July 2007 13:31

Bertrand DORNER
Participant actif
Lieu: COLMAR
Date d'inscription: 5 Sep 2005
Messages: 90

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour,

Merci d'avoir répondu.

Pour commencer, je me me suis étonné de constater que mon message initial ne figurait plus dans la liste des messages sur ce forum, j'ai dû demander l'affichage de mes messages pour le retrouver. J'ai bien cru qu'il avait été effacé.

La version de cartoweb utilisée est la 3.0.0, installée et configurée par l'ingénieur stagiaire ayant monté notre intranet carto de début avril à fin août 2005. Mapserver est en 4.5, la première si mes souvenirs sont bons à pouvoir utiliser nativement les données au format MapInfo, caractéristique qui a renforcé notre choix pour cette solution.

Le choix du format TAB s'impose de lui-même, mon administration ayant inscrit MapInfo dans son schéma directeur au niveau national. Etre obligé d'exporter au format shape toutes les données mises à disposition des agents sur l'intranet carto aurait constitué un temps considéré comme perdu alors que ce besoin n'était plus avéré. Ce dysfonctionnement que je signale est bien le premier que je rencontre avec nos versions de Cartoweb et Mapserver et des données Mapinfo (version 8)

Un des projets de ma direction locale est, grâce à un stagiaire probablement, d'optimiser et de mettre à niveau notre intranet carto, en essayant de l'alléger de tout ce qui est peut-être inutile, tout en profitant des versions plus récentes de mapserver et cartoweb, avec le souci de ne pas avoir d'incompatibilités avec d'autres logiciels. En effet, près de 250 éléments se chargent au moindre démarrage de l'intranet carto au niveau d'un client, et ce premier chargement dure 39s (réseau en 100 base T). L'ennui est que certaines opérations, comme des sélections ou des annulations de sélection d'objets, relencent tout le chargement : les utilisateurs trouvent le temps long ! Le poste serveur local est un windows 2000 pro station, avec un processeur P4 de 3GHz.

Un dernier détail : les postes sont paramétrés, pour IE6, utilisé là où je travaille, de façon à ce que la vérification de version des pages enregistrées se fasse à chaque démarrage d'IE, et non à chaque rafraîchissement de page en cours d'utilisation d'un site.

Merci encore

Hors ligne

 

#4 Tue 24 July 2007 13:53

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour,

L'erreur est elle arrivée après ajout de cette couche ? (possibilité d'un problème entre la version du tab et mapserver), après ajout de la fonctionnalité de recherche ?, quelle a été le changement qui a occasionné cette erreur ?

Vous pouvez également activé les logs et vérifier celle d'apache pour voir s'il n'y a pas une piste.

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

 

#5 Tue 24 July 2007 14:26

Bertrand DORNER
Participant actif
Lieu: COLMAR
Date d'inscription: 5 Sep 2005
Messages: 90

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Au départ, la couche d'origine était présentée comme cela, au niveau des attributs :
ONF_TRIAG_, numérique Virgule fixe 11, utilisé comme identifiant ID pour la première mise en ligne de la couche des triages de l'ONF. Il s'agit d'un identifiant de polygone, le triage étant défini par le champ POSTE (car 100), dont les enregistrements sont tantôt des noms de personnes ou de lieux-dits, tantôt des numéros de poste, tels 80250703.
Ces données ONF, j'avais décidé de les agréger, dans MapInfo, de façon à ce que l'utilisateur de l'intranet carto, en cliquant sur un des polygones d'un triage, voit apparaître tout le triage. Ainsi, le champ MapInfo POSTE devenait le champ ID pour le mapfile et l'affichage web des sélections. C'est sur cette couche agrégée, que j'utilise dans les documents MapInfo, que se produit le problème. A ce sujet je suis revenu à la présentation des triages polygone par polygone, et je n'ai plus aucun problème.
Cette couche agrégée avait été ajoutée en juillet de cette année, et uniquement sur mon seul poste de travail (je ne mets en ligne sur le serveur carto de ma structure que ce qui fonctionne sur mon poste), il n'y a eu de changement ni de MapInfo ni de Mapserver au cours de l'année.
Lorsque j'utilise la couche non agrégée, le champ POSTE fait partie des champs à faire apparaître dans les query_reteurned_attributes, et il ne pose alors aucun problème.

Hors ligne

 

#6 Tue 24 July 2007 14:37

Bertrand DORNER
Participant actif
Lieu: COLMAR
Date d'inscription: 5 Sep 2005
Messages: 90

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Quant à la fonction de recherche (bouton i, sélection par fenêtre comme sélection par pointage individuel d'objets), elle est inchangée depuis la fin de l'installation de notre intranet cartographique, en août 2005.

Hors ligne

 

#7 Tue 24 July 2007 14:56

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour,

Bertrand DORNER a écrit:

Lorsque j'utilise la couche non agrégée, le champ POSTE fait partie des champs à faire apparaître dans les query_reteurned_attributes, et il ne pose alors aucun problème.


Voilà la piste à suivre, pourquoi lorsque la couche est agrégée pose t elle problème ? Peut être parce que le nouvel identifiant est alors un mélange d'entier et de caractères et que la recherche implique que ce champ (id) soit un entier positif unique...

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

 

#8 Tue 24 July 2007 15:53

Bertrand DORNER
Participant actif
Lieu: COLMAR
Date d'inscription: 5 Sep 2005
Messages: 90

Re: Fonctionnement erratique de l'affichage d'informations attributaires

"la recherche implique que ce champ (id) soit un entier positif unique..."
Dans ce cas, je devrais avoir un problème avec une couche dont l'ID, champ mapinfo IDENTPERI, est du type 559R187, sauf que cette présentation mélangée de chiffres et de lettres est homogène sur toute la couche, alors que dans le cas des triages chiffres seuls et lettres seules alternen d'un enregistrement à l'autre. Et dans cette couche de triages, une fois l'agrégation faite sous MapInfo, le champ ONF_TRIAG_ a disparu car devenu inutile dans la logique d'un triage identifié par la valeur du champ POSTE.
Mapserver serait-il trompé par le fait que, même si le champ est identifié sous mapinfo comme étant du caractère, il lit alternativement, selon les lignes, des chiffres seuls et des lettres seules ? En tout cas, avec cette configuration de champs, la sélection par fenêtre fonctionne, comme le montre d'ailleurs mon premier message du 18 juillet, dans lequel j'avais joint des extraits de code, du mapfile comme de l'erreur signalée. C'est la sélection successive d'individus pointés qui échoue.

Hors ligne

 

#9 Fri 27 July 2007 16:39

yald
Juste Inscrit !
Date d'inscription: 21 Sep 2005
Messages: 2

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour,

   Débutant avec cartoweb et mapserver je n'ai pas de réponse directe à apporter. Par contre j'ai le même type d'erreur avec des conditions légèrement différentes.

   Peut être que le croisement de ces erreurs permettra à quelqu'un d'apporter une solution.

   J'utilise une couche shape de commune.

    si je fais une recherche sur le code_insee pas de problème. C'est un champ numérique.

    si je fais une recherche sur le nom de la commune, donc une chaine, j'ai exactement la même erreur que décrite. 

    Bref, est ce que pour faire une comparaison de chaine, il faut des conditions particulières ?

     Voilà, je ne sais pas si ça apporte quelque chose mais je suis aussi preneur d'info

     Merci.

     yann

Hors ligne

 

#10 Thu 30 August 2007 16:46

Bertrand DORNER
Participant actif
Lieu: COLMAR
Date d'inscription: 5 Sep 2005
Messages: 90

Re: Fonctionnement erratique de l'affichage d'informations attributaires

Bonjour Yald,

Je n'étais pas revenu depuis sur georezo

Pouvez-vous préciser, décrire le contenu de ce champ ? S'agit-il d'un champ dont le contenu comporte des espaces, des textes, des chiffres, des caractères spéciaux comme des accents ?

Dans mon cas, le champ du type 536R125, qui est du caractère, fonctionne comme identifiant mapserver. De même, un champ comportant un identifiant Banque du sous-sol comme 03418X0035 (prélèvement d'eau potable) également. De même, un champ qui, dans MapInfo, utilisé comme SIG de saisie de données dans ma structure, est un entier numérique, sera parfaitement pris en compte également.

Ce qui, dans mon cas personnel, me chagrinait, était qu'en sélection par fenêtre, le champ, de type caractère, comprenant des enregistrements chiffres et des enregistrements lettres, ne présentait pas de problèmes tant qu'on se contentait d'une sélection par fenêtre, mais devenait problématique en sélection objet par objet.

Et je viens, en vérifiant au cas où, de me rendre compte que si les enregistrements chiffrés sont d'un bloc, ceux littéraux présentent parfois des espaces, des apostrophes, ce qui n'avait pas été le cas des enregistrements présentés dans mon message du 18 juillet dernier.

En espérant, par ces éléments, avoir fait avancer quelque peu la Science...

Meilleures salutations

Bertrand

Hors ligne

 

Pied de page des forums

Powered by FluxBB