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

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

2
คุณภาพของ Geocode: Nominatim vs. PostGIS Geocoder เทียบกับ Geocoder :: US 2.0
บางครั้งฉันจำเป็นต้องใส่รหัสทางภูมิศาสตร์> 500,000 ที่อยู่ถนนในสหรัฐอเมริกา (ไม่มีฟีเจอร์หรือทางแยก) ฉันต้องการตั้งค่าบริการเข้ารหัสทางภูมิศาสตร์ในพื้นที่เพื่อจัดการรหัสทางภูมิศาสตร์จำนวนมากเหล่านี้ ฉันเคยใช้Geocoder :: Tiger 2.0ในประเทศมาแล้ว การเปรียบเทียบเริ่มต้นให้ความแม่นยำที่สมเหตุสมผลกับที่อยู่ทางภูมิศาสตร์ของ Google โดยเฉพาะเมื่อฉันไม่พึ่งพา Ruby parser และฉันส่งองค์ประกอบที่อยู่ไปยัง geocoder อย่างชัดเจน ฉันได้อ่านPostGIS Geocoder จำนวนมากเช่นกัน เนื่องจากข้อมูลของฉันอยู่ใน PostGIS อยู่แล้วสิ่งนี้ฟังดูน่าสนใจ แต่ฉันไม่ได้ตั้งค่าในเครื่องเพื่อลองใช้งาน นอกจากนี้มีคนแนะนำฉันลองใช้Nominatimในพื้นที่ ฉันไม่รู้อะไรมากเกี่ยวกับเรื่องนี้ยกเว้นว่ามันไม่ใช่ Tiger (เท่าที่ฉันสามารถบอกได้) และฉันสงสัยว่าฉันจะได้ผลลัพธ์ที่น่าเชื่อถือมากขึ้นหรือไม่ คำถามของฉันกับทุกคนที่มีประสบการณ์ด้วยวิธีแก้ไขปัญหาข้างต้น: ความถูกต้องของทั้งสามเปรียบเทียบอย่างไร โดยเฉพาะซึ่งให้รหัสทางภูมิศาสตร์ที่เชื่อถือได้มากที่สุดสำหรับที่อยู่ถนนในสหรัฐอเมริกา ฉันไม่ได้เกี่ยวข้องกับความเร็วมากเกินไปหรือตั้งค่าความซับซ้อนมากเกินไป


1
ฉันจะแปลง polylines เป็นคะแนนทุก ๆ n เมตรใน PostGIS ได้อย่างไร
คำถามในแบบนี้เหมือนกันมาก แต่ฉันต้องใช้ PostGIS ฉันมีโพลีนจำนวนมากและต้องการที่จะแปลงให้เป็นคะแนนทุก ๆ n เมตรตามเส้นเหล่านี้ แก้ไข: ขอบคุณมากสำหรับสเตฟาน ข้อความค้นหาสุดท้ายของฉันแตกต่างไปเล็กน้อยอาจเป็นเพราะรุ่นที่เก่ากว่าของ PostGIS (1.5) แต่ในที่สุดฉันก็ได้สิ่งที่ต้องการ คะแนนรวมกันเป็นแผนที่ความร้อนของความหนาแน่นของถนน
14 postgis  point  line 

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

2
ฉันจะรับค่ามิเตอร์วัดระยะทางระหว่างรูปทรงเรขาคณิตทั้งสองใน PostGIS ได้อย่างไร
ฉันมีคำถามง่ายๆเกี่ยวกับการคำนวณระยะทางใน PostGIS ฉันอยากได้ระยะห่างระหว่างรูปทรงเรขาคณิตสองอัน ฉันกำลังใช้ sid นี้: 4269 หน่วยเป็นเมตรสิ่งที่ฉันกำลังทำอยู่ตอนนี้คือ: ST_Distance((a.geom,b.geom)) FROM ...แต่ฉันได้ผลลัพธ์เป็นองศา ฉันคิดว่าฉันควรทำงานกับภูมิศาสตร์ แต่ฉันจะขว้าง geom ไปยังภูมิศาสตร์ได้อย่างไร ฉันลองด้วย (a.geom :: ภูมิศาสตร์) แต่ฉันได้รับข้อผิดพลาด ฉันจะทำอย่างไรเพื่อให้ได้ผลลัพธ์เป็นเมตร ขอขอบคุณ

