การสร้างรูปหลายเหลี่ยมเวลาไดรฟ์โดยใช้เครื่องมือโอเพนซอร์สหรือไม่


55

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

ฉันเห็นโพสต์นี้ แต่มันไม่ได้มีตัวเลือกอื่น ๆ : คุณสามารถสร้างรูปหลายเหลี่ยมในภูมิภาคท่องเที่ยวด้วย Google Maps API ได้หรือไม่

ฉันอยากรู้ว่าใครเป็น (หรือสามารถ) ใช้ OpenStreetMap เพื่อทำการวิเคราะห์เวลาหรือไม่

นอกจากนี้ยังมีการใช้ยูทิลิตี pgRouting ใด ๆ ที่สามารถใช้ในการสร้างรูปหลายเหลี่ยมได้หรือไม่? http://pgrouting.postlbs.org/


สนใจดูคำตอบของคนนี้ เท่าที่ฉันกังวล ESRI เป็นผู้นำในผลิตภัณฑ์เซิร์ฟเวอร์โอเพ่นซอร์สส่วนใหญ่เป็นเพราะมันแสดงให้เห็นถึงกระบวนการทางภูมิศาสตร์ในรูปแบบที่ง่ายต่อการให้บริการ / บริโภค
Simon

มีคำถามเพิ่มเติมเกี่ยวกับคำถามนี้หรือไม่? ฉันสนใจที่จะยุ่งกับผู้สร้างโพลีโอเพนซอร์สในการเขียนสคริปต์แผนที่
Furlong

ฉันยังไม่สามารถให้คำตอบได้อย่างแน่นอนเนื่องจากฉันต้องหยุดทำงานในโครงการนี้ชั่วคราว เนื่องจากฉันไม่ใช่คน "GRASS" ฉันอาจจะไม่ไปเส้นทางนั้นแม้ว่ามันจะเป็นทางออกที่ดีมาก อย่างไรก็ตามในตอนนี้ฉันพยายามโน้มน้าวให้ใช้ pgRouting ซึ่งมีฟังก์ชั่น Alpha Shapes อยู่ภายใน
RyanDalton

คำตอบ:


52

GRASS v.net.iso จะให้ผลลัพธ์ดังนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คุณอาจไม่ต้องการเรียกใช้อัลกอริธึมฮัลล์นูนบนเอาต์พุตนี้ ลองนึกภาพถนนสีฟ้า: ตัวเรือนูนรอบตัวมันจะมีชิ้นส่วนมากมายที่ไม่สามารถเข้าถึงได้ในเวลาที่แสดงด้วย "สีน้ำเงิน"

แต่คุณอาจต้องการดูเป็นรูปร่างแบบอัลฟ่า (คำถามที่เกี่ยวข้อง: คำจำกัดความขั้นตอนวิธีและวิธีแก้ปัญหาสำหรับเรือเว้าคืออะไร )

ร่างรูปร่างอัลฟา

คุณสามารถสร้าง isochrones เวลาไดรฟ์โดยใช้ pgRouting และ QGIS ( ดังอธิบายไว้ที่นี่ ) ฉันไม่ได้ใช้ OSM ในกรณีนี้ แต่แน่นอนว่าคุณสามารถสร้างเครือข่ายที่ใช้เส้นทางได้ของคุณตาม OSM (ดูที่เครื่องมือ osm2pgrouting )

ป้อนคำอธิบายรูปภาพที่นี่

( ความละเอียดเต็ม )

สำหรับการแก้ปัญหา PostGIS บริสุทธิ์คุณสามารถใช้ฟังก์ชั่น pgRouting รูปร่างอัลฟา นี่คือการเปรียบเทียบรูปร่างอัลฟาตามที่นำมาใช้ใน pgRouting และแนวทางที่ฉันนำเสนอในการอัปเดตก่อนหน้า:

ป้อนคำอธิบายรูปภาพที่นี่

