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

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

2
PostgreSQL / PostGIS ดัชนีเชิงพื้นที่ - ไม่เร่งความเร็ว
ฉันมีตารางเชิงพื้นที่ในฐานข้อมูล PostgreSQL / PostGIS ทุกแถวในนั้นหมายถึงรูปหลายเหลี่ยม มันเป็นรูปแบบดังต่อไปนี้: +----+--------+ |gid | way | +----+--------+ |241 | 01030..| คอลัมน์รูปทรงเรขาคณิตคือ "วิธี" ซึ่งมีรูปทรงเรขาคณิตสำหรับรูปหลายเหลี่ยม ใน WKT คือ: POLYGON (('.... ')) ฉันกำลังทำแบบสอบถาม ST_Contains จำนวนมากในตารางนี้เพื่อทดสอบว่ามีรูปหลายเหลี่ยมสองอันอยู่ในกันและกันหรือไม่เช่น: Select ST_Contains(a.way, b.way) From table AS a, table AS b Where a.gid = 15 And b.gid = 16 ฉันสงสัยว่าจะเพิ่มความเร็วข้อความค้นหานี้อย่างไรและเพิ่มดัชนีเชิงพื้นที่ในตาราง: CREATE INDEX table_way_gist ON …

3
เข้าร่วมเส้นตัดกันกับ PostGIS
นี่คือสิ่งที่ฉันเกือบจะละอายใจที่จะถาม แต่ฉันดูเหมือนจะไม่สามารถทำงานให้กับชีวิตของฉันได้ ฉันมีเลเยอร์ถนนที่มีเซ็กเมนต์แต่ละเซกเมนต์มีRoad IDและเซกเมนtypeต์ ฉันต้องการที่จะเข้าร่วมทุกภาคส่วนร่วมกันสำหรับแต่ละRoad IDเป็นหนึ่ง LineString แต่เมื่อพวกเขาเป็นเดียวกันtypeและมีการสัมผัส (สายทั้งหมดจะ snaped กัน) Road ID - Type 1 L 1 L 1 T 1 L
15 postgis  sql 

4
การออกแบบฐานข้อมูล: โทโพโลยีถนนใน GIS
มีวิธีมาตรฐานหรือวิธีปฏิบัติที่ดีที่สุดในการจัดเก็บคุณลักษณะบางอย่างเกี่ยวกับถนน: ทิศทางของถนน: ถนนเดินรถทางเดียว:ถนนที่ไปในทิศทางเดียวเท่านั้น เลนกลางเลี้ยว:ถนนที่มีอยู่ระหว่างสองเลนเลนใดเลนหนึ่งสามารถใช้เพื่อเลี้ยวซ้ายหรือขวาเช่นนี้ การสับเปลี่ยนทางหลวงทางลาดและรวมเลน ฟังก์ชั่นถนน: รูปแบบทางแยก (มีสัญญาณหรือไม่มีสัญญาณ): การรวมรูปแบบการอนุญาตที่ต่างกันและไม่อนุญาตของการแยกลงใน db เช่น: No-U เปลี่ยน เลี้ยวซ้ายบนกรีน (หรือไม่) รอบสีเขียวและเวลา กระตุ้นเมื่อเทียบกับวิธีที่ไม่กระตุ้นในทางแยก กฎทางด้านขวา: ทางแยกบางแห่งอาจมีกฎด้านขวาของทางที่แตกต่างจากกฎทั่วไป ยกตัวอย่างเช่นถนนที่มีเนินเขาซึ่งทุกคนจะต้องหยุดที่ป้ายหยุดรถยกเว้นคนที่กำลังเดินทางขึ้นเขา พวกเขาไม่มีป้ายหยุดดังนั้นการจราจรทั้งหมดจะต้องให้พวกเขา