4
กำลังนำเข้า. shp ไปยัง PostgreSQL
ฉันต้องการนำเข้าไฟล์ shp ไปยัง postgreSQL ก่อนอื่นฉันสร้างไฟล์ sql แล้วเรียกใช้ PostgreSQL เพื่อสร้างไฟล์ sql ฉันเรียกใช้คำสั่งนี้ใน windows cmd: shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql จากนั้นเรียกใช้: psql -d postgres -U postgres -p 4321 -f worldcountries.sql แต่ผลลัพธ์คือ: psql: worldcountries.sql: 21: ข้อผิดพลาด: ฟังก์ชัน addGeometrycolumn (ไม่ทราบ, ไม่ทราบ, ไม่ทราบ, ไม่ทราบ, ไม่ทราบ, จำนวนเต็ม)

1
PostGIS: นับจำนวนจุดยอดของเส้นและรูปหลายเหลี่ยมในตาราง
ฉันมี 23 ตารางใน schema ของ PostGIS ซึ่งฉันจำเป็นต้องนับจำนวนจุดยอดของ ตารางเป็นส่วนผสมของเส้นและรูปหลายเหลี่ยมดังนั้นฉันจึงตระหนักว่าต้องใช้ ST_NPoints (geom) ดังนั้นฉันจึงเรียกใช้แบบสอบถามต่อไปนี้ SELECT count(ST_NPoints(geom) FROM lines; ผลลัพธ์ / การนับเท่ากับจำนวนของคุณสมบัติในตารางนั้นและไม่ใช่จำนวนยอดรวมของคุณลักษณะทั้งหมดในตารางนั้น ฉันจะต้องหายไปบางอย่าง แต่ไม่สามารถคิดออก (ต้องเช้าวันจันทร์;)
14 postgis 

4
การนำ Spatial Autocorrelation ไปใช้โดยใช้ QGIS หรือ PostgreSQL หรือแอปพลิเคชันฟรีอื่น ๆ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 เดือนที่ผ่านมา ฉันใหม่กับ GIS ฉันมีสองชั้นในฐานข้อมูล PostgreSQL ชั้นแรกมีจุดที่เหตุการณ์เกิดขึ้นในยุโรป ที่สองมี shapefile ของยุโรป ฉันสามารถทำแผนที่จุดต่างๆบนแผนที่ของยุโรปโดยใช้ QGIS ตอนนี้ฉันต้องการใช้ Spatial Autocorrealation (Moran i) ฉันได้เห็นการสาธิตบางอย่างของสิ่งนี้โดยใช้GeoDAแต่ดูเหมือนว่ามันจะจัดการกับรูปร่างไฟล์เดียวเท่านั้น ใครสามารถชี้ให้ฉันในทิศทางที่ถูกต้องเกี่ยวกับวิธีการใช้งานโดยใช้ QGIS หรือ PostgreSQL หรือแอปพลิเคชันฟรีอื่น ๆ

3
สร้าง“ กล่องขอบเฉียง” ที่มีอัตราส่วนความกว้าง / ความสูงสูงสุดหรือไม่
ฉันต้องการสร้างสี่เหลี่ยมผืนผ้าล้อมรอบด้วยอัตราส่วนความกว้าง / ความสูงสูงสุด ("กล่องมุมเอียง") จากชุดของคุณลักษณะอินพุตตามที่แสดงในภาพด้านล่าง: เช่นฟังก์ชั่น PostGIS ST_EnvelopeและST_Box2Dเช่นเดียวกับหม้อแปลง FME BoundingBoxReplacerและBoundingBoxAccumulatorสร้างกล่องขอบเขตคู่ขนานของแกน ข้อเสนอแนะใด ๆ ที่ใช้วิธีการกับ PostGIS, QGIS หรือ FME ยินดีอย่างมาก!
13 qgis  postgis  fme  extents 

3
เพิ่มความเร็วในการแคชไทล์ (TileStache)
ฉันให้บริการแบบเรียงต่อกันแบบเวกเตอร์โดยใช้TileStacheฉันมีทุกอย่างที่ฉันต้องการ ข้อมูลของฉันถูกเก็บไว้ในPostgresและฉันใช้VecTilesผู้ให้บริการจะให้บริการGeoJSONกระเบื้อง ฉันต้องการแคชไทล์ทั้งหมดของฉันเพื่อให้ไทล์แสดงเร็วขึ้น ฉันใช้tilestache-seed.pyเพื่อเก็บแคชของฉัน ฉันกำลังเรียกใช้tilestache-seedบนเครื่องหลายเครื่อง Tilestache-seed ทำงานได้ดีมากจนถึงระดับการซูมที่ 13 แต่หลังจากนั้นมันใช้เวลาในการแคชนานเกินไป สำหรับการซูมระดับ 16 ฉันมีไทล์ 5023772 เพื่อแคชและฉันได้รับไทล์ 100k-200k ต่อวันในแต่ละเครื่อง ฉันจะทำให้ไทล์แคชของฉันเร็วขึ้นได้อย่างไร มีวิธีในการปรับแต่งtilestache-seed.pyและทำให้เมล็ดเร็วขึ้นหรือไม่ อัปเดต:ฉันได้ลองสร้างดัชนีเชิงพื้นที่บนตารางของฉัน (ในคอลัมน์รูปทรงเรขาคณิตและคอลัมน์ที่ใช้สำหรับกรองข้อมูลผ่านส่วนคำสั่ง where) และฉันยังไม่เห็นการเพิ่มความเร็วในการเรียงซ้อนที่สำคัญ ในอัตรานี้มีเพียงการซูม 17 เท่านั้นที่จะใช้เวลาหนึ่งเดือนและครั้งนี้จะเพิ่มขึ้นอย่างทวีคูณเมื่อฉันเลื่อนไปที่ซูม 21 อัปเดต 2:ฉันพยายามสร้างมุมมองที่เป็นรูปธรรมเช่นกันและไม่มีการเปลี่ยนแปลงที่สังเกตได้ดังนั้นการเพิ่มประสิทธิภาพฐานข้อมูลจึงไม่ทำงาน ฉันคิดว่าฉันจะต้องเพิ่มประสิทธิภาพ tilestache-seed.py ด้วยตนเองหรือคิดหาวิธีใหม่ในการแคชไทล์ ข้อมูลฮาร์ดแวร์ฉันใช้กระบวนการแคชกับพีซี 8 เครื่องซึ่งหนึ่งในนั้นคือ i7 ที่มี 32gb ram และ i3 ที่มี 4gb ram แต่พวกเขาทั้งสองให้ความเร็วในการแคชที่เท่ากันเกือบทั้งหมด (ประมาณ 100k แผ่นต่อวัน)

1
การเข้าถึงโครงสร้างข้อมูลภายในที่จัดเก็บดัชนีเชิงพื้นที่ของ Postgis (PostGres GiST)
ฉันอยากรู้ว่าโครงสร้างข้อมูลภายในและกลไกการจัดเก็บของดัชนี GiST เชิงพื้นที่ใน Postgis เป็นอย่างไร ใน Oracle ฉันเคยชอบที่จะแสดงว่าดัชนี SDO เป็น "เพียงตารางอื่น" และระดับของคุณลักษณะเป็นดัชนีและกล่องเก็บรูปทรงเรขาคณิตที่จัดทำดัชนีถูกจัดเก็บเป็น blobs (ที่สามารถแยกได้) วิธี postgis เก็บดัชนีและที่ไหน ตารางระบบhttp://www.postgresql.org/docs/8.3/static/catalogs.htmlสามารถใช้เพื่อระบุดัชนี แต่ฉันไม่ทราบวิธีเข้าถึงหน่วยเก็บข้อมูลจริง (ถ้าเป็นตารางจริง ๆ )

1
สร้างรูปหลายเหลี่ยมจากบรรทัดใน PostGIS
ฉันพยายามแบ่งรูปหลายเหลี่ยมในรูปหลายเหลี่ยมที่เล็กกว่าจากบรรทัด แต่ฉันคิดว่าฉันไม่สามารถใช้ฟังก์ชัน st_split ได้ สิ่งที่ฉันต้องการคือการสร้างรูปหลายเหลี่ยมขนาดเล็กภายในชิ้นส่วนขนาดใหญ่โดยใช้ตาราง linestring ฉันลองมาหลายวิธีแล้ว แต่ไม่สามารถรับผลลัพธ์ได้ สิ่งที่ฉันได้ลอง: แบ่งรูปหลายเหลี่ยมหนึ่งรูปจาก LineString โดยใช้ st_split () จากรูปหลายเหลี่ยมขอบเขต และตาราง Linestring: ฉันต้องการรูปหลายเหลี่ยมต่อไปนี้: ปัญหา : ฉันไม่สามารถแบ่งรูปหลายเหลี่ยมออกจากหลาย ๆ เส้นไม่ได้รูปหลายเหลี่ยมจาก Multilinestring วิธีอื่นที่ฉันพยายามคือการสร้างรูปหลายเหลี่ยมจากบรรทัดที่มี st_polygonize () SQL ที่ฉันพยายามคือ: SELECT g.path[1] as gid, g.geom::geometry(polygon, 22033) as geom FROM (SELECT (ST_Dump(ST_Polygonize(geom))).* FROM linestable ) as g; แยกจากการสร้างรูปหลายเหลี่ยมจากส่วนของบรรทัดโดยใช้ PostgreSQL และ PostGIS ปัญหา …
13 postgis  sql  topology 

1
PostGIS - วิธีการที่มีประสิทธิภาพ ST_Union รูปหลายเหลี่ยมที่ทับซ้อนกันทั้งหมดในตารางเดียว
เป้าหมายของฉันคือใช้ตารางเดียวและ st_union รูปหลายเหลี่ยมทั้งหมดที่แตะหรือใกล้กันเป็นรูปหลายเหลี่ยมเดียว ฉันเป็นนักพัฒนา C # ที่เริ่มเรียนรู้เกี่ยวกับ PostGIS ด้วยการใช้รหัสด้านล่างนี้ฉันสามารถทำสิ่งนี้ได้ แต่ดูเหมือนว่าจะไม่มีประสิทธิภาพและมี PostGIS จำนวนมากที่ใหม่สำหรับฉัน จากความพยายามครั้งแรกของฉัน (ยังอยู่ในความคิดเห็น) ฉันสามารถลดการวนซ้ำได้โดยใช้ array_agg กับ ST_UNION แทนที่จะรวมตัวกันทีละครั้ง ฉันปิดท้ายด้วย 133 polys จากจุดเริ่มต้น 173 sql = "DROP TABLE IF Exists tmpTable; create table tmpTable ( ID varchar(50), Geom geometry(Geometry,4326), Touchin varchar(50) ); create index idx_tmp on tmpTable using GIST(Geom); "; …
13 postgis 

2
POSTGIS รับความยาวสูงสุดของรูปหลายเหลี่ยมและความกว้างเฉลี่ย
ฉันมีตารางประเภทโพลีกอนแล้ว ฉันต้องการคำนวณความยาวสูงสุดของรูปหลายเหลี่ยมโดยอัตโนมัติ: และอันที่สองคือความกว้างเฉลี่ย: ฉันสงสัยอย่างถ่องแท้ตอนนี้ถ้าเป็นไปได้ราวกับว่ารูปหลายเหลี่ยมของฉันเกือบทั้งหมดจะเป็นรูปสี่เหลี่ยมผืนผ้าในกรณีอื่น ๆ มันอาจจะคลุมเครือจริงๆและแทบจะเป็นไปไม่ได้เลยที่จะแยกแยะความกว้างและความสูง เรามาดูกันว่ามีใครสามารถให้ความกระจ่างในเรื่องนี้หรือไม่ ความนับถือ,

1
คีย์ / ค่า Hstore แบบรวมและการสืบค้นเชิงพื้นที่ช้าเกินไปที่จะจัดการสารสกัด OSM ที่ใหญ่กว่า
ฉันพยายามคำนวณสถิติของข้อมูล OSM โดยใช้ PostgreSQL 9.3.5 และ PostGIS 2.1.4 ฉันเริ่มต้นด้วยสารสกัดบาวาเรียขนาดเล็กซึ่งฉันดาวน์โหลดจาก Geofabrik db schema เป็น API แบบปกติ 0.6 0.6 ข้อมูลจะถูกนำเข้าผ่านวิธีการถ่ายโอนข้อมูลไปยัง Postgres (โดยใช้สคริปต์ pgsnapshot_schema_0.6 * .sql ซึ่งมาพร้อมกับ osmosis) ทำการวิเคราะห์สูญญากาศด้วย สิ่งเดียวที่ทำเองที่ฉันใช้อยู่คือตารางรูปหลายเหลี่ยมซึ่งมีมัลติโพลิกอนสำหรับความสัมพันธ์ด้านการดูแลระบบทั้งหมด เรขาคณิตของรูปหลายเหลี่ยมนั้นไม่ได้ทำให้ง่ายขึ้น แต่อย่างใด สิ่งที่ฉันพยายามจะทำคือการนับจำนวนโหนดทั้งหมดที่อยู่ใน admin = 6 ขอบเขตของบาวาเรีย นี่คือแบบสอบถาม SQL ของฉัน: SELECT relpoly.id, count(node) FROM bavaria.relpolygons relpoly, bavaria.nodes node WHERE relpoly.tags @> '"boundary"=>"administrative","admin_level"=>"6"'::hstore AND …

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