Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Tue 27 March 2007 15:53

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Importation de données d'ArcView a Postgresql/Postgis

Bonjour je voudrai importer les données géographiques (couches) généré avec ArcView dans mn SGBD saptiale : postgres/postgis.
Pour chaque couche je dispose des fichiers suivante :*.shp ,*.sbn, *.shx,*.dbf et parfois *.sbx.
Je ne sais pas si je doit importer que le shape??? et reprendre manuellement les données attributaires qui lui sont associé???
Ou il y'a une commande qui me permet d'importer les 2 types de données???
J'ai éssayer avec plusieurs guide :
1) J'ai créer une BD ss postgis ou je n'ai pas ajouter de table;
2) J'ai tapé la commande suivante ds l'invite commande :

shp2pgsql -D [fichier−shp] [nom−de−la−table] [base−de−donnees] | psql [base−de−donnees]

mais il m'affiche tj des erreurs...(o début cété parceke jé ouvert l'invite commande ss le cpte windows admin ) j'ai alors ouvert l'invite du cpte user :
1) runas /noprofile /user:postgres cmd
2) dans la nouvelle fenetre j'ai tapée en remplacant par les valeur :
shp2pgsql -D [fichier−shp] [nom−de−la−table] [base−de−donnees] | psql [base−de−donnees]

