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

PostGIS เป็นส่วนเสริมสำหรับฐานข้อมูลเชิงสัมพันธ์เชิงวัตถุของ PostgreSQL ที่เพิ่มการรองรับวัตถุทางภูมิศาสตร์

1
PostGIS: วิธีผสานคุณสมบัติที่ต่อเนื่องกันซึ่งใช้ค่าคุณลักษณะเดียวกัน
ฉันมีตาราง PostGIS ขนาดใหญ่ที่จัดเก็บคุณสมบัติของเส้น ฉันต้องการรวมคุณสมบัติที่เชื่อมต่อซึ่งกันและกันและให้ค่าคุณลักษณะเหมือนกัน นี่คือตัวอย่างด้านล่างของสิ่งที่ฉันต้องการบรรลุ ฟีเจอร์ outmost (สีดำและสีน้ำเงิน) ไม่ได้ถูกผสานเพราะไม่มีที่อยู่ติดกันแม้ว่าค่าคุณลักษณะจะเหมือนกัน มีการรวมกันของคุณสมบัติสีเขียวและสีแดงเนื่องจากตรงกับเงื่อนไขทั้งสอง คุณสมบัติสีเหลืองถูกทิ้งไว้เหมือนเดิม คุณจะทำให้สำเร็จด้วยแบบสอบถาม SQL ได้อย่างไร

1
ทำไม QGIS ไม่ตรวจจับ CRS จากไฟล์. prj
ฉันมีกริดหกเหลี่ยมจำนวน 1 กม. ที่ครอบคลุมมณฑลต่างๆในสหรัฐอเมริกาในฐานข้อมูล postgreSQL / postGIS แต่ละตารางมี CRS EPSG: 3857 และชั้นเขตมี EPSG: 3857 เมื่อดูกริดกับมณฑลใน QGIS ทุกอย่างดูดี แต่ ... เพื่อแบ่งปันกริดเหล่านี้กับเพื่อนร่วมงานฉันต้องส่งออกไปยังรูปร่างไฟล์โดยใช้ ogr2ogr การดูข้อมูลเหล่านี้ใน QGIS แต่ละตารางจะมีการเลื่อนขึ้นประมาณ 20 กม. และ QGIS จะตั้งค่า CRS เป็น EPSG โดยอัตโนมัติ: 3395 (ซึ่งไม่ใช่ CRS ของโครงการ) เมื่อฉันส่งออกตาราง PostGIS เป็น shapefiles จาก QGIS , ดูไฟล์ .prj ว่าเช่นเดียวกับการส่งออก shapefiles ogr2ogrแต่ PostGIS …
9 qgis  postgis  ogr2ogr  epsg 

1
เพิ่มประสิทธิภาพจุดที่มีขนาดใหญ่มากในการค้นหารูปหลายเหลี่ยม
ฉันมีชุดข้อมูลที่อยู่แห่งชาติ (37 ล้านชุด) และชุดข้อมูลรูปหลายเหลี่ยมของชุดข้อมูลน้ำท่วม (2 ล้าน) ประเภท MultiPolygonZ ประเภทของรูปหลายเหลี่ยมมีความซับซ้อนมาก ST_NPoints สูงสุดอยู่ที่ประมาณ 200,000 ฉันกำลังพยายามระบุโดยใช้ PostGIS (2.18) ซึ่งจุดที่อยู่ในรูปหลายเหลี่ยมน้ำท่วมและเขียนสิ่งเหล่านี้ไปยังตารางใหม่ที่มีที่อยู่ ID และรายละเอียดความเสี่ยงน้ำท่วม ฉันได้ลองจากมุมมองที่อยู่ (ST_ ภายใน) แต่จากนั้นสลับมุมมองนี้เริ่มต้นจากมุมมองของพื้นที่น้ำท่วม (ST_Contains) เหตุผลว่ามีพื้นที่ขนาดใหญ่ที่ไม่มีความเสี่ยงจากน้ำท่วมเลย ชุดข้อมูลทั้งคู่ได้รับการทำซ้ำเป็น 4326 และทั้งสองตารางมีดัชนีเชิงพื้นที่ ข้อความค้นหาด้านล่างของฉันทำงานเป็นเวลา 3 วันในขณะนี้และไม่แสดงสัญญาณว่าจะเสร็จเร็ว ๆ นี้! select a.id, f.risk_factor_1, f.risk_factor_2, f.risk_factor_3 into gb.addresses_with_flood_risk from gb.flood_risk_areas f, gb.addresses a where ST_Contains(f.the_geom, a.the_geom); มีวิธีที่เหมาะสมที่สุดในการเรียกใช้หรือไม่ นอกจากนี้สำหรับเคียวรีที่รันนานชนิดนี้วิธีที่ดีที่สุดในการติดตามความคืบหน้านอกเหนือจากการดูการใช้ทรัพยากรและ pg_stat_activity …

