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

pgRouting ขยายฐานข้อมูลภูมิสารสนเทศ PostGIS / PostgreSQL เพื่อจัดเตรียมฟังก์ชันการกำหนดเส้นทางเชิงพื้นที่

10
การสร้างรูปหลายเหลี่ยมเวลาไดรฟ์โดยใช้เครื่องมือโอเพนซอร์สหรือไม่
มีใครใช้เครื่องมือโอเพนซอร์ซและ / หรือข้อมูลในการสร้างรูปหลายเหลี่ยมเวลาไดรฟ์ที่แผ่ออกจากตำแหน่งที่กำหนดหรือไม่ ตัวอย่างเช่นฉันใช้ผลิตภัณฑ์ ESRI เช่นนักวิเคราะห์เครือข่ายและนักวิเคราะห์ธุรกิจเพื่อสร้างขอบเขตรูปหลายเหลี่ยมที่แสดงระยะทางสูงสุดที่สามารถเดินทางไปตามเครือข่ายถนนจากจุดที่กำหนดภายในระยะเวลาที่ผู้ใช้กำหนด (พูด 5, 10 และ / หรือ 15 นาที). มีโอเพ่นซอร์สหรือทางเลือกอื่นบนเว็บที่คล้ายกันบ้างไหม? ฉันเห็นโพสต์นี้ แต่มันไม่ได้มีตัวเลือกอื่น ๆ : คุณสามารถสร้างรูปหลายเหลี่ยมในภูมิภาคท่องเที่ยวด้วย Google Maps API ได้หรือไม่ ฉันอยากรู้ว่าใครเป็น (หรือสามารถ) ใช้ OpenStreetMap เพื่อทำการวิเคราะห์เวลาหรือไม่ นอกจากนี้ยังมีการใช้ยูทิลิตี pgRouting ใด ๆ ที่สามารถใช้ในการสร้างรูปหลายเหลี่ยมได้หรือไม่? http://pgrouting.postlbs.org/

4
ฉันจะเพิ่มประสิทธิภาพ pgrouting เพื่อความเร็วได้อย่างไร
ฉันใช้ pgrouting ในฐานข้อมูล postgis ที่สร้างผ่าน osm2pgrouting มันทำงานได้ดีมากในชุดข้อมูลที่มีข้อ จำกัด (วิธี 3.5k เส้นทางที่สั้นที่สุดทั้งหมด A * ค้นหา <20 ms) อย่างไรก็ตามเนื่องจากฉันได้นำเข้ากล่องขนาดใหญ่กว่า (122k วิธี) จาก europe.osm ประสิทธิภาพการทำงานก็ลดลงมาก (เส้นทางที่สั้นที่สุดมีค่าใช้จ่ายประมาณ 900ms) ฉันคิดว่าการใช้ A * ส่วนใหญ่ของขอบเหล่านั้นจะไม่เคยถูกเยี่ยมชมเนื่องจากอยู่นอกเส้นทาง สิ่งที่ฉันได้ทำไปแล้วเพื่อพยายามปรับปรุงความเร็ว: วางดัชนีลงในคอลัมน์รูปทรงเรขาคณิต (ไม่มีเอฟเฟกต์ที่เห็นได้ชัดเจน) เพิ่มหน่วยความจำของฉันจาก 8GB เป็น 16GB เปลี่ยนการตั้งค่าหน่วยความจำ postgresql (shared_buffers, effective_cache_size) จาก (128MB, 128MB) เป็น (1GB, 2GB) (ไม่มีผลที่เห็นได้ชัดเจน) ฉันมีความรู้สึกว่างานส่วนใหญ่กำลังทำอยู่ในห้องสมุด C Boost ที่ซึ่งกราฟกำลังทำอยู่ดังนั้นการปรับ …

