He:Routing

From OpenStreetMap Wiki
Jump to navigation Jump to search

שירותי ניתוב (קיימות ארצות בהן הם מכונים שיחרותי ניווט) מסייעים למצוא איך להגיע ממקום למקום. נתוני OpenStreetMap כוללים מידע ניווט על פי אופני שימוש רבים כולל: נהיגה ברכב, הליכה רגלית, דיווש על אופניים ורכיבה על סוסים. קיימים גם שירותי ניתוב לא מקוונים, משובצים בתוכנה וגם מבוססי רשת המשתמשים בנתוני OpenStreetMap.

דף זה מספק למפתחים עצות לתוכנה זמינה ליצירת יישומים/פריסות חדשים ומפרט נתוני מפתח של OpenStreetMap הנתינים לשימוש ביצירת מנועי ניתוב טובים יותר. קיימות גם מספר רשימות דיוור זמינות.

משתמשי קצה: תכנות ניתוב

ראו גם רשימת שירותי ניתוב מבוססי OSM

Name, link Genre Covered region Language Description Free materials Image
A Better Routeplanner Routing, car English A route planner for planning trips and charging with a Electric Vehicle. No
Agilogik GmbH Routing, maps, tile server, geocoding, geo reverse coding Worldwide English, German Worldwide tile server and services for commercial use No
BBBike [1] Routing English, Chinese, Danish, Spanish, French, German, Croatian, Dutch, Polish, Portuguese, Russian Routing focused on bikes (no. of traffic lights, height profile, lit, road surface, …) ?
Bike Citizens [2] Routing English, Spanish, French, German Bike Citizens is a navigation app designed for and by cyclists, offers offline routing, predefined tours and various routing profiles ?
BRouter [3] Routing English, Hungarian BRouter: Let's get serious about bike routing. BRouter offers routing for trekking and cycling with predefined profiles and the ability to modify and upload custom profiles ?
CycleStreets [4] Routing English Bicycle routing and planning and photo map based on OpenStreetMap data and the OpenCycleMap for the British Isles. API available. Yes
FacilMap [5] General, routing, share, social, interaction English Different OSM renderings, search and draggable routes, create custom maps with live collaboration where markers, lines, routes and GPX/KML/GeoJSON/OSM files can be added. Yes
GraphHopper [6] Routing, car, bike, walking, public transport, wheelchair Worldwide multiple languages Fast routing for bikes, pedestrians and cars with worldwide coverage. Using the open source routing engine GraphHopper. Yes
GraphHopper Direction Api Road Routing, car, bike, walking Worldwide multiple languages Fast routing service including a powerful Matrix and Route Optimization API based on the open source routing engine GraphHopper No commercial
KOMOOT Routing Routing, hiking, bike German, English Calculate routes for mountain bikes, touring bikes and hiking taking your fitness level and elevation into account Yes, see GraphHopper
Kurviger Routing, motorcycle English, French, Italian, Spanish, Dutch, German Routing and navigation specialised for motorcycles. Kurviger calculates curvy routes that are fun to ride on bike. Curves and slopes are preferred, while cities and highways are avoided. Generate loop trips with one click. Personalise the routing to your own riding style. Yes, see GraphHopper
Mapzen Turn-by-Turn (Valhalla) Routing Worldwide English Worldwide routing by automobile, bus, foot, and bicycle. Yes
Naviki Routing multiple languages Planning bicycle trips and routing and collecting GPS traces ?
Nop's Reit- und Wanderkarte [7] Routing German, English, Italian Dedicated routing for hiking and horseback riding with multiple targets. Dynamic route options e.g. for following marked hiking routes or weather conditions. Options to modify caculated route manually, download or print it. No
OpenRouteService [8] Routing, wheelchair routing Czech, Danish, German, English, Spanish, French, Croatian, Hungarian, Italian, Dutch, Polish, Portuguese, Russian, Ukrainian, Chinese Route navigation based on osm data and TMC for car, bike and pedestrian Yes
RouteYou Routing, walk, bike, horse riding, motorcycle,... Dutch, English, French, German, Italian, Spanish, Catalan, Danish Routing based on osm data for several recreational modes walking, hiking, cycling, horse riding, motorcycle,... Yes, freemium
routing.osm.ch Routing Europe, Switzerland German, English, French, Italian Routing with Leaflet slippy map for pedestrians (two types), cyclists (two types) and cars in Switzerland only (based on OSRM) Yes, free
OpenTripPlanner Routing English A multimodal router combining OSM and Public transport tables Yes
Ride the City Routing עברית, French, Spanish, Icelandic Bicycle routing based on OSM data. Coverage: Selected big cities (currently 42) in U.S., Canada, Australia, France, Spain, few cities in other countries. No
TargomoAPI Routing, car, walk, bike, public transport, network analysis, isochrone English, German Targomo offers routing-based analysis tools - isochrone polygons, points-of-interest, routing, reachability, fleet management, statistics reachability. No
Open Source Routing Machine [9] Routing Worldwide Bulgarian, Czech, German, Danish, Greek, English, Spanish, Finnish, French, Italian, Irish, Georgian, Latvian, Norwegian Bokmål, Polish, Portuguese, Romanian, Russian, Swedish, Turkish A new fast routing service for car
covering the world
Yes.
StreetCritic Routing, bike Worldwide English Routing for cyclists that uses both user and algorithmic ratings to calculate routes and visualise streets Yes
uNav General, routing multiple languages Map viewer and GPS navigator for Ubuntu Phone Yes
VROOM [10] Routing English Vehicle Routing Open-source Optimization Machine
It's aim at providing good solutions to various real-life vehicle routing problems (VRP) within a small computing time.
Yes
brouter.grade.de [11] Waterway routing Europe English Inland waterway routing (Europe) taking size of vessel into account. Based on Brouter router-software Yes