พื้นที่สีแสดงผลลัพธ์ของฟังก์ชันรูปร่างอัลฟ่าเส้นสีดำเป็นผลลัพธ์ของวิธีการแก้ไขที่อธิบายไว้ก่อนหน้านี้ พื้นที่เก็บกักน้ำมีรายละเอียดน้อยลงโดยใช้รูปร่างอัลฟาของ pgRouting นอกจากนี้ดูเหมือนว่าจะไม่มีทางเปลี่ยนแปลงค่าของอัลฟ่าเพื่อสร้างการแสดงที่มีรายละเอียดมากขึ้น


2
+1 กับรูปร่างอัลฟ่า! เรียนรู้สิ่งใหม่ทุกวัน! ฉันรู้ว่าตัวถังนูนไม่ได้แก้ปัญหา แต่ไม่รู้เรื่องเหล่านี้!
Darren Cope

1
ขอบคุณมากสำหรับการโพสต์คำอธิบายนี้ในบล็อกของคุณ ฉันวางแผนที่จะตรวจสอบสิ่งนี้ในไม่ช้าและดูว่าฉันสามารถทำซ้ำข้อมูลของฉันได้หรือไม่ มันดูยอดเยี่ยม แต่!
RyanDalton

10

GRASS 'v.net.iso สามารถใช้ในการสร้างเครือข่ายเวลาไดรฟ์' ซึ่งคุณสามารถส่งผ่านคำสั่ง 'เรือนูน' เพื่อรับรูปหลายเหลี่ยม อาจไม่เหมาะ แต่จะได้ผล!


1
ฮ่าฮ่า - แค่เอาชนะฉัน!
om_henners

+1 สำหรับ v.net.iso แต่ไม่แน่ใจเกี่ยวกับส่วนที่นูนออกมา - ดูคำตอบของฉัน
underdark

9

เป็นไปได้ว่าคุณสามารถใช้v.net.isoจาก GRASS GIS อย่างไรก็ตามมันไม่ได้สร้างรูปหลายเหลี่ยม (AFAIK) แต่แยกบรรทัดด้วยคลาสราคาจากแหล่งที่มา

สำหรับการคำนวณเวลาขับจาก OSM คุณสามารถนำเข้าข้อมูลไปยัง GRASS ด้วยv.in.osmและใช้ v.net.iso เพื่อคำนวณโซนต้นทุน หากคุณต้องการเวลาเดินทางและคุณไม่มีขีด จำกัด ความเร็วของถนนคุณสามารถคำนวณขีด จำกัด ความเร็วตามฟังก์ชั่นบางอย่างของคลาสถนน


7

คุณสามารถใช้ GraphHopper สำหรับงานนั้นซึ่งรองรับโหมดที่แตกต่างกันเช่นการเดินหรือขี่จักรยานและใช้ OpenStreetMap ต่อค่าเริ่มต้น คุณจะต้องใช้รหัส Java ที่สำรวจเครือข่ายถนนจากจุดเริ่มต้นคล้ายกับวิธีการทำงานของ Dijkstra แต่คุณจะได้รับสิ่งต่อไปนี้แม้ในเวลาจริง (<0.5s):

ป้อนคำอธิบายรูปภาพที่นี่

รหัสจะรวบรวมคะแนนที่คุณต้องแปลงเป็นรูปหลายเหลี่ยมด้วยเช่นเครื่องมือJTS ความเร็วส่วนใหญ่ขึ้นอยู่กับขั้นตอนสุดท้ายนี้ หากปราศจากสิ่งนี้มันจะเป็นไปได้ภายใต้ 0.5s แม้สำหรับระยะทางไกล

อีกวิธีหนึ่งที่จะมีOpenTripPlanner



5

คุณอาจต้องการตรวจสอบRoute360 ° JavaScript API แบบเปิดซึ่งทำงานได้กับทั้ง Leaflet และ Google maps มันคืนค่ารูปหลายเหลี่ยมเวลาการเดินทางสำหรับโหมดการเดินทางต่อไปนี้: เดิน, จักรยาน, รถยนต์, การขนส่ง

เวลาในการเดินทางรูปหลายเหลี่ยม - NYC

มันฟรีและโอเพ่นซอร์สและการครอบคลุมก็ค่อนข้างดี คุณสามารถค้นหาบทเรียนมากมายเกี่ยวกับวิธีใช้บนเว็บไซต์