1
ฟังก์ชัน PostGIS จะจัดการกับบัฟเฟอร์และที่จัดเก็บข้อมูลภายนอกได้อย่างไร
ฉันเห็นรายการฟังก์ชันใหม่ที่เพิ่มมากขึ้นเรื่อย ๆ ใน PostGIS ซึ่งบางส่วนเกี่ยวข้องGEOS(เช่นST_ClusterKMeans) ฟังก์ชั่นบางอย่าง (เช่นที่อยู่ในpgrouting) พึ่งพาห้องสมุดอื่น ๆ (เช่นBGL) ความประทับใจของฉันคือไลบรารีพื้นฐานเหล่านี้จำนวนมาก (บ่อยครั้งใน C / C ++) ไม่รองรับการจัดการบัฟเฟอร์ระหว่างหน่วยความจำและหน่วยความจำรอง / ที่เก็บ / ดิสก์ ดังนั้นฟังก์ชั่น PostGIS ด้านบนของพวกเขาทำงานบนชุดข้อมูลขนาดใหญ่ที่ไม่สามารถเก็บไว้ในหน่วยความจำทางกายภาพ (หรือเสมือน)? ถ้าเป็นเช่นนั้นความสามารถในการจัดการบัฟเฟอร์เหล่านี้มาจากไหน (จากมุมมองของการนำไปใช้)?

1
การจำลองแบบมอนติคาร์โลโดยใช้ QGIS และ pgRouting ในการก่อสร้างทางเท้าที่ดีที่สุด
ฉันยังใหม่กับการวิเคราะห์เชิงพื้นที่และขอขอบคุณทิศทางทั่วไปในโครงการที่ฉันพยายามอธิบายไว้ด้านล่าง (ฉันเริ่มจากศูนย์) เป้าหมาย:เพื่อค้นหาสถานที่ที่ดีที่สุดในการติดตั้งทางเท้า 2000 ฟุตในบ้านเกิดของฉันเพื่อเชื่อมต่อครัวเรือนส่วนใหญ่กับย่านธุรกิจกลาง (CBD) ที่ซึ่ง "เชื่อมต่อ" หมายถึงเดิน 1.2 กิโลเมตรจาก CBD ฉันมีรูปร่างที่แสดงโครงสร้างที่มีอยู่ (ครัวเรือน) ถนนและทางเท้า (ติดตั้งแล้ว) นี่คือโซลูชัน / กระบวนการคิดที่เสนอของฉัน: แปลงเครือข่ายทางเท้าในสถานที่เป็นฐานข้อมูลของโหนดที่เชื่อมต่อด้วยน้ำหนัก (เช่นระยะทาง) มีวิธีในการทำสิ่งนี้โดยตรงใน QGIS (หรือโปรแกรมอื่น ๆ ) โดยคลิกที่ทางแยกทั้งหมดหรือไม่? คำนวณจำนวนครัวเรือนที่อยู่ในระยะเดิน 1.2 กม. จากย่านธุรกิจกลาง (เช่นจุด lat-long หรือรูปหลายเหลี่ยม) โดยใช้ความสามารถในการกำหนดเส้นทางของ pgRouting หรืออย่างอื่น นี่จะเป็นกรณีฐาน "ค่าการเข้าถึงในครัวเรือน" การใช้เลเยอร์ถนนเป็นแนวทางให้วางเท้าเพิ่มอีก 2000 ฟุต (พูดในเซ็กเมนต์ 10 ฟุต) ของทางเท้าลงบนเลเยอร์ทางเท้า นี่คือสิ่งที่เทียบเท่ากับการสร้างทางเท้าใหม่จำนวนมากโดยพลการ คำนวณโหนดและตุ้มน้ำหนักใหม่โดยใช้เครือข่ายคนเดินเท้าใหม่ตาม (1) แล้วคำนวณจำนวนครัวเรือนที่อยู่ภายใน …

