#1 Wed 10 November 2010 13:05
- sanik
- Juste Inscrit !
- Lieu: Valence
- Date d'inscription: 10 Nov 2010
- Messages: 2
[ MapGuide OS ] Créer une requête spatiale avec Maestro
Bonjour à tous les contributeurs,
Je viens de découvrir MapGuide OS (et par la même Maestro). Aucun problème pour installer MapGuide et Maestro, et aucun problème pour aller plus loin que l'exemple Sheybogan. J'ai pu créer mon propre projet avec les couches suivantes:
- routes
- communes
- périmètres de protection (dans table attributaires: ville, nom périmètre, population)
J'ai pu créer un bouton de recherche par attributs sur la couche "périmètres" sans souci grâce aux indications de Jean marie via Maestro (exemple de recherche: j'écris la ville de mon choix > cliques sur rechercher > j'obtiens en résultat la liste des périmétres qui s'y trouvent).
Voilà concrètement mon souci actuel:
J'aimerai maintenant créer une zone de recherche non pas par attributs (facile maintenant !! :-) ) mais en fonction d'une requête spatiale (critère d'intersection entre 2 couches). Je bloque complètement (il y a zone de recherche du genre dans l'exemple Sheybogan).
exemple de recherche: je veux sélectionner toutes les routes qui intersectent la ou les ville(s) de mon choix en précisant dans une fenêtre le ou le(s) noms de ville(s).
Si quelqu'un pouvait m'aider, ce serait super super sympa ...
Je vous remercie de votre aide et à minima de la lecture de mon message !
Bonne journée !!
Hors ligne
#2 Mon 14 March 2011 02:24
- farouk_SIG
- Participant occasionnel
- Date d'inscription: 7 Mar 2011
- Messages: 17
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
Bonsoir Sanik , est ce que je peux savoir comment vous avez fait pour le truc de la recherche ??
Hors ligne
#3 Mon 14 March 2011 15:27
- smile
- Participant actif
- Date d'inscription: 2 Jul 2009
- Messages: 110
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
Salut,
Sanik, je ne vais pas pouvoir t'aider, désolé....
Pour Farouk, le module de recherche se met en place en suivant les étapes suivantes :
Il suffit d'ajouter la fonction search dans une mise en page (layout) en cliquant sur "cliquer pour ajouter une commande personnalisée>>Search".
Ensuite il faut ajouter la fonction en cliquant sur "ajouter un item>>item personnalisé>>Search".
Enfin il faut éditer les propriétés avancées de l'item:
Target : Zone de recherche
frame: -
Prompt: Texte situé au dessus du champ de recherche
Layer : couche dans laquelle tu veux effectuer ta recherche
Filter : permet d'indiquer sur quel champs la recherche doit être faite. Il faut entrer : NOMDUCHAMP LIKE '%$USER_VARIABLE%' (où NOMDUCHAMP est le nom du champ de recherche)
Result limit: Je suis pas certain mais cela doit être le nombre de résultats max pour la recherche
Result columns: colonnes affichées
Hors ligne
#4 Mon 14 March 2011 17:21
- farouk_SIG
- Participant occasionnel
- Date d'inscription: 7 Mar 2011
- Messages: 17
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
waaaaaaaaaaw géniale smile , je suis très reconnaissant surtout vous m'avez expliquer étape par étape vraiment merci car je suis encore débutant , alors maintenant voila mon problème :
dans ma carte j'ai deux couches : une de type polygonale (Régions) et l'autre du type point (agences) , je suis censé de développer une fonctionnalité qui donne sur chaque région le nombre d'agences qu'elle contient !!!!
est ce que c'est du PHP ou bien juste SQL ??? je sais pas ou commencer ??
win 7
mapguide Open source 2.1
Mpaguide Maestro 2.1.4
(mes données sont sous format .shp)
merci d'avance !!
Hors ligne
#5 Fri 25 March 2011 09:45
- renard
- Participant actif
- Date d'inscription: 16 Mar 2010
- Messages: 96
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
Sanik en page 39 du guide développement tu trouveras la réponse à ta question... mais cela impose de programmer.
http://www.scribd.com/doc/15636244/MgOpenSourceDevGuide
Hors ligne
#6 Mon 28 March 2011 18:02
- Tonioo
- Juste Inscrit !
- Date d'inscription: 17 Mar 2011
- Messages: 1
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
Bonjour,
voila j'ai suivi ce que dit Smile mais j’obtiens toujours un message d'erreur.
J'ai un plan de masse avec plusieurs bâtiment et j'aimerais pouvoir faire une recherche sur leur nom. Le client rentre par exemple "Batiment 1" et cela me le trouve. Hors si je rentre :
NOM(C'est le nom du champs) = $USER_VARIABLE% -> il me An exception occurred in FDO component. The identifier 'Batiment' was not recognized.
NOM = '$USER_VARIABLE%' -> il me fait No matches.
si je met NOM = 'Batiment 1' dans le filtre, il me sélectionne bien a chaque fois ce bâtiment malgré ce que je peux mettre.
Pour info, l'attribut Batiment 1 est un string,
je met la bonne couche qui possède cette attribut. En cible je met Taskpane (rien a voir car il s'agit juste d'une présentation sur l'onglet de fenêtre qui s'ouvre)
Problème Résolu, il suffit de mettre NOM LIKE '$USER_VARIABLE%'
pourquoi avec =, cela ne marche pas, je ne sais pas
Dernière modification par Tonioo (Mon 28 March 2011 18:05)
Hors ligne
#7 Mon 28 March 2011 21:17
- Gwenael Bachelot
- Participant assidu
- Lieu: Bureau Autodesk : Paris 12ème
- Date d'inscription: 5 Sep 2005
- Messages: 608
- Site web
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
Bonjour,
Tout d'abord, merci pour le suivi !
pourquoi avec =, cela ne marche pas, je ne sais pas
Ca me marche pas parce que les jokers (comme '%') ne fonctionnent qu'avec LIKE.
Cordialement,
Gwenael Bachelot
Autodesk
Hors ligne
#8 Tue 29 March 2011 03:08
- farouk_SIG
- Participant occasionnel
- Date d'inscription: 7 Mar 2011
- Messages: 17
Re: [ MapGuide OS ] Créer une requête spatiale avec Maestro
Bonjour ,
Effectivement Monsieur Gwenael Bachelot ,les jokers (comme '%') ne fonctionnent qu'avec LIKE.
Pour vous Tonioo si vous avez un champ (surface) dans la couche des batiments , ou un autre champ du type 'integer' ça doit marcher !!
exp :
surface = $USER_VARIABLE ou surface < $USER_VARIABLE , mais lorsque il s'agit d'une chaine de caractère (type: string) il faut absolument utilisé LIKE
j'espère que j'ai bien expliqué
Excellent journée à vous
Hors ligne