IP Library Granted Patent US 12,467,757
Granted Patent B2
US 12,467,757 · App. 18/369,346 · Granted Nov 11, 2025

Identifying and resolving prohibited maneuvers in routes generated by a routing system

Inventors: Antonios Karatzoglou (San Francisco, CA); Tijana Bekic (Belgrade, RS); Vashutosh Agrawal (Bellevue, WA); Mohit Khanna (Bellevue, WA); Varun Kakkar (Redmond, WA); Michael Robert Evans (Seattle, WA); Jacob Nicholas Whitbeck (Redmond, WA); Dragomir Dimitrov Yankov (Palo Alto, CA); Nikola Perin (Belgrade, RS); Nikola Todic (Belgrade, RS); Goran Predovic (Bellevue, WA); Aleksandar Samardzija (Belgrade, RS)
Assignee: Microsoft Technology Licensing, LLC
G01C21/3461G01C21/38
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,467,757
App. No.
18/369,346
Granted
Nov 11, 2025
Kind
B2
Abstract

A technique automatically identifies and resolves prohibited maneuvers in candidate routes generated by a routing system. Examples of prohibited maneuvers include traveling over a non-navigable path, traveling in an incorrect direction over a roadway, and an improper turn. The technique determines whether the candidate routes contain prohibited maneuvers by comparing the candidate routes with plural types of route-related validation data in plural respective validation processes. For example, a first validation process compares the candidate routes with a collection of GPS traces. A second validation process compares the candidate routes with map reference data. The technique further includes provisions for correcting the causes of identified prohibited maneuvers. Overall, the technique reduces the amount of manual effort involved in verifying the accuracy of routes produced by the routing system, and improves the accuracy, reliability, and safety of the routing system.

Claims (84)

1 . A method for identifying and resolving prohibited maneuvers in routes generated by a computer-implemented routing system, comprising:

receiving a set of candidate routes sampled from a collection of routes generated by the routing system based on routing-engine network data in response to submitted requests, the set of candidate routes having different starting and ending locations, the routing-engine network data being provided in a data store of the routing system and describing a physical roadway network;

receiving first route-related validation data from a first source, wherein the first route-related validation data is a collection of Global Positioning System (GPS) traces measured by position-determining devices at respective sampling rates as the position-determining devices traverse actual routes;

receiving second route-related validation data from a second source, wherein the second route-related validation data is reference map data produced by another computer-implemented system that describes a same roadway network as the routing-engine network data used by the routing system;

producing first validation results by comparing the set of candidate routes with the first route-related validation data;

producing second validation results by comparing the set of candidate routes with the second route-related validation data, the producing second validation results being performed independently of the first validation results;

identifying prohibited maneuvers in the set of candidate routes that are independently confirmed by both the first validation results and the second validation results;

revising the routing system using a correction system to eliminate or reduce at least one factor that is causing generation of routes containing the prohibited maneuvers identified in the identifying, to provide a revised routing system, the correction system including functions for correcting one or more data errors in the routing-engine network data in the data store, and modifying logic used by the routing system to generate routes, the logic being at least one of machine-trained instructions that execute a routing algorithm or a machine-trained model;

receiving requests by the revised routing system, each request that is received specifying a starting and ending location; and

generating and providing routes using the revised routing system in response to the requests, the routes providing guidance on how to navigate over a physical roadway network.

2 . The method of claim 1 , wherein the prohibited maneuvers that are determined include any of:

navigation over a non-navigable route portion; and/or

a prohibited turn; and/or

navigation over a route portion in a direction that is prohibited.

3 . The method of claim 1 , further comprising snapping at least the first route-related validation data to a road network described by a common base map data.

4 . The method of claim 3 , wherein the common base map data is the routing-engine network data used by the routing system.

5 . The method of claim 1 , further comprising receiving third route-related validation data and producing third validation results by comparing the set of candidate routes with the third route-related validation data, wherein the identifying is also based on the third validation results.

6 . The method of claim 1 , wherein the producing first validation results comprises:

identifying a group of GPS traces within a prescribed geographic proximity to a particular candidate route;

determining whether a particular segment of the particular candidate route is found in at least a first prescribed number of GPS traces in the group of GPS traces, at a same time at which the particular segment occurs;

identifying a pair of segments in the candidate route that is joined at a maneuver point associated with a maneuver; and