2
ช่วยเลือกเอ็นจิ้นการเราติ้งที่เหมาะสม
ฉันกำลังสร้างระบบการวางแผนเส้นทาง แต่ฉันยังต้องตัดสินใจว่าฉันจะใช้เครื่องมือการกำหนดเส้นทางพื้นฐานอะไร จนถึงตอนนี้ฉันได้พบ pgrouting และ neo4j ฉันมีเครือข่ายเส้นทางในฐานข้อมูล postgresql / postgis (นำเข้าจาก Shapefile) ฉันได้ทำแบบสอบถามเพื่อแยกโหนด (จุดสิ้นสุดของวิธีที่คุณต้องตัดสินใจว่าทิศทางใดที่จะไปหรือสิ้นสุดที่ตาย) และเพื่อแยกขอบ (มักทำโดยวิธีติดต่อกันหลายวิธี) ขอบทั้งหมดของฉันเป็นแบบสองทิศทาง เป้าหมายหลักของฉันคือการคำนวณเส้นทางในเครือข่ายนี้โดยใช้อัลกอริทึม A-star โดยที่ distance = cost ความรู้สึกของฉันบอกฉันว่าฐานข้อมูลกราฟเช่น neo4j เป็นวิธีที่จะไป (ดูเหมือนจะทำเพื่อจุดประสงค์นี้เท่านั้น) แต่ดูเหมือนว่าพวกเขาจะไม่สนับสนุน A-star โดยปริยายและไม่มีความรู้สึกที่แท้จริงของรูปทรงเรขาคณิต . ดูเหมือนจะเหมาะสำหรับเครือข่ายสังคมมากกว่าแผนที่ การจัดเรียงจะตอบสนองความต้องการของฉันได้หรือไม่ มันเร็วพอสำหรับการสืบค้นแบบทันทีหรือไม่ (มากกว่า + -2000 โหนด, +4000 ขอบ)? โดยปกติจะเป็นไม่กี่มิลลิวินาทีสำหรับ A-star แต่ฉันไม่แน่ใจเกี่ยวกับการดำเนินการนี้ใน sql pgrouting A-star ให้รายการโหนดและขอบให้ฉันหรือไม่? ในตัวอย่างส่วนใหญ่ฉันเห็นเกี่ยวกับการ pgrouting ฉันสังเกตเห็นมักจะมีรายการคำสั่งหลังจากการคำนวณเส้นทาง …

2
วิธีทำความสะอาดเชพไฟล์ที่ไม่ดีสำหรับการจัดเส้นทาง?
ฉันกำลังพยายามทำความสะอาด Shapefile เพื่อให้สามารถใช้งานการเราต์ด้วย pgrouting, postgis, postgresql ที่นี่เป็นทางแยกดูเหมือนว่าจะมีการเชื่อมต่อ แต่เมื่อเราซูม ... มันไม่ใช่: กันที่นี่: ที่นี่ (ซูมได้สูงสุด) มี 2 วิธีเมื่อดูเหมือนเป็นวิธีเดียวและเชื่อมต่อเพียงวิธีเดียว: ฉันใช้ assign_vertex_id ที่มีค่าความคลาดเคลื่อนต่างกันและ QGIS และ PostGIS แต่ฉันไม่รู้ว่าจะใช้อะไร

2
ทำการวิเคราะห์เส้นทางใน R ตามเครือข่ายการขนส่ง OSM หรือไม่
ฉันกำลังวิเคราะห์เส้นทางที่เป็นไปได้ที่ผู้สัญจรใช้ในการเดินทางตามข้อมูลการสำรวจสำมะโนประชากรการกระจายความหนาแน่นของงานและเครือข่ายการขนส่ง ในขณะที่ฉันใช้ pgRouting และ pgRouting add-on สำหรับ QGIS (อธิบายไว้ที่นี่ ) สำหรับการวิเคราะห์ของฉัน: อย่างไรก็ตามฉันต้องการขั้นตอนทั้งหมดที่ฉันทำเพื่อทำซ้ำแบบเต็ม (ดูบทความที่ยอดเยี่ยมในที่นี่ ) จากนั้นฉันต้องการที่จะทำการวิเคราะห์ของฉันจากบรรทัดคำสั่งและบันทึกไฟล์สคริปต์สำหรับการอ้างอิงในอนาคต แพ็คเกจ R-geo ตอบสนองความต้องการนี้ได้ดีเนื่องจากมีอิสระน้ำหนักเบาและเสถียร: ดาวน์โหลดไฟล์สคริปต์ขนาดเล็กและคุณควรจะสามารถทำทุกสิ่งที่ฉันทำใหม่ได้ (ดูที่นี่สำหรับตัวอย่างที่ไม่เกี่ยวข้องกับ Rpubs ) แพ็คเกจ R ที่ฉันได้ระบุไว้สำหรับการทำเช่นนี้คือ: gdistanceตีพิมพ์เมื่อธันวาคม 2555 ดูมีแนวโน้ม แต่ไม่มีสัญญาณของความเข้ากันได้กับเครือข่ายการขนส่ง osm e1071ดูเหมือนจะค่อนข้างเป็นนามธรรมและอาจเกินความเป็นจริงสำหรับสิ่งที่ฉันต้องการจะทำ ฟังก์ชั่นpairdist.lppในแพคเกจ spatstat ดูมีแนวโน้ม แต่มีเอกสารเล็กน้อย ก่อนที่จะดำน้ำให้คิดว่ามันคุ้มค่าที่จะถามคนที่อาจต้องเผชิญกับปัญหาที่คล้ายคลึงกัน เป็นไปได้ไหมที่จะทำการวิเคราะห์เส้นทางของฉันใน R หรือจะเป็นการดีที่สุดที่จะเรียนรู้ PostGIS อย่างถูกต้องและทำทุกอย่างใน pgRouting?