1
ฝั่งไคลเอ็นต์เป็นโอเพ่นซอร์ส แต่ฝั่งเซิร์ฟเวอร์ไม่ใช่ IMO
Karussell

2

แม้ว่าจะไม่ได้โดยตรงตอบคำถามของคุณคุณควรจะดูที่การMapnificent API

Mapnificent ให้บริการแผนที่เวลาในการเดินทางของระบบขนส่งสาธารณะสำหรับเมืองต่างๆในสหรัฐอเมริกาและทั่วโลก คุณสามารถใช้ Mapnificent API เพื่อเพิ่มแอปพลิเคชัน Google แผนที่ของคุณด้วยการวางเวลาการเดินทางขนส่งมวลชนโอเวอร์เลย์

ลองดูที่ลอนดอนที่นี่ ข้อความแสดงแทน


mapnificent เป็นโอเพนซอร์สหรือไม่
Karussell

2

ฉันยังสะดุดกับส่วนขยายเครือข่ายของ gvSIGแต่เอกสารการกำหนดค่าที่ฉันพบมานั้นค่อนข้างแย่ ฉันมีความหวังสูงสำหรับมันฉันแค่ต้องหารายละเอียดในการคำนวณต้นทุน

ฉันใช้ข้อมูล US Census TIGER สำหรับเครือข่ายถนนและสร้างรูปหลายเหลี่ยมจริง ๆ แต่ก็ไม่สามารถทำให้หน่วยต้นทุนเข้าใจได้จริง หากใครใช้เครื่องมือนี้ได้สำเร็จฉันก็อยากจะลองฟัง

ฉันพบQuantum Navigatorสำหรับ QGIS ด้วย แต่ฉันไม่พบการอัปเดตล่าสุด


2

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

อย่างไรก็ตามสำหรับทุกอย่างที่ฉันได้ทำงานในวิธีที่แตกต่างกันตามการเชื่อมโยงกลับโดย PgRouting / (หรืออัลกอริทึม "Dijkstra" ดิบ) เรียงลำดับตามเวลาจากโหนดต้นทาง มันค่อนข้างง่ายและจัดหมวดหมู่ลิงก์ตามแถบเวลาและแยกลิงก์ที่ข้ามขอบเขตเวลา จากนั้นลิงก์ที่มีหมวดหมู่เดียวกัน (เช่น 0-2 นาที, 2-4 นาที) จะถูกบัฟเฟอร์ 250 เมตร


1

ที่ WhereCampPDX ในปีนี้ตัวแทน OpenStreetMap หลายรายระบุว่าการใช้ข้อมูล OSM สำหรับการกำหนดเส้นทางเป็นเรื่องปกติในยุโรป อย่างไรก็ตามมันหายากในสหรัฐอเมริกาเพราะแผนที่มักจะไม่ดีพอ คุณสามารถตรวจสอบบริการการจัดเส้นทางตาม OSM ได้ที่:

http://openrouteservice.org/


1
และไม่มีการกำหนดเส้นทางไม่เหมือนกับเวลาไดรฟ์ แต่เกี่ยวข้องกัน
jvangeld

1
มันเป็นชนิดของการกำหนดเส้นทาง แต่ "หนึ่งต่อทั้งหมด" ถูก จำกัด ตามเวลาหรือระยะทาง
Karussell

1
บริการนี้ใช้ได้ดีสำหรับฉัน ฉันไม่ได้รับโอกาสในการทดสอบความถูกต้อง แต่มันช่วยให้ฉันสามารถค้นหาเช่นรัศมี 1 ชั่วโมงรอบ ๆ พื้นที่ที่แน่นอน มือดีมากหากมีการย้ายที่อยู่ไปยังพื้นที่ที่ไม่รู้จักสำหรับการทำงาน ฯลฯ
โรมัน

1
Openrouteservices.org มีตัวเลือกในการส่งออกข้อมูลของเราไปยัง geoJSON หลังจากนั้นเราสามารถแปลงและแสดงแผนที่ isochrone ของเราเช่นใน Google Earth, Google Maps, ฯลฯ ... mkrgeo-blog.com/
Mariusz Krukar

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