גלריה

ממפים: שיפור נתוני המפה

על מנת שתוכנת הניתוב תעבוד היטב, על נתוני המפה המוסתרים להיות באיכות טובה. בהכרח, משמעות הדבר היא שדרכים המתחברות במפה יתחברו גם על פני השטח, לדרכים חד סטריות יוספו תגיות מתאימות, וגם מגבלות פניה יופיעו על המפה, וכן הלאה. יש להכיר את תכונות המפה שבשימוש. במיוחד, יש לראות את תגיות OSM לניתוב כדי להבין תוויות ספציפיות לניתוב.

תיקון באגים עם הערות

כך קובעים אם נקודות מחוברות או לא ב־Potlatch

מספר נושאים לטיפול המדווחים על ידי הערות הן בפירוש אודות דרכים חד סטריות ומגבלות פניה. וכך הן מסומנות.

נתוני מהירות

כדי לחשב את הדרך המהירה ביותר, אנא שקלו הוספת נתוני מהירות על ידי הוספת התגית    maxspeed=*. יש לכך חשיבות מיוחדת עם מגבלת המהירות שונה מהמהירות המרבית המצופה לדרך מסוג זה באותה ארץ ועבור אותו סוג רכב.

הערה: קיימים שירותים המסייעים לזהות מגבלות מהירות חסרות.

לעתים קרובות למגבלת המהירות אין משמעות - ראו #Average speed.

בדיקת התיקון שלך

לאחר סיום התיקון במפה יש להמתין עד שהגרסה המתוקנת של המפה תועבר למנוע הניתוב שבשימושך. ההשהיה בכל מנוע תלויה בגורמים הבאים:

  • כל כמה זמן מתקבלים שינויים ממסד הנתונים.
  • כמה זמן נדרש כדי לעדכן את מסד הנתונים הפנימי.

במקרה של שימוש ב־OSRM עדכונים יתקבלו פעמיים ביום ועיבוד העדכונים יארך 10 עד 12 שעות. זה יביא לכל זמן השהיה כולל בין 10 ל-24 שעות משמירת התיקון ב־OSRM ועד שייכנס לשימוש.

עוד מידע שימושי

שיפועים

הוספת שיפועים לנתוני הרשת עלולה להביא לשגיאות מדגמיות מהותיות, שבמיוחד ישפיעו על ניתוב אופניים. ניתן לתקן זאת על ידי שימוש ב־https://github.com/fiftysevendegreesofrad/BayesianDrape BayesianDrape]

מפתחים

תכנות קוד פתוח למחשבים שולחניים ולשרתים