determining whether the pair of segments in the particular candidate route is found in at least a second prescribed number of GPS traces in the group of GPS traces, at a same time at which the pair of segments occurs.

7 . The method of claim 6 , wherein the producing first validation results further comprises:

designated the particular segment as matched, even though the particular segment does not match the first prescribed number of GPS traces, based on a consideration of a profile of the particular segment, and a consideration of a profile of a preceding group of one or more neighboring segments that precede the particular segment, and a profile of a following group of one or more neighboring segments that follow the particular segment; and

designating the pair of segments as matched, even though the pair of segments does not match the second prescribed number of GPS traces, based on a consideration of the profile of the particular segment, and a consideration of a profile of a preceding group of one or more neighboring segments that precede the pair of segments, and a profile of a following group of one or more neighboring segments that follow the pair of segments,

the profile of a particular group specifying at least whether each neighboring segment in the particular group is matched or unmatched.

8 . The method of claim 1 , wherein the producing second validation results comprises:

identifying a set of route entities in the routing-engine network data or the reference map data, each route entity describing a route portion having common properties;

based at least in part on the set of route entities that are identified, identifying a pair of neighboring route entities in a particular candidate route that are joined at a maneuver point associated with a maneuver, the two neighboring route entities having a first neighboring route entity and a second neighboring route entity;

identifying a first mini-route, using the routing-engine network data, between a beginning point of the first neighboring route entity and an ending point in the second neighboring route entity;

identifying a second mini-route, based on the map reference data, between the beginning point of the first neighboring route entity and the ending point of the second neighboring route entity; and

determining whether the first mini-route matches the second mini-route.

9 . The method of claim 8 , wherein the determining whether the first mini-route matches the second mini-route comprises determining whether bounding shapes associated with the first mini-route and the second mini-route, respectively, overlap by a prescribed amount.

10 . The method of claim 1 , wherein the first validation results and the second validation results are binary results, a binary result having two values, a first indicating that a particular conclusion applies, and a second indicating that the particular conclusion does not apply.

11 . The method of claim 1 , wherein the first validation results and the second validation results are probabilistic results, a probabilistic result indicating a likelihood of a particular conclusion that is a capable of ranging over plural values, including values between zero percent and 100 percent.

12 . The method of claim 1 , further comprising:

generating a presentation for a particular prohibited maneuver that has been identified; and

receiving manually-specified classification information that specifies a cause of the particular prohibited maneuver.

13 . The method of claim 12 , wherein the presentation includes an aerial-captured image and/or a satellite-captured image of a map region associated with the prohibited maneuver.

14 . A computing system for identifying and resolving prohibited maneuvers in routes generated by a computer-implemented routing system, comprising:

an instruction data store for storing computer-readable instructions;

a processing system for executing the computer-readable instructions in the data store, to perform operations including:

receiving a set of candidate routes sampled from a collection of routes generated by the routing system based on routing logic that operates on routing-engine network data in response to submitted requests, the set of candidate routes having different starting and ending locations, the routing-engine network data being provided in a data store of the routing system and describing a physical roadway network;

receiving a collection of Global Positioning System (GPS) traces measured by position-determining devices at respective sampling rates as the position-determining devices traverse actual routes;

receiving reference map data, wherein the reference map data is produced by another computer-implemented system that describes a same roadway network as the routing-engine network data used by the routing system;

producing first validation results by comparing the set of candidate routes with the collection of GPS traces;

producing second validation results by comparing the set of candidate routes with the reference map data;

determining prohibited maneuvers in the set of candidate routes that are independently confirmed by both the first validation results and the second validation results;

revising the routing system using a correction system to eliminate or reduce at least one factor that is causing generation of routes containing the prohibited maneuvers identified in the determining, to provide a revised routing system, the correction system including functions for correcting one or more data errors in the routing-engine network data in the data store, and modifying logic used by the routing system to generate routes, the logic being at least one of machine-trained instructions that execute a routing algorithm or a machine-trained model;

receiving requests by the revised routing system, each request that is received specifying a starting and ending location; and

generating and providing routes using the revised routing system in response to the requests, the routes providing guidance on how to navigate over a physical roadway network,

wherein the producing first validation results comprises:

snapping the collection of GPS traces to a road network described by the routing-engine network data;

identifying a group of GPS traces, produced by the snapping, within a prescribed geographic proximity to a particular candidate route;

determining whether a particular segment of the particular candidate route is found in at least a first prescribed number of GPS traces in the group of GPS traces, at a same time at which the particular segment occurs;