6
วิธีการใช้ ST_Intersection
ต่อไปนี้เป็นข้อมูลสรุปโดยย่อเกี่ยวกับสิ่งที่ฉันพยายามทำ: ฉันมี 3 ตารางใน Postgres, 'a' และ 'b', แต่ละอันมีคอลัมน์รูปหลายเหลี่ยมและ 'c' มีคอลัมน์จุด สิ่งที่ฉันพยายามทำที่นี่คือการหาจุดตัดรูปทรงเรขาคณิตระหว่าง 'a', 'b' และ 'c' และเพื่อแสดงรูปทรงเรขาคณิตดังกล่าวบนเลเยอร์เวกเตอร์ของเลเยอร์ OpenLayers ฉันรู้วิธีแสดงรูปทรงเรขาคณิตแบบใด ๆ จากสตริงใน OpenLayers แต่ฉันมีปัญหากับฟังก์ชัน ST_Intersection ของ PostGIS ฉันกำลังทำสิ่งนี้: SELECT ST_Intersection(a.geom, b.geom) as inter from a, b; โดยที่ a.geom และ b.geom เป็นทั้งคอลัมน์รูปทรงเรขาคณิตและฉันได้รับข้อความแสดงข้อผิดพลาดนี้: NOTICE: TopologyException: found non-noded intersection between 515172 2.14408e+06, 497067 2.13373e+06 …

6
PostGIS: กำหนด ID ของจุดในเลเยอร์ A ไปยังจุดที่ใกล้เคียงที่สุดในชั้น B
นี่น่าจะเป็นสารตั้งต้นที่ชัดเจน (ที่ฉันไม่ได้ถาม) กับคำถามอื่น ๆ ของฉัน: วิธีสร้างไดอะแกรมเดอร์ (ฮับไลน์) ใน PostGIS ได้อย่างไร หากฉันไม่ทราบความสัมพันธ์ระหว่างจุดในเลเยอร์ A (ร้านค้า) และจุดในเลเยอร์ B (ลูกค้า) ฉันมักจะพูดว่า "ลูกค้า 1 เป็นร้านที่ใกล้ที่สุด" แม้ว่าฉันจะรู้ว่าความจริงข้อนี้อาจไม่เป็นความจริง แต่มันก็เป็นตัวแทนที่ดี การใช้ PostGIS เป็นวิธีที่มีประสิทธิภาพที่สุดในการกำหนด ID ของจุดที่ใกล้ที่สุดในชั้น A (ร้านค้า) ให้กับแต่ละจุดในชั้น B (ลูกค้า) ผลลัพธ์ที่ฉันกำลังมองหาเป็นดังนี้ Customer | Store 1 | A 2 | A 3 | B 4 | C

3
การคำนวณพื้นที่ร้อยละของการแยกในกรณีที่ข้อ
ฉันมีตารางรูปหลายเหลี่ยม (กลุ่มบล็อกการสำรวจสำมะโนประชากร) ใน postgres ฉันต้องการติดแท็กกลุ่มบล็อกแต่ละกลุ่มด้วยเมือง (ตารางรูปหลายเหลี่ยมอื่น) ส่วนใหญ่อยู่ภายใน เป็นไปได้ไหม ฉันคิดว่าฉันจำเป็นต้องสร้างสิ่งที่ต้องการ: select b.*,t.name from blockgroups b, towns t where (st_area(st_intersection(b.wkb_geometry, t.wkb_geometry))/st_area(b.wkb_geometry)) > .5 แต่แบบสอบถามนี้ใช้เวลาตลอดไป (ฉันมีกลุ่มบล็อกประมาณ 5,000 กลุ่มและ 375 เมือง ... ) คำแนะนำใด ๆ เกี่ยวกับวิธีทำให้คิวรีนี้ใช้งานได้ถ้ามันไม่ถูกต้องหรือเร็วกว่านั้นถ้ามันถูกต้อง?

2
วิธีการนำเข้าฐานข้อมูลส่วนบุคคลของ esri (.mdb) ไปยัง PostGIS บน Linux
เรามีฐานข้อมูลส่วนบุคคลทางภูมิศาสตร์ esri ที่เราต้องนำเข้าสู่ PostGIS ท้ายที่สุดเราต้องการอนุญาตให้ผู้ใช้อัปโหลด MDB บนเว็บเซิร์ฟเวอร์และนำเข้าเลเยอร์ไปยัง PostGIS บน Windows ด้วยเครื่องมือ FW สิ่งต่อไปนี้ใช้ได้ผล: ogr2ogr -f "PostgreSQL" PG:"host=10.10.10.10 user=someuser dbname=poi password=somepassword port=5432" S:\GISData\Test.mdb -a_srs EPSG:26986 อย่างไรก็ตามฉันต้องการทำให้เป็นอัตโนมัติ (และทำโปรแกรม) ดังนั้น [ฉันคิดว่า] มันจะง่ายขึ้นมากบน Linux

