1

Our office has a shared Network drive with limited storage and shared access to a PostGIS DB. We're trying to migrate away from using shapefiles in QGIS to pulling layers from PostGIS.

Are there any editing/styling features that wouldn't work with a PostGIS layer that do with a shapefile layer?

One thing I can see is that PostGIS layers would have to be stored de-normalized to enable editing.

e.g. this

streets:
gid|street_name|geom
---|-----------|----
1  |'Main St.' |line
2  |'Main St.' |line

not this

streets:
gid|street_name_id|geom
---|--------------|----
1  |1             |line
2  |1             |line

street_names:
street_name_id|street_name
--------------|-----------
1             | 'Main St.'

2 Answers 2

2

I'm working a lot with PostGIS (ODBMS, spatially enabled databases).

In my opinion there are no restrictions due to style PostGIS Layer in QGIS.

Some ideas according to your example:

You can use Value Map in QGIS

YourLayer -> Properties -> Fields. Then change the edit widget Text Edit of "street_name_id" to Value Map.

There you can connect the value (street_name_id) 1 with the street_name. Therefor you have to load the street_names Relation (PostGIS table) into your canvas (check "Also show tables with no geometry" in the DB Manager). Click "Load Data from Layer" in the Edit Widget Properties.

The other solution would be to create a PostgreSQL VIEW like:

CREATE OR REPLACE VIEW streets AS 
    SELECT a.gid, b.street_name, a.geom
    FROM streets a, street_names b
        WHERE a.street_name_id=b.street_name_id
2

We use PostGIS as a source of geospatial data for editing and topological editing workflows.

We haven't hit any snags and have found only pluses in using PostGIS over shapefiles (and ArcSDE data).

Re. the 'de-normalized' question - are you talking about columns created through joins? If so, you can create editable views that would accomplish what you're after.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.