ג'אווה:

  • OpenRouteService - חינם. ספריית קוד פתוח וממשק משתמש עם אופציות רבות ומערכת אקולוגית של כלים נוספים וספריות עבור R, פייתון, QGIS ועוד. קיים לה גם אתר רשת ב־routeservice.org.
  • GraphHopper - הוא מנוע ניתוב בקוד פתוח לרשתות כבישים, כתוב בג'אווה. מהיר ויעיל בניצול זיכרון (עבור אנדרואיד, iOS מחשבים שולחניים ושרתים).
  • Opentripplanner - הוא מתכנן טיולים מרובה מצבים התונך בנתוני OSM. פורס OTP מקל על פריסת הניתובים שיצרת.
  • BRouter מתמקד בניתוב מסלולי אופניים ובמודעות לתכונות העליות, חלופות, ופרופילי ניתוב נתינים להגדרה וניתוב לא מקוון. נכתב במקור עבור אנדרואיד, אך קיים לו גם ממשק פיתוח ברשת BRouter יכול לרוץ גם ב־QMapShack.
  • OptaPlanner הוא מנוע תכנון קל משקל וניתן לשיבוץ הממטב בעיות ניתוב רכבים. הוא מבוסס על ממשקי GraphHopper ומפות גוגל.
  • JGraphT - "ספריית מחלקות המספקת אובייקטים של של תורת הגרפים המתמטית ואלגוריתמים" בשימוש על ידי JOSM/Plugins/Routing.
  • pgrServer הוא שירות ניתוב המשתמש בטופולוגיות pgRouting ב־PostGIS ונטען לתוך גרף JGraphT לחיפושים מהירים גם בתוך רשתות דחוסות.

