3

I'm new to GIS related things and I'm setting up a Postgre/Postgis database for geospatial queries. I'd like to import various shapefiles into the database and I found that Pgadmin3 has a shapefile importer. How do I install the shapefile import plugin for pgadmin3 (I'm on Mountain Lion 10.8)?

Right now, the plugin menu is empty, and I have the very latest of Postgres and Postgis. See my comment below about what I've seen elsewhere on this topic.

9

3 Answers 3

8

I decided to go ahead and use the command line utility (shp2pgsql) to import my .shp file. Since I was able to get it working without too much trouble and a little Googling around I wanted to share this possible solution for anyone else who just wants to import a .shp file into Postgres and didn't want to deal with the hassle of trying to get pgadmin's GUI geospatial data importer. To import a shapefile here is the command (of course you need both Postgres and Postgis installed, first):

shp2pgsql -I -s <SRID> <PATH/TO/SHAPEFILE> <SCHEMA>.<DBTABLE> | psql -d <DATABASE>

And here's the OpenGeo docs explaining each of the above parameters:

The command parameters are:
<SRID>Spatial reference identifier
<PATH/TO/SHAPEFILE>Full path to the shapefile (such as C:\MyData\roads\roads.shp)
<SCHEMA>Target schema where the new table will be created
<DBTABLE>New database table to be created (usually the same name as the source shapefile)
<DATABASE>Target database where the table will be created

So just as an example, here was my command:

shp2pgsql -I -s 3857 ~/Downloads/MoGeospatialData/MO_2012_Senate_Districts.shp public.geospatial-data | psql -p 5432 -d vetting-geospatial

If you're not sure where to get the SRID just go here and upload your .prj file and use the topmost match it generates: http://prj2epsg.org/search

And for a comprehensive explanation of this CLI and importing data in general, just check out this great documentation from OpenGeo: http://suite.opengeo.org/docs/dataadmin/pgGettingStarted/shp2pgsql.html

I hope this helps someone!

1
  • I had an instance running on macosx docker using boot2docker. I just added the -h 192.168.59.103 -p ???? -U docker args to the psql and it worked fined as well.
    – Emile
    Commented Sep 8, 2014 at 15:54
1

You might have to add the following to your plugins.ini file:

;
; pgShapeLoader (OSX):
;
Title=PostGIS Shapefile and DBF loader
Command=/usr/bin/open /Applications/OpenGeo/pgShapeLoader.app --args '-U $$USERNAME -d $$DATABASE -p $$PORT -h $$HOSTNAME'
Description=Open a PostGIS ESRI Shapefile or Plain dbf loader console to the current database.
KeyFile=/Applications/OpenGeo/pgShapeLoader.app/Contents/Info.plist
Platform=osx
ServerType=postgresql
Database=Yes
SetPassword=No

You'll most probably have to tweak the paths a little to fit your configuration. I got this file from the OpenGeo Suite install. Hopefully this should be enough to point you in the right direction. Good luck!

1

R.K.'s answer is heading in the right direction. Unfortunately, the pgShapeLoader.app file is needed (within /Applications/OpenGeo/), otherwise the script with plugins.ini will now execute properly (it has no file to reference). I'm not sure the file is available anywhere other than OpenGeoSuite. Ironically, if you download the OpenGeoSuite and install postGIS from it, the phShapeLoader should already be installed and ready to go.

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.