±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÈçºÎµ¼ÈëÎÒÃdz£ÓõÄESRI
ShapefileÊý¾Ýµ½PostgreSQLÊý¾Ý¿âÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃPostGISÌṩµÄshp2pgsqlºÍpgsql2shp¹¤¾ß½øÐе¼ÈëºÍµ¼³ö²Ù×÷¡£
±¾ÎÄÀ´×ÔÌÚÑ¶ÔÆ×ÔýÌ壬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
PostGIS×÷ΪPostgreSQLÊý¾Ý¿âµÄ¿Õ¼äÀ©Õ¹£¬ÌṩÁ˶ԿռäÊý¾Ý¹ÜÀíµÄÖ§³Ö¡£¶ÔÓÚ¿Õ¼äʸÁ¿Êý¾Ý£¬PostGISÌṩÁËGeometryºÍGeographyÁ©ÖÖÀàÐÍÓÃÓÚ¿Õ¼ä¶ÔÏóµÄ´æ´¢£¬GeometryʹÓõѿ¨¶û×ø±êϵ£¬¶øGeographyʹÓÃÇòÃæ×ø±êϵ£¨Ä¬ÈÏÊÇWGS84×ø±êϵ£©¡£¶ÔÓÚ¿Õ¼äÕ¤¸ñÊý¾Ý£¬ÔòÌṩÁËRasterÀàÐÍ¡£
ÕâÀï½éÉÜÈçºÎµ¼ÈëÎÒÃdz£ÓõÄESRI ShapefileÊý¾Ýµ½PostgreSQLÊý¾Ý¿âÖУ¬ÎÒÃÇ¿ÉÒÔʹÓÃPostGISÌṩµÄshp2pgsqlºÍpgsql2shp¹¤¾ß½øÐе¼ÈëºÍµ¼³ö²Ù×÷£¬»¹¿ÉÒÔʹÓÃGDAL¿âÌṩµÄogr2ogr¹¤¾ß£¬ogr2ogr¹¤¾ßÖ§³Ö¸ü¼Ó¶àÑùµÄÊý¾Ý¸ñʽ¡£
ÎÒµÄʵÑé»·¾³ÈçÏ£º
OS: Ubuntu 16.04 LTS
PostgreSQL:9.5.5 £¨°²×°ºÃPostgreSQLÒÔºó¿ÉÒÔʹÓÃpsql --version½øÐв鿴£©
PostGIS: 2.2 £¨°²×°ºÃPostGIS£¬²¢ÔÚÊý¾Ý¿âÖÐÆôÓÃPostGISÀ©Õ¹ÒԺ󣬿ÉÒÔÔÚpsqlÃüÁîÐÐÖÐʹÓÃSELECT
PostGIS_Version();»òÕßSELECT PostGIS_Full_Version();½øÐв鿴¡£
ÎÒÃÇʹÓõÄÊý¾ÝÊÇÈ«Çò´óÖÞµÄÒ»¸öʸÁ¿Êý¾Ý£¬×ø±êÀàÐÍΪWGS84¡£Êý¾ÝÏÂÔØÁ´½Ó£º°Ù¶ÈÔÆÏÂÔØ
ÔÚUbuntuÖа²×°PostgreSQLºÍPostGIS·Ç³£¼òµ¥£º
Ê×ÏÈ£¬Ê¹ÓÃÈçÏÂÃüÁî°²×°PostgreSQL£º
sudo apt-get
install postgresql |
È»ºó£¬Ê¹ÓÃÈçÏÂÃüÁîÌí¼ÓUbuntuGISµÄPPAÓÃÓÚ°²×°PostGISÀ©Õ¹¡£
sudo add-apt-repository
ppa:ubuntugis/ppa
sudo apt-get update |
×îºó£¬Ê¹ÓÃÈçÏÂÃüÁî°²×°PostGIS£º
sudo apt-get
install postgis |
°²×°ºÃÁËÒÔºó£¬Ê¹ÓÃsudo -u postgres psqlÃüÁî¿ÉÒÔ½øÈëpsql½»»¥»·¾³¡£
¿ÉÒÔʹÓÃSQLÐÞ¸ÄpostgresÓû§µÄÃÜÂëalter user postgres with password
'new password'; £¨ÐÞ¸ÄÁËpostgresÓû§ÃÜÂëºÍûÓÐÐÞ¸ÄʹÓõ±Ç°Óû§µÇ¼£¬ÔÚºóÃæ²åÈëÊý¾ÝʱÃüÁî»áÉÔÓв»Í¬£©
½øÈëpsql½»»¥»·¾³ÒÔºó£¬ÎÒÃÇÊ×ÏÈ´´½¨Êý¾Ý¿â¡£
CREATE DATABASE
postgis_in_action; |
È»ºóÔÙ´´½¨Ò»¸öschema£¬ÒÔºóÎÒÃÇ¿ÉÒÔ½«ÎÒÃÇ´´½¨µÄtable¶¼´æ´¢ÔÚÎÒÃǵÄschemaÖУ¬¶ø²»ÊÇĬÈϵÄpublic
schemaÖС£
È»ºó£¬Çл»µ½ÎÒÃÇн¨µÄpostgis_in_actionÊý¾Ý¿âÖС£
È»ºóÔÚpostgis_in_actionÊý¾Ý¿âÖÐÆôÓÃPostGISÀ©Õ¹¡£
CREATE EXTENSION
postgis; |
¿ÉÒÔͨ¹ý\dxÃüÁî²é¿´°²×°µÄÀ©Õ¹£º