identifying a pair of segments in the candidate route that is joined at a maneuver point associated with a maneuver; and

determining whether the pair of segments in the particular candidate route is found in at least a second prescribed number of GPS traces in the group of GPS traces, at a same time at which the pair of segments occurs.

15 . The computing system of claim 14 , wherein the producing second validation results comprises:

identifying a set of route entities in the routing-engine network data or the reference map data, each route entity describing a route portion having common properties;

based the set of route entities that are identified, identifying a pair of neighboring route entities in a particular candidate route that are joined at a maneuver point associated with a maneuver, the two neighboring route entities having a first neighboring route entity and a second neighboring route entity;

identifying a first mini-route, using the routing-engine network data, between a beginning point of the first neighboring route entity and an ending point in the second neighboring route entity;

identifying a second mini-route, based on the map reference data, between the beginning point of the first neighboring route entity and the ending point of the second neighboring route entity; and

determining whether the first mini-route matches the second mini-route.

16 . A computer-readable storage medium for storing computer-readable instructions, a processing system executing the computer-readable instructions to perform operations, the operations comprising:

receiving a set of candidate routes sampled from a collection of routes generated by a computer-implemented routing system based on routing-engine network data in response to submitted requests, the set of candidate routes having different starting and ending locations, the routing-engine network data being provided in a data store of the routing system and describing a physical roadway network;

receiving first route-related validation data from a first source, wherein the first route-related validation data is a collection of Global Positioning System (GPS) traces measured by position-determining devices at respective sampling rates as the position-determining devices traverse actual routes;

receiving second route-related validation data from a second source;

producing first validation results by comparing the set of candidate routes with the first route-related validation data;

producing second validation results by comparing the set of candidate routes with the second route-related validation data;

determining prohibited maneuvers in the set of candidate routes that are independently confirmed by both the first validation results and the second validation results, the prohibited maneuvers including: a first type of prohibited maneuver occurring when there is navigation over a non-navigable route portion; a second type of prohibited maneuver occurring when there is a prohibited turn; and a third type of prohibited maneuver occurring when there is navigation over a route portion in a direction that is prohibited;

revising the routing system using a correction system to eliminate or reduce at least one factor that is causing generation of routes containing the prohibited maneuvers identified in the determining, to provide a revised routing system, the correction system including functions for correcting one or more data errors in the routing-engine network data in the data store, and modifying logic used by the routing system to generate routes, the logic being at least one of machine-trained instructions that execute a routing algorithm or a machine-trained model;

receiving requests by the revised routing system, each request that is received specifying a starting and ending location; and

generating and providing routes using the revised routing system in response to the requests, the routes providing guidance on how to navigate over a physical roadway network,

wherein the second route-related validation data is reference map data produced by another computer-implemented system, and

wherein the producing second validation results comprises:

identifying a set of route entities in the routing-engine network data or the reference map data, each route entity describing a route portion having common properties;

based at least in part on the set of route entities that are identified, identifying a pair of neighboring route entities in a particular candidate route that are joined at a maneuver point associated with a maneuver, the two neighboring route entities having a first neighboring route entity and a second neighboring route entity;

identifying a first mini-route, using the routing-engine network data, between a beginning point of the first neighboring route entity and an ending point in the second neighboring route entity;

identifying a second mini-route, based on the map reference data, between the beginning point of the first neighboring route entity and the ending point of the second neighboring route entity; and

determining whether the first mini-route matches the second mini-route.

17 . The method of claim 1 , wherein the routing system is implemented by servers.

18 . The method of claim 1 , wherein, for at least some of the routes that are provided in response to the requests that are received, guidance is provided by navigation systems, each of the navigation systems providing guidance in following a provided route based on real-time feedback provided by a position-measuring device.

19 . The method of claim 1 , wherein the correcting one or more data errors includes correcting one or more errors in attributes of roadways in the routing-engine network data.