C/C++:

  • Open Source Routing Machine
  • Valhalla ([12])
  • Routino נתב גמיש עם העדפות הניתנות לבחירה על ידי המשתמש/ת.
  • Navit
  • RoutingKit (רשיון BSD, C++
  • sDNA יותר לניתוח מלא של רשתות מרחביות (קרבה, הימצאות בן לבין, הגעה באמצעות מטריקות משתנות/הגדרות מרחק), אך יכול לבצע ניתובים אינדיווידואליים.

C#:

  • Itinero (.net) ספריות לניתוב ומיטוב בעיות תעבורה; בעבר חלק מספריית OsmSharp.

R:

רובי:

  • mormon - גרסת רובי ל־pyroutelib.

פיית'ון:

  • PyrouteLib - מנוע הניתוב מאחורי Pyroute
  • SimpleOsmRouter - ייתכן שזה הנתב הפשוט ביותר.
  • CycleMon - סט של סקריפטים לאוטומציה של מפות הולכי רגל ורוכבי אופניים לתכנון, מבוסס על הורדת OSM אוטומטית. מכיל גם את sidewwalker, כלי QGIS לחילול אוטומטי של מדרכות מקווי אמצע של כבישים. המפות המחוללות כוללות הימצאות נתיבי אופניים והליכה רגלית בין לבין, ומידות נגישות מחושבות עם sDNA ונתיבים ליעדים ספציפיים כגון בתי ספר (אם סופקו)/

תכנה למכשירים ניידים

C/Java:

  • Guru Maps - ניתוב מקוון או לא מקוון למערכות iOS ואנדרואיד.
  • OsmAnd - מפת OSM, נקודות עניין וניתוב (רכב/אופניים/הליכה רגלית, מקוון או לא) למערכות iOS ואנדרואיד או ברשת.
  • Navit - ללינוקס, חלונות מיקרוסופט ומכשירים נישאים.
  • GraphHopper - ספריות ניתוב בקוד פתוח למחשבים נייחים, אנדרואיד ו־iOS.
  • BRouter - מתמקד בניתוב מסלולי אופניים ובמודעות לתכונות העליות, חלופות, ופרופילי ניתוב נתינים להגדרה וניתוב לא מקוון. נכתב במקור עבור אנדרואיד.
  • MapFactor Navigator Free - לאנדרואיד ו־iOS.
  • MAPS.ME - לאנדרואיד ו־iOS.

ספריות/כלי פיתוח

מאמר ראשי: Frameworks#Navigation

ניתן למצוא ספריות המתמקדות בניתוב בדף Develop/Frameworks הנה כמה ספריות מובילות:

  • openrouteservice חינם ספריה וממשק פיתוח בקוד פתוח עם אפשרויות רבות ומערכת אקולוגית של עלים נוספים וספריות עבור ג'אווה-סקריפט, R, פיית'ון, QGIS וכד'.
  • DGLib - ספריית גרפים מוכוונים בשימוש על ידי כלי רשתות וקטוריים של Grass (המסלול הקצר ביותר, סוכן נוסע, שוויון מרחקים, עצי שטיינר: וגם תוספים.
  • pgRouting - מנוע ניתוב מבוסס PostGIS. עם הכלי המיוחד osm2pgrouting לייבוא נתוני OSM לתוך מבנה גרף פנימי. עובד ישירות על גבי טבלאות SQL.
  • Libosmscout - מציע ממשקים פשוטים ברמה הגבוהה לתצוגת נתונים בלתי מקוונת ותפקודי ניתוב מבוססים על נתוני OpenStreetMap.
  • Spatialite - ל־Specialite מנוע ניתוב משלה, VirtualNetwork, וכלי בשם spatialite_osm_net לבניית רשתות ניתנות לניתוב ישירות מנתוני OSM. הניתוב יכול להשתמש באחד האלגוריתמים: דייקסטרה או A*.
  • GraphHopper - מנוע ניתוב עם ממשק פיתוח בג'אווה.
  • Valhalla הוא שירות ניתוב חינם בקוד פתוח המאפשר לשלב ניתוב וניווט למרשתת או יישומים סלולריים.

דגשים לניתוב

ערך תגית Highway

הערכים עבור תגית ה־Highway, מסודרים על פי ממהירות המשוערת, הם:

סוג תיאור (תקף בעיקר במערב אירופה)
motorway Usually the maxspeed can be kept for long distances, but these roads can be sensitive to long traffic jams. Usually forbidden for slow traffic (pedestrians, cyclists, agricultural, ...)
trunk Similar to motorways, but these roads can have level crossings, so the stretches where the maximum speed can be reached are shorter. Best avoided when using slow vehicles (sometimes forbidden, depending on the local legislation).
primary Connecting roads between cities, towns and villages. The classification depends mostly on the importance of the areas they connect. This is often also reflected in the number of lanes and the general traffic throughput, but the speed for these classifications is mostly comparable. Usually around 90-100 km/h in the countryside, and 50 (or even 30) km/h when crossing a residential center.
secondary
tertiary
motorway_link Used for on- and off-ramps or complete motorway junctions. Reachable speed depends a lot on curvature, usually around 60-90 km/h
trunk_link In contrast to motorway junctions, these link roads are often very short pieces (e.g., allowing one to turn right without stopping at a traffic light). The speed on these road pieces is very slow, as these often need to give way to the other traffic.
primary_link
secondary_link
tertiary_link
unclassified These roads usually connect farms, isolated houses and small hamlets through the countryside to bigger residential areas. Due to lack of traffic signs, they often have a speed limit way faster than can be driven safely. Speed on a well-maintained but unfamiliar unclassified road will rarely exceed 50 km/h.
residential Residential roads are found in a residential area, so usually have a speed limit of 50 km/h to 30 km/h, with a lot of traffic calming features.
living_street Living streets are streets where slow traffic has absolute right-of-way. The speed limit is normally around 20 km/h. Through-going traffic is absolutely discouraged (and often impossible).
service Service roads are usually found on private property or parking lots. The driver has to pay attention to manoeuvring vehicles, and must wait often.
track Tracks are roads of agricultural purpose. They usually connect fields to farms. The surface sometimes makes them inaccessible for regular cars, or at least limits the speeds to a very slow pace. Tracks should always be avoided for through-going traffic.
pedestrian Pedestrian roads are normally forbidden for motorised vehicles, but can be allowed on certain hours (f.e. early in the morning), or for certain purposes (like delivering goods to shops). Even when allowed, only pedestrian speed is advisable. Cycling can also be forbidden on pedestrian highways.

הגדרות טלה תלויות מאוד בארץ שבה נמצאות הדרכים ואינן שימושיות בלי הערכים הספציפיים למדינה. לדוגמה, בגרמניה המהירות המרבית היא 100 קמ"ש הן מבחינה חוקית והן מבחינת המציאות. בעוד קישורי דרכים מדרגה נמוכה בנויות למהירות מותרת של 60 קמ"ש. רק בדרכים ראשיות מדרגה גבוהה מותרת מהירות של 80 או 100 קמ"ש. ראו מידע נוסף ב־OSM tags for routing/Maxspeed#Additional information for selected countries.

נתיבים

מספר הנתיבים בכביש מקבל תגית ישירות ב־OSM ויש לו השפעה מהותית על המהירות הממוצעת (המסלול המהיר ביותר) ועל צריכת הדלק (המסלול היעיל ביותר) אין מיפוי פשוט למהירות. לרוע המזל, משמעות מספר נתיבים גדול יותר היא, במקרים רבים, גודש רב יותר.

תנאי הדרך

גורמים נוספים, במקרה שלנו יותר קשים למדידה, הקובעים את המהירות הממוצעת הם רוחב הכביש, תנאי הרשת (עבודות בכביש, סוג המשטח, וחלקוּת המשטח - בייחוד בברית המועצות לשעבר), רמות השרות(LOS), רדיוס סיבוב מזערי, פניות בעלות שיפוע צד, שיפוע וכיו"ב.

ב־OpenStreetMap מודל זה עשוי לעניין למנווטים כשאין נתוני מהירות (לדוגמה: highway=road).

עליות

בדומה לסיבובים, עליות עשויות גם הן להאט את מהירות התנועה. בחורף כשרכבים כבדים רבים נמצאים בדרכים חל העיכוב גם בירידות. קיימים מקרים בהם יכול להתברר כשימושי השימוש במידע נוסף כגון els=* ופרופיל גובה העליה מתוך נתוני DEM.

פיתולי כביש

במספר מחקרים, מפתחים ברבין וסקלי מודלים המשערים מהירות מסוימת לנסיעות התלויה בדרגת הפיתול של המסלול ומאפיינים מסוימים שלו. באמצעות אינדקס הפיתול (קו אווירי שנצפה/קו אווירי צפוי) לכל קטע ניתן לקבל מהירות משוערת על פי דרגת הפיתול של הכביש וסוג הנתיב. לשם כך צריך לקחת בחשבון את הראות סביב פינות (נקבעת על ידי צמחיה, סכרים, חיתוכים, צוקים, ועוד) ואת רוחב הכביש. המודל הוא מדויק יותר אם נמנעים מקשתות רחבות בצורה קיצונית בתנאי שסיבוב ארוך יכול להיות שווה ערך לסיבובים קטנים רבים לאורך הדרך, תוך מתן ערך פיתול לשני המסלולים. קיימות ארצות בהן נעשה שימוש בערכים אלה לחלוקת קטעי כביש והצבת תמרורי הגבלת מהירות (אך זה לא בלתי רגיל).

מאידך, גישה גאוגרפית מסוג זה של תחביר המרחב מניחה מראש כי בדרכים עירוניות הולכי רגל ונהגים מושפעים ברגע של בחירת מסלוליהם לראות של נתיביהם. ביחס להולכי רגל שנעים, למשל, מנקודה א' לנקודה ב' יבחרו כעיקרון רחובות רחבים וישרים, כיכרות, ושדרות עם שדה ראייה רחב, תוך הימנעות מהנחצים על ידי רחובות מתפתלים וצרים, גם אם אלה האחרונים נראים במקצת יותר קצרים.

חציות, צמתים ושינויי נתיבים

יש להניח עלויות מסוימות עבור:

  • חציית כבישים מדרג יותר גבוה.
  • מעבר אל- או מכביש מדרג יותר נמוך.
  • פניות פרסה.
  • שינויי נתיבים.
  • רמזורים, ראו גם traffic_signal:direction=*

מהירות ממוצעת

לצורך ניתוב, לנתוני OpenStreetMap דרושים ערכי מהירות ממוצעת/מציאותית:

  • maxspeed:practical=* היא הצעה שנדחתה, אך עדיין בשימוש לתיוג ממוצע מהירות משוער (עם אפשרות לציין שעות יום/לילה/עומס) באזורים בהם מגבלות מהירות רשמיות הן במרבית המקרים חסרות משמעות ומידע על סוג הכביש/מסלול אינו מספיק כדי לגזור הערכות מהירות משמעותיות.
  • Speedcollector הוא שירות שאיננו עוד לאיסוף מדידות מהעולם האמיתי, בעוד ניתן לגזור מהירות ממוצעת לדרך ממסלולים מאוחסנים.
  • מטריצת מהירות סטטיסטית גלובלית היא תפישה מוצעת (ללא סימני חיים?) לשליפת מידע מהירות ממסלולי NMEA/GPX ואחסון יעיל שלהם במאגר נתונים על מנת ליצור אוסף מידע השימושי למטרות ניתוב.
  • לגבול עליון, ראו: maxspeed=*

רשימת תגיות אחרות המסייעות לניתוב

רכיבת אופניים
טיולים רגליים

מכשולי ניתוב ותנאים נוספים שנדרשת להם התייחסות מיוחדת

  • crossing=* - מעברי חציה להולכי רגל או דרכים חוצות אחרות, האטה.

מנועי ניתוב שהופסקו

מאמר ראשי: Discontinued Routing Engines

רשימות דיוור

להלן רשימות דיוור רלוונטיות לניתוב:

  • osm-routing - ,דיונים אודות ניתוב עם נתונים וקטוריים. בייחוד הנוגעים לנתוני OSM' קחו בחשבון כי הרשימה קרובה להיות לא פעילה. סביר כי הרשימות osm-talk או osm-dev יהיו עדיפות בשביל רוב הנושאים.
  • osm-accessibility - לכל סוגי המוגבלויות. זה נוגע להצעות ושימוש בתגיות בעלות עניין מיוחד לבעלי/ות מוגבלויות. יש ליצור מפות מיוחדות עם נתונים אלה.

ראו גם

סרטונים