2
ตั้งค่าฐานข้อมูล PostGIS และเปิดใน QGIS บน Windows?
ฉันได้ลองทำตามคู่มือการตั้งค่าฐานข้อมูล PostGIS เพื่อให้ผู้ใช้ที่มี QGIS สามารถเข้าถึงได้ แต่ในขณะนี้ฉันไม่เข้าใจความคืบหน้าเพียงพอหรือไม่ สถานการณ์ของฉัน; ฉันเป็นผู้ฝึกอบรมที่รับผิดชอบในการสร้างฐานข้อมูล PostGIS สำหรับการแปลงวัตถุสีเขียว (เช่นต้นไม้) และการสืบค้นที่เรียกใช้ - เช่นการเชื่อมโยงรายการถนนกับไฟล์รูปภาพไปยังตารางคุณลักษณะ ฉันมี "shapefile skeletons" (ปัจจุบันว่างเปล่าโดยไม่มีวัตถุเพียงแค่กรอบคุณสมบัติ "ซึ่งวัตถุทางภูมิศาสตร์ที่มีอยู่ในปัจจุบันและในอนาคต (รูปร่างที่แตกต่างกันสำหรับแต่ละประเภท) จะถูกวาง / สร้าง) ฉันเชื่อว่าฉันสามารถนำเข้ารูปร่างของพวกเขา ฐานข้อมูลหรือไม่ สถานการณ์; เราทำงานในอาคารที่แยกต่างหากพร้อม LAN และการเชื่อมต่ออินเทอร์เน็ตกับเซิร์ฟเวอร์สำรองสำหรับทุกไฟล์ ดังนั้นเราจึงมีการเข้าถึงไฟล์ในเครื่องและไฟล์ที่เราแบ่งปันผ่านการเชื่อมต่ออินเทอร์เน็ต การตั้งค่าฐานข้อมูลดำเนินการโดยผู้ดูแลระบบผ่านการเข้าถึงระยะไกลโดยใช้ไฟล์ปฏิบัติการ. exe ล่าสุดของ PostGIS และ PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2 -1) สำหรับเครื่อง 64 บิตของฉัน ผู้ดูแลระบบให้แฟ้มข้อความพร้อมข้อมูลเข้าสู่ระบบแก่ฉัน คู่มือการฝึกอบรมที่นี่ค่อนข้างสับสนตั้งแต่จัดการกับ Ubuntu ฉันติดขัดเนื่องจากไม่รู้ว่าจะใช้ข้อมูลการเข้าสู่ระบบที่ฉันจดไว้ที่ไหน? ฉันคิดว่าฉันต้องใช้ pgAdmin?

2
ความหมายของรูปทรงเรขาคณิตที่ไม่ถูกต้องคืออะไร
ฉันได้นำเข้าข้อมูลบางส่วนในฐานข้อมูล Postgis และรูปทรงเรขาคณิตบางส่วนมีการรายงานที่ไม่ถูกต้อง (ST_IsValidReason รายงานการแยกตัวเองหรือการแยกแหวนด้วยตนเอง) ดูเหมือนว่าข้อความค้นหาที่ฉันทำไม่ได้รับผลกระทบจากลักษณะที่ไม่ถูกต้องของรูปทรงเหล่านี้ (ฉันใช้ ST_Distance แบบสอบถามเท่านั้น) อะไรคือสิ่งที่แตกหักเมื่อรูปทรงเรขาคณิตไม่ถูกต้อง การแก้ไขรูปทรงเรขาคณิตเหล่านี้ "อัตโนมัติ" (บัฟเฟอร์ (geom, 0) หรือ ST_SimplifyPreserveTopology (geom, 0.0001)) เป็นตัวเลือกหรือไม่?

3
การอัปโหลดเนื้อหา Geopackage ไปยัง PostgreSQL
ในฐานะที่เป็นพื้นหลังเรากำลังมองหาการเปลี่ยนจากการใช้รูปร่างของไฟล์ เราได้เริ่มใช้ Geopackages สำหรับงานเดสก์ท็อป (QGIS / ArcGIS) แต่มักจะมีข้อกำหนดในการอัปโหลดข้อมูลไปยังฐานข้อมูล PostgreSQL ของเรา ฉันทราบว่าคุณสามารถอัปโหลดเนื้อหา Geopackage ไปยัง Postgres โดยใช้ QGIS แต่สงสัยว่ามีอรรถประโยชน์บรรทัดคำสั่งใด ๆ คล้ายกับ shp2pgsql สำหรับการอัปโหลด geopackages หรือตารางใน geopackages ไปยัง Postgres หรือไม่ ฉันคาดว่าอาจเป็น ogr2ogr แต่ไม่พบเอกสาร

2
การสร้างรูปทรงเรขาคณิตจาก lat / lon ในตารางโดยใช้ PostGIS?
ฉันมีตารางที่มีมากกว่า 800,000 รายการรวมทั้งคอลัมน์ lat และ long แหล่งข้อมูลไม่ได้สร้างรูปทรงเรขาคณิตดังนั้นฉันจึงดูวิธีการทำสิ่งนี้ ฉันรู้ว่ามี ST_MakePoint (x, y, SRID) แต่เอกสารทั้งหมดและเธรดอื่น ๆ แสดงวิธีสร้างจุดเดียว ฉันจะสร้างรูปทรงเรขาคณิตโดยใช้คอลัมน์เหล่านี้ได้อย่างไร
15 postgis  sql 

1
PostGIS raster summation (พีชคณิตแผนที่)
ฉันมีตารางรูปหลายเหลี่ยมแสดงเวลาในการเดินทางในแต่ละวัน สำหรับจุดเริ่มต้นแต่ละจุดมีรูปทรงเรขาคณิต isochrone ห้า (เก็บไว้ในแถวที่แยกต่างหาก) สำหรับจุดเริ่มต้นแต่ละจุดฉันต้องการที่จะรวมห้า isochrones (ไบนารี NULL หรือ 1) แล้วรวมเข้ากับชั้นแรสเตอร์เดียว เลเยอร์แรสเตอร์นี้ต้องใช้พีชคณิตแผนที่อย่างง่าย ๆ : sum / 5 เพื่อให้ต้นกำเนิดแต่ละอันจะเชื่อมโยงกับเลเยอร์แรสเตอร์เดี่ยวที่มีค่าใน [NULL, 0.2, 0.4, 0.6, 0.8, 1] ขึ้นอยู่กับจำนวน ชั้นที่เป็นองค์ประกอบทับซ้อนกัน มันเป็นพื้นผิวที่น่าจะเป็น ข้อมูลของฉันถูกเก็บไว้ใน Postgres 9.3 (พร้อม PostGIS) ปัญหาของฉันคือในขณะที่ฉันต้องการเรียนรู้การใช้ PostGIS แรสเตอร์ดูเหมือนว่าจะมีช่วงการเรียนรู้ที่สูงชันและตัวอย่างทั้งหมดที่ฉันสามารถหาข้อตกลงกับชั้นแรสเตอร์เดียว ในตัวอย่างเลเยอร์นี้ใช้เป็นส่วนหนึ่งของรูปหลายเหลี่ยมซ้อนทับอาจเฉลี่ยค่าของแรสเตอร์สำหรับรูปหลายเหลี่ยมแต่ละรูป ฉันไม่พบตัวอย่างที่จำลองได้สำหรับการรวม: a) เวกเตอร์ -> raster b) พีชคณิตแผนที่ และ c) GROUP BY attribute ตามวรรคหนึ่งของฉัน …

