กำลังนำเข้า. shp ไปยัง PostgreSQL


14

ฉันต้องการนำเข้าไฟล์ shp ไปยัง postgreSQL ก่อนอื่นฉันสร้างไฟล์ sql แล้วเรียกใช้ PostgreSQL เพื่อสร้างไฟล์ sql ฉันเรียกใช้คำสั่งนี้ใน windows cmd:

shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql

จากนั้นเรียกใช้:

psql -d postgres -U postgres -p 4321 -f worldcountries.sql

แต่ผลลัพธ์คือ:

psql: worldcountries.sql: 21: ข้อผิดพลาด: ฟังก์ชัน addGeometrycolumn (ไม่ทราบ, ไม่ทราบ, ไม่ทราบ, ไม่ทราบ, ไม่ทราบ, จำนวนเต็ม)

คำตอบ:


13
ERROR: **function addGeometrycolumn**(unknown, unknown, unknown, unknown,unknown, integer) does not exist

ดูเหมือนว่าPostGISยังไม่ได้ติดตั้ง PostGIS เป็นส่วนเสริมของ Postgres ที่อนุญาตให้ใช้ไฟล์ทางภูมิศาสตร์

ติดตั้งและนำเข้าของคุณจะทำงานได้ดี


3
และคำสั่งคือpostgis.net/docs/..."CREATE EXTENSION postgis;"
user30184

1
@ user30184 ถูกต้องแน่นอน แต่โปรดทราบว่านี่ถือว่า PostgreSQL 9.1 หรือสูงกว่า (มีเหตุผลน้อยมากที่จะใช้อะไรที่เก่ากว่าในความคิดของฉัน.)
jpmc26


1

คุณสามารถใช้ build in import plugin ที่ติดตั้งเมื่อคุณติดตั้งส่วนขยาย PostGis ใน PostgreSQL คุณสามารถค้นหาได้ภายใต้ปลั๊กอินในเมนูและเรียกว่า PostGIS Shapefile และตัวโหลด DBF

ดูวิดีโอyoutube นี้เป็นตัวอย่าง


0

คุณมีโปรเจคที่แตกต่างกันใน psql ของคุณ และไม่จำเป็นต้องมีการฉายภาพ มีสคีมาที่คุณต้องการเพิ่มไฟล์รูปร่างหรือไม่

สิ่งนี้น่าจะใช้ได้:

shp2pgsql -s 4326 -I worldcountries.shp schema.worldcountries > dr_worldcountries.sql

psql -f worldcountries.sql -h [host] -d [database] -U postgres

3
-pสำหรับpsqlบอกว่าพอร์ตของเซิร์ฟเวอร์ไม่ใช่เส้นโครง การฉายภาพจะถูกฝังอยู่ในสคริปต์ SQL ดูคู่มือที่ดีสำหรับpsqlพฤติกรรมของ ในกรณีนี้พอร์ตที่ OP ระบุไม่ใช่พอร์ตเริ่มต้นดังนั้นจึงจำเป็นต้องใช้ ฉันมักจะแนะนำให้ต่อต้านการจัดเก็บรูปร่างโดยไม่ต้องฉาย สิ่งนี้จำกัดความสามารถของคุณในการเปลี่ยนการฉายภาพซึ่งจะเป็นประโยชน์สำหรับการคำนวณที่แม่นยำยิ่งขึ้น
jpmc26
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.