[postgis-users] ESRI Geodatabases, relationship classes and PostGIS
Paragon Corporation
lr at pcorp.us
Wed Jul 30 13:46:20 PDT 2008
Yes you can delete the Geometry field. One thing I find annoying about
OGR2OGR is that it insists on creating a geometry field for attribute only
tables. So yes I usuall use the
SELECT DropGeometryColumn postgis function to drop the bogus field which
also removes it from the geometry_columns table
Try something like this (note I haven't tried this particular variant - it
may not work since this query is actually deleting the records it is
querying)
1)
SELECT DropGeometryColumn(f_table_schema, f_table_name, f_geometry_column)
FROM geometry_columns
WHERE type = 'GEOMETRY';
2) The other annoying thing about OGR2OGR is that its choice of datatypes is
often annoying. To fix the below - you can try the trick we have documented
here
http://www.postgresonline.com/journal/index.php?/archives/30-DML-to-generate
-DDL-and-DCL--Making-structural-and-Permission-changes-to-multiple-tables.ht
ml
Except your query would be
ALTER TABLE ... ALTER OBJECTID TYPE bigint; (or int)
3) This sounds like a bug in ZigGIS - it is probably assuming you imported
with shp2pgsql which creates a serial field called gid for every table.
Yell at Abe, Paolo, and Bill for that :)
A work around would be to use trick in 2 and do a
ALTER TABLE ... ADD COLUMN gid serial
OGR2OGR creates a serial field too which defaults to ogc_fid or something
like that so you could do a
ALTER TABLE .. ALTER ogc_fid RENAME TO gid
(my above syntax may be wrong since I don't use RENAME that often)
Hope that helps,
Regina
________________________________
From: postgis-users-bounces at postgis.refractions.net
[mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Juan
Declet
Sent: Wednesday, July 30, 2008 2:27 PM
To: PostGIS Users Discussion
Subject: Re: [postgis-users] ESRI Geodatabases,relationship classes and
PostGIS
Thanks to your input I have been able to input all the ESRI Geodatabase
feature classes and tables. I used the OGR2OGR tool with the parameters
specified by Regina. Note that to append all tables you should omit table
names.
I am able to display the database tables in ArcMap using zigGIS. However,
when I try to add a feature class, I get the following errors in the zigGIS
Feedback window:
1. Unsupported geometry type GEOMETRY
I understand this was created by the OGR2OGR tool. Can I just delete it?
2. Unsupported type Decimal on FeatureClassNameORTableName.OBJECTID
This is the most troubling of the error messages. The OBJECTID is,
of course, what ESRI uses as primary key to link the spatial vector table to
the attribute table of a feature class. If this type is not supported, how
can an ESRI Feature Class work correctly in PostGIS?
3. The FeatureClassNameORTableName.gid field was not found.
No idea on what this means.
Thanks!
On Tue, Jul 29, 2008 at 4:10 PM, Ragi Y. Burhum <ragi at burhum.com> wrote:
On Tue, Jul 29, 2008 at 12:01 PM,
<postgis-users-request at postgis.refractions.net> wrote:
>
> Message: 20
> Date: Tue, 29 Jul 2008 09:47:22 -0700
> From: "Juan Declet" <reguerete at gmail.com>
> Subject: Re: [postgis-users] ESRI Geodatabases, relationship
classes
> and PostGIS
> To: "PostGIS Users Discussion"
<postgis-users at postgis.refractions.net>
> Message-ID:
>
<c566dff90807290947q48e44807j57efb6e50712d80d at mail.gmail.com>
> Content-Type: text/plain; charset="iso-8859-1"
>
> Can anyone suggest a workaround? I am trying to implement
relationship
> classes from a Personal Geodatabase into PostGIS. What about if I
created
> the relationship classes natively in the PostGIS database server?
The issue
> then would be getting ArcMap to recognize the relationship classes
and
> enforce them via editing. I know this is more of an ArcGIS
question, but am
> lookin for the input of experienced PostGIS users.
You are working with 2 different abstractions... one at the
ArcObjects
level, and the other one at the RDBMS. Don't get them confused.
If your intent is to simply enforce the cardinality constraint, go
ahead and create the relationship at the PostgreSQL level. As long
as
you are doing non-versioning editing, your ArcMap save operation
will
be done within a transaction... if an RDBMS error is raised (and you
will get one if you violate the contraint you created) that
transaction will be rolled back and you will get the RDBMS message
in
ArcMap. Be mindful that during the edit session you will not see the
error until ArcMap flushes its edit session (during a save, search,
etc).
If your intent is to have ArcMap recognize the relationship, for
example, to be able to navigate it through the object inspector, you
are going to need to insert the right entries in the GDB_*
(GDB_Relationships, GDB_ObjectClasses, etc) tables. The easiest bet
is
to create the relationship through ArcCatalog once and check the
entries it created in those GDB metadata tables so you know how it
works.
>
> On Tue, Jul 29, 2008 at 9:34 AM, Lee Hachadoorian <
> lee.hachadoorian at gmail.com> wrote:
>
>> Yes, ArcCatalog creates a standard Access database table, but
enforces
>> the creation of a unique index called OBJECTID (which is not,
however,
>> actually a primary key).
Ha ha.. that is debatable :-)
>> So what Regina describes should work.
>>
>> There's an ogr2ogr cheatsheet at BostonGIS
>> (http://www.bostongis.com/?content_name=ogr_cheatsheet).
>>
>> I'm not sure about the relationship classes question, although my
>> suspicion is that the conversion works table-by-table on data
(spatial
>> and non-spatial) only. Since the relationship classes are not
stored
>> in the feature class or non-spatial table itself (they are stored
in a
>> table called GDB_RelClasses), I suspect that ogr2ogr will not do
>> anything to convert them. Can someone confirm?
>>
>> --
>> Lee Hachadoorian
>> PhD Student, Geography
>> Program in Earth & Environmental Sciences
>> CUNY Graduate Center
My two cents,
- Ragi Yaser Burhum
_______________________________________________
postgis-users mailing list
postgis-users at postgis.refractions.net
http://postgis.refractions.net/mailman/listinfo/postgis-users
More information about the postgis-users
mailing list