2
ข้อมูลคลาวด์พอยต์ขนาดใหญ่ใน PostGIS - การจัดเก็บและประมวลผล
ฉันสงสัยว่าเป็นไปได้อย่างไรที่จะจัดเก็บชุดข้อมูลเมฆจุดสแกนขนาดใหญ่ใน PostGIS พร้อมเวลาในการประมวลผลในใจ ฉันรู้ว่ามีรูปทรงเรขาคณิต - วัตถุPointใน PostGIS แต่เท่าที่ฉันรู้ว่ามันช่วยให้แต่ละจุดใน tupel ใหม่ซึ่งสามารถทำการค้นหาจุดใดจุดหนึ่งเป็นกระบวนการที่ช้ามากหากเก็บไว้ไม่กี่ล้านหรือมากกว่านั้น ฉันพบบทความจาก HSR Universtiy ของ Applied Science Rapperswill เพื่อหารือเกี่ยวกับหัวข้อนี้ มันแสดงให้เห็นสามวิธีในการจัดเก็บข้อมูลดังกล่าวไว้Whole data in one tupel, Each point in one tupelหรือSplitting Data into Blocksที่มีการอ้างอิงโดยข้อมูลตารางถือขยายของแต่ละบล็อก เป็นวิธีที่สามดูเหมือนว่ามีประโยชน์มากที่สุดสำหรับการค้นหาตำแหน่งที่เก็บไว้ฉันสงสัยว่าใครมีประสบการณ์มาบ้างแล้ว? กระดาษสามารถพบได้ที่นี่: http://wiki.hsr.ch/Datenbanken/files/pgsql_point_cloud.pdf ท้ายสุด แต่ไม่ท้ายสุดฉันขยำข้ามโครงการ github ซึ่งดูเหมือนว่าจะจัดการกับมารยาทของ cloud point ใน PostgeSQL น่าเสียดายที่มีข้อมูลไม่มากเกี่ยวกับเรื่องนี้ในเน็ต ดังนั้นคำถามเดียวกันที่นี่: มีใครบางคนได้ทำประสบการณ์กับมันแล้ว? มันใช้งานได้สำหรับวัตถุประสงค์ดังกล่าวหรือไม่ สามารถพบโครงการได้ที่นี่: https://github.com/pramsey/pointcloud ฉันก็ยินดีที่จะรับฟังข้อเสนอแนะความคิดหรือประสบการณ์อื่น ๆ …

