วิธีการนำเข้าโดยใช้ shp2pgsql


11

ฉันต้องการนำเข้า shapefile ลงใน PostGIS มีฐานข้อมูลหนึ่งpostgresอยู่ในนั้น แต่ยังไม่มีการเพิ่มตาราง

ฉันใช้คำสั่งนี้:

shp2pgsql -I -s 4326 districts.shp districts | psql -d postgres -U postgres 

และมันทำให้ฉันมีข้อผิดพลาด:

ไม่สามารถแปลงค่าข้อมูลเป็น UTF-8 (iconv รายงานว่า "ไม่ถูกต้องหรือไม่สมบูรณ์อักขระไบต์หรืออักขระกว้าง") การเข้ารหัสปัจจุบันคือ "UTF-8" ลองใช้ "LATIN1" (ยุโรปตะวันตก) หรือหนึ่งในค่าที่อธิบายไว้ที่ postgresql.org/docs/current/static/multibyte.html

คำสั่งของฉันผิดหรือเปล่า?

คำตอบ:


29

คุณได้ลองทำ-W "latin1"ธง? บางครั้งการเข้ารหัสเริ่มต้น (UTF-8) ทำงานได้ไม่ดี บางทีคุณอาจจะโชคดีกว่าด้วยการเข้ารหัส latin1:

shp2pgsql -I -s 4326 -W "latin1" districts.shp districts | psql -d postgres -U postgres

มีประโยชน์แผ่นโกงที่มีอยู่เป็นที่นี่

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


1
อืม .. คุณติดตั้งส่วนขยาย PostGIS ในpostgresฐานข้อมูลอย่างถูกต้องหรือไม่ หากคุณยังไม่ได้: นี่อาจช่วยได้ ..

โดยปกติถ้าmake installทำงานคุณสามารถไปยังกระบวนการถัดไป ( make checkเป็นขั้นตอนก่อนหน้าmake install) .. หากคุณสามารถเชื่อมต่อกับฐานข้อมูลของคุณผ่าน psql / pgadmin3 - นั่นหมายความว่าการติดตั้งของคุณสำเร็จ คุณสามารถไปยังขั้นตอน "สร้างฐานข้อมูลเชิงพื้นที่" ได้หรือไม่? ฉันแนะนำให้ใช้วิธีการ EXTENSIONS ..

เพื่อนนี่มันไกลเกินไปจากคำถามเดิมของคุณฮ่า ๆ .. มันยากหน่อยที่จะช่วยคุณที่นี่เมื่อมีตัวแปรจำนวนมากในการเล่น: คุณใช้ PostgreSQL เวอร์ชันไหน?; กับระบบแบบไหน?; คุณกำลังพยายามติดตั้ง PostGIS เวอร์ชันใด ดูเหมือนว่าจะไม่รู้จัก"CREATE EXTENSION"ไวยากรณ์ .. การพิมพ์อย่างเดียว: นำpsql -d geocoding -U postgresคุณเข้าสู่geocodingฐานข้อมูลได้สำเร็จหรือไม่?

ความผิดฉันเอง. จากนั้นคุณควรติดตาม2.5 สร้างฐานข้อมูลที่เปิดใช้งานเชิงพื้นที่ใน PostgreSQL ต่ำกว่า 9.1ส่วน .. หากคุณยังพบปัญหาฉันขอแนะนำให้คุณเปิดคำถามใหม่ - เพื่อให้คุณได้รับคำตอบที่ดียิ่งขึ้น;)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.