4
จะเพิ่ม offsets ในเส้นทางได้อย่างไร?
แก้ไข: ฉันต้องการลบล้างคำถามของฉัน สมมติว่าคุณอยู่ใน "จุด A" และต้องการไปที่ "จุด B" จุดนี้จะไม่อยู่ในตาราง "at_2po_4pgr" สาเหตุไม่ใช่โหนดต้นทาง / ปลายทาง จากนั้นฉันจะค้นหาจุดที่ใกล้ที่สุดสำหรับจุด A และ B (จุดสีเขียว) หลังจากนี้ฉันอาจทำการโทร shortest_path โดยใช้รหัสจุดสีเขียวและฉันจะได้รับเส้นทาง "สีส้ม" แต่เพื่อให้ได้ต้นทุนเส้นทางจริง (ระยะทาง) ในกรณีแรกฉันจะต้องย่อส่วน "offsetA" และในกรณีที่สองเพิ่ม de "offset B" ในการคำนวณระยะทางระหว่างจุดสีแดงและจุดสีเขียวฉันเรียกใช้แบบสอบถามต่อไปนี้: SELECT * FROM st_distance( ST_GeomFromText('POINT(-3.6963314 42.3498066)',4326), ST_GeomFromText('POINT(-3.6954276 42.3479634)',4326)). ฉันจะรู้ได้อย่างไรว่าเมื่อเพิ่มหรือชดเชยการชดเชย? ขอโทษด้วยสำหรับภาษาอังกฤษของฉัน!

2
วิธีการผ่านเส้นทางน้ำ?
มีข้อมูลจำนวนมากเกี่ยวกับการกำหนดเส้นทาง (pg) ผ่านวิธีปกติ วิธีปกติถูกสร้างขึ้นจากมนุษย์และเหมาะอย่างยิ่งสำหรับการกำหนดเส้นทาง อย่างไรก็ตามฉันมีความสนใจในการกำหนดเส้นทางผ่านทางน้ำ ในทางทฤษฎีแล้วสิ่งนี้ควรเป็นเส้นทางเดียวกับเส้นทางปกติยกเว้นเส้นทางน้ำมักไม่ได้ถูกสร้างขึ้นดังนั้นพวกเขาจึงประกอบออกจากแหล่งน้ำขนาดใหญ่เช่นทะเลสาบ ทะเลสาบไม่ใช่เส้นที่เรียบร้อยที่คุณสามารถใช้ในการกำหนดเส้นทางและนอกจากนั้นคุณยังต้องพิจารณาความลึกของน้ำสะพานและล็อคที่อาจหรือไม่อนุญาตให้คุณข้าม และทั้งหมดนี้แน่นอนขึ้นอยู่กับขนาด / ความลึกของเรือของคุณอีกครั้ง มีเครื่องมือใดบ้างที่จัดการกับปัญหาบางอย่างที่ฉันอธิบายข้างต้นหรือไม่

