本片文章简单记录了postgis涉及的常用数据导入导出的使用方法。
1.将osm数据导入postgis
osm2pgsql -c -d osm -l -E 4326 -S /usr/share/osm2pgsql/default.style xxxxx.osm
这里要注意几个参数,是选用-c还是-a要看你的应用方式,-S这个是在ubuntu下路径不同时使用,espg可以不用再使用900913了。自然要使得数据库采用UTF8编码最好。
osm2pgsql SVN version 0.70.5
Usage:
osm2pgsql [options] planet.osm
osm2pgsql [options] planet.osm.{gz,bz2}
osm2pgsql [options] file1.osm file2.osm file3.osm
This will import the data from the OSM file(s) into a Postgresql database
suitable for use by the Mapnik renderer
Options:
-a|--append Add the OSM file into the database without removing
existing data.
-b|--bBox Apply a bounding Box filter on the imported data
Must be specified as: minlon,minlat,maxlon,maxlat
e.g. --bBox -0.5,51.25,0.5,51.75
-c|--create Remove existing data from the database. This is the
default if --append is not specified.
-d|--database The name of the Postgresql database to connect
to (default: gis).
-i|--tablespace-index The name of the Postgresql tablespace where indexes will be create
to (default: pg_default).
-l|--latlong Store data in degrees of latitude & longitude.
-m|--merc Store data in proper spherical mercator (default)
-M|--oldmerc Store data in the legacy OSM mercator format
-E|--proj num Use projection EPSG:num
-u|--utf8-sanitize Repair bad UTF8 input data (present in planet
dumps prior to August 2007). Adds about 10% overhead.
-p|--prefix Prefix for table names (default planet_osm)
-s|--slim Store temporary data in the database. This greatly
reduces the RAM usage but is much slower.
-S|--style Location of the style file. Defaults to /usr/share/default.style
-C|--cache Only for slim mode: Use upto this many MB for caching nodes
Default is 800
-U|--username Postgresql user name.
-W|--password Force password prompt.
-H|--host Database server hostname or socket location.
-P|--port Database server port.
-e|--expire-tiles [min_zoom-]max_zoom Create a tile expiry list.
-o|--expire-output filename Output filename for expired tiles list.
-r|--input-reader Input frontend.
libxml2 - Parse XML using libxml2. (default)
primitive - Primitive XML parsing.
-O|--output Output backend.
pgsql - Output to a PostGIS database. (default)
gazetteer - Output to a PostGIS database suitable for gazetteer
null - No output. Useful for testing.
-x|--extra-attributes
Include attributes for each object in the database.
This includes the username,userid,timestamp and version.
Note: this option also requires additional entries in your style file.
-k|--hstore Generate an additional hstore (key/value) column to postgresql tables
-z|--hstore-column Generate an additional hstore (key/value) column to containing all tags
that start with the specified string,eg --hstore-column "name:" will
produce an extra hstore column that contains all name:xx tags
-G|--multi-geometry Generate multi-geometry features in postgresql tables.
-K|--keep-coastlines Keep coastline data rather than filtering it out.
By default natural=coastline tagged data will be discarded based on the
assumption that post-processed Coastline Checker shapefiles will be used.
-h|--help Help information.
-v|--verbose Verbose output.
Add -v to display supported projections.
Use -E to access any espg projections (usually in /usr/share/proj/epsg)
2.postgis导出到shap
虽说有udig可以导出成shap,但是遇到中文乱码也是一件比较令人头痛的事情。
windows下一般都是GBK,最好加着字符集设置。pgsql2shp是不带字符集参数的,那只能求PGCLIENTENCODING参数来起作用了。
export PGCLIENTENCODING=GBK
pgsql2shp osm public.planet_osm_line
关于pgsql2shp的使用说明信息:
RCSID: $Id: pgsql2shp.c 5451 2010-03-22 19:38:40Z pramsey $ RELEASE: 1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
USAGE: pgsql2shp [<options>] <database> [<schema>.]<table>
pgsql2shp [<options>] <database> <query>
OPTIONS:
-f <filename> Use this option to specify the name of the file
to create.
-h <host> Allows you to specify connection to a database on a
machine other than the default.
-p <port> Allows you to specify a database port other than the default.
-P <password> Connect to the database with the specified password.
-u <user> Connect to the database as the specified user.
-g <geometry_column> Specify the geometry column to be exported.
-b Use a binary cursor.
-r Raw mode. Do not assume table has been created by
the loader. This would not unescape attribute names
and will not skip the 'gid' attribute.
-k Keep postgresql identifiers case.
-? Display this help screen.
3.shap导入到postgis
其实shap到postgis也是比较常用的功能,主要是生成sql文件。
RCSID: $Id: shp2pgsql-core.h 5983 2010-09-19 11:27:05Z mcayland $ RELEASE: 1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
USAGE: shp2pgsql [<options>] <shapefile> [<schema>.]<table>
OPTIONS:
-s <srid> Set the SRID field. 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 <geocolumn> Specify the name of the geometry/geography column.
(mostly useful in append mode).
-D Use postgresql dump format (defaults to sql insert statments).
-G Use geography type (requires lon/lat data).
-k Keep postgresql identifiers case.
-i Use int4 type for all integer dbf fields.
-I Create a spatial index on the geocolumn.
-S Generate simple geometries instead of MULTI geometries.
-w Output WKT format (drops M and introduces coordinate drifts).
-W <encoding> Specify the character encoding of Shape's
attribute column. (default : "WINDOWS-1252").
-N <policy> NULL geometries handling policy (insert*,skip,abort).
-n Only import DBF file.
-? Display this help screen.
一定要注意使用-s -W参数。