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

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

1
ทำไม st_intersects เร็วกว่า &&
มันเป็นตารางคะแนน ~ 1 ล้านระเบียน SELECT COUNT(*) as value FROM alasarr_social_mv s; Output: 976270 ดูเหมือนว่า st_intersects บังคับให้ใช้ดัชนีเชิงพื้นที่ แต่ && ไม่ ตัวอย่างการใช้ST_Intersects(282ms) SELECT COUNT(*) as value FROM alasarr_social_mv WHERE ST_Intersects( the_geom_webmercator, ST_MakeEnvelope(-410961,4920492,-402305,4926887,3857) ) Aggregate (cost=34370.18..34370.19 rows=1 width=0) (actual time=282.715..282.715 rows=1 loops=1) -> Bitmap Heap Scan on alasarr_social_mv s (cost=5572.17..34339.84 rows=60683 width=0) (actual …

2
วิธีรับรูปทรงเรขาคณิตของตาราง PostGIS ที่ว่างเปล่า
ฉันมีเว็บแอปพลิเคชันที่จำเป็นต้องรู้ประเภทเรขาคณิตของเขตข้อมูล Geom ของตาราง PostGIS ก่อนที่จะแทรกแถวเข้าไป ฉันใช้แบบสอบถามต่อไปนี้เพื่อกำหนดประเภทเรขาคณิตของคอลัมน์ geom: SELECT GeometryType(geom) FROM my_schema.building LIMIT 1 สิ่งนี้จะส่งกลับประเภทรูปทรงเรขาคณิตของแถวจริงดังนั้นจึงไม่ทำงานเมื่อตารางของฉันว่างเปล่า ฉันจะกำหนดประเภทเรขาคณิตของคอลัมน์เรขาคณิตได้อย่างไร
10 postgis 

2
มีวิธีที่มีประสิทธิภาพในการแปลง Geojson เป็น WKT หรือไม่?
ฉันต้องการใช้ ST_GeomFromText () เพื่อโหลดข้อมูลเวกเตอร์ไปยัง PostGIS อย่างไรก็ตามฉันไม่ทราบวิธีการแปลงจากประเภท Geojson เป็น WKT NB ฉันรู้ว่าฉันสามารถใช้ OGR2OGR เพื่ออัปโหลด geojson โดยตรง แต่ฉันแค่ต้องการยืนยันว่ามีวิธีการแปลงหรือไม่ ขอบคุณ
10 postgis  geojson  wkt 

1
กำลังสร้างบรรทัดจากคะแนนโดยใช้ PostGIS?
ฉันมีตาราง PostGIS พร้อมข้อมูลตำแหน่งของยานพาหนะจำนวนมากและต้องการสร้างบรรทัดจากจุดเหล่านี้ ข้อมูลสามารถเลือกได้โดย id ยานพาหนะและเรียงลำดับตามเวลา แต่จะสร้างบรรทัดจากผลลัพธ์ได้อย่างไร สิ่งที่ฉันต้องการโดยทั่วไปคือส่วนของเส้นหนึ่งจากจุดที่ 1 ถึงจุดที่ 2 จบบรรทัดแล้วอีกครั้งจากจุดที่ 2 ถึงจุดที่ 3 แน่นอนว่าทั้งหมดนั้นอยู่ภายใต้การพิจารณาของ id ยานพาหนะ อันหลังจำเป็นเพราะฉันต้องการคำนวณทิศทางการล่องเรือและความเร็วของยานพาหนะจากจุดหนึ่งไปอีกจุดหนึ่ง

3
จะเชื่อมต่อ OpenLayers กับข้อมูล PostGIS ได้อย่างไร
ฉันได้อ่านใน OpenLayers แล้ววิธีโหลด KML, GeoJSON ฯลฯ ไฟล์เวกเตอร์ใน OpenLayers แต่ฉันจะเชื่อมต่อกับข้อมูล PostGIS ได้อย่างไร มิฉะนั้นฉันควรอัพโหลดข้อมูลของฉันไปที่ PostGIS แทนที่จะวางข้อมูลของฉันโดยตรงโดยใช้ WebServices ฉันไม่มีอะไรเลยหรือ และฉันต้องการที่จะโหลดข้อมูลเวคเตอร์นี้เพื่อที่เราจะได้เห็นแอททริบิวต์โดยคลิกที่ฟีเจอร์ ฉันต้องการ PostGIS เพราะในอนาคตฉันต้องการเปิดใช้งานแบบสอบถาม ฉันคิดว่าเป็นไปได้โดยการรักษาฐานข้อมูลเช่น PostGIS แต่วิธีการใช้ OpenLayers? ฉันได้อ่านคู่มือผู้เริ่มต้นของ OpenLayers แล้ว แต่ไม่ได้มีการกล่าวถึง กรุณาช่วย!!

4
วิธีดึง POINT จาก [LINE | MULTILINE] STRING
ฉันต้องการสร้าง vectorLayer QGISเพื่อแสดงจุดทั้งหมดที่เป็นแบบฟอร์มLINESTRINGหรือMULTILINESTRINGเก็บไว้ในPostGISฐานข้อมูล ฉันคิดว่าฉันต้องการที่จะเปลี่ยนทุกจุดของLINESTRING(หรือMULTILINESTRING) POINTเพื่อ คำถามแรก : มีPostGISฟังก์ชั่นที่จะทำเช่นนั้น? คำถามที่สอง : หากฉันต้องการแยกคะแนนที่ซ้ำกันออกจากPOINTตารางผลลัพธ์ฉันจะทำอย่างไร

2
คุณจัดการกับคุณสมบัติ 3 มิติบางส่วนใน PostGIS อย่างไร
เรามีคุณสมบัติจากข้อมูลการสำรวจที่มีข้อมูล 3 มิติบางส่วน ตัวอย่างที่พบบ่อยที่สุดคือ LineString 2D ซึ่งเป็นถนนที่มีข้อมูลระดับความสูงในบางจุดที่มีการสำรวจ ตัวอย่างอื่น ๆ ได้แก่ รูปร่างหลังคา - MultiLineString ที่บางประเด็นสำคัญมีการยกระดับที่กำหนดจากแผนอาคาร แต่ไม่ใช่ทั้งหมด การใช้ PostGIS คุณควรแนะนำให้ใช้แบบจำลองข้อมูลใดในการจัดเก็บข้อมูลประเภทนี้เพื่อให้สามารถเข้าถึงได้มากที่สุดโดยไม่สูญเสียหรือสร้างข้อมูลที่เกี่ยวข้อง
10 postgis  data  3d  model 

1
ฉันจะจัดการข้อมูล PostGIS Raster ด้วยการคาดการณ์ที่แตกต่างกันได้อย่างไร
ฉันมีข้อกำหนดในการจัดเก็บและจัดการข้อมูลธรณีฟิสิกส์ที่เก็บรวบรวมเป็นตัวอย่างรูปสี่เหลี่ยมผืนผ้า - ภาพแรสเตอร์ โดยทั่วไปแล้วแรสเตอร์แต่ละตัวอย่างจะมีจุดลอยตัว 20x20 หรือ 30x30 โดยปกติจะสุ่มตัวอย่างที่ระยะ 1 เมตร การสำรวจจะประกอบด้วยภาพเหล่านี้หนึ่งภาพขึ้นไปในตำแหน่งที่กำหนด อาจเป็นไปได้ที่การสำรวจสองแบบที่แตกต่างกันอาจเกิดขึ้นในประเทศต่าง ๆ หรือพื้นที่ที่ใช้การคาดการณ์ที่แตกต่างกัน แต่การสำรวจแต่ละครั้งจะใช้การฉายภาพเพียงภาพเดียว พวกเขาไม่เคยถูกมองด้วยกันการสำรวจแต่ละครั้งมักจะนั่งอยู่คนเดียว ข้อมูลจะถูกเข้าถึงได้โดย front-end ที่กำหนดเองดังนั้นจะไม่มีผู้ใช้ที่ได้รับการควบคุมโดยตรงผ่านpsqlหรือคล้ายกัน ต้องเก็บตัวอย่างแต่ละตัวอย่างขณะที่รวบรวมดังนั้นฉันไม่สามารถปฏิเสธมันลงใน CRS ทั่วไปเช่น Web Mercator ได้เพราะตัวอย่างหนึ่งอาจครอบคลุมพื้นที่มากหรือน้อยกว่าในการฉายต้นฉบับและการวิเคราะห์จะต้องดำเนินการ บนข้อมูล ฉันควรเก็บข้อมูลไว้ในฐานข้อมูล PostGIS Raster ได้อย่างไร ตัวเลือกที่ฉันคิดไว้คือ: ละเว้นข้อ จำกัด SRID และจัดเก็บข้อมูลทั้งหมดไว้ในตารางเดียวเขียนรหัสส่วนหน้าของฉันเพื่อจัดการกับการจัดการข้อมูลในลักษณะที่สอดคล้องกัน เก็บข้อมูลทั้งหมดไว้ในตารางเดียวและเขียนข้อ จำกัด SRID ใหม่เป็นสารประกอบของ SRID และรหัสสำรวจ ผ่านการสืบทอดตารางสร้างตารางใหม่สำหรับ SRID ใหม่แต่ละรายการ ผ่านการสืบทอดตารางสร้างตารางใหม่สำหรับแต่ละการสำรวจ 1 และ 2 แบ่งส่วนอัตโนมัติที่ดีของ PostGIS …
10 postgis  raster 

5
มีโซลูชั่นโอเพ่นซอร์สสำหรับการสร้างแบบจำลองความต้องการเดินทางหรือไม่
ฉันกำลังมองหาเครื่องมือโอเพนซอร์ซสำหรับการสร้างแบบจำลองอุปสงค์การเดินทาง (เช่น UTMS สี่ขั้นตอน) โดยเฉพาะอย่างยิ่งในสภาพแวดล้อม GIS ใช้งานได้ดีกับ Qgis, Grass และ Postgis คำถามของฉันไม่เกี่ยวข้องกับการใช้งานเฉพาะกรณีการวิจัยเพิ่มเติมที่เกี่ยวข้อง การค้นหาเริ่มต้นของฉันว่างเปล่าดังนั้นฉันต้องการการยืนยัน

1
ค้นหาบรรทัดที่ใกล้เคียงที่สุดที่ให้ 2 คะแนนโดยใช้ PostGIS?
ฉันมีตาราง t ที่มีคอลัมน์line_positionsซึ่งเป็นประเภทบรรทัด ให้ 2 คะแนนฉันต้องการค้นหาเส้นที่ใกล้ที่สุดซึ่งอยู่ใกล้พอ (น้อยกว่า 10 กม.) และนั่นไม่ผ่านใกล้จุดที่ฉันต้องการหลีกเลี่ยง (ขั้นต่ำ 20 กม.) ปัจจุบันฉันใช้ SELECT t.* FROM path t WHERE ST_DWithin(ST_GeographyFromText('Point(69.835 22.596)'), t.line_positions, 10000, FALSE) AND ST_DWithin(ST_GeographyFromText('Point(69.856 22.519)'), t.line_positions, 10000, false) AND NOT ST_DWithin(ST_GeographyFromText('Point(-79.804 9.141)'), t.line_positions, 20000, false) ORDER BY ST_Distance(ST_GeographyFromText('Point(69.835 22.576)'), t.line_positions, false) + ST_Distance(ST_GeographyFromText('Point(69.856 22.519)'), t.line_positions, false) ASC …

1
ลดความซับซ้อนของกระบวนการตรวจสอบสิทธิ์ PostGIS จาก QGIS
ใน QGIS ฉันมีโครงการที่มีข้อมูลจากฐานข้อมูล PostGIS (~ 15) ที่หลากหลายโดยไม่มีข้อมูลรับรองการเข้าสู่ระบบ (ผู้ใช้รับรองความถูกต้อง / รหัสผ่าน) ที่จัดเก็บไว้สำหรับการเชื่อมต่อแต่ละรายการดังที่แสดงด้านล่าง ตอนนี้เมื่อผู้ใช้รายอื่นเปิดโครงการเขา (หรือเธอ) ต้องป้อนข้อมูลรับรองสำหรับฐานข้อมูล EACH ที่ใช้: ฉันกลัวอย่างยิ่งว่าจะไม่มีผู้ใช้ของฉันที่ถูกต้องตามกฎหมายที่จะยอมรับการป้อนข้อมูลรับรอง (หรือเธอ) ของเขา 15 ครั้ง (แต่ในสภาพแวดล้อมขององค์กรที่มีผู้ใช้ 100 รายการยอมรับเป็นกุญแจสู่ความสำเร็จ) ดังนั้นสองคำถามเกิดขึ้นสำหรับฉัน: มีวิธีแนะนำชื่อผู้ใช้ตามตัวแปรโครงการทั่วโลกuser_account_nameและ มีวิธีบอก QGIS ให้ใช้ข้อมูลประจำตัวที่ป้อนสำหรับการเชื่อมต่อฐานข้อมูลครั้งแรกสำหรับการเชื่อมต่ออื่น ๆ ด้วยหรือไม่? ฉันไม่สามารถคาดการณ์ได้ว่าจะเป็นเรื่องที่ดีมากในการแก้ไขกล่องโต้ตอบ 'ป้อนข้อมูลรับรอง' ตามที่เสนอด้านล่าง แต่เป็นไปได้หรือไม่

2
ใช้ postgis เพื่อสร้างเฉดสีอาคาร
ฉันกำลังทำงานกับเครื่องมือประเมินศักยภาพพลังงานแสงอาทิตย์สำหรับอาคารที่มีอยู่ แนวคิดคือใช้รูปร่างของอาคาร (= รูปหลายเหลี่ยม) ความสูงและสร้างเฉดสีที่ได้ในเวลาที่กำหนด ฉันแค่ไปทำการทดสอบเพื่อดูดวงอาทิตย์ ฉันรู้เกี่ยวกับฟังก์ชันหญ้า r.sun.mask แต่มันสู้เพื่อสิ่งที่ฉันพยายามจะทำ สำหรับตอนนี้ฉันแค่อยากได้ร่มเงาเมื่อดวงอาทิตย์อยู่ทางใต้ที่อุณหภูมิ 18 °ในท้องฟ้า อาคารจึงควรมีเงาสูงประมาณสามเท่า สิ่งที่ฉันพยายามจะได้รับ: ฉันค้นหามาระยะหนึ่งแล้ว แต่ไม่พบเครื่องมือใด ๆ ใน Postgis ที่จะทำเช่นนี้ ฉันกำลังคิดเกี่ยวกับการบัฟเฟอร์แล้วตัดรูปหลายเหลี่ยม แต่ไม่สามารถทำงานได้ คุณรู้เครื่องมือใด ๆ หรือมีความคิดวิธีการทำอย่างไร

4
จำกัด แถวด้วยฟังก์ชั่น Spatial
ฉันพยายามปรับปรุงประสิทธิภาพสำหรับข้อความค้นหาด้านล่าง ไม่ว่าฉันจะเขียนแบบสอบถามอย่างไร (แบบสอบถามย่อยในส่วนคำสั่งย่อย, แบบสอบถามย่อยในส่วนคำสั่ง WHERE) จะยืนยันว่าจะเรียกใช้แถว ~ 570K ทั้งหมดผ่านฟังก์ชัน ST_DWITHIN ที่มีราคาแพงแม้ว่าจะมีเพียง 60 แถวที่เขต = 24 ฉันจะได้รับ postgres เพื่อกรองในเขต = 24 ก่อนที่จะวิ่งผ่าน fung postgis ซึ่งดูเหมือนว่าฉันจะเร็วขึ้นและมีประสิทธิภาพมากขึ้น? 700ms ไม่ได้ทำให้เกิดความกังวลมากเกินไป แต่เนื่องจากตารางนี้เพิ่มขึ้นเป็น 10M + ฉันกังวลเกี่ยวกับประสิทธิภาพ นอกจากนี้เพื่อทราบว่า p.id เป็นคีย์หลัก p.zipcode เป็นดัชนี fk, z.county เป็นดัชนี fk และ p.geom มีดัชนี GiST ค้นหา: EXPLAIN ANALYZE SELECT count(p.id) FROM point …

1
ความแตกต่างระหว่าง ST_BuildArea และ ST_Polygonize คืออะไร
ทั้งสองฟังก์ชั่นST_BuildAreaและST_Polygonizeทั้งคู่รับสายและสร้างรูปหลายเหลี่ยม ดูเหมือนว่าST_BuildAreaสันนิษฐานว่าวงแหวนด้านในเป็นตัวแทนของหลุมและตัดออกจากผลลัพธ์ขณะที่ST_Polygonizeรวมไว้ในผลลัพธ์ และกลไกของการใช้ฟังก์ชั่นที่มีความแตกต่างกันบิต: ST_Polygonizeเป็นรวมในขณะที่คุณต้องกำขึ้นปัจจัยการผลิตด้วยตัวเองโดยใช้ST_BuildAreaST_Collect นอกเหนือจากนี้มีความแตกต่างระหว่างสองฟังก์ชั่นหรือไม่
9 postgis 

1
ความแตกต่างระหว่าง SpatialJoin กับ“ …ที่ไหน…” และ“ เข้าร่วม…บน…”
ฉันสงสัยว่าความแตกต่างระหว่างการรวมเชิงพื้นที่ทั้งสองนี้คืออะไรและหากมีความแตกต่างเมื่อใดควรใช้แบบใด SELECT * FROM points p, shapes s WHERE ST_Within(p.geom, s.geom); และ SELECT * FROM points p INNER JOIN shapes s ON ST_Within(p.geom, s.geom) เร็วกว่าในบางสถานการณ์หรือไม่?

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