il m'affiche l'errreur suivante :
ERROR : function addgeometrycolumn ("unknown", "unknown","unkwnown","unkwnown"","unkwnown","integer")does not exist
Ligne 1 : select AddGeometryColumn('','......)
Astuces : No function matches the given name and argument types.you may need to add explicit type casts.
ERROR : current transaction is aorted, commands ignored until end of transaction block
ROLLBACK

............................
MERCI d'avance et j'éspére vraiment trouver une réponse sur ce forum

Hors ligne

 

#2 Tue 27 March 2007 18:03

llby
Participant occasionnel
Date d'inscription: 14 Dec 2005
Messages: 49

Re: Importation de données d'ArcView a Postgresql/Postgis

Moi j'ai aucun problème avec le shp2pgsql.

Je fais :


shp2pgsql -D [fichier−shp] [nom−de−la−table] [base−de−donnees] > nom_fichier.sql

Ca me crée un fichier sql dans le répertoire bin de postgre , je peux donc l'étudier au cas où.

Je vais sous pgADmin, j'ouvre le fichier sql avec l'éditeur Sql ET hop PLAY (la petite flèche verte). Et tout est créé magiquement smile


Edit :

Je fais même -c plutôt comme option (create).

shp2pgsql -C [fichier−shp] [nom−de−la−table] > nom_fichier.sql

Dernière modification par llby (Tue 27 March 2007 18:05)

Hors ligne

 

#3 Tue 27 March 2007 18:08

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

mais la base de données doit devrai etre créer avant d'éxéuté cette commande, est ce que la table meme devrait etre créer manuellement avant d'éxécuté cette commande ou le programme va créer automatiquement une table ayant la structure correspondante????

MERCI

Hors ligne

 

#4 Tue 27 March 2007 18:56

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Je vient de localiser l'erreur mais je ne comprend pas comment faire:
Quand j'éxécute la commande sur la Base de données (nom=postgis) créer par défaut ca marche mais sur les base de données que je vient d créer ca ne marche pas.
Peut etre il faut apporté quelque modification a niveau de la base avant d'éxécuter cete commande???

Hors ligne

 

#5 Tue 27 March 2007 18:58

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

Votre erreur concerne postgis. Vous n'avez pas déclaré votre base comme étant une base postgis. Vous devez lancer quelque commande. Pour ma part je me sert de cette doc pour me rappeler les diverses fonctions :
http://www.postgis.fr/node/234

En gros :

Code:

createlang plpgsql [VotreBaseDeDonnées]
psql -d [VotreBaseDeDonnées] -f lwpostgis.sql
psql -d [yourdatabase] -f spatial_ref_sys.sql

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Wed 28 March 2007 00:18

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

je n'arrive pas a trovuer comment déclarer une base de données comme une base postgis.
En fait ces documents utilise les fonctonnalités de GEOS, alors que je ne l'ai pas installé manuellement je ne sais meme pas s'il est installé ou pas (juste installer postgrsql et postgis) sous windows ( tt est guidé).

Alors comment je fai pour la déclarer comme bd postgis???

Hors ligne

 

#7 Wed 28 March 2007 10:01

Ben_es
Juste Inscrit !
Lieu: Paris
Date d'inscription: 27 Feb 2007
Messages: 6

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

si l'erreur vient de postgis vérifier que dans votre bdd il y a bien les fonctions géomètriques : "nom de votre bdd"/schémas/public/fonctions il doit y en avoir à peu près 1200 si postgis est installé (par exemple fonction addgeometrycolumn)

sinon il faut recréer une bdd avec pgAdminIII et surtout bien utiliser comme modéle : template_postgis

Cordialement

Benjamin

Hors ligne

 

#8 Wed 28 March 2007 12:48

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Merci pour votre réponse vous avez raison ma base ne contient que 25 fonctions alors que les 2 bases pas défauts (postgis et template_postgis) contiennent 446 fonctions (mais pas 1200)?????

Sinon, j'ai déja éssayé ca mais quand je prend "template_postgis" comme modéle il m'affiche l'erreur suivante au moment de la création "ERROR : source database 'template_postgis' is being accessed by other users"...
Et bien sur donc je ne pourrai pas prendre "template_postgis" comme modéle.
Ca me bloque vraiment...
MERCI

Hors ligne

 

#9 Wed 28 March 2007 13:11

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Merci vous m'avez vraiment aider mais je voulait présicer que j'arrive a le faire maintenant mais seulement sous DOS (au début il m'affichai la mme erreur et quand j'ai fermé le PGADMIN 3 ca a marché)...Je ne comprend pas alors pourquoi  ca ne marche pas avec le pgADMIN 3???
Sinon si on veutimporter tous les shape se trouvant dans un dossier y'a pas un moyen de faire une sorte de boucle qui parcour le dossier et les importe un a un au lieu de taper la commnde 100 fois...

Hors ligne

 

#10 Wed 28 March 2007 14:29

llby
Participant occasionnel
Date d'inscription: 14 Dec 2005
Messages: 49

Re: Importation de données d'ArcView a Postgresql/Postgis

Il ne faut pas que la BDD template_postgis soit ouverte au moment de créer la nouvelle base de données qui prendra celle là comme exemple. Si template_postgis est ouverte sous pgAdmin( cad il n'y a pas la croix rouge dessus), ça ne marchera pas.

Le shp2pgsql crée un fichier sql qui contient le "script" de création de la table si on met l'option -c comme je l'avais dit précedemment.

Sinon ce que je fais pour créer un certain nombre de fichiers sql à partir des shp correspondants :

je crée un script vbs qui liste les fichiers shp dans le répertoire et crée la ligne de commande correspondante dans un .bat

puis j'exécute mon .bat  qui me crée toutes les importations

Hors ligne

 

#11 Wed 28 March 2007 14:35

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Merci pour votre réponses mais je ne voit toujours pas comment faire plusieurs importations ?
Vous n'avez pas un exemple de fichier en n'importe quel langages ce n'est pas un probléme c'est juste pour comprenre le principe.

Hors ligne

 

#12 Wed 28 March 2007 14:56

llby
Participant occasionnel
Date d'inscription: 14 Dec 2005
Messages: 49

Re: Importation de données d'ArcView a Postgresql/Postgis

Voilà le fichier que vous voulez.
Vous mettez tous vos fichiers géographiques dans le même répertoire.
Vous copiez le code ci-dessous dans un fichier liste.vbs
Vous changez vos paramètres, le nom du répertoire, le nom de la base de données.
Vous double-cliquez sur le fichier VBS.
Il vous crée un fichier import.bat dans lequel il ya toutes les lignes de commande d'importation pour tous les fichiers shp. Ca crée les tables du même nom que les fichiers.
Vous copiez le fichier import.bat dans le rép bin de postgresql et l'exécutez depuis la console ms dos.
Et voilà.



Code:

Option Explicit

Dim fs
Dim objNomDuFichier
Dim f, f1, fc, s
Dim strNomTable
Dim strNomDuFichier
Dim strNomBDD
Dim strNomFolder
Dim strNomSHP
Dim strLigne

strNomDuFichier = "import.bat"
strNomBDD = "nom_bdd"
strNomFolder = "D:\DONNEES GEOGRAPHIQUES\BASE FRANCE\SHP FILES\" 






Set fs = CreateObject("Scripting.FileSystemObject")
Set objNomDuFichier = fs.CreateTextFile(strNomDuFichier, True)

Set f = fs.GetFolder(strNomFolder)
Set fc = f.Files
For Each f1 in fc
    If Right(f1.Name,3) = "shp" Then
        strNomSHP = f1.Name
        strNomTable = Left(f1.Name, Len(f1.Name)-4)
        strLigne = "shp2pgsql -c """ & strNomFolder  & strNomSHP & """ " & strNomTable & " " & strNomBDD & " | psql " & strNomBDD            
        objNomDuFichier.WriteLine(strLigne)
    End If
Next
objNomDuFichier.Close
Set fs = nothing

msgbox "terminé"

Edit : attention à la formulation de vos demandes et à l'orthographe, c'est limite désagréable des fois ....

Dernière modification par llby (Wed 28 March 2007 15:29)

Hors ligne

 

#13 Wed 28 March 2007 15:56

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Merci j'ai fai exactement ce que vous avez dit mais il m'affiche pour chaque fichier l'erreur suivante :

nomfich.shp:  shape (.shp) or index files (.shx) ca not be opened.
Tout en sachant que pour chaque couche on dispose des fichiers suivants : *.SBN,*.SHP,*.SHX,*.dbf et *.SBX
En plus il me demande de saisir e mot de pase pour chaque fichiers donc pour une importations e 200 chapes il faut saisir 200 fois le mo de passe ???
Je ne comprend pas d'ou vient cette erreur pourant depuis tout a l'heure j'ai tout éssayé???

MERCI

Hors ligne

 

#14 Wed 28 March 2007 16:34

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

J'ai réglé cette erreur il fallait spécifié le chemin comlet des shapefiles j'ai changé aussi d'options, dc le code devient :

Code:

Option Explicit

Dim fs
Dim objNomDuFichier
Dim f, f1, fc, s
Dim strNomTable
Dim strNomDuFichier
Dim strNomBDD
Dim strNomFolder
Dim strNomSHP
Dim strLigne

strNomDuFichier = "import.bat"
strNomBDD = "testgis"
strNomFolder = "E:\shp\" 






Set fs = CreateObject("Scripting.FileSystemObject")
Set objNomDuFichier = fs.CreateTextFile(strNomDuFichier, True)

Set f = fs.GetFolder(strNomFolder)
Set fc = f.Files
For Each f1 in fc
    If Right(f1.Name,3) = "shp" Then
        strNomSHP = f1.Name
        strNomTable = Left(f1.Name, Len(f1.Name)-4)
        strLigne = "shp2pgsql -c " & strNomFolder & strNomSHP & " " & strNomTable & " " & strNomBDD & " | psql " & strNomBDD            
        objNomDuFichier.WriteLine(strLigne)
    End If
Next
objNomDuFichier.Close
Set fs = nothing

msgbox "terminé"

Maintenant le probléme c'est au niveau du codage il ajoute certains fichiers et pour d'autre il m'affiche le message suivants :
ERROR: invalid byte sequence for encoding "UTF8": 0xe97279
Astuce: this error can also happen if the byte sequence does not match the encoding expected by the server, wich is controlled by "client-encoding".
ERROR : current transaction is aborted, commands ignored until end of transactions block
ROLLBACK
********************
Ben cette fois je ne voi pas comment on pourra réglé ca, je ne comprend pas l'erreur en fait???
MERCI

Hors ligne

 

#15 Fri 06 April 2007 15:26

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

L'erreur provient du fait que l'encodage de vos fichiers ne sont pas en UTF8 alors que votre base l'est (ou inversement).

Finalement, cela est assez complexe à résoudre ...

Une piste peut être : vérifiez tout les encodages.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#16 Wed 11 April 2007 12:11

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

MERCI pour votre réponse mais apparement le probléme ne conserne ke les fichiers dont le nom contient "é" .
Le code marche donc bien a part que pour chaque fichier il me demande de taper le mot de passe de l'utilisateur postgres (dans l'invite commande) ce ki né pas intéressant car pour l'importation de 100 fichier on é obligé de tapé le mot de passe 100 fois de plus ca ne sera pas 100% automatique.
J'ai éssayé de modifier le code vb et aussi le fichier "import"...Toujours pas????
Merci encore

Hors ligne

 

#17 Wed 11 April 2007 12:37

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

Merci d'éviter le langage SMS.

Concernant votre problème, le mieux est d'éviter d'utiliser des caractères spéciaux dans vos noms de fichiers ou de répertoire ($*éàè ...)

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#18 Wed 11 April 2007 15:16

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Merci beaucoups et désolé pour le langage sms.

Hors ligne

 

#19 Thu 12 April 2007 16:43

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Je ne sais pas si vous avez déja eu ce probléme mais le code marche bien : il parcour le dossier et importe les différents shapes, a part qu'il nous demander de taper le mot de passe (de l'utilisateur postgres) pour chaque shape.
Y'a t'il un moey d'éviter ca et de préciser le mot de passe au niveau du fichier (import) ou du code vb ou autre afin d'éviter de retaper le mot de passe 100 fois...
J'ai tout éssayé mais il me demande toujours le mot de passe a chaque fois.
Merciiii

Hors ligne

 

#20 Thu 12 April 2007 17:30

llby
Participant occasionnel
Date d'inscription: 14 Dec 2005
Messages: 49

Re: Importation de données d'ArcView a Postgresql/Postgis

Peut-être en lancant le fichier depuis l'utilisateur postgres ?

Personnellement, j'utilise ce script pour créer des fichiers SQL que j'importe ensuite dans la base soit un par un, soit en les concaténant tous d'un seul coup avec un autre script. Donc je n'ai pas ce problème.

Hors ligne

 

#21 Fri 13 April 2007 00:38

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Je pense pas que ce soit ca le probléme car je me connecte en tant qu'utilisateur systéme postgres.
Mais il faut avoué que l'utilisateur systéme "postgres" et l'utilisateur de la BD "postgres" n'on pas le meme mot de passe.
Vous croyez que ca pourrai etre ca????
Mais surement au niveau des fichiers batch on peut faire des input (comme le mot de passe demandé)????

Hors ligne

 

#22 Mon 16 April 2007 14:23

llby
Participant occasionnel
Date d'inscription: 14 Dec 2005
Messages: 49

Re: Importation de données d'ArcView a Postgresql/Postgis

bah faut regarder dans les options de psql (psql --help) ou celles de shp2pgsql (shp2pgsql --help)
tu peux aussi chercher un peu non ?

Hors ligne

 

#23 Mon 16 April 2007 22:31

kenza_sana
Participant occasionnel
Date d'inscription: 22 Feb 2007
Messages: 24

Re: Importation de données d'ArcView a Postgresql/Postgis

Merci pour votre réponse j'ai bien cherché toutes les options je les ai étudié auune d'entre elle na prend ca en charge la plus part du tps ca conserne les données ou le façon de l'importation.
Ceci ne se trouve ni dans les options de shp2pgsl ni dans psql.
Merci quand meme .

Hors ligne

 

#24 Tue 17 April 2007 08:49

Loïc Tapon
Participant occasionnel
Lieu: Haute-Savoie
Date d'inscription: 15 Sep 2005
Messages: 16

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

j'ai eu le même probleme, il y a quelques mois...
il me demandais le mot de passe mais ne me laisser pas le temps de le taper.
J'ai donc contourner le problème par du shell dans un script Vbs (cela est un peu tordu mais bon)

Copier le code suivant :

Code:

'------------------------------------
' Synthaxe de Shp2pgsql 
' Importation d'un SHP dans une base Postgresql 
' REMARQUE la table ne doit pas exister... et le nom de fichier ne doit pas contenir d'espace
'------------------------------------

'____________
' PARAMETRE
'____________

' nom du superutilisateur Attention il doit etre un utilisateur defini dans Windows
username = "nom de votre user "
"
' son mot de passe
pass = "votre mot de passe"
' nom de la base de donnée postgresql
nom_db_pg = "Nom de votre base"
' temp d'attente
time_sleep = "1000"
' nom du dossier ou son les Shape
strNomFolder = "le chemin complet de votre dossier"

'____________
'debut du script
'____________

' récupération du chemin ou est enregistrer le vbs
varname = WScript.ScriptFullName
new_name = Left(varname, len(varname)-4)
numfichier = InStrRev(new_name,"\",-1,1)
'chemin temporaire
chem_temp = Left(new_name, numfichier) & "temp\"

Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(strNomFolder)
Set fc = f.Files
dim ext(3)
For Each f1 in fc
    If Right(f1.Name,3) = "shp" Then
        nom_shp = strNomFolder & f1.Name
        
        '____________
        ' copie les fichiers dans le dossier temp
        '____________
        

        set fichier = CreateObject("Scripting.FileSystemObject")

        dim new_name
        new_name = Left(nom_shp, len(nom_shp)-4)
        numfichier = InStrRev(new_name,"\",-1,1)
        nom_shp = right(new_name, len(new_name)-numfichier) & ".shp"
        nom_tble_pg = right(new_name, len(new_name)-numfichier)

        ext(1) = ".shp"
        ext(2) = ".shx"
        ext(3) = ".dbf" 
        for i = 1 to 3
                               ' Copie le fichier sur le serveur
            fichier.CopyFile new_name  & ext(i) , chem_temp   
        next

        '____________
        'Procedure d'importation shape 
        '____________

        set shell=wscript.createobject("Wscript.shell")
        'Run runas.exe
        shell.run "runas.exe /user:" & username & " cmd"
        'Attendre runas.exe pour charger, ce temps pourrait être plus court, mais est placé à 1000 pour être sûr
        wscript.sleep(time_sleep)
        ' envoi le mot de passe
        shell.sendkeys pass & "{ENTER}"
        wscript.sleep(time_sleep)
        shell.sendkeys "shp2pgsql -D -I " & chem_temp & nom_shp & " " & nom_tble_pg & " > " & chem_temp & "temp.sql" & "{ENTER}"
        wscript.sleep(time_sleep)
        shell.sendkeys "psql -d " & nom_db_pg & " -f " & chem_temp & "temp.sql"  & "{ENTER}"
        wscript.sleep(time_sleep)
        'Send the password and hit enter
        shell.sendkeys pass & "{ENTER}"
        wscript.sleep(time_sleep)
        'supression des fichiers temporaires
        shell.sendkeys "del " & chem_temp & "*.*" & "/Q {ENTER}"
        wscript.sleep(time_sleep)
        shell.sendkeys "exit" & "{ENTER}"

    End If
Next

Coller le dans un fichier txt que vous renommer en vbs, modifier les parametres (mot de passe, nom user ...)

dans le dossier ou vous avez creer le vbs creer un dossier que vous nommerez "temp"

puis lancez le script, et la normalement (du moins chez moi wink ) cela marche

Remarque importante : il faut que le dossier ou vous avez votre script vbs, l'utilisateur systeme "postgre" doit avoir les droits d'ecriture.

Ce code n'est pas idéal et n'est surment pas parfait, mais si certaines personnes veulent l'obtimiser, je suis tout à fait preneur big_smile .

Bonne journée

Loïc

Hors ligne

 

#25 Tue 04 March 2008 18:45

geo_ben
Juste Inscrit !
Date d'inscription: 4 Mar 2008
Messages: 3

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

Bien que ce sujet soit inactif depuis quelques mois, j'ai également un problème d'encodage que je souhaiterai soumettre.

Voici la commande que j'éxécute :

Code:

shp2pgsql -dDI ./great_roads.shp great_roads |psql madatabase

Et voici le message d'erreur :

Code:

CREATE INDEX
ERREUR:  Séquence d'octets invalide pour le codage « UTF8 » : 0xe97279
HINT:  Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas au jeu de caractères attendu par le serveur, le jeu étant contrôlé par « client_encoding ».
CONTEXT:  COPY great_roads, ligne 1
ROLLBACK

Le code généré par shp2pgsql est :

Code:

SELECT DropGeometryColumn('','great_roads','the_geom');
DROP TABLE "great_roads";
BEGIN;
CREATE TABLE "great_roads" (gid serial PRIMARY KEY,
"id" int8,
"data" varchar(24));
SELECT AddGeometryColumn('','great_roads','the_geom','-1','MULTILINESTRING',2);
CREATE INDEX "great_roads_the_geom_gist" ON "great_roads" using gist ("the_geom" gist_geometry_ops);
COPY "great_roads" ("id","data",the_geom) FROM stdin;
1    Rue Paul Valéry    010500000001000000010200000004000000000000000000F03F000000000000F03F000000000000344000000000000037400000000000004E40000000000000394000000000004055400000000000004240
2    Rue du Général de Gaulle    010500000001000000010200000002000000000000000000F03F0000000000E055400000000000C062400000000000E05540
3    Rue Aristide Briand    0105000000010000000102000000020000000000000000405540000000000000F03F00000000004055400000000000E06040
\.
END;

Je note que si je retire les accents et que je recharge ensuite ce code, l'opération réussi.
Pour information, je suis sous Linux et le shp fût probablement généré sous windows.
Si quelqu'un connait l'origine de ce problème ou un moyen de le contourner, j'accepte avec grand plaisir son aide !

Benoit

Hors ligne

 

#26 Tue 04 March 2008 18:59

geo_ben
Juste Inscrit !
Date d'inscription: 4 Mar 2008
Messages: 3

Re: Importation de données d'ArcView a Postgresql/Postgis

Re bonsoir,

J'ai résolu mon problème grâce à un autre forum.

Voici la solution pour qu'elle puisse servir à d'autres :

Code:

 shp2pgsql -dDI ./great_roads.shp great_roads|iconv -f LATIN1 -t UTF-8 |psql madatabase

Merci et désolé du dérangement

Benoit

Hors ligne

 

#27 Tue 04 March 2008 19:12

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9855
Site web

Re: Importation de données d'ArcView a Postgresql/Postgis

Bonjour,

Dommage, je n'ai pas vu passer votre message, il y a quand même plus simple : lire l'aide des commandes que vous utilisez :

Code:

debian@helios:~$ shp2pgsql --help
shp2pgsql: illegal option -- -
RCSID: $Id: shp2pgsql.c 2513 2006-10-14 14:22:10Z mschaber $ RELEASE: 1.1.6
USAGE: shp2pgsql [<options>] <shapefile> [<schema>.]<table>
OPTIONS:
  -s <srid>  Set the SRID field. If not specified it defaults to -1.
  (-d|a|c|p) These are mutually exclusive options:
      -d  Drops the table, then recreates it and populates
          it with current shape file data.
      -a  Appends shape file into current table, must be
          exactly the same table schema.
      -c  Creates a new table and populates it, this is the
          default if you do not specify any options.
      -p  Prepare mode, only creates the table.
  -g <geometry_column> Specify the name of the geometry column
     (mostly useful in append mode).
  -D  Use postgresql dump format (defaults to sql insert statments.
  -k  Keep postgresql identifiers case.
  -i  Use int4 type for all integer dbf fields.
  -I  Create a GiST index on the geometry column.
  -S  Generate simple geometries instead of MULTI geometries.
  -w  Use wkt format (for postgis-0.x support - drops M - drifts coordinates).
  [b]-W <encoding> Specify the character encoding of Shape's
     attribute column. (default : "ASCII")[/b]
  -N <policy> Specify NULL geometries handling policy (insert,skip,abort)
  -? Display this help screen

shp2pgsql -W latin1 -dDI ./great_roads.shp great_roads | psql madatabase

Ou bien créer une base en latin1 :

Code:

createdb mabase -E latin1

Enfin initialiser la variable encoding de pgsql :

Code:

psql -v ENCODING=utf8 ou latin1

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#28 Tue 04 March 2008 21:46

geo_ben
Juste Inscrit !
Date d'inscription: 4 Mar 2008
Messages: 3

Re: Importation de données d'ArcView a Postgresql/Postgis

J'avais essayé l'option -W en lui passant un mauvais argument (latin-1 au lieu de latin1). Meaculpa.

Merci quand même du renseignement.

Cordialement,

Benoit Delaup

Hors ligne

 

Pied de page des forums

Powered by FluxBB