3
PgRouting - วิธีคลิปลิงค์เมื่อถึงต้นทุนสูงสุด?
ฉันมี polyfile เชพไฟล์ที่เป็นตัวแทนเครือข่ายถนนและมีไฟล์รูปร่างที่สองที่มีจุด ฉันต้องการใช้ PostGIS (น่าจะเป็น PgRouting) เพื่อระบุเครือข่ายย่อยหรือพื้นที่ให้บริการที่แผ่จากจุดเหล่านี้ โดยพื้นฐานแล้วฉันหวังว่าจะถามคำถาม "เริ่มต้นจากจุดที่ X ฉันจะเดินไปในทิศทางใดได้บ้างโดยกำหนดงบประมาณการเดินทางทั้งหมด 1 กม. ตามเครือข่ายถนน" ผลที่ได้จะเป็นชุดของโพลิลีนที่ถูกตัดซึ่งแสดงถึงความเป็นไปได้ในการเดินทางทั้งหมดโดยมีงบประมาณการเดินทาง 1 กม. สำหรับการอ้างอิงการวิเคราะห์ GRASS นี้ดูเหมือนจะเป็นสิ่งที่ฉันต้องการทำ (ยกเว้นฉันต้องการทำสิ่งนี้ใน PostGIS): http://www.gdf-hannover.de/lit_html/grass60_v1.2_th/node57.html#sec: optalloc ตัวอย่างต่อไปนี้ดูเหมือนจะเป็นเกือบสิ่งที่ฉันต้องการจะทำ แต่มันดูเหมือนว่าจะตอบคำถาม "ซึ่งโหนดฉันสามารถเดินทางไปรับงบประมาณการเดินทางของ X ระยะทาง?" http://underdark.wordpress.com/2011/02/12/drive-time-isochrones/ อย่างที่สองนั้นไม่ใช่คำตอบที่ฉันกำลังมองหาเพราะฉันต้องการให้ polylines ตัดกับระยะทางในการเดินทางของฉัน - ฉันไม่สนใจหรอกว่าฉันจะไปถึงจุดใด

