import Fichiers MapInfo

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

import Fichiers MapInfo

Nicolas F.
Administrator
Bonjour

Je dois importer un fichier mapinfo au format .tab,.dat,.id, .map,.mif .mid :
http://en.wikipedia.org/wiki/MapInfo_TAB_format
http://en.wikipedia.org/wiki/MapInfo_Interchange_Format

Est-ce qu'il est préférable d'implémenter l'import d'une couche au format .tab dans orbisGis ou plutôt de demander à l'utilisateur de le convertir lui même au format .shp ?

Si vous préférez ajouter le support des formats mapinfo à orbisGis, auriez-vous des conseils pour que je puisse m'y atteler ?
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

ebocher
Administrator
Bonjour Nicolas,

Il existe du code en java développé par Michael Michaud, un contributeur très actif d'OrbisGIS et surtout d'OpenJUmp qui a développé pour cette même plateforme un plugin pour lire le mif-mid.
Il suffirait donc de le transposer dans gdms pour en faire un driver.

Nous pouvons d'accompagner pour le faire

Erwan.



--
École Centrale de Nantes
Institut de recherche en sciences et techniques de la ville
BP 92101
1 rue de la Noë, 44321 NANTES Cedex 3
France
Tél : 02 40 37 68 67
http://www.irstv.cnrs.fr/
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Alexis.G
Bonjour,

Les sources sont disponibles ici :
http://geo.michaelm.free.fr/OpenJUMP/resources/drivers/
il faut a priori prendre l'archive nommée
mifmid-driver-src-0.4.5.zip

Elle contient les sources pour le pilote OpenJump. Une partie des
sources devrait pouvoir servir de base à un pilote GDMS.

++

Alexis.
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Nicolas F.
Administrator
In reply to this post by ebocher
En fait je suis surtout concerné pour le format .tab qui n'est pas pris en charge par le plugin d'OpenJump.

C'est quoi un driver ?
Est-il possible d'intégrer cette prise en charge de format en tant que plugin ?
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Alexis.G
Un driver, c'est un peu comme un plug-in...
En fait, la gestion des données est faite par GDMS, dans OrbisGIS.
GDMS a recours à des "drivers" (pilotes, pour les informaticiens
français un peu chauvins ;-) ) pour accéder aux données : les drivers
sont des petits bouts de logiciels qui vont chercher les données dans
les fichiers pour les donner à GDMS. J'imagine que ça ressemble à ce
que OpenJump appelle plugin (à ceci près qu'un plug-in, a priori, peut
se rajouter post-installation, alors qu'un pilote pour GDMS, je ne
sais pas).

(pour la petite histoire, encore, on peut faire une analogie très
proches entre les pilotes de périphériques, qui permettent à ton
système d'exploitation de faire marcher ton matériel. C'est le même
concept de fonctionnement. Ça permet de séparer la maintenance des
pilotes et du coeur du système. Le coeur du système étant pour nous
GDMS)

La première chose à faire, c'est de trouver le maximum d'infos sur le
format lui-même, en espérant qu'il soit bien documenté. Savoir comment
les fichiers sont structurés, ça doit être la base de travail.
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Nicolas F.
Administrator
D'accord, merci

J'ai trouvé le driver pour le shapefile à cette adresse :

/gdms/src/main/java/org/gdms/driver/shapefile/ShapefileDriver.java

Je dois donc ajouter mon propre driver dans le dossier "/gdms/src/main/java/org/gdms/driver/" genre "/gdms/src/main/java/org/gdms/driver/tab" ?
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Alexis.G
Le plus simple, c'est effectivement de procéder comme ça. Faites en
sorte d'avoir un nom de package explicite ;-)

L'ajout du dossier ne doit pas être fait à la main. il faut en fait
rajouter un "package" dans Eclipse, sous GDMS, qui s'appellera
org.gdms.driver.mitab . Eclipse se chargera de générer les dossiers
qui vont bien ensuite. Les package servent d'une part à assurer une
bonne cohérence et une bonne lisibilité dans l'architecture des codes,
et d'autre part à assurer les interactions entre les classes. Pour
plus d'infos, le mieux, c'est de trouver un bon cours ou un bon
bouquin sur Java ^_^ Je peux vous en donner quelques autes si vous
voulez ;-) Mais ce ne sera jamais aussi bien qu'une bonne doc bien
structurée.