´´½¨ºÃÁËÊý¾Ý¿âÒÔºó£¬ÎÒÃÇ¿ÉÒÔʹÓÃ\qÃüÁîÍ˳öpsql¡£
½ÓÏÂÀ´¾ÍÊÇʹÓÃshp2psqlÃüÁîÐй¤¾ßµ¼ÈëÊý¾ÝÁË£¬ÃüÁîÈçÏ£º
shp2pgsql -s
4326 -I "continent" staging.world_continent
| psql -h localhost -p 5432 -d postgis_in_action
-U postgres -W |
Ê×ÏÈ˵Ã÷µÄÊÇshp2pgsqlµÄ²ÎÊý£¨¾ßÌå²ÎÊýʹÓÃshp2pgsql --help½øÐв鿴£©£º
-sÖ¸¶¨¿Õ¼ä²Î¿¼Ïµ£¬PostGISµÄ²Î¿¼ÏµºÍEPSG´úÂëÊÇÒ»ÑùµÄ£¬±ÈÈçEPSG:4326±íʾWGS84µØÀí×ø±êϵ
-IÖ¸¶¨ÔÚн¨µÄ¹ØÏµ±íµÄ¿Õ¼ä¶ÔÏóµÄÄÇÒ»Áн¨Á¢¿Õ¼äË÷Òý
È»ºó£¬Ë«ÒýºÅÒýÆðÀ´µÄÊÇShapefileµÄÎļþÃû³Æ£¨Ò²¿ÉÒÔ¼ÓÉÏÀ©Õ¹Ãû.shp£©
×îºóÊǹØÏµ±íµÄÈ«Ãû£¬stagingÊÇschemaÃû³Æ£¬world_continentÊǹØÏµÃû³Æ
shp2pgsqlµÄÊä³öÊÇÒ»¸ö±ê×¼µÄSQL£¬È»ºóLinuxµÄ¹ÜµÀ²Ù×÷·û¡¯|¡¯½«½á¹û´«Èëµ½psqlÖнøÐÐSQLµÄÖ´ÐС£
-hÖ¸¶¨Á¬½ÓµÄµØÖ·hostname
-pÖ¸¶¨Á¬½ÓµÄ¶Ë¿ÚºÅ
-dÖ¸¶¨Á¬½ÓµÄÊý¾Ý¿âÃû³Æ
-UÖ¸¶¨Á¬½ÓµÄÓû§Ãû
-WÖ¸¶¨ÔÚÖ´ÐÐʱµ¯³öÃÜÂëÊäÈëÌáʾ
×¢Ò⣺
ÐÞ¸ÄÁËpostgresÓû§ÃÜÂëµÄÇé¿öÏ£¬Ê¹ÓÃÉÏÃæµÄÃüÁî²åÈëÊý¾Ý¡£Ö´Ðйý³ÌÖУ¬°´ÕÕÌáʾÊäÈëpostgresÓû§µÄÃÜÂë¼´¿É¡£
Ò²¿ÉÒÔ²»¸øpostgresÓû§ÉèÖÃÃÜÂ룬ʹÓÃÈçϵÄÃüÁî²åÈëÊý¾Ý£¬Ð§¹ûÊÇÒ»ÑùµÄ¡£Æäʵ£¬raster2pgsqlÃüÁî¼°Æä²ÎÊý²»±ä£¬¾ÍÊǽøÈëpsqlÃüÁîµÄʱºò£¬ÉÔ΢ÓÐЩ²»Í¬¡£Òª²»È»»áÌáʾpassword
authentication failed for user ¡°postgres¡±´íÎó¡£
raster2pgsql
-s 4326 -C ~/Downloads/gis-data/wsiearth.tif staging.wsiearth
| sudo -u postgres psql -d postgis_in_action |
ÕâÌõÃüÁîÖ´Ðйý³ÌÖУ¬ÐèÒªÊäÈ뵱ǰÓû§µÄÃÜÂë¼´¿É¡£
Ö´Ðйý³ÌÈçÏ£º