2
วาดเส้นระหว่างจุดที่ระยะทางเฉพาะใน PostGIS?
ฉันมีข้อมูลจุดตามถนนฉันต้องการเปลี่ยนจุดเหล่านั้นเป็นเส้นสีเรียบง่าย พอยน์เตอร์ใดที่ปัญหานี้อาจถูกเรียกหรืออัลกอริธึมที่สามารถช่วยฉันแก้ปัญหานี้ได้? ฉันหวังว่าจะใช้PostGISฟังก์ชั่นในการทำสิ่งนี้ แต่ฉันเปิดรับข้อเสนอแนะนี่เป็นข้อมูลจาก.shpไฟล์ แก้ไข 1: อัปเดตรูปภาพเพื่อแสดงวิธีแก้ปัญหาในอุดมคติ การวาดเส้นจะขึ้นอยู่กับระยะห่างระหว่างจุดนั้นอย่างหมดจดไม่มีอะไรที่ฉันสามารถใช้เพื่อจัดกลุ่มพวกเขาโดย เป็นการดีที่นี่จะเป็นคะแนนที่ระยะทางสูงสุดที่ระบุไว้ตามเส้นที่ฉาย? และโดยเส้นที่ฉายผมหมายถึงหาจุดที่ 1 จากนั้นจุดต่อไปที่ใกล้ที่สุดจากนั้นฉายเส้นและตรวจสอบว่ามีจุดใด ๆ ในบรรทัดนี้ที่ระยะทางสูงสุดกับจุดใดจุดหนึ่งที่อยู่บนเส้น
9 postgis  line 

1
เซิร์ฟเวอร์ QGIS ส่งการอัปเดต ... WHERE NULL ไปยัง postgis ในเลเยอร์ WFS
ฉันใช้เซิร์ฟเวอร์ Windows Server 2012 PostgreSQL 9.3.5, 64-bit POSTGIS 2.1.3 เซิร์ฟเวอร์ QGIS 2.6.1-2 QGIS Desktop 2.8.3 และ 2.12 ฉันใช้แท็บเล็ต Microsoft Surface Pro 4 โดยใช้ QGIS Desktop 2.12 เพื่อแก้ไขเลเยอร์บางอย่างในฐานข้อมูล Postgresql เลเยอร์ในแท็บเล็ตคือเลเยอร์ WFS ที่ให้บริการโดยเซิร์ฟเวอร์ QGIS เมื่อฉัน toogle แก้ไขหลังจากใส่ข้อมูลบางอย่างในเลเยอร์เพื่อบังคับให้ส่งและเก็บข้อมูลในเซิร์ฟเวอร์บางครั้งการอัปเดตไม่ได้ทำในฐานข้อมูล ฉันเห็นว่าคำขอ POST http มาถึงเซิร์ฟเวอร์แล้ว แต่บางครั้งฉันไม่เห็นคอมมิชชัน (อัปเดต) ในฐานข้อมูลและบางครั้งก็ทำงานได้ดีและยอมรับได้ ในบันทึกของเซิร์ฟเวอร์ QGIS ฉันสามารถเห็น (ฉันอัปเดตข้อมูลคุณลักษณะ 3 อย่างใน QGIS Desktop): …

