1. Field of the Invention
This invention relates generally to computer-implemented geographic maps and, more particularly, to determining traffic designations of roads.
2. Description of the Related Art
Computer-implemented geographic maps are useful for a variety of purposes. For example, users may interact with computer-implemented geographic maps to learn about a geographic area, to identify the location of geographically-distributed objects (e.g., man-made structures or natural features) in a geographic area, search for categories of objects in a geographic area (e.g., restaurants in a given city), identify routes between locations in a geographic area (e.g., driving directions from a current location to a desired destination), and so on.
Such geographic maps may include features such as roads, intersections, and various other features. However, determining the type of road may be difficult based on the geographic data included in the geographic maps. For example, it may be difficult to determine or verify if a road is a one-way road or a two-way road based on existing geographic map data. Moreover, the inability to determine or verify the type of road of a geographic map may affect the accuracy of determined driving routes and may confuse users of the geographic map.
Various embodiments of systems, methods, and computer-readable media for verifying traffic designations of roads are provided herein. In some embodiments, a method for verifying a traffic designation of a road is provided. The method includes obtaining, by one or more processors, location data in a geographic area, the location data including a plurality of points each having a heading and a speed and associating, by one or more processors, a first group of the plurality of points with a selected road in the geographic area, the selected road having a traffic designation. The method further includes counting, by one or more processors, a first number of the first group of points having a heading in a first direction and counting, by one or more processors, a second number of the first group of points having a heading in a second direction substantially opposite the first direction. Additionally, the method includes determining a traffic direction of the road based on the first number and the second number and determining, by one or more processors, whether a conflict exists between the determined traffic direction and the traffic designation of the road.
In another embodiment, a non-transitory tangible computer-readable storage medium having executable computer code stored thereon for verifying a traffic designation of a road is provided. The computer code includes a set of instructions that causes one or more processors to perform the following: obtaining, by one or more processors, location data in a geographic area, the location data including a plurality of points each having a heading and a speed and associating, by one or more processors, a first group of the plurality of points with a selected road in the geographic area, the selected road having a traffic designation. The computer code further includes a set of instructions that causes one or more processors to perform the following: counting, by one or more processors, a first number of the first group of points having a heading in a first direction and counting, by one or more processors, a second number of the first group of points having a heading in a second direction substantially opposite the first direction. Additionally, computer code also includes a set of instructions that causes one or more processors to perform the following: determining a traffic direction of the road based on the first number and the second number and determining, by one or more processors, whether a conflict exists between the determined traffic direction and the traffic designation of the road.
Additionally, in other embodiments, a system for verifying a traffic designation of a road is provided. The system includes one or more processors and a non-transitory tangible memory accessible by the one or more processors and having executable computer code stored thereon. The computer code includes a set of instructions that causes one or more processors to perform the following: obtaining, by one or more processors, location data in a geographic area, the location data including a plurality of points each having a heading and a speed and associating, by one or more processors, a first group of the plurality of points with a selected road in the geographic area, the selected road having a traffic designation. The computer code further includes a set of instructions that causes one or more processors to perform the following: counting, by one or more processors, a first number of the first group of points having a heading in a first direction and counting, by one or more processors, a second number of the first group of points having a heading in a second direction substantially opposite the first direction. Additionally, computer code also includes a set of instructions that causes one or more processors to perform the following: determining a traffic direction of the road based on the first number and the second number and determining, by one or more processors, whether a conflict exists between the determined traffic direction and the traffic designation of the road.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. The drawings may not be to scale. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but to the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.
As discussed in more detail below, provided in some embodiments are systems, methods, and computer-readable media for verifying traffic designations of roads. Location data is obtained, such as from a location-based service. The location data includes location data points having a heading and a speed. The location data is filtered based on speed, such that all data points below a speed threshold are discarded. A road network for a geographic area is obtained that includes roads having traffic designations, such as one-way designations and two-way designations. The one-way designations for the obtained roads are removed. The filtered location data points are then associated with a road and a first direction or second direction of the road. In some embodiments, the association between a location data point and a road is a function of the proximity of the data point to the road and the heading of the data point with respect to the orientation of the road.
Next, for a selected road, the data points in the first direction are counted and the location data points in the second direction are counted. Based on a comparison between the counts, a traffic direction of the road is determined. For example, if almost all of the counts of the location data points associated with the road are in the first direction, and almost no counts are of location data points in the second direction, the selected road is likely a one-way road in the first direction. Similarly, if the counts of the location data points in the first direction are nearly equal to the counts of the location data points in the second direction, the selected road is likely a two-way road. The determined traffic direction is compared to the existing traffic designation of the road to determine a conflict. For example, the selected road may have a missing one-way designation, an unlikely one-way designation, or an incorrect one-way designation. If the selected road has a conflict between the determined traffic direction and the existing traffic designation, the road may be identified for verification by an operator.
The location data is filtered based on speed (block 104). For example, the location data is filtered to only include the location data points having a speed above a threshold to ensure that only vehicles traversing roads are included in the determination of traffic designations. In some embodiments, the location data points having a speed greater than or equal to 5 kilometers/hour are included and location data points having a speed below 5 kilometers/hour are excluded. In some embodiments, the process 100 may use a minimum amount of location data, e.g., a minimum number of location data points, a minimum timeframe of obtained location data, or other minimums, for verifying traffic designations.
Next, a road network for the geographic area is obtained (block 106). For example, the road network for the geographic area may be obtained from a geographic information system (GIS) having road data for the region. The obtained road network may also include existing traffic designations for the roads of the geographic area. As will be appreciated, some roads in the geographic area may include one-way designations that indicate a restriction to a single direction of travel along such roads. Similarly, some roads in the geographic area may include two-way designations that indicate permitted travel in both directions along such roads. Next, existing one-way designations for roads in the geographic area are removed (block 108).
The filtered location data points are then associated with the nearest roads and a first direction on the road or a second direction opposite the first direction (block 110). In some embodiments, the association is a function of the proximity of each location data point to a road and the heading of the location data point as compared to the orientation of the road. For example, a location data point having a heading that is substantially parallel to the orientation of the nearest road is associated with that road, while a location data point having a heading that is substantially perpendicular to the orientation of the nearest road is not associated with that road. Moreover, it should be appreciated that headings may vary between substantially parallel and substantially perpendicular to the orientation of a road. Thus, in some embodiments, a location data point may be associated with a road if the heading of the location data point is within a specific angle relative to the orientation of the road. Similarly, a location data point may not be associated with a road if the heading of the location data point is outside of a specific angle relative to the orientation of the road. Next, for a selected road, the number of location data points in each direction is counted to determine a traffic direction (block 112). Thus, a road may have a first number of location data points having a heading in the first direction and a second number of location data points having a heading in the second direction opposite the first direction. The determined traffic direction is then compared to the existing traffic designation for the selected road (block 114).
Based on the determined traffic direction and the existing traffic designation for the selected road, various conflicts may be identified. In one instance, a missing one-way traffic designation is identified (block 116). For example, if almost all of the counts for the selection road are in a first direction, and almost no counts for the selected road are in the second direction, the traffic direction for the selected road is likely one-way. If the road does not have an existing one-way designation, then the road is missing a one-way traffic designation. In another instance, unlikely one-way traffic designations are identified (block 118). If nearly half of the counts for the selected road are in the first direction, and nearly half of the counts for the selected road are in the second direction opposite the first direction, the traffic direction of the selected road is likely two-way. If the selected road has an existing one-way designation, then this existing one-way traffic designation is unlikely. In another instance, incorrect one-way traffic designations are identified (block 120). For example, if almost all of the counts for the selected road are in the first or second direction that is opposite to the existing one-way designation for the selected road, then the existing one-way traffic designation is incorrect. In such an instance, the determined traffic direction indicates that substantially all of the vehicles are traversing the road in a direction opposite to the existing one-way designation.
The location data points illustrated in
As described above in block 112, the location data points associated with a road are counted to determine a traffic direction of the road. For example, as shown in
Next, identified roads are provided to operators for review (block 308). For example, the operators may compare the existing traffic designations of the identified roads to additional verification data to determine if the existing traffic designation needs to be changed. In some embodiments, the operators may request manual verification of the traffic designation of identified roads. Based on the review, operators may modify the traffic designations of identified roads to the correct traffic designation. Subsequently, modifications to the geographic data may be received (block 310) and propagated to a GIS.
The portable computer 404, and the vehicle navigation system 404, may also be in communication with a network 412 in addition to the satellite-based positioning system 410. For example, as the portable computer 404 and the vehicle 406 traverse geographic areas, the location of the portable computer 404 and the vehicle navigation system 407 on a geographic map may be determined via communication with the satellite-based positioning system 410. In some embodiments, the postilion of the portable computer and the vehicle navigation system 406 may also be determined using the network 412, such as tokens obtained from the network (e.g., an IP address), signals received from the network (e.g., Wi-Fi signals) and so on. The location may be stored on memories of the portable computer 404 and the vehicle navigation system 407 and, as described further below, may be transmitted over the network 412 to the server 408.
The portable computer 404, the vehicle navigation system 407, and the server 408 may be in communication with the network 412, such as through a network interface having a cellular antenna, a wireless Ethernet antenna, etc. In some embodiments, the network 412 may include multiple networks, such as a wireless Ethernet network, a cellular network, or other wireless networks. Moreover, it should be appreciated that the portable computer 404, the vehicle navigation system 407, and the server 408 may each communicate over additional and different networks. For example, the portable computer 404 may communicate over a wireless Ethernet network, the vehicle navigation system 407 may communicate over a cellular network.
The server 408 may be a single server (in a discrete hardware component or as a virtual server) or multiple servers. The server 408 may include web servers, application servers, or other types of servers. Additionally, the server 408 may include, for example, computers arranged in any physical and virtual configuration, such as computers in one or more data processing centers, a distributed computing environment, or other configuration. Such configurations may use the network 412 for communication or may communicate over other networks. In some embodiments, the server 408 may be a part of a geographic information system (GIS).
The portable computer 404 and vehicle navigation system 407 may transmit their present location, as determined via the satellite-based positioning system 410, to the server 408 for processing in accordance with the techniques described below. In other embodiments, the location of the portable computer 404 and vehicle navigation system 407 may be determined with assistance of data received from the network 412, such as by assisted GPS (A-GPS). In other embodiments, the locations of the portable computer 404 and vehicle navigation system 407 may be determined solely from data received from the network 412. Moreover, the locations may be disassociated with a user, computer, vehicle and the so on, either before or after transmission, so that locations are not associated with individual user identities or devices (e.g., portable computers, vehicle navigation systems, etc.). Additionally, in some embodiments, the location data may not be collected unless a user has expressly provided permission after receiving notice of the collection of such data and how it is used.
The server 408 may include or communicate with a location server 412 (e.g., one or more servers) and a GIS 416 (e.g., a GIS implemented on one or more servers). As described above, the locations determined by the portable computer 404 and the vehicle navigation system 407 are transmitted to the location server 412 and stored in a location data repository 418. For example, in some embodiments the location server 412 may a part of a location-based service that enables a user to track his or her own location and view locations of “friends” from a social graph associated with the user. As mentioned above, the GIS 416 includes road network data 420 that includes traffic designations for roads in a geographic area.
The server 408 includes a traffic designation verification process 422 that obtains data from the location server 412 and the GIS 416 and determines conflicts with existing traffic designation data for roads. Location data is obtained from the location data 418 of the server 412 and a road network is obtained from the road network data 420 of the GIS 416. The traffic designation verification process 422 processes the data as described above in
The computer 500 may include various components that contribute to the function of the device and enable the computer 500 to function in accordance with the techniques discussed herein. As will be appreciated, some components of computer 500 may be provided as internal or integral components of the computer 500 and some components may be provided as external or connectable components. Moreover,
Computer 500 may include a combination of devices or software that may perform or otherwise provide for the performance of the techniques described herein. For example, computer 500 may include or be a combination of a cloud-computing system, a data center, a server rack or other server enclosure, a server, a virtual server, a desktop computer, a laptop computer, a tablet computer, a mobile telephone, a personal digital assistant (PDA), a media player, a game console, a vehicle-mounted computer, or the like. The computer 500 may be a unified device providing any one of or a combination of the functionality of a media player, a cellular phone, a personal data organizer, a game console, and so forth. Computer 500 may be connected to other devices that are not illustrated or may operate as a stand-alone system. In addition, the functionality provided by the illustrated components may in some embodiments be combined in fewer components or distributed in additional components. Similarly, in some embodiments, the functionality of some of the illustrated components may not be provided or other additional functionality may be available. As shown in the embodiment illustrated in
In addition, the computer 500 may allow a user to connect to and communicate through a network 516 (e.g., the Internet, a local area network, a wide area network, etc.) and, in some embodiments, to acquire data from a satellite-based positioning system (e.g., GPS). For example, the computer 500 may allow a user to communicate using e-mail, text messaging, instant messaging, or using other forms of electronic communication, and may allow a user to obtain the location of the device from a satellite-based positioning system.
In some embodiments, the display 506 may include a liquid crystal display (LCD) an organic light emitting diode (OLED) display, or other display types. The display 506 may display a user interface (e.g., a graphical user interface) executed by the processor 502 of the computer 500. The display 506 may also display various indicators to provide feedback to a user, such as power status, call status, memory status, network status etc. These indicators may be incorporated in the user interface displayed on the display 506. In some embodiments, the display 506 may include or be provided in conjunction with touch sensitive elements through which a user may interact with the user interface. In such embodiments, a touch-sensitive display may be referred to as a “touch screen” and may also be known as or called a touch-sensitive display system.
The processor 502 may provide the processing capability to execute the operating system, programs, user interface, and other functions of the computer 500. The processor 502 may include one or more processors and may include “general-purpose” microprocessors, special purpose microprocessors, such as application-specific integrated circuits (ASICs), or any combination thereof. In some embodiments, the processor 502 may include one or more reduced instruction set (RISC) processors, such as those implementing the Advanced RISC Machine (ARM) instruction set. Additionally, the processor 502 may include single-core processors and multicore processors and may include graphics processors, video processors, and related chip sets. Accordingly, the computer 500 may be a uni-processor system having one processor (e.g., processor 502a), or a multi-processor system having two or more suitable processors (e.g., 502a-502n). Multiple processors may be employed to provide for parallel or sequential execution of the techniques described herein. Processes, such as logic flows, described herein may be performed by the processor 502 executing one or more computer programs to perform functions by operating on input data and generating corresponding output. The processor 502 may receive instructions and data from a memory (e.g., system memory 504).
The memory 504 (which may include one or more tangible non-transitory computer readable storage mediums) may include volatile memory and non-volatile memory accessible by the processor 502 and other components of the computer 500. The memory 504 may store a variety of information and may be used for a variety of purposes. For example, the memory 504 may store executable computer code, such as the firmware for the computer 500, an operating system for the computer 500, and any other programs or other executable code for providing functions of the computer 500. Such executable computer code may include program instructions 518 executable by a processor (e.g., one or more of processors 502a-502n) to implement one or more embodiments of the present invention. Program instructions 518 may include modules of computer program instructions for implementing one or more techniques described herein. Program instructions 518 may include a computer program (which in certain forms is known as a program, software, software application, script, or code). A computer program may be written in a programming language, including compiled or interpreted languages, or declarative or procedural languages. A computer program may include a unit suitable for use in a computing environment, including a stand-alone program, a module, a component, a subroutine, and the like. A computer program may or may not correspond to a file in a file system. A computer program may be stored in a section of a file that holds other computer programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or sections of code). A computer program may be deployed to be executed on one or more processors located locally at one site or distributed across multiple remote sites and interconnected by a communication network. Additionally, the memory 504 may be used for buffering or caching during operation of the computer 500.
As mentioned above, the memory 504 may include volatile memory, such as random access memory (RAM). The memory 504 may also include non-volatile memory, such as ROM, flash memory, a hard drive, other suitable optical, magnetic, or solid-state storage mediums or any combination thereof. The memory 504 may store data files such as media (e.g., music and video files), software (e.g., for implementing functions on computer 500), user preference information, payment transaction information, wireless connection information, contact information (e.g., an address book), and any other suitable data.
The interface 512 may include multiple interfaces and may enable communication between various components of the computer 500, the processor 502, and the memory 504. In some embodiments, the interface 512, the processor 502, memory 504, and one or more other components of the computer 500 may be implemented on a single chip, such as a system-on-a-chip (SOC). In other embodiments, these components, their functionalities, or both may be implemented on separate chips. The interface 512 may coordinate I/O traffic between processors 502a-502n, the memory 504, the network interface 510, 514, or any other devices or a combination thereof. The interface 512 may perform protocol, timing or other data transformations to convert data signals from one component (e.g., the memory 504) into a format suitable for use by another component (e.g., processors 502a-502n). The interface 512 may implement various types of interfaces, such as Peripheral Component Interconnect (PCI) interfaces, the Universal Serial Bus (USB) interfaces, Thunderbolt interfaces, Firewire (IEEE-1394) interfaces, and so on.
The computer 500 may also include an input and output port 508 to enable connection of additional devices, such as I/O devices 514. Embodiments of the present invention may include any number of input and output ports 508, including headphone and headset jacks, universal serial bus (USB) ports, Firewire (IEEE-1394) ports, Thunderbolt ports, and AC and DC power connectors. Further, the computer 500 may use the input and output ports to connect to and send or receive data with any other device, such as other portable computers, personal computers, printers, etc.
The computer 500 depicted in
Various embodiments may further include receiving, sending or storing instructions and/or data implemented in accordance with the foregoing description upon a computer-accessible medium. Generally speaking, a computer-accessible/readable storage medium may include a non-transitory storage media such as magnetic or optical media, (e.g., disk or DVD/CD-ROM), volatile or non-volatile media such as RAM (e.g. SDRAM, DDR, RDRAM, SRAM, etc.), ROM, etc., as well as transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as network and/or a wireless link.
Further modifications and alternative embodiments of various aspects of the invention will be apparent to those skilled in the art in view of this description. Accordingly, this description is to be construed as illustrative only and is for the purpose of teaching those skilled in the art the general manner of carrying out the invention. It is to be understood that the forms of the invention shown and described herein are to be taken as examples of embodiments. Elements and materials may be substituted for those illustrated and described herein, parts and processes may be reversed or omitted, and certain features of the invention may be utilized independently, all as would be apparent to one skilled in the art after having the benefit of this description of the invention. Changes may be made in the elements described herein without departing from the spirit and scope of the invention as described in the following claims. Headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description.
As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). The words “include”, “including”, and “includes” mean including, but not limited to. As used throughout this application, the singular forms “a”, “an” and “the” include plural referents unless the content clearly indicates otherwise. Thus, for example, reference to “an element” includes a combination of two or more elements. Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining” or the like refer to actions or processes of a specific apparatus, such as a special purpose computer or a similar special purpose electronic processing/computing device. In the context of this specification, a special purpose computer or a similar special purpose electronic processing/computing device is capable of manipulating or transforming signals, typically represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the special purpose computer or similar special purpose electronic processing/computing device.
Number | Name | Date | Kind |
---|---|---|---|
5005198 | Toda | Apr 1991 | A |
5036532 | Metroka et al. | Jul 1991 | A |
6774816 | Raswant | Aug 2004 | B1 |
7221928 | Laird et al. | May 2007 | B2 |
7536190 | Creemer | May 2009 | B1 |
7557730 | Gueziec | Jul 2009 | B2 |
7701363 | Zlojutro | Apr 2010 | B1 |
7912628 | Chapman et al. | Mar 2011 | B2 |
8000892 | Banerjee | Aug 2011 | B2 |
8099236 | Olson et al. | Jan 2012 | B2 |
8103439 | Onishi et al. | Jan 2012 | B2 |
8160805 | Downs et al. | Apr 2012 | B2 |
8260542 | Kimishima | Sep 2012 | B2 |
8275490 | Brusilovsky et al. | Sep 2012 | B2 |
8346465 | Panganiban et al. | Jan 2013 | B2 |
8386157 | Kim | Feb 2013 | B2 |
8694241 | Kadous et al. | Apr 2014 | B1 |
20040002366 | Cromer et al. | Jan 2004 | A1 |
20040097275 | Ohno et al. | May 2004 | A1 |
20040102893 | Atkinson et al. | May 2004 | A1 |
20040204840 | Hashima et al. | Oct 2004 | A1 |
20070038364 | Lee et al. | Feb 2007 | A1 |
20070072553 | Barbera | Mar 2007 | A1 |
20080033635 | Obradovich et al. | Feb 2008 | A1 |
20080082254 | Huhtala et al. | Apr 2008 | A1 |
20080234921 | Groenhuijzen et al. | Sep 2008 | A1 |
20080300782 | Kohno et al. | Dec 2008 | A1 |
20080312819 | Banerjee | Dec 2008 | A1 |
20090029687 | Ramer et al. | Jan 2009 | A1 |
20090281719 | Jakobson | Nov 2009 | A1 |
20100125409 | Prehofer | May 2010 | A1 |
20100156709 | Zhang et al. | Jun 2010 | A1 |
20100332119 | Geelen et al. | Dec 2010 | A1 |
20110015817 | Reeve | Jan 2011 | A1 |
20110106416 | Scofield et al. | May 2011 | A1 |
20110199259 | Karaoguz et al. | Aug 2011 | A1 |
20110224898 | Scofield et al. | Sep 2011 | A1 |
20110282576 | Cabral et al. | Nov 2011 | A1 |
20120021717 | Schmidt | Jan 2012 | A1 |
20120046860 | Curtis et al. | Feb 2012 | A1 |
20120053823 | Wilson | Mar 2012 | A1 |
20120109517 | Watanabe | May 2012 | A1 |
20120115505 | Miyake et al. | May 2012 | A1 |
20120253656 | Brandt | Oct 2012 | A1 |
20120303271 | Chowdhary et al. | Nov 2012 | A1 |
20120316774 | Yariv et al. | Dec 2012 | A1 |
20120330544 | Joong et al. | Dec 2012 | A1 |
20130006517 | Ofek et al. | Jan 2013 | A1 |
Entry |
---|
Lester, J., et al., “MobileSense—Sensing Modes of Transportation in Studies of the Built Environment,” International Workshop on Urban, Community and Social Applications of Networked Sensing Systems, Nov. 4, 2008, pp. 46-50. |
Welbourne, E., et al., “Mobile Context Inference Using Low-Cost Sensors,” T. Strang and C. Linnhoff-Popien: LoCA 2005, LNCS 3479, pp. 254-263. |
“Path Tracker”, Pathtracks.com, 2 pages, [online] [retrieved on Mar. 31, 2011] retrieved from the internet <URL:http://pathtracks.com/>. |
“Global Positioning System” Wikipedia, Last Modified on Mar. 28, 2011, 18 Pages, [online] [retrieved on Mar. 31, 2011] retrieved from the Internet <URL:http://en.wikipedia.orq/wiki/Global—Positioning—System>. |
Schussler, N., et al., “Identifying trips and activities and their characteristics from GPS raw data without further information” 8th International Conference on Survey Methods in Transport, Annecy, May 2008, pp. 1-28. |
Stopher, P., et al., “Deducing mode and purpose from GPS data” Institute of Transport and Logistics Studies, Apr. 2008, pp. 1-13. |
Upadhyay, et al., “Optimal parameter values for mode detection in GPS post-processing: An experiment” Working Paper, 507, IVT, ETH Zurich, Zurich, Jul. 2008, 23 Pages. |