การเพิ่มรูปร่างเข้ากับฐานข้อมูล PostGIS


30

ฉันสามารถสร้างฐานข้อมูล Postgresql จากนั้นฉันก็ดำเนินการ

createlang plpgsql geospecies
psql -d geospecies -f postgis.sql
psql -d geospecies -f spatial_ref_sys.sql

ตอนนี้ฉันสามารถนำเข้าไฟล์รูปร่างโดยตรงได้หรือไม่ นี่จะเป็นคำสั่งที่ถูกต้องหรือไม่

ogr2ogr -f PostgreSQL PG:"host=server_ip user=username dbname=dbname password=password" yourshapefile.shp;

ฉันไม่แน่ใจว่าจะจัดโครงสร้างฐานข้อมูลอย่างไรไม่จำเป็นต้องใช้ตารางหรือไม่ ในที่สุดฉันจะต้องเพิ่มเครือข่ายโหลดรูปร่างและดังนั้นจึงมีคำสั่งให้ทำเช่นนั้น?

คำตอบ:


49

ลองshp2pgsqlดู ไวยากรณ์พื้นฐานเป็นดังนี้:

shp2pgsql -s SRID SHAPEFILE.shp SCHEMA.TABLE | psql -h HOST -d DATABASE -U USER

ฉันพบว่าcheatsheetนี้จากhttp://www.bostongis.comมีประโยชน์เสมอ หากคุณเลื่อนลงมาเล็กน้อยคุณจะพบตัวอย่างง่ายๆเกี่ยวกับวิธีการโหลดข้อมูล

หวังว่ามันจะช่วย


แต่ฉันไม่มีโต๊ะ ฉันควรสร้างตารางและสคีมาใด
Sam007

1
ถ้าคุณดูที่ที่cheatsheet , (-d|-a|-c|-p)เป็นธงสำหรับตาราง หากคุณไม่ได้ระบุอะไรเลยมันจะเลือก-cตามค่าเริ่มต้น (สร้างตารางใหม่และเติมข้อมูล) ส่วนSRIDฉันไม่รู้ - ซึ่งขึ้นอยู่กับการคาดการณ์ข้อมูลของคุณ หากคุณมี.projไฟล์ที่มาพร้อมกับเชปไฟล์ที่คุณสามารถตรวจสอบของการฉายที่prj2epsg.org/search หวังว่ามันจะช่วย ..

ขอบคุณสำหรับการตอบกลับ @Haziq ฉันสับสนเพียงว่าที่-cมา? ฉันลองshp2pgsql -s 4326 /var/www/geo/shapefile/PimaPine.shp -c public.Pima | psql -h localhost -d geospecies -U smaranhแต่ฉันได้รับข้อผิดพลาดdpaste.com/834563
Sam007

ผมคิดว่า-cควรจะไปหลังจาก-s 4326และก่อน/var/www/geo/shapefile/PimaPine.shp.. shp2pgsql [OPTIONS] shapefile [schema.]tableไวยากรณ์ การเปลี่ยนตำแหน่งของเอ-cฟเฟกต์ผิดพลาดหรือไม่?

Nope ยังคงมีข้อผิดพลาดเดียวกัน มันอาจจะหันหน้าไปทางข้อผิดพลาด ROLLBACK เพื่อนนี้gis.stackexchange.com/questions/41807/ …
Sam007

4

อ่า! ยังไม่สามารถแสดงความคิดเห็น!

สิ่งที่ Haziq โพสต์จะเป็นวิธีที่ถูกต้องในการทำ Sam

TABLE เป็นเพียงสิ่งที่คุณต้องการตั้งชื่อและจะเป็นชื่อที่จะใช้เมื่อเรียกจากคิวรีตารางจะถูกสร้างขึ้นเมื่อนำเข้า

ถ้าคุณขี้เกียจเหมือนฉันฉันแค่ใช้ SPIT (Shapefile to PostGIS Import Tool) ที่มีให้เป็นปลั๊กอิน QGIS เพื่อนำเข้าไฟล์รูปร่างทั้งหมดของฉันทันที สมมติว่าคุณกำลังใช้ QuantumGIS อย่างที่คุณบอกว่าคุณเคยใช้ OpenGeo มาก่อนหน้านี้


1
ปัญหาคือฉันไม่มี GUI ฉันกำลังทำงานบนเซิร์ฟเวอร์ Ubuntu จากระยะไกล
Sam007

SPIT จะทำงานจากระยะไกลฉันทำตลอดเวลาตั้งแต่ทำงานจนถึงฐานข้อมูลที่บ้านของคุณคุณเพียงแค่กรอกข้อมูลการเชื่อมต่อเช่นเดียวกับที่คุณทำเพื่อเข้าสู่ระบบบน psql
RomaH

ฉันจะเรียกใช้งานได้อย่างไร
Sam007

ฉันสมมติว่าคุณกำลังรับไฟล์ shp ในเครื่องและวางไว้บนเซิร์ฟเวอร์ระยะไกลของคุณ คุณจะเริ่ม QGIS และใช้ปลั๊กอิน SPIT บนเครื่องท้องถิ่นของคุณเชื่อมต่อเซิร์ฟเวอร์ระยะไกลของคุณและอัปโหลด
RomaH

ไฟล์ shp ของฉันทั้งหมดอยู่ในเซิร์ฟเวอร์
Sam007
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.