2
รับเส้นทางที่สั้นที่สุดหลายเส้นทางด้วย PgRouting ในแบบสอบถามหรือไม่
ฉันต้องการเรียกใช้อัลกอริธึมพา ธ ที่สั้นที่สุดในหลาย ๆ แหล่ง & เป้าหมายคู่กันในครั้งเดียวและรับผลเป็นตารางแล้วประมวลผลมัน ฉันจะทำสิ่งนี้ได้อย่างไร แบบสอบถามนี้ไม่ทำงาน: SELECT a.source, a.target, paths.* FROM all_to_all a, shortest_path_astar('...', a.source, a.target, false, false) paths; ERROR: function expression in FROM cannot refer to other relations of same query level (btw, all_to_all ไม่ได้หมายถึงทุกคนอย่างแท้จริง :) มันเป็นเพียงจำนวนคู่สุ่ม) สิ่งนี้ไม่ทำงาน: SELECT * FROM all_to_all a, ( SELECT * …

3
การปรับเส้นทางสำหรับยานพาหนะหลายคัน
ฉันมี 100 จุดหมายปลายทางและ 5 ยานพาหนะและฉันต้องการรหัสโซลูชันที่มีประสิทธิภาพเส้นทางยานพาหนะไปยังแต่ละปลายทางดังนั้นแต่ละปลายทางถูกเยี่ยมชมโดยหนึ่งในยานพาหนะ จุดหมายเหล่านี้บางแห่งอาจมีหน้าต่างเวลาที่จะต้องไปเยี่ยมชมในระหว่างนั้นเช่นกัน ฉันใช้ PostgreSQL และ PostGIS และกำลังมองหาที่จะใช้ pgrouting แต่ฉันไม่แน่ใจว่ามันเหมาะสำหรับยานพาหนะหลายคัน - จากความรู้ที่ จำกัด ของฉันเกี่ยวกับ Dijkstra ฯลฯ ฉันคิดว่าพวกเขาออกแบบมาสำหรับยานพาหนะคันเดียว ความคิดใด ๆ เกี่ยวกับว่าการเริ่มต้นอย่างรวดเร็วสามารถแก้ปัญหานี้ได้หรือไม่และหากเป็นเช่นนั้นตัวอย่างรหัสใด ๆ หากไม่มีมีทางเลือกโอเพนซอร์ซที่สามารถทำได้หรือไม่?

2
มีวิธีเพิ่มข้อ จำกัด การเลี้ยวใน A * และ Dijkstra หรือไม่?
ขณะนี้เรากำลังทำงานกับ pgRouting และพบว่าไม่มีวิธีดำเนินการตามข้อ จำกัด การเลี้ยว (เช่นห้ามเลี้ยวขวาหรือเลี้ยวซ้าย) ในขณะที่เป็นไปได้ที่จะกำหนด "to_cost" และ "กฎ" ในอัลกอริทึมการถ่ายภาพ * ... ฉันไม่สามารถหาวิธีในการใช้ข้อ จำกัด เหล่านี้โดยใช้อัลกอริทึม A star และ Dijktra มีวิธีดำเนินการตามข้อ จำกัด การเลี้ยวแบบพิเศษในวิธี A star และ Dijkstra หรือไม่?

1
การคำนวณการเดินและขี่จักรยานแผนที่ Isochrone โดยใช้ QGIS & pgRouting?
เพิ่งติดตั้ง QGIS เพราะฉันเชื่อว่าฉันจะสามารถผลิตไอโซนิกเดินและขี่จักรยานได้จากจุดที่กำหนด ฉันทำสิ่งนี้ได้อย่างง่ายดายก่อนที่จะใช้ ArcMap แต่ฉันกำลังดิ้นรนกับ QGIS จริงๆ จากสิ่งที่ฉันได้อ่านฉันควรใช้การทำแผนที่ PGRouting และ OSM2PGrouting (ซึ่งฉันได้ติดตั้งแล้ว) ฉันไม่ได้ใช้ SQL มาก่อนและค้นหาแนวทางในการทำไอโซโทปเหล่านี้ ฉันได้อ่านเกี่ยวกับวิธีการต่างๆโดยละเอียดแล้ว SQL ส่วนใหญ่ที่ฉันกำลังดิ้นรนอยู่

4
จุดเชื่อมต่อ (ป้ายรถเมล์) ซึ่งไม่อยู่บนเส้น (LINESTRING) ไปยังเครือข่าย
ฉันต้องเชื่อมต่อป้ายรถเมล์ (คะแนน) กับเลเยอร์เครือข่าย (ข้อมูล OSM) ป้ายรถเมล์เหล่านี้ไม่ได้อยู่บนเส้นตรง (ดูภาพหน้าจอ) และไม่ควรย้ายตำแหน่งของพวกเขา ฉันใช้ PostGIS, pgrouting และ QGIS และเครือข่ายสามารถกำหนดเส้นทางได้ด้วยแหล่งที่มาและคอลัมน์เป้าหมายเป็นต้น ส่วนใหญ่ฉันต้องการที่จะทำสองสิ่งหลังจากนั้น: การหาระยะทางระหว่างบัสหยุดโดยใช้การวิเคราะห์เส้นทางที่สั้นที่สุด การสร้าง isochrones ด้วยระยะทางเดินจากป้ายรถเมล์โดยใช้เครือข่าย OSM เพื่อให้ได้ค่าที่แน่นอนจำเป็นต้องมีการกำหนดเส้นทาง 'เริ่มต้น' และ 'หยุด' ใกล้กับป้ายรถเมล์ ในหลายกรณีโหนดที่ใกล้เคียงที่สุดจะอยู่ไกลเกินกว่าจะรับค่าที่แน่นอนได้ แต่ไม่ควรมีการกำหนดเส้นทางไปยังตำแหน่งจุดที่แท้จริงของป้ายรถเมล์ ในตัวอย่างของฉันในภาพคุณสามารถดูว่าการกำหนดเส้นทางระหว่างหยุดควรมีลักษณะอย่างไร มีความเป็นไปได้ที่จะแทรกโหนดใหม่โดยอัตโนมัติในเครือข่าย (LINESTRING) ซึ่งอยู่ใกล้กับป้ายรถเมล์มากที่สุดหรือเป็นไปได้หรือไม่ที่จะเริ่มต้นการกำหนดเส้นทางใน 'จุดจำลอง' ที่ตั้งค่าไว้สำหรับแบบสอบถาม (คล้ายกับถนน) ปลั๊กอินกราฟใน QGIS ทำ)?

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