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

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

3
รับค่า Lon Lat จากประเภทข้อมูล GEOGRAPHY ใน PostGIS
หลังจากจัดเก็บค่า lon lat เป็นชนิดข้อมูล GEOGRAPHY ฉันจะดึงค่า lat lon แต่ละรายการได้อย่างไร ความพยายามล้มเหลว: SELECT id, geog, ST_X(geog), ST_Y(geog) FROM locations; ข้อผิดพลาด: No function matches the given name and argument types. You might need to add explicit type casts.

1
รัศมีโลกเริ่มต้นใน ST_Distance_Sphere มาจากที่ใด
MySQL บอกในเอกสารสำหรับ ST_Distance_Sphere การคำนวณใช้ดินทรงกลมและรัศมีที่กำหนดค่าได้ อาร์กิวเมนต์รัศมีที่เป็นทางเลือกควรกำหนดเป็นเมตร หากไม่ระบุค่ารัศมีเริ่มต้นคือ 6,370,986 เมตร หากอาร์กิวเมนต์รัศมีมีอยู่ แต่ไม่เป็นบวกER_WRONG_ARGUMENTSจะเกิดข้อผิดพลาด PostGISกล่าวว่าในเอกสารของST_Distance_Sphere(แม้ว่าเอกสารจะไม่ถูกต้องอีกต่อไป ) ใช้โลกทรงกลมและรัศมี 6370986 เมตร พวกเขาได้รับค่าเริ่มต้น 6,370,986 เมตรจากที่ไหน WGS84กล่าวว่ารัศมีแกนหลักคือ 6,378,137.0 เมตร PostGIS ซึ่งตอนนี้ใช้รัศมีเฉลี่ยโดยพื้นฐานแล้วใช้ 6371008 มองไปที่รหัส #define WGS84_MAJOR_AXIS 6378137.0 #define WGS84_INVERSE_FLATTENING 298.257223563 #define WGS84_MINOR_AXIS (WGS84_MAJOR_AXIS - WGS84_MAJOR_AXIS / WGS84_INVERSE_FLATTENING) #define WGS84_RADIUS ((2.0 * WGS84_MAJOR_AXIS + WGS84_MINOR_AXIS ) / 3.0) นั่นหมายความว่า -- …

10
แพ็คเกจที่ใช้งานไม่ได้และการติดตั้งที่ไม่พึ่งพา QGIS, PostgreSQL และ postgis Ubuntu 14.04
ฉันรู้ว่านี่อาจเป็นหัวข้อที่ซ้ำกัน แต่ฉันดิ้นรนเป็นเวลาหลายวัน ฉันอัพเกรด QGIS จาก 2.8 เป็น 2.18 และหลังจากนั้นทุกอย่างก็พัง ฉันไม่สามารถใช้ส่วนขยาย PostGIS บน pgadmin3 ฉันพบว่ามีข้อขัดแย้งกับ a libgdal1h: หากติดตั้งแล้วมันจะลบไลบรารีอื่น ๆ ที่ PostGIS ใช้และในทางกลับกัน ฉันพยายามสอนหลายวิธีเกี่ยวกับวิธีการติดตั้ง QGIS เช่น: ฉันจะรับและติดตั้ง QGIS เวอร์ชันล่าสุดใน Ubuntu ได้อย่างไร ติดตั้ง QGIS 2.14 Essen บน Ubuntu 16.04 Xenial ฉันลองทุกข้อเสนอแนะที่รายงานทางออนไลน์เช่น: /ubuntu/351899/qgis-quantum-gis-install-fails-unmet-dependencies /ubuntu/621406/dist-upgrade-in-ubuntu-14-04-uninstalled-qgis-and-results-in-unmet-dependencies จะหาเวอร์ชั่นของ libgeos-c1 ที่รองรับกับ libgeos-3.5.0 ได้ที่ไหน? การติดตั้ง QGIS บน Ubuntu 14.04 …

1
วิธีการแยก sublinestring จาก linestring ด้วยส่วนที่ทับซ้อนกัน
คำแถลงปัญหา: กำหนดเส้นทางรถบัส (กำหนดเป็น linestring ln.the_geom) และชุดของตำแหน่งป้ายรถเมล์ (pt1.the_geom, pt2.the_geom, ... ptn.the_geom) แบ่งเส้นทางรถประจำทางออกเป็นส่วน ๆ ระหว่างป้ายรถเมล์ . ฉันใช้สองฟังก์ชัน postgis ST_line_substring(ln.the_geom,ST_line_locate_point ln.the_geom,pt1.the_geom),ST_line_locate_point(ln.the_geom,pt2.the_geom)) ด้านบนใช้งานได้ดีหากเส้นทางรถเมล์ไม่มีส่วนที่ทับซ้อนกัน อย่างไรก็ตามหากมีส่วนที่ทับซ้อนกัน ST_line_locate_point จะถ่ายจุดหนึ่งไปยังอีกปลายหนึ่งของ linestring ตัวอย่างเช่น: รถบัสเดินทางจาก A ถึง B สร้าง loop จากนั้นเดินทางจาก B ถึง A "A ถึง B" และ "B to A" เป็นเส้นทางคู่ขนานที่มีจุดทั้งหมดซ้อนทับกัน ในกรณีที่ป้ายหยุดรถ P1 และ P2 P2 จะถูกจับคู่กับจุด P2 แทน …