Par ailleurs, pour le parcours des codes d'OrbisGIS, je conseille là
aussi d'utiliser Eclipse. Notamment parceque les package sont très
clairement mis en évidence, ça simplifie vraiment la compréhension du
code.

Enfin, les sources que j'ai pointées tout à l'heure ont a priori été
enregistrée sous Windows, ou au moins dans un format ASCII. Pas en
UTF8, donc. Sous Linux, un petit changement de format sera nécessaire
pour avoir les accents présents dans les commentaires ;-)
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Nicolas F.
Administrator
Bonjour

Je n'ai pas réussi à trouver le moyen d'ajouter un plugin driver.

Il me faudrait une méthode du genre :
context.getFeatureInstaller().addRegisterDriver(MiTab.class);

merci
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

ebocher
Administrator
Bonjour Nicolas,


Si tu veux ajouter un driver tu dois étendre la classe FileReadWriteDriver. Pour intégrer le driver à gdms il faut le declarer dans la classe DefaultSourceManager notamment utiliser registerDriver.

Sinon pour ce qui est du calcul du z des geometries à partir d'un modele numerique de terrain, je viens de commiter la fonction ST_SETZ(the_geom, monRaster).


Erwan.

Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Alexis.G
2010/6/9 ebocher [via OrbisGIS]
<[hidden email]>:

> Bonjour Nicolas,
>
>
> Si tu veux ajouter un driver tu dois étendre la classe FileReadWriteDriver.
> Pour intégrer le driver à gdms il faut le declarer dans la classe
> DefaultSourceManager notamment utiliser registerDriver.
>
> Sinon pour ce qui est du calcul du z des geometries à partir d'un modele
> numerique de terrain, je viens de commiter la fonction ST_SETZ(the_geom,
> monRaster).
>
>
> Erwan.

Je plussoie sur le message d'Erwan :-) GDMS découvre plus ou moins
automatiquement les capacités des drivers qui sont présents. Pour
cela, il faut que ajoutes ton driver dans un package approprié, puis
tu le déclares dans le DefaultSourceManager. cette classe fait partie
du package org.gdms.source. Ça se passe en deux étapes, cette
déclaration.

En premier lieu, il faut bien entendu réaliser l'import de la classe
qui implémente FileReadWriteDriver. Quand j'ai ajouté le pilote pour
gml, j'ai ajouté la ligne

import org.gdms.driver.gml.CityGMLDriver;

dans les imports.

Puis, tu dois dire au constructeur de DefaultSourceManager qu'un
nouveau pilote est là. Ça revient à ajouter une ligne du type

dm.registerDriver(CityGMLDriver.class);

à la suite des autres.

Si tu veux plus d'infos sur la construction des pilotes, hésite pas
:-) FileReadWriteDriver est une interface qui t'oblige à implémenter
certaines méthodes. Les méthodes en question sont chargées de remonter
les infos vers GDMS... au travers du DefaultSourceManager.

Bon courage !

Alexis.


--
OrbisGIS developer.
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Nicolas F.
Administrator
Oui comme ca j'ai déjà fait. Mais comme je peut pas commit je veux le passer en plugin pour pouvoir suivre les modifications.. et pour pouvoir être en synchro avec toutes vos sources.
Reply | Threaded
Open this post in threaded view
|

Re: import Fichiers MapInfo

Alexis.G
A priori, c'est pas nécessaire. Enfin, moi je le fais pas ^_^

Si tu fais un update via subversion (je sais pas comment ça se passe
sous windows, sous linux mieux vaut le faire à la main ^_^),
subversion va essayer de mettre à jour tous les fichiers possibles en
les mettant à la version du dépôt central. Globalement, ça se passe
comme ça : si un fichier n'a pas été modifié en local, il est mis à
jour, sinon il faut que le développeur intervienne. Dans ton cas
(comme dans le mien pour le pilote city gml), un fichier présent sur
le dépôt distant a été modifié en local. Il s'agit du
DefaultSourceManager. Tout le reste sera mis à jour. Et ce n'est pas
le fichier qui bouge le plus, je pense (il faudrait jeter un oeil à
l'historique de subversion, mais là je peux pas ^_^ )

Donc en continuant à faire tes update, tu garderas un OrbisGIS à jour
en quasi totalité. Le projet (dans eclipse) gdms sera marqué avec une
petite étoile noire pour dire qu'il n'est pas à jour, mais si tu le
déroules, tu verras que tous les fichiers sont à jour sauf ceux que tu
as rajouté et DefaultSourceManager.



--
OrbisGIS developer.