#31 Tue 11 June 2019 16:28
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: A propos de NodeNetwork
Je pense que vous ne pourrez pas y couper,
puisqu'il s'agit d'un bug.
C'est plutot simple à faire :
il suffit de copier le code de la fonction dans votre éditeur de requête et de l'executer.
C'est le bloc de code apres la phrase :
Note: since I don't really understand what's the purpose of outall I dropped this parameter entirely.
A noter que vous ne modifierez pas la fonction déja existante,
mais vous en créerez une autre qui s'appellera pgr_nodenetwork_custom.
Vous pouvez aussi spécifier le schema dans lequel vous voulez créer la fonction
(dans le code proposé c'est le schema geo)
Hors ligne
#32 Tue 11 June 2019 16:45
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
Très bien je vais essayer :s
Hors ligne
#33 Tue 11 June 2019 16:49
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
ça fonctionne apparemment, whoa j'avais peur de lancer cette requête qui modifie pgr_nodeNetwork mais au final ça passe tout seul
Hors ligne
#34 Thu 13 June 2019 09:40
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
Bonjour à tous, je pose ma question ici pour être en accord avec le titre, pgr_nodeNetwork fonctionne, mais désormais que je mette true ou false en argument pour outall cela me donne le même nombre de lignes quand je fais des essais. Comment faire pour que la table "noded" ne soit pas vidée et reremplie mais que tout soit ajouter à la suite dedans ? Car pour l'instant que je mette l'un ou l'autre je perd des segments.
Hors ligne
#35 Thu 13 June 2019 10:27
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: A propos de NodeNetwork
C'est ce que la personne qui a modifié la fonction explique :
il ne savait pas ce que représentait le paramètre outall,
donc il ne l'utilise pas.
Il faudrait lire le code de la fonction et la modifier
pour pouvoir l'utiliser.
Hors ligne
#36 Thu 13 June 2019 10:43
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
Oui j'avais vu qu'il avait mis ça mais je me suis dit qu'il n'y avait pas touché du coup. Bon bah je vais regarder mais c'est pas gagné.
Hors ligne
#37 Thu 13 June 2019 11:35
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: A propos de NodeNetwork
J'ai essayé de voir ce que je pouvais faire,
en fait outall n'était pas utilisé et la fonction
supprimait la table à chaque appel.
Ici une version corrigée, non testée,
du code source de la branche master.
https://gitlab.com/snippets/1866132
Hors ligne
#38 Thu 13 June 2019 11:35
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
Bon j'ai truandé encore un peu plus mdr.
Voilà mon nouveau code :
Code:
DO $PROC$ DECLARE nb integer:= 50; --TODO: choisir la valeur adaptée max integer:= 0; actu integer:= 1; BEGIN SELECT max(id) FROM planet_osm_line INTO max; WHILE actu + nb < max LOOP EXECUTE $$ SELECT pgr_nodeNetwork_custom('planet_osm_line', 0.1, 'osm_id', 'way', 'noded', rows_where:=$1, outall:= false); INSERT INTO noded (SELECT * FROM planet_osm_line_noded WHERE id NOT IN (SELECT id FROM noded)); $$ USING format('id BETWEEN %s AND %s', actu, actu + nb); actu:=actu+nb; END LOOP; END; $PROC$ LANGUAGE plpgsql;
C'est pas encore au point car si je le lance seul, le bloc :
Code:
INSERT INTO noded (SELECT * FROM planet_osm_line_noded WHERE id NOT IN (SELECT id FROM noded));
Fonctionne, mais ajouté à la fonction comme en haut ça ne semble pas fonctionner je continue de chercher.
Hors ligne
#39 Thu 13 June 2019 11:38
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
J'ai essayé de voir ce que je pouvais faire,
en fait outall n'était pas utilisé et la fonction
supprimait la table à chaque appel.
Ici une version corrigée, non testée,
du code source de la branche master.
https://gitlab.com/snippets/1866132
Oui j'avais vu ça aussi mais je préfère ajouter "manuellement" avec la boucle, enfin sauf si tu me dis que cette solution est meilleure dans ce cas je ferais ça . Qu'en penses tu ?
Hors ligne
#40 Thu 13 June 2019 12:52
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
Bon pour info la fonction pgr_nodeNetwork modifiée ne semble toutjours pas prendre en compte le outall.
Hors ligne
#41 Thu 13 June 2019 13:54
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: A propos de NodeNetwork
Est ce que vous etes sûr que vous utilisez bien la bonne version ?
La commande SQL que j'ai posté crée la fonction dans le schema public.
Dernière modification par tumasgiu (Thu 13 June 2019 13:56)
Hors ligne
#42 Thu 13 June 2019 14:00
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1160
Re: A propos de NodeNetwork
Sinon Votre version devrait fonctionner,
il faut juste déplacer votre commande INSERT
Code:
DO $PROC$ DECLARE nb integer:= 50; --TODO: choisir la valeur adaptée max integer:= 0; actu integer:= 1; BEGIN SELECT max(id) FROM planet_osm_line INTO max; WHILE actu + nb < max LOOP EXECUTE $$ SELECT pgr_nodeNetwork_custom('planet_osm_line', 0.1, 'osm_id', 'way', 'noded', rows_where:=$1, outall:= false); $$ USING format('id BETWEEN %s AND %s', actu, actu + nb); INSERT INTO noded (SELECT * FROM planet_osm_line_noded WHERE id NOT IN (SELECT id FROM noded)); actu:=actu+nb; END LOOP; END; $PROC$ LANGUAGE plpgsql;
Hors ligne
#43 Thu 13 June 2019 14:29
- D3us
- Participant actif
- Date d'inscription: 6 Mar 2019
- Messages: 57
Re: A propos de NodeNetwork
Oui j'ai modifié comme cela mais cela pose problème avec les id vu que pgr_nodeNetwork en générait entre chaque loop ils étaient pris pour des doublons. Du coup j'ai utilisé la nouvelle version du pgr_nodeNetwork et je vais voir.
Hors ligne