#1 Mon 27 April 2009 16:07
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Formulaire access dans un SIG libre
Bonjour,
Je voulais savoir s'il était possible de lier un formulaire access à un objet ponctuel d'un SIG...
En fait, je voudrais faire en sorte que si l'on clique sur un objet, un formulaire s'affiche. A noter que j'aimerais travailler avec un SIG libre (de préférence Gvsig mais si çà marche uniquement sur un autre, je suis tout ouïe...)
Deuxième solution, est-ce qu'il serait facile de lier le formulaire à Gvsig. Je m'explique. J'ai créé un formulaire, et je voudrais créer un bouton qui lance Gvsig depuis le formulaire. Donc Gvsig s'ouvre sur un projet existant.
L'intérêt est de représenter le résultat d'une requête effectuée dans Access dans Gvsig.
Merci beaucoup. Bonne journée à tous
Hors ligne
#2 Mon 27 April 2009 17:05
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Formulaire access dans un SIG libre
Bonjour,
Je voulais savoir s'il était possible de lier un formulaire access à un objet ponctuel d'un SIG...
En fait, je voudrais faire en sorte que si l'on clique sur un objet, un formulaire s'affiche. A noter que j'aimerais travailler avec un SIG libre (de préférence Gvsig mais si çà marche uniquement sur un autre, je suis tout ouïe...)
Deuxième solution, est-ce qu'il serait facile de lier le formulaire à Gvsig. Je m'explique. J'ai créé un formulaire, et je voudrais créer un bouton qui lance Gvsig depuis le formulaire. Donc Gvsig s'ouvre sur un projet existant.
L'intérêt est de représenter le résultat d'une requête effectuée dans Access dans Gvsig.
Merci beaucoup. Bonne journée à tous
Bonjour,
Hmm, ne voulez-vous pas plutot vous brancher sur une source de données plutot qu'un SIG ?
S'il s'agit de lancer des requetes ou de visualiser un objet geo, il faut alors faire un lien entre Access et le format de données (shape, BD, etc).
Ensuite, lancer un programme a travers une interface access, je pense que c'est possible et plutot facile (au pire, un appel a une ligne de commande qui lance gvSig).
Ou comptez-vous stocker vos objets geographiques ? Access, fichier, base spatiale ?
Nicolas
Hors ligne
#3 Mon 27 April 2009 17:33
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: Formulaire access dans un SIG libre
Bonjour Nicolas,
Je vais expliciter un peu mon problème car je comprends pas trop...qu'est-ce que vous entendez par lien entre Access et le format de données ??
Alors je bosse actuellement sur une base de données (une table unique d'environ 2500 lignes) correspondant à des accidents de la route. Je travaille donc sur Access. J'ai créé un formulaire de consultation et d'interrogation de la base, permettant à l'utilisateur de sélectionner certains accidents en fonction de multiples critères. Une fois les critères sélectionnés, l'utilisateur clique sur un bouton et tombe sur le résultat de sa requête.
A côté de çà, je dispose sur Gvsig de tout le réseau routier de ma zone d'étude, ainsi qu'un référentiel Adresse, avec les coordonnées géographiques. Après quelques manipulations, j'ai donc réussi à géocoder et à localiser tous mes accidents listés dans ma base access.
L'objectif est donc, après que l'utilisateur ait fait sa requête, que seuls les accidents qu'il a sélectionné dans Access n'apparaissent dans le SIG.
Je suis bien conscient que le plus simple serait de faire les requetes directement dans Gvsig mais il fallait que j'aide le plus possible le futur utilisateur et ne pas l'encombrer avec des requêtes SQL ou avec un langage particulier dans le SIG...
J'espère que vous y verrez plus clair. En tout cas, merci de votre aide. Bonne soirée
Hors ligne
#4 Mon 27 April 2009 18:02
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Formulaire access dans un SIG libre
Bonjour Nicolas,
Je vais expliciter un peu mon problème car je comprends pas trop...qu'est-ce que vous entendez par lien entre Access et le format de données ??
Alors je bosse actuellement sur une base de données (une table unique d'environ 2500 lignes) correspondant à des accidents de la route. Je travaille donc sur Access. J'ai créé un formulaire de consultation et d'interrogation de la base, permettant à l'utilisateur de sélectionner certains accidents en fonction de multiples critères. Une fois les critères sélectionnés, l'utilisateur clique sur un bouton et tombe sur le résultat de sa requête.
A côté de çà, je dispose sur Gvsig de tout le réseau routier de ma zone d'étude, ainsi qu'un référentiel Adresse, avec les coordonnées géographiques. Après quelques manipulations, j'ai donc réussi à géocoder et à localiser tous mes accidents listés dans ma base access.
L'objectif est donc, après que l'utilisateur ait fait sa requête, que seuls les accidents qu'il a sélectionné dans Access n'apparaissent dans le SIG.
Je suis bien conscient que le plus simple serait de faire les requetes directement dans Gvsig mais il fallait que j'aide le plus possible le futur utilisateur et ne pas l'encombrer avec des requêtes SQL ou avec un langage particulier dans le SIG...
J'espère que vous y verrez plus clair. En tout cas, merci de votre aide. Bonne soirée
Merci pour ces precisions, moi non plus je n'ai pas ete tres clair.
Si vous disposez du réseau routier dans gvSig, dans quel format est-ce ? fichier shapefile, lien ODBC sur votre base access, autre ?
Ce que je vois, c'est que vous avez des données distribuées a deux endroits: Access pour les valeurs attributaires, gvSig (quel format ?) pour les données geographiques: c'est MAL.
les bases de données spatiales permettent desormais d'unifier tout ceci, et de faire apparaitre attributs et objets spatiaux dans la meme structure, ce qui est bcp plus pratique, convenons-en
Si vous devez passer un peu de temps a organiser tout ceci, je ne saurais trop vous conseiller de migrer votre modele des accidents de la route dans une base spatiale (oracle, mysql, postgis) et d'y integrer votre reseau routier: requetes et affichages seront alors grandement facilités.
Tout ca est un peu theorique. Si le modele Access ne peut etre changé et si vous ne voulez pas ajouter du spatial dans Access (WKT, objet binaire), alors il faut faire un lien entre Access et le SIG, en lui envoyant la liste des identifiants des accidents a afficher.
Perso, juste pour produire une carte, je trouve cela tres lourd d'appeler et d'ouvrir gvSig. Un MapServer en local saurait générer une carte facilement a partir de vos données, me semble-t-il.
(A moins que vous ne vouliez egalement permettre a l'utilisateur d'utiliser le SIG et sa puissance (affichage, requetes, manipulation).
HTH
Nicolas
Hors ligne
#5 Mon 27 April 2009 19:28
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Formulaire access dans un SIG libre
Bonjour,
Sans remettre en cause ce que dit Nicolas Ribot (je suis globalement d'accord), une solution access est l'utilisation d'Arcview comme SIG.
Ceci dit comme l'a précisé Nicolas, il y a dans votre raisonnement un mélange de genres un peu bizarre. Déjà l'utilisation d'access en mode "formulaire" est pour moi une hérésie (rien ne vaut un bon programme maison utilisant access mais l'ihm access bhou!) à ceci mélanger un SIG pour n'en utiliser (a priori) que les fonctions "d'affichage" ... mauvaise solution.
A+
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#6 Tue 28 April 2009 09:51
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: Formulaire access dans un SIG libre
Bonjour,
Et merci pour ces réponses. Je sens que je vais devoir me justifier...
Si vous disposez du réseau routier dans gvSig, dans quel format est-ce ? fichier shapefile, lien ODBC sur votre base access, autre ?
Toutes ces couches sont au format shp. Je dispose donc d'entités linéaires (routes) et ponctuelles (adresses, accidents localisés au numéro et accidents localisés aux intersections).
Ce que je vois, c'est que vous avez des données distribuées a deux endroits: Access pour les valeurs attributaires, gvSig (quel format ?) pour les données geographiques: c'est MAL.
Alors, c'est pas exactement çà. Car les données géographiques possèdent les mêmes données attributaires. J'ai fait une jointure pour que justement chaque objet géographique soit relié à ses attributs. Autrement dit, chaque accident localisé dans Gvsig a ses propres attributs, existants dans Access.
En fait, je me sert d'Access uniquement pour que l'utilisateur interroge facilement toute la base. En effet, ce futur utilisateur veut pouvoir croiser tous les critères et la façon la plus simple que j'ai trouvé était de faire un formulaire (également en fonction de mes connaissances et également en fonction du logiciel dont il disposait...peut-être existe-t-il une autre solution mais il fallait que je réponde dans les délais...après, pour la suite, pourquoi pas tenter une autre solution si vous avez des idées...je suis à l'écoute).
Si le modele Access ne peut etre changé et si vous ne voulez pas ajouter du spatial dans Access (WKT, objet binaire), alors il faut faire un lien entre Access et le SIG, en lui envoyant la liste des identifiants des accidents a afficher.
Comment établir un tel lien entre les 2 applications ?
Un MapServer en local saurait générer une carte facilement a partir de vos données, me semble-t-il.
Je connais mal cette technologie mais comme je vous l'ai dit, pour plus tard, j'aurais sans doute plus de temps à consacrer à cette application, donc plus de temps pour étudier les différentes possibilités...Mais juste pour m'éclaircir les idées, à quoi pourrait correspondre ce genre de solution ?
A moins que vous ne vouliez egalement permettre a l'utilisateur d'utiliser le SIG et sa puissance (affichage, requetes, manipulation).
Ah, c'est là que çà devient intéressant. En effet, si je trouve un moyen qui permette à l'utilisateur d'effectuer les mêmes requêtes que dans Access et aussi facilement (listes déroulantes,...), çà m'intéresserait énormément. Ce serait donc juste du requêtage et de l'affichage.
Christophe V. a dit :
Déjà l'utilisation d'access en mode "formulaire" est pour moi une hérésie (rien ne vaut un bon programme maison utilisant access mais l'ihm access bhou!)
Oui je suis d'accord que ce n'est pas la meilleure interface du point de vue convivialité et esthétisme mais comme je l'ai dit plus haut, j'ai fait en fonction de mes connaissances, du temps imparti et des logiciels dont dispose le client. Après, toute autre idée est la bienvenue donc si vous avez des pistes ou des exemples à me montrer, je suis preneur (du moment où le même genre de requêtes est possible).
Merci pour vos réactions en tout cas. A bientôt
Hors ligne
#7 Tue 28 April 2009 10:50
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Formulaire access dans un SIG libre
Bonjour,
Et merci pour ces réponses. Je sens que je vais devoir me justifier...
Si vous disposez du réseau routier dans gvSig, dans quel format est-ce ? fichier shapefile, lien ODBC sur votre base access, autre ?
Toutes ces couches sont au format shp. Je dispose donc d'entités linéaires (routes) et ponctuelles (adresses, accidents localisés au numéro et accidents localisés aux intersections).
Ce que je vois, c'est que vous avez des données distribuées a deux endroits: Access pour les valeurs attributaires, gvSig (quel format ?) pour les données geographiques: c'est MAL.
Alors, c'est pas exactement çà. Car les données géographiques possèdent les mêmes données attributaires. J'ai fait une jointure pour que justement chaque objet géographique soit relié à ses attributs. Autrement dit, chaque accident localisé dans Gvsig a ses propres attributs, existants dans Access.
Si, c'est un peu ca qd meme: il y a certes une jointure entre les deux systemes, sur la base d'un attribut commun. L'unité dont je parlais consisterait a n'avoir qu'un système:
- Access avec attributs ET geographie, dans une personnal database, nouveau format qu'offre ESRI ArcGIS
- uniquement gvSIG (mon conseil) avec shapefile et eventuellement des tables attributaires annexes si votre modele de données le necessite.
En fait, je me sert d'Access uniquement pour que l'utilisateur interroge facilement toute la base. En effet, ce futur utilisateur veut pouvoir croiser tous les critères et la façon la plus simple que j'ai trouvé était de faire un formulaire (également en fonction de mes connaissances et également en fonction du logiciel dont il disposait...peut-être existe-t-il une autre solution mais il fallait que je réponde dans les délais...après, pour la suite, pourquoi pas tenter une autre solution si vous avez des idées...je suis à l'écoute).
Oui, il est possible d'ajouter a gvSig des composants d'interface graphique, un peu comme vous faites avec Access, pour realiser des taches particulieres. ca demande de savoir programmer avec un des langages que supporte gvSig: java; Jython ou autre.
L'interet ici serait de n'ouvrir qu'un soft: gvSig, avec une notion de projet qui contient deja les donnees geographiques et les eventuelles autres tables, avec une mise en page carto correspondant a vos gouts. les elements de l'interface permettraient de filtrer les données sur certains criteres.
Si ces filtres sont basés sur des attributs du shapefile, alors gvSIG sait deja faire ca: faire une recherche sur un ou plusieurs attributs, puis afficher la carte qui correspond a ces criteres.
Vous aurez peut etre aussi vite fait de regarder de ce cote, eventuellement en preparant un petit doc a destination de vos clients pour leur indiquer la procedure.
Si le modele Access ne peut etre changé et si vous ne voulez pas ajouter du spatial dans Access (WKT, objet binaire), alors il faut faire un lien entre Access et le SIG, en lui envoyant la liste des identifiants des accidents a afficher.
Comment établir un tel lien entre les 2 applications ?
Je ne sais pas trop, connaissant tres mal Access. Il y a possibilité de dumper les tables attributaires dans un format txt et de charger ces txt dans gvSig.
gvSig possede egalement un lien ODBC. Il faudrait alors enregistrer les criteres de choix de l'utilisateur dans une table Access, puis ouvrir gvSig, se brancher par ODBC sur cette table, puis s'en servir pour faire la jointure avec le shapefile et afficher (ouf...)
Un MapServer en local saurait générer une carte facilement a partir de vos données, me semble-t-il.
Je connais mal cette technologie mais comme je vous l'ai dit, pour plus tard, j'aurais sans doute plus de temps à consacrer à cette application, donc plus de temps pour étudier les différentes possibilités...Mais juste pour m'éclaircir les idées, à quoi pourrait correspondre ce genre de solution ?
Une simple page HTML dans laquelle apparaissent les criteres de choix, sous forme de Select ou autre. au click sur le bouton, un appel MapServer est fait pour filtrer les données du shapefile en se basant sur les valeurs du formulaire. MapServer renvoie alors une image de la carte. C'est une solution de webmapping, tres facile a mettre en place, avec enormement d'aide dispo sur le net, et tout plein d'outils gratuits pour faire ca.
A moins que vous ne vouliez egalement permettre a l'utilisateur d'utiliser le SIG et sa puissance (affichage, requetes, manipulation).
Ah, c'est là que çà devient intéressant. En effet, si je trouve un moyen qui permette à l'utilisateur d'effectuer les mêmes requêtes que dans Access et aussi facilement (listes déroulantes,...), çà m'intéresserait énormément. Ce serait donc juste du requêtage et de l'affichage.
Essayez de regarder les outils de recherche attributaire de gvSig: il propose un petit composant permettant de generer sa requete: vous choisissez l'attribut, les valeurs dispo s'affichent, vous choisissez ensuite les operateurs, et hop, la recherche s'effectue (selection, creation d'une nouvelle couche ou autre)
Christophe V. a dit :
Déjà l'utilisation d'access en mode "formulaire" est pour moi une hérésie (rien ne vaut un bon programme maison utilisant access mais l'ihm access bhou!)
Oui je suis d'accord que ce n'est pas la meilleure interface du point de vue convivialité et esthétisme mais comme je l'ai dit plus haut, j'ai fait en fonction de mes connaissances, du temps imparti et des logiciels dont dispose le client. Après, toute autre idée est la bienvenue donc si vous avez des pistes ou des exemples à me montrer, je suis preneur (du moment où le même genre de requêtes est possible).
On est bien d'accord qu'utiliser Access juste pour faires des boites de filtres sur des attributs, c'est tres lourd. D'autant qu'Access et gvSig ne sont pas vraiment faits pour travailler ensembles.
Nicolas
Merci pour vos réactions en tout cas. A bientôt
Dernière modification par Nicolas Ribot (Tue 28 April 2009 11:10)
Hors ligne
#8 Tue 28 April 2009 11:18
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: Formulaire access dans un SIG libre
Re,
Bon en gros, je peux n'avoir qu'un seul système : sur Gvsig.
Le seul hic, c'est qu'il faut donc que je développe un petit module permettant à l'utilisateur de faire ses requêtes. Mais, à l'heure actuelle, je ne connais pas trop ces langages de programmation et je n'aurais pas trop le temps de m'y mettre ces jours-ci, sans doute plus tard. Pour ces possibilités d'interface, vous connaissez des exemples ? Car je pense que la recherche sur un ou plusieurs attributs ne nécessite trop de connaissances en requête pour le futur utilisateur. Je veux dire par là que ce ne sera sans doute pas assez intuitif pour lui.
Là, à l'heure actuelle, le premier rendu concerne seulement une sorte de formulaire Access permettant l'interrogation. L'aspect carto interviendra ensuite seulement.
La solution que vous évoquez concernant Mapserver m'intéresse assez, et je pense m'y pencher dans les jours à venir. Car apparemment une interface d'interrogation d'une base a l'air assez facile aux premiers abords.
Je vous remercie. A+
Hors ligne
#9 Tue 28 April 2009 14:36
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Formulaire access dans un SIG libre
Re,
Bon en gros, je peux n'avoir qu'un seul système : sur Gvsig.
Le seul hic, c'est qu'il faut donc que je développe un petit module permettant à l'utilisateur de faire ses requêtes. Mais, à l'heure actuelle, je ne connais pas trop ces langages de programmation et je n'aurais pas trop le temps de m'y mettre ces jours-ci, sans doute plus tard. Pour ces possibilités d'interface, vous connaissez des exemples ? Car je pense que la recherche sur un ou plusieurs attributs ne nécessite trop de connaissances en requête pour le futur utilisateur. Je veux dire par là que ce ne sera sans doute pas assez intuitif pour lui.
Le module de reaquete de gvSig est deja "assez simple": je choisis un attribut dans une liste, je choisis un operateur (=, !=, <, >, etc), une fenetre m'affiche la liste des valeurs existantes pour cet attribut.
En cliquant sur chaque partie, la requete se fabrique.
Là, à l'heure actuelle, le premier rendu concerne seulement une sorte de formulaire Access permettant l'interrogation. L'aspect carto interviendra ensuite seulement.
La solution que vous évoquez concernant Mapserver m'intéresse assez, et je pense m'y pencher dans les jours à venir. Car apparemment une interface d'interrogation d'une base a l'air assez facile aux premiers abords.
Je vous remercie. A+
Hors ligne
#10 Tue 28 April 2009 14:45
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: Formulaire access dans un SIG libre
Re,
Nicolas Ribot a écrit :
je choisis un attribut dans une liste
Et est-il possible de croiser différents critères sans aller chercher trop loin entre les AND, les OR, les INTERSECT... ? ou faut-il faire absolument créer une interface ?
Merci
Hors ligne
#11 Tue 28 April 2009 16:22
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Formulaire access dans un SIG libre
Re,
Nicolas Ribot a écrit :je choisis un attribut dans une liste
Et est-il possible de croiser différents critères sans aller chercher trop loin entre les AND, les OR, les INTERSECT... ? ou faut-il faire absolument créer une interface ?
Merci
Je viens de jouer un peu avec (sous mac, c'est une pitié ce gvSig: les intitulés des boutons ne s'affichent pas, les fenetres ne sont pas redimensionnables, etc: vive OpenJump !).
Les requetes se construisent en enchainant les operateurs logiques:
NOM_REGION = 'MIDI_PYRENEES' and (CODE_DEP <> 81 or CODE_DEP <> 82) ... etc.
Pas super convivial non plus, mais comprehensible il me semble.
Hors ligne
#12 Tue 28 April 2009 17:31
- Razorbak
- Participant assidu
- Lieu: Clermont Ferrand
- Date d'inscription: 7 Oct 2007
- Messages: 505
Re: Formulaire access dans un SIG libre
Je connais pas Openjump mais si les requêtes se font plus facilement, pourquoi pas...Il faut programmer également ou ce qui existe suffit ?
Les requetes se construisent en enchainant les operateurs logiques:
NOM_REGION = 'MIDI_PYRENEES' and (CODE_DEP <> 81 or CODE_DEP <> 82) ... etc.
Pas super convivial non plus, mais comprehensible il me semble.
Malheureusement, il faut vraiment que je fournisse quelque chose de plus compréhensible...Les menus et les volet de windows ont du leur donner des idées...
Merci. A+.
Hors ligne