#1 Wed 22 August 2012 16:30
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
mise à jour automatique d'un champ par requetes
Bonjour,
dans le cadre d'un stage, je travail sur l'éclairage public. mon réseau est composé d'armoires de commande (ponctuel), de points lumineux (ponctuel), et de mon cable (linéaire).
je rentre manuellement un numéro d'identifiant à mes armoires de commande. j'ai un champ où j'ai la même information dans mes points lumineux. j'ai réussi à remplir ces info sur une commune mais je cherche à automatiser la fonction (en gros faire une requète pour plusieurs communes).
En gros, je faisait une sélection des tronçons, j'appliquais une requète spaciale pour sélectionner mes points lumineux et dans les attribus, je rentrais mon numéro d'armoire de commande.
A l'échelle d'une commune ça va, mais si je souhaite étendre la procédure à d'autres communes je voudrais savoir si il est possible de créer une formule me permettant d'indiquer sur chaque point lumineux le numéro de l'armoire sachant qu'ils sont relié par le réseau?
voilà, je sais pas si j'ai été clair^^
si vous avez des idées, je suis preneur!
en vous remerciant,
Alex
Hors ligne
#2 Wed 22 August 2012 16:40
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: mise à jour automatique d'un champ par requetes
Bonjour.
Si j'ai bien saisi, tu fais :
- Pour chaque armoire
- sélectionner l'armoire
- sélectionner les câbles intersectant l’armoire sélectionnée
- sélectionner les points lumineux intersectant les câbles sélectionnés
- renseigner le champ 'id armoire' avec l'id de l'armoire sélectionnée
Essaye :
- jointure spatiale des câbles avec les armoires
- jointure spatiale des points lumineux avec les câbles
Renaud Mouche
Hors ligne
#3 Thu 23 August 2012 08:41
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
Re: mise à jour automatique d'un champ par requetes
Bonjour Renaud,
en fait je sélectionne manuellement tous les tronçons qui sont reliés à mon armoire.
j'ai testé ta méthode, mais j'ai sectionné mes tronçons (pour ajouté une qualification aérienne ou souterraine de mes cables).
et du coup, il ne sélectionne pas le cable entier mais seulement le tronçon qui est directement relié.
bon je vais creuser un peu (ajouter une jointure cable sur les cables reliés aux armoires)
Hors ligne
#4 Thu 23 August 2012 09:25
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
Re: mise à jour automatique d'un champ par requetes
bon en utilisant une double jointure comme vous m'avez indiqué, ça fonctionne.
seulement je bloque après. comment je met à jour dans ma couche point lumineux?
j'ai refait une jointure entre mes point lumineux et le résultat de la jointure obtenue précédemment. je n'arrive pas à copier les valeur d'un champs dans un autre.
Hors ligne
#5 Thu 23 August 2012 11:02
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: mise à jour automatique d'un champ par requetes
Bonjour,
La fonction 'Calculer un champ' dans la table attributaire de la dernière couche obtenue devrait convenir
Renaud Mouche
Hors ligne
#6 Thu 23 August 2012 11:26
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
Re: mise à jour automatique d'un champ par requetes
oui j'avais zappé^^
merci, problème résolu!
Hors ligne
#7 Fri 24 August 2012 10:11
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
Re: mise à jour automatique d'un champ par requetes
Bonjour,
en fait la jointure ne fonctionne pas correctement.
si je fais une jointure de mon réseau et de mes armoires de commandes, il intègre également les réseaux qui ne sont pas rataché à une armoire ! en plus il me met un fid d'armoire qui ne correspond à rien. pourtant, je n'ais pas beaucoup de possibilité pour effectuer ma jointure.
là j'avoue je pige pas. dans l'idée c'est pourtant assez simple.
Hors ligne
#8 Fri 24 August 2012 11:14
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: mise à jour automatique d'un champ par requetes
Bonjour,
Lorsque tu effectues une jointure, il renvoie effectivement tout les objets, y compris ceux non-joints. Mais il ajoute un champ "join_count" en début de table, qui permet de vérifier les résultats.
il me met un fid d'armoire qui ne correspond à rien
Peux tu préciser ? Sur tout les objets y compris ceux joints à une armoire ?
Normalement les champs ajoutés doivent rester vide si join_count=0
Dans le cas où join_count>1, il prend un objet aléatoire parmi ceux joints. Peut-être la cause du soucis ?
Renaud Mouche
Hors ligne
#9 Fri 24 August 2012 13:58
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
Re: mise à jour automatique d'un champ par requetes
Bonjour Renaud,
merci de me répondre. Je viens de comprendre le champs joint_count. Je fais une selection sur celui ci quand il est égal à 1 et c'est bon.
par contre je ne parviens pas à récupérer mon numéro d'armoire.
mais bon c'est pas grave, je voulais essayer de trouver une manière pour réaliser les opérations sur un ensemble mais ça semble compliqué. (j'ai peut être pas conçu ma base de la meilleur façon).
En faisant une jointure comme ça, je ne récupère du coup que le réseau directement relié à mon armoire. Comme je l'ai parfois divisé en tronçons, ça ne fonctionne pas.
Le plus simple est de faire une succession de sélection (ça permet en plus de vérifier) et de remplir les infos par la fiche attributaire. Il suffit de le faire pour chaque armoire. C'est peut-être un peu plus long, mais pour le moment, ça reste le plus simple.
Peut-être qu'avec des outils de gestion de réseau, ça serait plus simple (net work analyst mais je suis pas sur ou autre outils)
En tout cas, merci des infos
Alex
Hors ligne
#10 Fri 24 August 2012 14:25
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: mise à jour automatique d'un champ par requetes
Bonjour,
je ne parviens pas à récupérer mon numéro d'armoire
Tant que chaque câble n'aura pas son identifiant d'armoire, ta base sera délicate à manipuler.
Occupe toi d'eux plutôt que des points lumineux, qui seront faits en 1min une fois la première étape réalisée.
As tu essayé d'enchainer des jointures spatiales des câbles vers eux même ?
L'idée serai de construire une couche des câbles ayant un id d'armoire, initialisée par une jointure câble-armoire.
Ensuite tu enchaines des jointures câble sur câble_avec_id.
La procédure complète prend un peu plus de deux lignes à détailler, mais elle n'a rien de très compliquée.
Renaud Mouche
Hors ligne
#11 Fri 24 August 2012 14:54
- AlexB61
- Participant occasionnel
- Date d'inscription: 27 Feb 2012
- Messages: 14
Re: mise à jour automatique d'un champ par requetes
Bon, je suis un peu "bête"
je cherche compliqué...
dans ma table reseau (cables), j'avais crée un champ pour récupéré le num de l'armoir auquel il est relié (directement ou indirectement).
mais j'avais pas forcément rempli, car je trouvais que ça faisait une redondance de l'information. (et surtout je pensais pouvoir faire autrement comme tout est lié physiquement)
c'est là que je me rend compte que je connais pas suffisamment le logiciel et ses possibilités quand j'ai crée mes couches.
si chaque tronçon possède l'identifiant de l'armoire, je n'aurais qu'une jointure spatiale à faire.
du coup, je me retrouve avec la même information sur mes 3 couches...
Hors ligne
#12 Fri 24 August 2012 15:09
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: mise à jour automatique d'un champ par requetes
A tester :
Fait une zone tampon de quelques mètres autour de tes câbles, en soudant les tampons qui se chevauchent.
Si tes différents réseaux sont suffisamment disjoints, tu devrais obtenir une surface par armoire.
1 requête spatiale tampon/armoire => id armoire par tampon
1 requête spatiale point lumineux/tampon => id armoire par point lumineux
CQFD
Et tant que tu y es :
1 requête spatiale câble/tampon => id armoire par câble
Renaud Mouche
Hors ligne