คำถามติดแท็ก postgresql

PostgreSQL เป็นระบบฐานข้อมูลเชิงสัมพันธ์เชิงวัตถุแบบโอเพ่นซอร์ส

2
รับเส้นทางที่สั้นที่สุดหลายเส้นทางด้วย PgRouting ในแบบสอบถามหรือไม่
ฉันต้องการเรียกใช้อัลกอริธึมพา ธ ที่สั้นที่สุดในหลาย ๆ แหล่ง & เป้าหมายคู่กันในครั้งเดียวและรับผลเป็นตารางแล้วประมวลผลมัน ฉันจะทำสิ่งนี้ได้อย่างไร แบบสอบถามนี้ไม่ทำงาน: SELECT a.source, a.target, paths.* FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths; ERROR: function expression in FROM cannot refer to other relations of same query level (btw, all_to_all ไม่ได้หมายถึงทุกคนอย่างแท้จริง :) มันเป็นเพียงจำนวนคู่สุ่ม) สิ่งนี้ไม่ทำงาน: SELECT * FROM all_to_all a, ( SELECT * …

5
เร่งความเร็วการสืบค้น OpenStreetMap PostGIS
ผมมีข้อมูล OpenStreetMap เนเธอร์แลนด์โหลดลงในฐานข้อมูล PostGIS (PostgreSQL 8.3 / PostGIS 1.3.3) โดยใช้สคีออสโมซิ ซึ่งหมายความว่าแท็กทั้งหมดจะถูกเก็บไว้ในฟิลด์hstore นอกจากดัชนี GIST ที่ออสโมซิสสร้างขึ้นในฟิลด์เรขาคณิตฉันได้สร้างดัชนี GIST เพิ่มเติมในฟิลด์แท็ก พยายามค้นหาโดยใช้ทั้งข้อ จำกัด เชิงพื้นที่และข้อ จำกัด ในฟิลด์แท็กฉันพบว่าช้ากว่าที่ฉันต้องการ แบบสอบถามแบบนี้: SELECT n.geom,n.tags,n.tstamp,u.name FROM nodes AS n INNER JOIN users AS u ON n.user_id = u.id WHERE tags->'man_made'='surveillance' AND ST_Within(geom, ST_GeomFromText('POLYGON((4.0 52.0,5.0 52.0,5.0 53.0,4.0 53.0,4.0 52.0))',4326)); ใช้เวลา 22 วินาทีในการส่งคืน …

4
Global / Universal Unique Identifier ที่เหมาะสมสำหรับฐานข้อมูล PostGIS คืออะไร
ฉันได้อ่านว่าการใช้ OID เป็นคีย์หลักในฐานข้อมูล postgreSQL / PostGIS นั้นเป็นวิธีปฏิบัติที่ไม่ดีเนื่องจากมีกรณีที่สามารถรีเซ็ตสิ่งเหล่านี้ได้ ฟังดูมีเหตุผล แต่แล้วอะไรคือทางเลือกที่เหมาะสม ฉันเชื่อว่ามีตัวเลือกให้ใช้ UUID "Universal Unique Identifer" แต่ตัวอักษรและตัวเลขจำนวนมากที่คายออกมานั้นน่ากลัว พื้นหลังเพิ่มเติมเล็กน้อยกับสถานการณ์ของฉัน ฉันมีตารางเชิงพื้นที่ของฉันทั้งหมดที่สร้างขึ้นด้วยเขตข้อมูลที่เรียกว่า "gid" ซึ่งเป็นคีย์หลักสำหรับตารางนั้นและไม่ซ้ำกับตารางนั้นเท่านั้น ฉันมีปัญหาในขณะนี้เพราะฉันต้องการที่จะเชื่อมโยงตารางเชิงพื้นที่ของฉัน (ทั้งหมดที่มีเขตข้อมูล "gid" เริ่มต้นที่ 1 และเพิ่มขึ้น) เป็นหนึ่งตารางขนาดใหญ่ที่มีข้อมูลที่เกี่ยวข้อง เห็นได้ชัดว่าสำหรับความสัมพันธ์ของฉันในการทำงานคุณสมบัติเชิงพื้นที่ทั้งหมดของฉันต้องการตัวระบุที่ไม่ซ้ำซึ่งแตกต่างจากที่อื่น แก้ไขเพิ่มรูปภาพนี้ตามความคิดเห็นของ Peters Peter นี่เป็นความคิดที่ฉันมีในหัวของฉันมันอาจไม่ใช่วิธีที่ดีที่สุดที่จะไปเกี่ยวกับเรื่องนี้หรืออาจไม่ใช่การออกแบบฐานข้อมูลที่ดี ฉันสนใจในสิ่งที่คุณคิด เคล็ดลับใด ๆ

4
ฉันไม่พบ shp2pgsql ในการติดตั้ง postgis
ฉันติดตั้ง postgis ตามคู่มือนี้แล้ว ทั้งหมดก็โอเค SELECT postgis_full_version(); "POSTGIS="2.1.7 r13414" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.1, released 2013/08/26" LIBXML="2.9.1" LIBJSON="UNKNOWN" TOPOLOGY RASTER" แต่ฉันไม่มี shp2pgsql ใน/usr/lib/postgresql/9.4/binตามที่คุณเห็น: foo@bar:/usr/lib/postgresql/9.4/bin$ ls clusterdb initdb pg_dump pg_standby psql createdb oid2name pg_dumpall pg_test_fsync reindexdb createlang pg_archivecleanup pg_isready pg_test_timing vacuumdb createuser pg_basebackup pg_receivexlog pg_upgrade vacuumlo dropdb pgbench …

2
Multipoint เทียบกับ PostGIS
เป็นเรื่องปกติหรือไม่ที่จะใช้รูปทรงเรขาคณิต 'หลายจุด' แทน 'จุด' รู้ว่าฉันใช้มันเพื่อเก็บจุดเดียวหรือไม่? ฉันจะแปลงจากหลายจุดเป็นจุดได้อย่างไร

2
ทำไม vaules วันที่แสดง 'Z' ต่อท้ายเมื่อเลเยอร์ถูกเผยแพร่ด้วย Geoserver และที่เก็บข้อมูล PostGIS
ฉันได้เผยแพร่เลเยอร์ต่างๆโดยใช้ Geoserver 2.2.x พร้อมที่เก็บข้อมูล PostGIS 2.0.1 (PostgreSQL 9.1.x) ฟิลด์ที่มีค่าวันที่เท่านั้นและไม่ใช่ค่าที่เกี่ยวข้องกับเวลา / การประทับเวลาจะถูกเก็บไว้เป็นวันที่ หลังจากเผยแพร่เลเยอร์ของฉันเป็น wfs / wms และเปิดตารางในวันที่เบราว์เซอร์ vlues แสดงขึ้นพร้อมกับ 'Z' ต่อท้าย นี่เป็นผลิตภัณฑ์ของ api data store ของ geotools ที่ geoserver ใช้อยู่หรือไม่? ฉันคิดว่า api data store ของ geotools กำลังโยนผ้าห่มเหนือวันที่อ่านข้อมูลในรูปแบบ datetime, timestamp เป็นต้นและ 'z' จะปรากฏขึ้นตามเวลาของ zulu ฉันสามารถปิดโดยสิ้นเชิงกับสมมติฐานทางภูมิศาสตร์ของฉัน แต่ใน PostgreSQL 'z' หมายถึงซูลูหรือ utc หากค่าแหล่งข้อมูลถูกเก็บไว้เป็นวันที่และไม่มีส่วนประกอบเวลาทำไมจึงมี 'Z' …

2
กำลังทำความสะอาดรูปทรงเรขาคณิตใน PostGIS หรือไม่
ฉันพยายามทำการประมวลผลบางอย่างบนเลเยอร์รูปหลายเหลี่ยมที่มีขนาดใหญ่มาก อย่างไรก็ตามฉันพบข้อผิดพลาดทางเรขาคณิตหลายอย่างเช่น: NOTICE: Ring Self-intersection at or near point 470396.52017068537 141300.52235257279 CONTEXT: PL/pgSQL function st_intersection(geometry,raster,integer) line 10 at RETURN QUERY SQL function "st_intersection" statement 1 NOTICE: Ring Self-intersection at or near point 504154.61769969884 140782.04115761846 CONTEXT: PL/pgSQL function st_intersection(geometry,raster,integer) line 10 at RETURN QUERY SQL function "st_intersection" statement 1 NOTICE: Ring …

1
วิธีเพิ่มความเร็วในการทำงานพร้อมกันกับชั้น PostGIS ใน QGIS?
เรากำลังทำงานบนเลเยอร์ใหญ่ในเวลาเดียวกัน (10-20 คน) เราบางคนใช้ QGIS 2.8.1 และ 2.6 อื่น ๆ ผู้ใช้ที่มี 2.8 มีข้อผิดพลาดจำนวนมาก (QGIS) ผู้ใช้ 2.6 คนไม่มีข้อขัดข้องนี้ แต่การเพิ่มคุณสมบัตินั้นช้าอย่างไม่น่าเชื่อ เซิร์ฟเวอร์ Postgres 9.4 ทำงานบนเครื่องเสมือน (Hyper V) ด้วย Win7 อาจเป็นเครือข่ายไม่ใช่ QGIS ใช่ไหม บางทีใครบางคนอาจมีความคิด จะดี :)