20 . The method of claim 1 , further comprising revising status of at least some matches made using the first validation data from an unmatched status to a matched status when prescribed conditions are met, the status being revised to account for noise and sampling insufficiencies in measuring the GPS traces in the collection of GPS traces.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 18, 2023
From: KARATZOGLOU, ANTONIOS; BEKIC, TIJANA; AGRAWAL, VASHUTOSH; KHANNA, MOHIT; KAKKAR, VARUN; EVANS, MICHAEL ROBERT; WHITBECK, JACOB NICHOLAS; YANKOV, DRAGOMIR DIMITROV; PERIN, NIKOLA; TODIC, NIKOLA; PREDOVIC, GORAN; SAMARDZIJA, ALEKSANDAR
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064934/0395 →
Continuity (1)
Related Publication 20250093165A1 · Mar 20, 2025
References Cited (47)
US 9019129B2 · Skinder · 2015 [cited by examiner]
US 11709250B2 · Fu · 2023 [cited by examiner]
US 11738770B2 · Han · 2023 [cited by examiner]
US 20130267260A1 · Chao · 2013 [cited by examiner]
US 20140232570A1 · Skinder · 2014 [cited by examiner]
US 20150204670A1 · Morrison · 2015 [cited by examiner]
US 20200208998A1 · Xiang · 2020 [cited by examiner]
US 20200314598A1 · Lissick · 2020 [cited by examiner]
US 20210001891A1 · Majithia · 2021 [cited by examiner]
US 20210063166A1 · Rolf · 2021 [cited by examiner]
US 20210063168A1 · Rolf · 2021 [cited by examiner]
US 20210404829A1 · St. Romain · 2021 [cited by examiner]
US 20230080319A1 · Zhang · 2023 [cited by examiner]
Bandil, et al., “GeoDart: A System for Discovering Maps Discrepancies,” in 2021 IEEE 37th International Conference on Data Engineering (ICDE), 2021 pp. 2535-2546. [cited by examiner]
Efentakis, et al., “Crowdsourcing turning restrictions for OpenStreetMap,” in EDBT/ICDT 2014 Joint Conference, 2-14, pp. 355-362. [cited by examiner]
Karatzoglou, et al., “Exploring The Use of OpenStreetMap Data (OSM) and GPS Traces for Validating Driving Routes and Identifying Prohibited Maneuvers in Direction Services,” in GeoIndustry '23: Proceedings of the 2nd AC… [cited by applicant]
Bandil, et al., “An Interactive System to Compare, Explore and Identify Discrepancies across Map Providers,” in SIGSPATIAL '20: Proceedings of the 28th International Conference on Advances in Geographic Information Syst… [cited by applicant]
Bastani, et al., “Inferring and Improving Street Maps with Data-Driven Automation,” in Communications of the ACM, Nov. 2021, vol. 64, No. 11, 11 pages. [cited by applicant]
Biagioni, et al., “Inferring Road Maps from Global Positioning System Traces: Survey and Comparative Evaluation,” In Transportation Research Record, 2291(1), published online Jan. 1, 2012, pp. 61-71. [cited by applicant]
Cao, et al., “From GPS Traces to a Routable Road Map,” in GIS '09: Proceedings of the 17th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, Nov. 2009, pp. 3-12. [cited by applicant]
Fathi, et al., Detecting Road Intersections from GPS Traces, in GIScience 2010, Sixth International Conference on Geographic Information Science, Sep. 2010, LNCS 6292, pp. 56-69. [cited by applicant]
Flanagin, et al., “The credibility of volunteered geographic information,” in GeoJournal 72, 2008, pp. 137-148. [cited by applicant]
Goodchild, et al., “Citizens as sensors: the world of volunteered geography,” in GeoJournal 69, 2007, pp. 211-221. [cited by applicant]
Graser, et al., “Is OSM Good Enough for Vehicle Routing? A Study Comparing Street Networks in Vienna,” in Gartner, et al. (eds), Progress in Location-Based Services 2014, Lecture Notes in Geoinformation and Cartography,… [cited by applicant]
Karatzoglou, et al., “Applying Network Kernel Density Estimation (NKDE) and Temporal Network Kernel Estimation (TNKDE) for Generating Safer Routes,” in IWCTS '22: Proceedings of the 15th ACM SIGSPATIAL International Wor… [cited by applicant]
Liu, e al., “Mining Large-Scale, Sparse GPS Traces for Map Inference: Comparison of Approaches,” in KDD'12: Proceedings of the 18th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Aug. 2012, … [cited by applicant]
Newson, et al., “Hidden Markov Map Matching Through Noise and Sparseness,” in GIS '09: Proceedings of the 17th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, Nov. 2009, pp. 336-34… [cited by applicant]
Rogers, et al., “Mining GPS Data to Augment Road Models,” in KDD '99: Proceedings of the fifth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Aug. 1999, pp. 104-113. [cited by applicant]
Schmidl, et al., “An Approach to Assess the Effect of Currentness of Spatial Data on Routing Quality,” in AGILE-GISS, Proceedings of the 24th AGILE Conference on Geographic Information Science, vol. 2, No. 13, Jun. 2021… [cited by applicant]
Schroedl, et al., “Mining GPS Traces for Map Refinement,” in Data Mining and Knowledge Discovery, vol. 9, Issue 1, Jul. 2004, pp. 59-87. [cited by applicant]
Tavakoli, et al., “Building and Road Extraction from Aerial Photographs,” in Journal of IEEE Transactions on Systems, Man, and Cybernetics, vol. 12, Issue 1, Jan. 1982, pp. 84-91. [cited by applicant]
Wang, et al., “CrowdAtlas: Self-Updating Maps for Cloud and Personal Use.” in MobiSys '13: Proceeding of the 11th Annual International Conference on Mobile Systems, Applications, and Services, Jun. 2013, pp. 27-40. [cited by applicant]
Yin, et al., “A Multi-task Learning Framework for Road Attribute Updating via Joint Analysis of Map Data and GPS Traces,” in WWW '20: Proceedings of The Web Conference 2020, Apr. 2020, pp. 2662-2668. [cited by applicant]
Zhang, et al., “Integration of GPS Traces with Road Map,” in IWCTS '10: Proceedings of the Third International Workshop on Computational Transportation Science, Nov. 2010, pp. 17-22. [cited by applicant]
Wang, et al., “Mining Large-Scale GPS Streams for Connectivity Refinement of Road Maps,” in SIGSPATIAL'13: Proceedings of the 21st ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, N… [cited by applicant]
Zhu, et al., “Mining Large-Scale GPS Streams for Connectivity Refinement of Road Maps,” in The Computer Joumal, vol. 58, No. 9, Sep. 2015, pp. 2109-2119. [cited by applicant]
“STBuffer (geometry Data Type),” available at https://learn.microsoft.com/en-us/sql/t-sql/spatial-geometry/stbuffer-geometry-data-type?view=sql-server-ver16, Microsoft SQL documentation, Microsoft Corporation, Redmond, … [cited by applicant]
“STBuffer (geography Data Type),” available at https://learn.microsoft.com/en-US/sql/t-sql/spatial-geography/stbuffer- geography-data-type?view=sql-server-ver16, Microsoft SQL documentation, Microsoft Corporation, Redmo… [cited by applicant]
“Bing Maps Tile System,” retrieved from: https://learn.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system, Microsoft Corporation, Redmond, Washington, Jun. 8, 2022, 12 pages. [cited by applicant]
“Azure Databricks documentation,” available in https:/learn.microsoft.com/en-us/azure/databricks/, Microsoft Azure, Microsoft Corporation, Redmond, Washington, retrieved on Sep. 16, 2023, 4 pages. [cited by applicant]
“SqlGeometry Class,” available at https://learn.microsoft.com/en-us/dotnet/api/microsoft.sqlserver.types.sqlgeometry?view=sql-dacfx-161, Documentation, Microsoft Corporation, Redmond, Washington, retrieved on Sep. 16, 2… [cited by applicant]
Delling, et al., “Customizable Route Planning in Road Networks,” available at https://www.microsoft.com/en-us/research/publication/customizable-route-planning-in-road-networks/, Jul. 24, 2013, 31 pages. [cited by applicant]
“List of online map services,” available at https://en.wikipedia.org/wiki/List_of_online_map_services, Wikipedia article, accessed on Aug. 16, 2023, 11 pages. [cited by applicant]
Bogyrbayeva, et al., “Learning to Solve Vehicle Routing Problems: A Survey,” arXiv, arXiv:2205.02453v1 [cs.LG], May 5, 2022, 21 pages. [cited by applicant]
“Pathfinding,” available at https://en.wikipedia.org/wiki/Pathfinding, Wikipedia article, accessed on Sep. 16, 2023, 6 pages. [cited by applicant]
“Shortest path problem,” https://en.wikipedia.org/wiki/Shortest_path_problem, Wikipedia article, accessed on Sep. 16, 2023, 12 pages. [cited by applicant]
“Bing Maps,” available at https://en.wikipedia.org/wiki/Bing_Maps, Wikipedia article, accessed on Sep. 16, 2023, 19 pages. [cited by applicant]