2
QGIS ส่งคืนข้อความ“ Invalid Layer” เมื่อพยายามเพิ่มมุมมอง PostGIS?
ฉันใหม่กับ Postgis และ QGIS ฉันสร้างมุมมองที่กำหนดเป็น CREATE OR REPLACE VIEW pupr.vstudentmuni AS SELECT m.id AS munid, m.name AS muname, m.geom, s.code, (s.name::text || ' '::text) || s.lastname::text AS fullname FROM pupr.municipio m, pupr.student_location l, pupr.student s WHERE st_within(l.geom, m.geom) AND s.code = l.code; ใน PostgreSQL กำลังพยายามเพิ่มมุมมองนี้ใน QGIS จะส่งคืนข้อผิดพลาดต่อไปนี้ ... "Invalid layer"..."sql= …

1
การเลือกกลุ่มเพื่อนบ้านที่ใกล้ที่สุดใน QGIS
ฉันมีรายการที่มีมากกว่า 100,000 คะแนนในรูปแบบ lat / long ซึ่งฉันได้นำเข้าสู่ qgis ตอนนี้สิ่งที่ฉันพยายามทำที่นี่คือจัดกลุ่มจุดทั้งหมดเหล่านี้เป็นกลุ่มกล่องและโดยที่ฉันหมายถึงว่าฉันต้องการแยกแผนที่เป็นกล่องขอบ ความต้องการของฉันมีดังนี้: ไม่ควรจัดกลุ่มที่มีกล่องน้อยกว่า 100 และไม่เกิน 200 คะแนน ไม่ควรมีจุดอยู่ในกลุ่มมากกว่าหนึ่งกลุ่ม คะแนนทั้งหมดควรขึ้นอยู่กับเพื่อนบ้านที่ใกล้ที่สุด ฉันจะทำสิ่งนี้ผ่าน qgis ได้อย่างไร? ฉันสมมติว่าสามารถส่งรหัสแบบสอบถามที่กำหนดเองและบันทึกผลลัพธ์หรือกล่องที่สร้างขึ้นเป็นรูปร่างไฟล์ที่ถูกต้องหรือไม่ มีคนช่วยอธิบายวิธีการนี้ให้สำเร็จและรหัสจะเป็นอย่างไร ตามที่กล่าวไว้วัตถุประสงค์ของฉันคือการแสดงกล่องสี่เหลี่ยมจำนวนหนึ่งเป็นเลเยอร์ shapefile โดยภายในแต่ละกล่องจะมีคุณสมบัติไม่น้อยกว่า 100 คุณสมบัติและไม่เกิน 200

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