1
การเพิ่มเลเยอร์ PostGIS จากปลั๊กอิน QGIS Python
ฉันพยายามพัฒนาปลั๊กอินเพื่อเพิ่มเลเยอร์ postgis ลงใน qgis จากปลั๊กอินซึ่งเป็นส่วนหนึ่งของการเรียนรู้ภาษาไพ ธ อน รหัสสำหรับการเพิ่มเลเยอร์ postgis ถูกนำมาจากตำราอาหารและทำงานได้ดีถ้าฉันเรียกใช้จากคอนโซล Python ภายใน qgis (หากกดปุ่ม OK ในกล่องโต้ตอบผลลัพธ์ == 1 และควรเพิ่มเลเยอร์ของฉันไปยัง qgis) แต่ถ้าฉันเรียกใช้จากปลั๊กอินมันจะพ่นข้อความ NameError: ชื่อ 'QgsDataSourceURI' ไม่ได้ถูกกำหนดไว้ เหตุใดฉันจึงได้รับข้อผิดพลาดในการเรียกใช้จากปลั๊กอิน ฉันจะเพิ่มเลเยอร์จากปลั๊กอิน / ภายในฟังก์ชั่นกับความแตกต่างจากคอนโซลหลามได้หรือไม่ def run(self): """Run method that performs all the real work""" # show the dialog self.dlg.show() # Run the dialog event loop …

1
การวิเคราะห์รูปหลายเหลี่ยม PostGIS (การวางแนวความยาวขอบ)
ฉันค่อนข้างใหม่ในโลกของ GIS และโดยเฉพาะอย่างยิ่ง PostGIS ดังนั้นโปรดขอโทษด้วยถ้าคำตอบดูเหมือนชัดเจน ... ฉันต้องการทำการวิเคราะห์เกี่ยวกับอาคารหลายหลัง สิ่งหนึ่งที่ฉันสนใจคือพื้นผิวด้านหน้าของพวกเขาพร้อมกับทิศทางที่เกี่ยวข้อง ดังที่แสดงในภาพด้านล่างฉันต้องการมีความยาวและการวางแนว (ปกติ) ของขอบทั้งหมดในชุดรูปหลายเหลี่ยม ในตัวอย่างฉันเน้นเพียงพื้นผิวเดียว ตารางผลลัพธ์อาจมีลักษณะเช่นนี้: building_id | edge_id | orientation | edge_length ------------------------------------------------- 1 | 1 | 315 | 10.0 1 | 2 | 45 | 7.0 1 | ... | ... | ... อย่างไรก็ตามฉันไม่แน่ใจว่ามันเป็นวิธีที่ฉลาดในการจัดเก็บผลลัพธ์เพื่อการประมวลผลเพิ่มเติม (เช่นคำนวณระยะทางจากขอบไปยังอาคารถัดไป ฯลฯ ) ดังนั้นคำถามของฉันคือสองเท่า: มีฟังก์ชัน PostGIS ที่มีประสิทธิภาพที่สามารถวิเคราะห์ขอบของรูปหลายเหลี่ยมได้หรือไม่ …

2
วิธีการ ST_Split คุณสมบัติในตารางหนึ่งโดยคุณสมบัติในอื่น
ฉันต้องการแยกรูปหลายเหลี่ยม (เลเยอร์ 'pol') โดย linestrings ทั้งปิดและไม่ปิด (เลเยอร์ 'lin') น่าเสียดายที่ฉันไม่ได้รับผลลัพธ์ที่ถูกต้องในการใช้แบบสอบถาม CREATE VIEW splitted_pol AS SELECT g.path[1] as gid, g.geom::geometry(polygon, SRID) as geom FROM (SELECT (ST_Dump(ST_Split(pol.geom, lin.geom))).* FROM pol, lin ) as g; ในตัวอย่างของฉัน ST_Split ควรสร้างรูปหลายเหลี่ยมหกรูป (เลเยอร์ 'splitted_pol') ใครบ้างรู้วิธีใช้ ST_Split กับ QGIS / PostGIS