1
รุ่นที่โหลดรูปร่างหลายไฟล์เพื่อ Postgis
ตามที่shp2pgsqlช่วยเหลือตัวเลือกวาง , ผนวก , สร้างและเตรียมความพร้อมเป็นพิเศษร่วมกัน ดังนั้นถ้าฉันต้องการสร้างตารางจากรูปร่างและต่อท้ายผนวกรูปร่างหลาย ๆ ไฟล์ฉันจะทำสิ่งต่อไปนี้โดยรักษาตัวนับเพื่อระบุว่าเราอยู่ในโหมดสร้างหรือผนวก cnt=0 for shp in $(ls *.shp); do if [ $cnt -eq 0 ] ; then shp2pgsql -s 27700 -c $shp schema.table_name | psql -h localhost db else shp2pgsql -s 27700 -a $shp schema.table_name | psql -h localhost db fi ((cnt++)) done ใช้งานได้ตามที่คาดไว้ …

1
รวมรูปหลายเหลี่ยมที่อยู่ติดกันและส่งคืนทั้งหมด (ติดกันและไม่ติดกัน) เป็น Multipolygon?
ฉันมีฐานข้อมูล postgres ที่มีขอบเขตการบริหารและรูปทรงเรขาคณิตของพวกเขา แต่ละขอบเขตมีจำนวนรหัส สิ่งที่ฉันต้องการบรรลุ: ก่อนอื่นฉันต้องการเลือกแถวทั้งหมดที่เริ่มต้นด้วยรหัสไปรษณีย์เฉพาะ ตัวอย่างเช่น: SELECT * FROM "post" WHERE "post"."ident" LIKE '101%' ควรผสานรวมรูปเรขาคณิตเหล่านั้นทั้งหมดที่อยู่ติดกันและที่ไม่ควรส่งคืน ฉันลองข้อความเหล่านี้แล้ว: หนึ่งนี้ฉันมีจากคำตอบนี้: เข้าร่วมรูปหลายเหลี่ยมขนาดเล็กจำนวนมากเพื่อสร้างรูปหลายเหลี่ยมขนาดใหญ่ขึ้นโดยใช้ PostGIS with t as ( select (st_dump(geom)).geom from "post" where "post"."ident" LIKE '593%' ) select ST_UNION(geom) from t; แต่คำสั่งนี้จะส่งกลับเฉพาะรูปหลายเหลี่ยมที่อยู่ติดกัน แต่ไม่รวมอยู่ในรูปอื่น with t as ( select (st_dump(geom)).geom from "post" where "post"."ident" LIKE …

1
เข้าร่วมตามการทับซ้อนสูงสุดใน PostGIS / PostGresQL
ฉันมีรูปหลายเหลี่ยมสองชุดในสองตาราง ชุดทับซ้อนกัน สำหรับรูปหลายเหลี่ยมแต่ละอันในชุด A ฉันต้องการรับ ID ของรูปหลายเหลี่ยมในชุด B ที่ซ้อนทับกันมากที่สุด ฉันใช้ PostgreSQL กับส่วนขยาย PostGIS ฉันรู้เพียงพอเกี่ยวกับ SQL ที่จะรู้ว่าคุณสามารถเข้าร่วมได้ตามเงื่อนไขจริง / เท็จเท่านั้น ดังนั้นสิ่งนี้จะไม่ทำงาน: SELECT a.id as a_id, b.id as b_id, FROM a JOIN b ON max(ST_Area(ST_Intersection(a.geom, b.geom))) เนื่องจาก max () ไม่สามารถอยู่ในอนุประโยค ON ST_Intersects()คือการทดสอบจริง / เท็จดังนั้นฉันสามารถเข้าร่วมในนั้น แต่รูปหลายเหลี่ยมในชุดมักจะทับซ้อนที่มีมากกว่าหนึ่งรูปหลายเหลี่ยมที่อยู่ในชุด B และฉันต้องการที่จะรู้ว่าที่หนึ่งซ้อนทับมากที่สุด ST_Intersects น่าจะแค่คืนค่า ID ที่ทับซ้อนกันแรกที่เจอโดยไม่คำนึงถึงขอบเขตของการทับซ้อน ดูเหมือนว่ามันควรจะเป็นไปได้ แต่มันเกินฉัน …

1
Simple PostGIS ST_ แบบสอบถามระยะทางสองจุดจากตารางเรขาคณิตเดียวกันหรือไม่
หมายเหตุ: คำถามนี้ถูกตีพิมพ์ใน Stackoverflow ที่แรก ฉันมีตารางเรขาคณิตpoints_tableด้วยSRID 4326และมีจุดอยู่สองสามจุด ฉันต้องการค้นหาระยะทางระหว่างคู่ของจุด (คุณสมบัติ) จากตารางนี้ ฉันต้องการเลือกจุดหนึ่งด้วยid = Xและอีกจุดด้วยid = Yแล้วหาระยะห่างระหว่างพวกเขาด้วยST_Distanceฟังก์ชั่น ฉันรู้วิธีค้นหาทั้งสองจุดจากฐานข้อมูล: select * from points_table where id = X or id = Y; แต่เคียวรีนี้ส่งคืนผลลัพธ์ซึ่งฉันไม่รู้ว่าจะผ่านไปได้ST_Distanceอย่างไรเนื่องจากST_Distanceรับพารามิเตอร์ 2 ตัว ฉันเหนื่อย Select ST_Distance(select the_geom from points_table where id = X or id = Y); แต่เห็นได้ชัดว่ามันผิด ฉันจะหาระยะห่างระหว่างจุดเรขาคณิตสองจุด (คุณสมบัติ) จากตารางได้อย่างไร ป.ล. ตัวอย่างทั้งหมดที่ฉันได้ค้นพบแสดงให้เห็นถึงการใช้งาน …

2
คุณจะแสดงบันทึกที่เกี่ยวข้องใน QGIS ได้อย่างไร?
มาจากพื้นหลัง esri ฉันมักจะใช้คลาสความสัมพันธ์ใน gdb เพื่อแสดงบันทึกที่เกี่ยวข้องกับคุณสมบัติ เช่น. ที่เกี่ยวข้อง 1 จุดสำรวจกับเอกสารภาพถ่ายและอื่น ๆ ไม่มีใครรู้วิธีการทำสิ่งที่คล้ายกันใน QGIS? Ando PS ฉันใช้ PostGreSQL 8.4.1 และ PostGIS 1.4 และลูกค้าของฉันคือ QGIS

1
การสร้างดัชนีภาพ?
การสร้างภาพข้อมูล / สถิติประเภทใดที่ฉันจะได้รับจากดัชนี GiST ของ PostGIS ถ้าเราดูรายการต้นไม้ R ของวิกิพีเดียมีรูปแบบ R-tree ที่แตกต่างกันและการสร้างภาพข้อมูลของกล่องขอบเขตของแต่ละกล่องโดยใช้ ELKI ดัชนี GiST นั้นคล้ายคลึงกับดัชนี R-Tree ดังนั้นมีวิธี / ส่วนขยายสำหรับการสร้างภาพชนิดนี้ (อาจผ่าน QGIS)? แก้ไข: นี่มันเป็นภาพ - สิ่งนี้ประสบความสำเร็จได้อย่างไร

1
การแสดงตาราง PostgreSQL แรสเตอร์ใน QGIS
ฉันได้นำเข้าภาพแรสเตอร์ tif ไปยัง PostgreSQL ด้วยคำสั่งนี้: raster2pgsql -s 32643 -I -M filepath.tif -F -t 100x100 public.databassename > filepath.sql และอิมพอร์ตไฟล์ SQL เอาต์พุตภายในฐานข้อมูล PostgreSQL ที่รันสิ่งนี้: psql -U postgres -d databasename -f filepath.sql หลังจากเชื่อมต่อกับฐานข้อมูลนี้ใน QGIS ฉันไม่สามารถเห็นภาพ tif เนื่องจากเนื้อหาทางเรขาคณิตขาดหายไป โปรดช่วยฉันออกไปเห็นภาพ TIF Raster ใน QGIS

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