3
เพิ่มฟังก์ชัน Spatial ของ PostGIS ให้กับสคีมาที่กำหนดเองนอกเหนือจาก“ สาธารณะ” ใน PostgreSQL
เมื่อเร็ว ๆ นี้ฉันสร้างฐานข้อมูล PostGIS 2.0.3 บนเซิร์ฟเวอร์ฐานข้อมูล PostgreSQL 9.1 โดยใช้ pgAdmin พบส่วนขยาย "PostGIS" ที่ติดตั้งใน "ส่วนขยาย" ฟังก์ชันเชิงพื้นที่อัลถูกเพิ่มเข้าไปในสคีมา "สาธารณะ" ไม่เป็นไร. ตอนนี้ฉันต้องการเก็บข้อมูลทั้งหมดของฉันลงในรูปแบบใหม่ที่เรียกว่า "gc" อย่างไรก็ตามฉันจะสร้างฟังก์ชั่นอวกาศทั้งหมดใน schema "gc" นั้นได้อย่างไร ไม่มีฟังก์ชั่นเดียวในสคีมา อย่างไรก็ตามเมื่อฉันพยายามที่จะนำเข้า / ใหม่คลาสฟีเจอร์จาก ESRI ArcCatalog 10.1 ไปที่สคีมามันก็ใช้ได้! คลาสคุณสมบัติสามารถนำเข้าและแสดงใน QGIS ใครช่วยบอกเคล็ดลับหรือความคิดเกี่ยวกับมันให้ฉันได้บ้าง ฉันยังใหม่กับ PostgreSQL และ PostGIS

2
เครื่องมือ GUI สำหรับ PostgreSQL / PostGIS
ในฐานะนักเขียนแผนที่ฉันทำงานกับ TileMill เพื่อให้เห็นภาพภูมิศาสตร์ ฉันติดตั้งเซิร์ฟเวอร์ PostgreSQL ท้องถิ่นด้วย PostGIS และ osm2pgsql ทุกอย่างทำงานได้ดี ยังไงก็ตามฉันยังใหม่กับการทำงานกับเซิร์ฟเวอร์และแนวทางบรรทัดคำสั่ง ดังนั้นในการเรียนรู้พื้นฐานของการจัดการฐานข้อมูลเครื่องมือ GUI บางอย่างจะช่วยได้มาก ตัวอย่างเช่นฉันสามารถรันแอพ PgAdmin ได้อย่างปลอดภัยถัดจากการติดตั้ง PostgrSQL ( http://postgresapp.com/ ) บน Mac OS X Mavericks ของฉันหรือไม่ คำแนะนำใด ๆ ยินดีต้อนรับมากที่สุด

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 …

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 …

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
ตั้งค่าฐานข้อมูล 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?

3
PostgreSQL ปัญหาการแก้ไขจุด / บรรทัด / รูปหลายเหลี่ยมใน QGIS
ฉันมีปัญหากับ postgresql และ QGIS: ฉันสามารถเพิ่มคะแนน / เส้น / รูปหลายเหลี่ยมและฟิลด์การเติม แต่ฉันไม่สามารถ: ลบคะแนน / เส้น / รูปหลายเหลี่ยม ปรับเปลี่ยนจุด / เส้น / รูปหลายเหลี่ยม (ย้ายหรือปรับเปลี่ยนฟิลด์) เช่นโฮสต์ dbname = 'ยุโรป' = localhost พอร์ต = 5432 ผู้ใช้ = 'postgres' sslmode = ปิดใช้งานคีย์ = 'tid' โดยประมาณmetadadata = true srid = 900913 ประเภท = ตารางจุด = "สาธารณะ". "planet_osm_point" …

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

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 ฉันก็ยินดีที่จะรับฟังข้อเสนอแนะความคิดหรือประสบการณ์อื่น ๆ …

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

1
ความแตกต่างระหว่าง ST_D ภายในและ ST_ ระยะทางสำหรับการค้นหาใกล้เคียงใน PostGIS คืออะไร
ฉันมีบันทึกที่เก็บไว้ในตารางที่มีพิกัดละติจูด / ลองจิจูดเก็บไว้ในเขตเรขาคณิต ฉันต้องการค้นหาระเบียนทั้งหมดที่อยู่ใกล้กับจุดอ้างอิงที่ผู้ใช้ระบุ หมายเหตุ "ใกล้เคียง" อาจหมายถึงน้อยกว่า 100km (อาจเล็กกว่า) ST_DWithinตัวอย่างส่วนใหญ่ผมเห็นการใช้งาน มีเหตุผลที่คุณไม่สามารถใช้งานได้ST_Distanceหรือไม่? อะไรคือความแตกต่างระหว่างการใช้ST_DWithinและST_Distanceการทำสิ่งนี้? ตัวอย่างเช่น: SELECT name, ST_AsText(coords) FROM places WHERE ST_DWithin(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326), 1) VS SELECT name, ST_AsText(coords) FROM places WHERE ST_Distance(coords, ST_GeomFromText('POINT(-12.5842 24.4944)',4326)) < 1

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