1
แบบสอบถามแบบเรียกซ้ำ PostGIS ตามการเชื่อมต่อสาย
ฉันมีปัญหาในการค้นหา ฉันมีเครือข่ายของ linestrings แต่ละอันมีค่าในคอลัมน์ n_type นี่อาจเป็นหนึ่งในตัวเลือกมากมาย ฉันต้องการสร้างตารางใหม่ที่จัดกลุ่ม linestrings ใด ๆ ที่เป็นประเภทเดียวกันและสร้างบรรทัดต่อเนื่อง ก่อน: หลังจาก: นี่คือสิ่งที่ฉันได้รับจนถึง มันส่งคืนผลลัพธ์ แต่ไม่สมเหตุสมผล - ประเภทไม่ตรงกันและส่งคืนคุณสมบัติมากเกินไป โปรดทราบว่าฉันได้กำหนด "ต่อเนื่อง" เป็นบรรทัดใด ๆ ที่อยู่ในระยะ 5 ฟุตจากเพื่อนบ้านและพบกันที่มุมต่ำกว่า 30 องศา WITH RECURSIVE all_links (i, pk_uid, n_type, geom) AS ( SELECT 1 AS i, pk_uid, n_type, geom FROM network WHERE n_type != 'none' UNION …
9 postgis 

3
วิธีการแปลงไอโซลีนเป็นไอโซโทปกอนด้วยโพสต์จิส?
ฉันมีตารางหนึ่งตารางของ isolines ที่กำหนดไว้ดังนี้: CREATE TABLE myisolines ( gid serial NOT NULL, isotime timestamp without timezone, val numeric(10,4), geom geometry(LineString,4326) ); เห็นวัตถุ linestring นี้มีลักษณะดังนี้: ฉันรู้ขอบเขตของข้อมูลของฉันดังนั้นฉันสามารถเพิ่ม Bbox ได้ดังนั้น LineStrings จึงสามารถปิดได้ ฉันต้องการสร้างตารางของ isopolygons myisopolygonsจากmyisolinesตารางที่มีรูปหลายเหลี่ยมที่จะไม่ทับซ้อนกัน แต่สร้างพื้นผิวต่อเนื่องและมีคอลัมน์ที่valมีvalisolines ต่ำสุดซึ่งเป็นรูปหลายเหลี่ยมที่เกิดขึ้น ฉันเข้าใจว่ามันสามารถเกิดขึ้นได้จากตัวแยกไอโซ (เกาะ) หรือไอโซที่ปิดด้วย bbox ในกรณีนั้นvalควรนำมาจากไอโซนั้น มองเห็นควรมีลักษณะดังนี้: ฉันคิดว่าฉันสามารถสร้างโทโพโลยีแล้วเปลี่ยนรูปใบหน้าเป็นรูปหลายเหลี่ยมได้ แต่ฉันไม่เข้าใจวิธีการทำอย่างถูกต้อง สิ่งนี้สามารถทำได้? อีกทางเลือกหนึ่งคือการใช้ฟังก์ชั่นความแตกต่างระหว่าง bbox และรูปหลายเหลี่ยมที่สร้างขึ้นซ้ำ ๆ แต่ฉันคิดว่านั่นไม่ใช่วิธีที่ถูกต้องที่จะทำและไม่เร็วเลย

2
หนึ่งป้ายสำหรับถนนสองเลน (osm, qgis, postgis)
ฉันติดป้ายชื่อ osm-lines-layer (PostGIS) ของฉันพร้อมสัญลักษณ์สำหรับถนนสายหลักและมอเตอร์เวย์ ในขณะที่สัญลักษณ์สำหรับถนนสายหลักนั้นถูกวางไว้อย่างดีโดยมีระยะห่างระหว่างกันพอสมควรมอเตอร์เวย์สองเลนจะมีป้ายกำกับหนึ่งป้ายต่อหนึ่งเลน (ดังที่คุณเห็นในภาพ) เป็นไปได้ไหมที่จะตั้งค่าบางอย่างเช่นรัศมีจากป้ายกำกับแต่ละป้ายจะไม่สามารถวางป้ายประเภทเดียวกันอื่น ๆ ได้ หรือฉันจะพูดได้ว่าติดป้ายถนนเลนเดียวของถนนสองเลน? ฉันกำลังใช้ qgis OSM-Data ถูกนำเข้าไปยัง PostGIS ด้วย osm2pgsql แก้ไข: ภาพหน้าจอใหม่นี้แสดงรายละเอียดเพิ่มเติม:

2
ฉันจะคำนวณระยะทางแมนฮัตตันด้วย PostGIS ได้อย่างไร
ฉันใช้ฟังก์ชัน ST_Distance เพื่อคำนวณระยะทางระหว่างรูปทรงเรขาคณิตสองแห่ง (สถานีรถไฟและอาคาร) เนื่องจากฉันรู้ว่าอาคารทุกหลังและสถานีรถไฟทั้งหมดอยู่ในชิคาโกซึ่งมีตารางถนนที่ยอดเยี่ยม / สมบูรณ์ฉันต้องการใช้แมนฮัตตัน (หรือรถแท็กซี่) ระยะทาง สูตรทั่วไปสำหรับสิ่งนี้คือความแตกต่างใน X บวกความแตกต่างใน Y ดังนั้น Abs (X1-X2) + Abs (Y1-Y2) แบบสอบถามใดของ PostgreSQL ที่จะใช้งานได้

1
การแก้ไขเลเยอร์ Raster: ผู้ให้บริการไม่ใช่ข้อผิดพลาดที่ถูกต้องเมื่อโหลด PostGIS rasters?
ฉันรวบรวมและติดตั้งต้นแบบ QGIS ปัจจุบันตามปกติและฉันนำเข้าข้อมูลแรสเตอร์ลงในฐานข้อมูล 9.3 ของฉันที่มีส่วนขยาย postgis 2.0.2 เมื่อใดก็ตามที่ฉันพยายามนำเข้าข้อมูลแรสเตอร์เป็น qgis โดยใช้ตัวจัดการฐานข้อมูลฉันได้รับข้อความนี้: GDAL provider: Cannot get GDAL raster band: Raster layer: Provider is not valid (provider: gdal, URI: PG: dbname=gis host=127.0.0.1 user=xxx password=xxx port=5432 mode=2 schema=public table=elevation ในบรรทัดคำสั่งฉันได้รับ ERROR 1: Computed PostGIS Raster dimension is invalid. You've probably specified unappropriate resolution. ฉันไม่รู้ว่าจะค้นหาข้อผิดพลาดได้ที่ไหน …

1
คำนวณกราฟการมองเห็นบนทรงกลม
ฉันมีตาราง PostGIS พร้อมรูปหลายเหลี่ยม (จัดเก็บโดยใช้ชนิดข้อมูลภูมิศาสตร์) พวกเขาเป็นตัวแทนของภูมิภาคบนโลกทรงกลม สำหรับจุดยอดแต่ละคู่ที่เลือกจากรูปหลายเหลี่ยมทั้งหมดฉันต้องการคำนวณว่าจุดยอดสองจุดนั้นเป็น "มองเห็น" ซึ่งกันและกันหรือไม่ (มีn * ( n -1) / 2 คู่ดังกล่าวโดยที่nคือจำนวนจุดยอดรวมที่ไม่ซ้ำกันของรูปหลายเหลี่ยมทั้งหมดในตาราง) โดย "มองเห็นซึ่งกันและกัน" ฉันหมายความว่าเส้นทางวงกลมใหญ่ระหว่าง สองจุดยอดไม่ตัดรูปหลายเหลี่ยมใด ๆ ในตาราง วิธีที่เร็วที่สุดในการคำนวณคืออะไรโดยเฉพาะอย่างยิ่งใน PostgreSQL / PostGIS ฉันมีบางอย่างที่ใช้งานได้ แต่มันช้า ฉันเพียงแค่ทำซ้ำทุก ๆ คู่และดูว่า LineString ระหว่างพวกเขาตัดกันรูปหลายเหลี่ยมใด ๆ (ประเภทข้อมูลภูมิศาสตร์ของ PostGIS จัดการกับคณิตศาสตร์อย่างหนักทั้งหมดบนทรงกลมสำหรับฉัน) ดังนั้นฉันจึงสงสัยว่ามีโครงสร้างข้อมูลหรืออัลกอริทึมที่ชาญฉลาดที่อาจทำให้สิ่งต่าง ๆ เร็วขึ้น

4
รับชนิดข้อมูลของแต่ละคอลัมน์จากตาราง PostGIS
ฉันต้องการรับชนิดข้อมูลคอลัมน์ของคอลัมน์ทั้งหมดในตารางรวมถึงชนิดรูปทรงเรขาคณิต สิ่งที่ฉันอยากรู้คือถ้ามีฟังก์ชั่นหรือ SQL ที่ให้อะไรเช่นนี้: column_name | data_type ------------+-------------- gid | integer descr | character varying(32) class | character varying(10) area | double precision geom | geometry(Polygon,3763) จากคำตอบเล็ก ๆ น้อย ๆ เกี่ยวกับstackexchangeและgis.stackexchangeฉันรู้ว่าฉันสามารถรับข้อมูลบางอย่างได้ด้วยแบบสอบถามต่อไปนี้: SELECT g.column_name, g.data_type, g.character_maximum_length, g.udt_name, f.type, f.srid FROM information_schema.columns as g JOIN geometry_columns AS f ON (g.table_schema = f.f_table_schema …
9 postgis 

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