Ö´Ðгɹ¦ÒÔºó£¬ÎÒÃÇ¿ÉÒÔ½øÈëpsql´ÓÊý¾Ý¿âÖв鿴Êý¾Ý¡£ÃüÁîÈçÏ£º\dt staging.ÆäÖУ¬stagingÊÇschemaµÄÃû³Æ£¬¿ÉÒÔ¿´µ½stagingÖÐÓÐÁ½¸ö¹ØÏµ±í¡£

´ËÍ⣬ÎÒÃÇ»¹¿ÉÒÔʹÓÃ\d staging.world_continent²é¿´world_continent¹ØÏµµÄ±í½á¹¹£º

¿ÉÒÔ¿´µ½ÕâÀïÓÐÒ»¸ögeomµÄÁС£ÔÚPostGISÖÐGeography¶ÔÏóÀàÐͱ£´æÔÚÃûΪgeogµÄÁУ¬¶øGeometry¶ÔÏóÀàÐͱ£´æÔÚgeomµÄÁС£ËùÒÔ£¬ÎÒÃǵÄÊý¾Ý±»ÒÔGeometry¶ÔÏóÀàÐͱ£´æÔÚÊý¾Ý¿â¡£Èç¹ûÒª±£´æ³ÉΪGeography¶ÔÏó£¬ÔòÐèÒªÔÚshp2psqlÃüÁîÐе¼ÈëµÄʱºò¼ÓÈë-G²ÎÊý¡£
ÏÂÃæËµËµÊý¾ÝµÄµ¼³ö£¬ÎÒÃÇ¿ÉÒÔʹÓÃpsql2shp¹¤¾ßµ¼³öÊý¾ÝΪShapefileÎļþ¡£ÃüÁîÈçÏ£º
pgsql2shp -f
~/Desktop/continent -h localhost -p 5432 -u postgres
-P [passworld] postgis_in_action staging.world_continent |
-fºóÃæÊǵ¼³öµÄÎļþȫ·¾¶
-PºóÃæ½ÓÓû§postgresµÄÃÜÂë
×îºóÃæpostgis_in_actionÊÇÊý¾Ý¿âÃû³Æ£¬staging.world_continentÊǹØÏµ±íÃû³Æ

×îºó£¬¿´¿´ÈçºÎʹÓÃQGISÖ±½ÓÁ¬½ÓPostgreSQLÊý¾Ý¿â½øÐÐÊý¾ÝÏÔʾ¡£
£¨Ìí¼ÓÁËUbuntuGISµÄPPAÒÔºó£¬ÎÒÃÇ¿ÉÖ±½ÓʹÓÃsudo apt-get install qgis
python-qgis qgis-plugin-grassÃüÁî°²×°QGIS£©
´ò¿ªQGIS£¬ÔÚ×î×ó²àµÄͼ±êÖеã»÷Add PostGIS layers£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖеã»÷Newн¨Ò»¸öÁ¬½Ó£¬ÊäÈëÁ¬½Ó²ÎÊý¡£

µã»÷Connect£¬¿ÉÒÔ¿´µ½ÎÒÃǵÄstagingÖÐÓÐÁ½¸ö¹ØÏµ±í¡£

Ñ¡Ôñworld_continent¹ØÏµ±í£¬È»ºóµã»÷Add¿ÉÒÔ½øÐÐÊý¾ÝµÄÏÔʾ¡£

|