The present invention relates generally to location-based services, and more particularly, relates to how to represent a linear feature that does not rely on linear features stored in a geographic database.
Various technologies have been developed that provide navigation-related and map-related services. For example, vehicle navigation systems can determine where a vehicle is located and provide directions to travel to a desired destination. Also, Internet sites are available that provide maps, directions for traveling to a desired destination from a specified starting point, and other map-related services. Further, hand-held devices are available that can determine one's position and provide a map of one's surroundings.
In order to provide these and other map-related functions and features, navigation systems use geographic data. The geographic data may be in the form of one or more geographic databases that include data representing physical features in the geographic region. The geographic database includes information about the represented geographic features, such as one-way streets, position of the roads, speed limits along portions of roads, address ranges along the road portions, turn restrictions at intersections of roads, direction restrictions, such as one-way streets, and so on. Additionally, the geographic data may include points of interest, such as restaurants, hotels, airports, gas stations, stadiums, police stations, and so on.
This geographic data may be stored in a geographic database, such as a geographic database published by NAVTEQ North America, LLC of Chicago, Ill. In addition to the data obtained by a map vendor, content sources have data regarding locations in a geographic area. The content sources may provide their data to the map vendor for inclusion into the geographic database. For example, an owner of a chain restaurant may provide the map vendor with a current list of all their locations and for each of the locations the list may include address, telephone numbers, hours of operation, menu, web page address, and other information about the location.
As the amount of information stored in a geographic database increases, it becomes more difficult for the map vendor to add the third party data to the geographic database. As a result, location content management systems have been developed to allow multiple parties to provide data related to a location, which is sometimes referred to as “location content” or simply “content.” The location content management system provides a link between the location content and the geographic location associated with the content. The link is a location code that the location content management system assigns to a location.
A location code may be assigned to any location where a person can travel. For example, a person may want to travel to a particular office on a particular floor in a particular building in a geographic region. Using this example, the location content management system assigns a location code to each of the office, floor, and building. The location content management system may also assign a location code to stairs and/or an elevator if the floor is not on the ground level of the building. By assigning location codes in this manner, a navigation system can provide route guidance to a user for traveling to the office within the building.
While the location content management system provides a way for multiple parties to provide content regarding a location, there continues to be room for new features and improvements in the location content management system. One area for improvement is how to represent linear features in the location content management system. The location code references a point location minimally identified by latitude and longitude. However, in some situations it would be beneficial for a location code to reference a linear feature.
As a linear location code, like the point location code, necessarily remains outside a geographic database, the geographic database's two representations of linear objects, links and strands, are not suitable for representing linear features in the location content management system. A link is a geographic object with two nodes (a reference node and a non-reference node) and zero or more intermediate shape points. A strand is a directed sequence of links used by conditions defined in the geographic database. Links suffer from the problem of being split and merged due to attribution requirements, while strands suffer from the problem of being so tightly coupled to conditions that the strand can only be referenced by the condition. Thus, the linear location code needs to represent a linear feature in a manner that overcomes the problems associated with links and strands.
A method for representing linear features in a location content management system is disclosed. The method defines a linear location code for a linear feature. The linear location code consists of a sequence of routing points where a routing point consists of latitude, longitude, and an optional stack position (e.g., L for lower and U for upper) or altitude that defines a unique path when routed on a map through those points. The stack position is used to disambiguate vertically stacked roads, such as a double-decker bridge (e.g., the San Francisco/Oakland Bay Bridge) or streets having upper and lower sections (e.g., Michigan Avenue and Wacker Drive in Chicago). Beneficially, the method represents linear features independently from link and strand objects stored in a geographic database.
These as well as other aspects and advantages will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. Further, it is understood that this summary is merely an example and is not intended to limit the scope of the invention as claimed.
Presently preferred embodiments are described below in conjunction with the appended drawing figures, wherein like reference numerals refer to like elements in the various figures, and wherein:
The content is any information associated with a location. The information may be static content (i.e., does not change frequently), such as a street address, a telephone number, a fax number, and hours of operation. The information may be dynamic content (i.e., changes frequently), such as gas prices, weather reports, air travel status, and traffic reports. The information may be in any format, including text, two-dimensional images, three-dimensional images, video, multimedia, and so on.
The content source 102 is any entity that provides content to the location content management system 104. For example, the content source 102 may be a map vendor, a location owner/operator, a government agency, a chamber of commerce, an individual, or any other party. While one content source 102 is depicted in
The content receiver 106 is any entity that accesses content from the location content management system 104. The content receiver 106 may be an end-user device, such as a personal computer, a mobile telephone, and a portable hand-held device. Additionally, the content receiver 106 may be an intermediate device that distributes location content to an end-user device. While one content receiver 106 is depicted in
The location content management system 104 is a combination of hardware, software, and/or firmware that gathers, processes, and delivers location content. The location content management system 104 includes a content upload server 108, a content store 110, a location referencing system 112, a content quality system 114, and a content delivery server 116. The location content management system 104 may include other entities as well.
The content upload server 108 may display a user interface for providing location content to the location content management system 104. The user interface allows the content source 102 to enter, manage, and locate their content in a self-serve environment. The user interface may include a tool for inputting location information that includes fields that correspond to the data stored in the profile. The user interface allows the content source 102 to enter text and attach files, such as documents, image files, video files, sound files, and so on.
Additionally or alternatively, the content upload server 108 may provide a Web service to support machine-to-machine interaction over a network. The Web service may support any protocol. The content source 102 may use the Web service to add or modify location content via bulk load.
The content upload server 108 also verifies the content source 102. The content upload server 108 may verify an individual, a business, and/or an organization with any suitable method or combination of methods including, but not limited to, a double opt-in routine, community validation, manual validation, and partner validation.
The content upload server 108 stores the content in the content store 110. The content store 110 may be any type of memory that allows read/write access. The content upload server 108 may also store an indication of what verification method was used to verify the content source 102 in the content store 110 or in a separate memory device. For example, the indication may be a binary flag, scaling factor, or word identifying the verification method.
The location referencing system 112 provides a link between location content and the geographic location associated with the content. The link is needed when the location content is decoupled from (i.e., not included in) the geographic database. In order to decouple the content from the geographic database, the location referencing system 112 assigns a location identifier to one or more locations, and stores the location identifier in the content store 110. The location identifier may be a point location code or a linear location code.
The point location code references a point feature (e.g., a point on a road, a position of a building, a point within a building). A point location code is minimally represented by latitude and longitude attributes. The point location code may also be associated with an address that allows the point location code to be geocoded to a geographic database link. Geocoding is the process of geographically associating an entity outside a geographic database (e.g., a location code) to a map object within the geographic database.
The linear location code references a linear feature, such as a portion of a road network or a portion of a pedestrian route. The linear location code consists of a sequence of routing points that defines a unique path when routed on a map through those points. A routing point has latitude, longitude, and optionally a stack position used for roads and bridges having two levels (i.e., upper and lower levels). Additionally or alternatively, the routing point may have an altitude. For example, the routing point may have an altitude relative to sea level, an altitude relative to ground level, or relative to another reference level.
The sequence of routing points may be obtained by defining a canonical (i.e., normalized) representation of routing points. For example, the canonical representation may use key decision points. As another example, the canonical representation may use a segment point half-way between two key decision points. A key decision point is where a driver has to turn or otherwise make a choice between two or more alternatives (e.g., a fork in the road). Other canonical forms may also be used. The canonical representation is unique for a given linear feature despite what intermediate points are used to initially define the linear location code. The canonical representation of routing points is further described with reference to
The linear location code may reference a line, polyline, or polygon object. A line location code represents a continuous line composed of one straight line segment and is defined by two routing points. A polyline location code represents a continuous line composed of two or more straight line segments, and is defined by three or more routing points. A polygon location code represents a closed path composed of three or more straight line segments, and is defined by three or more routing points. The linear location code attributes are further described with reference to
The location referencing system 112 may randomly assign a location identifier to a location. Alternatively, the location referencing system 112 may assign the location identifiers in numerical order or in any other organized fashion. The location identifier may be a numerical value. For example, the location identifier may be a 16-bit number, a 32-bit number, a 64-bit number, and so on. Alternatively, the location identifier may include a combination of numbers, letters, and/or characters.
Before assigning a location identifier to a linear feature, the location referencing system 112 may first determine whether the linear feature has already been associated with a linear location code. For a line location code, the location referencing system 112 determines whether the two routing points associated with the line feature are within a predetermined radius (e.g., 1 meter) of two routing points associated with a line location code previously created. If there is a match, then the new line location code is not created. Otherwise, the new line location code is assigned to the linear feature.
For a polyline or polygon location code, the matching algorithm takes into consideration whether the number of routing points is the same between an existing linear location code and the new linear location code. When the new linear location code has the same number of routing points as an existing polyline or polygon location code, the matching algorithm uses a predetermined radius around each of the existing routing points to identify a match. This procedure is similar to the line location code matching algorithm with more routing points.
When the number of routing points is not the same, then the matching algorithm determines whether the routing points that do not match pre-existing points are within a predetermined perpendicular distance from a line segment. If the extra points are within the predetermined perpendicular distance, then these points are considered to be intermediate points not necessary to define a linear location code. In this case, a match is found and a new linear location code will not be created. This process is further described with respect to
The content quality system 114 evaluates the quality of the location content stored in the content store 110. The evaluation may be based on whether the content owner is trustworthy, the location data is accurate, the content is sufficiently complete, and/or the content is relatively current. The content quality system 114 stores a quality score for the content in the content store 110 or other memory device. The content quality system 114 may re-evaluate the content quality each time the content is changed, at a regular interval, at the request of the content source 102 and/or the content receiver 106, or at any other time. The content quality system 114 may store the historical quality scores for the content so that the content source 102 and/or the content receiver 106 can retrieve a score trend report.
The content delivery server 116 displays a user interface for retrieving location content from the location content management system 104. The user interface may be the same user interface used by the content source 102 or a separate user interface. Additionally or alternatively, the content delivery server 116 may provide a Web service in a similar manner as the content upload server 108. The user interface/Web service allows the content receiver 106 to obtain location content in a self-serve environment. The user interface/Web service also allows the content receiver 106 to receive one or more quality scores associated with the obtained content from the location content management system 104.
The linear location code record 200 includes a unique code identification 202 assigned by the location referencing system 112. The routing points 204, 206 define a unique path when routed on a map through those points. When the linear location code record 200 includes two routing points, the linear location code represents a continuous line composed of one straight line segment. When the linear location code record 200 includes three or more routing points, the linear location code represents a polyline or a polygon. The polyline is a continuous line composed of two or more straight line segments. The polygon is a closed path composed of three or more straight line segments. Each of the line, polyline, and polygon location codes are treated as single objects.
The focal point 208 is a point used for responding to a request for location codes in a region. For a line location code, the focal point 208 is a center point of the line segment. For polyline or polygon location codes, the focal point 208 is a centroid of the connected segments. The centroid is an average position of all points within the object. The focal point 208 may be automatically calculated by the location referencing system 112. For example, the location referencing system 112 may use the SDO_CENTROID function in Oracle 11g. The focal point 208 may also be manually defined and/or adjusted by the end user.
The linear feature 400 may be uniquely defined using four routing points located at the starting point 402, the ending point 406, and the two key decision points 403, 405 as shown in
The linear location code's routing points are matched (snapped) to data in the geographic database using reverse geocoding. Reverse geocoding is the process of resolving a latitude/longitude position to a location on a link in the geographic database. The reverse geocoding process uses a set of rules. For example, if a routing point is within a predetermined distance (e.g., 5 meters) of a node, the routing point is snapped to that node and the closest link reference to the node is identified. As another example, if reverse geocoding is unable to find a link position within a predetermined distance (e.g., 50 meters), the linear location code is not snapped to a link.
The reverse geocoding process allows a routing algorithm to determine a sequence of links through the snapped-to-road-link routing points. While any appropriate routing algorithm may be used, the limited size of the linear location code objects means that sophisticated routing algorithms, such as the double-star routing algorithm, are not required.
With the handheld device's determination the device's position (latitude, longitude, altitude), speed (v), and direction towards the linear feature (compass reading, α), the device 703 may obtain location content particular to the person's travels, which would otherwise be unavailable in the example depicted in
A linear location code may also be used to more easily represent features previously stored within the geographic database. For example, junction view conditions, which associate image files to a path through a highway exit decision point, may be replaced with a junction view object defined outside the geographic database. The junction view object associates a linear location code with a set of image files. As another example, No Passing zones that start in the middle of one link and end somewhere in another link may be modeled using a linear location code rather than breaking links to form a condition strand. Other features stored in the geographic database, such as evacuation or snow routes, may also benefit from being modeled outside the geographic database using a linear location code.
At block 902, the routine 900 receives data for the new object 804. The data includes the latitude, longitude, and optionally stack level or altitude for each of the routing points 808 defining the new object 804. At block 904, the routine 900 counts the number of routing points 808 defining the new object 804. In the example shown in
At block 906, the routine 900 searches for an existing linear location code that has a routing point within a predetermined radial distance (r) from the first routing point defining the new object 804. For example, the predetermined distance may be three meters. If no existing linear location code is identified at block 908, then at block 920, the routine 900 creates a new linear location code.
If an existing linear location code is identified at block 908, then at block 910, the routine 900 determines the distance (dn) between the routing points evaluated at block 908. At block 912, the routine 900 determines whether the distance is less than or equal to the pre-determined radial distance (dn≦r). If the distance is greater than the radial distance (dn>r), the routine 900 creates a new linear location code at block 920. If the radial distance is less than or equal to the pre-determined radial distance (dn≦r), the routine 900 determines the perpendicular distance (di) between the next routing point and the linear feature represented by the existing linear location code at block 914. At block 916, the routine 900 determines whether the perpendicular distance is less than or equal to the pre-determined radial distance (di≦r). If the distance is greater than the perpendicular distance (di>r), the routine 900 creates a new linear location code at block 920.
If the perpendicular distance is less than or equal to the pre-determined radial distance (dn≦r), the routine 900 determines whether there are any additional routing points 808 to evaluate at block 918. If there are additional routing points 808, then the routine 900 returns to block 914 to evaluate the routing points. The routine 900 continues until a new linear location code is created at block 920 or a match is found with an existing linear location code. If a match is found, the routine 900 does not create a new linear location code.
It is intended that the foregoing detailed description be regarded as illustrative rather than limiting and that it is understood that the following claims including all equivalents are intended to define the scope of the invention. The claims should not be read as limited to the described order or elements unless stated to that effect. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.
This application is a continuation under 37 C.F.R. §1.53(b) of U.S. patent application Ser. No. 12/362,786 filed on Jan. 30, 2009, which is hereby incorporated by reference in its entirety. The present patent application is related to the copending patent applications filed on the same date, Ser. No. 12/362,734, entitled “METHOD AND SYSTEM FOR ASSESSING QUALITY OF LOCATION CONTENT,” Ser. No. 12/362,751 entitled “METHOD AND SYSTEM FOR MANAGING RELATIONSHIPS BETWEEN LOCATION IDENTIFIERS,” Ser. No. 12/362,767, entitled “METHOD AND SYSTEM FOR REFRESHING LOCATION CODE DATA,” and Ser. No. 12/362,807, entitled “METHOD AND SYSTEM FOR EXCHANGING LOCATION CONTENT DATA IN DIFFERENT DATA FORMATS.”
Number | Name | Date | Kind |
---|---|---|---|
6202023 | Hancock et al. | Mar 2001 | B1 |
6330453 | Suzuki et al. | Dec 2001 | B1 |
6453233 | Kato | Sep 2002 | B1 |
6487495 | Gale et al. | Nov 2002 | B1 |
6538674 | Shibata et al. | Mar 2003 | B1 |
6876921 | Omi | Apr 2005 | B2 |
6912545 | Lundy et al. | Jun 2005 | B1 |
6970782 | Watanabe et al. | Nov 2005 | B2 |
6989765 | Gueziec | Jan 2006 | B2 |
7161497 | Gueziec | Jan 2007 | B2 |
7281021 | Shiota et al. | Oct 2007 | B2 |
7373247 | Park | May 2008 | B2 |
7487114 | Florance et al. | Feb 2009 | B2 |
7557730 | Gueziec | Jul 2009 | B2 |
7564375 | Brinton et al. | Jul 2009 | B2 |
7584049 | Nomura | Sep 2009 | B2 |
7649838 | Fishteyn et al. | Jan 2010 | B2 |
7720596 | Kobuya et al. | May 2010 | B2 |
7805442 | Joshi et al. | Sep 2010 | B1 |
7920965 | Nesbitt et al. | Apr 2011 | B1 |
8065291 | Knorr | Nov 2011 | B2 |
20010027375 | Machida et al. | Oct 2001 | A1 |
20010051973 | Green et al. | Dec 2001 | A1 |
20020023010 | Rittmaster et al. | Feb 2002 | A1 |
20020070934 | Sakamoto et al. | Jun 2002 | A1 |
20030135304 | Sroub et al. | Jul 2003 | A1 |
20030158668 | Anderson | Aug 2003 | A1 |
20030171870 | Gueziec | Sep 2003 | A1 |
20040030490 | Hegedus et al. | Feb 2004 | A1 |
20040044752 | Hamaguchi et al. | Mar 2004 | A1 |
20040122846 | Chess et al. | Jun 2004 | A1 |
20050060312 | Curtiss et al. | Mar 2005 | A1 |
20050060313 | Naimat et al. | Mar 2005 | A1 |
20050096849 | Sorrells | May 2005 | A1 |
20050149257 | Linkohr | Jul 2005 | A1 |
20050165743 | Bharat et al. | Jul 2005 | A1 |
20060026170 | Kreitler et al. | Feb 2006 | A1 |
20060149800 | Egnor et al. | Jul 2006 | A1 |
20060158330 | Gueziec | Jul 2006 | A1 |
20060230452 | Field | Oct 2006 | A1 |
20070027591 | Goldenberg et al. | Feb 2007 | A1 |
20070038646 | Thota | Feb 2007 | A1 |
20070106455 | Fuchs | May 2007 | A1 |
20070143345 | Jones et al. | Jun 2007 | A1 |
20070146374 | Riise et al. | Jun 2007 | A1 |
20070150516 | Morgan et al. | Jun 2007 | A1 |
20070239648 | Thota | Oct 2007 | A1 |
20070260628 | Fuchs et al. | Nov 2007 | A1 |
20070288518 | Crigler et al. | Dec 2007 | A1 |
20070294031 | Brinton et al. | Dec 2007 | A1 |
20080005275 | Overton et al. | Jan 2008 | A1 |
20080022003 | Alve | Jan 2008 | A1 |
20080133124 | Sarkeshik | Jun 2008 | A1 |
20080214300 | Williams et al. | Sep 2008 | A1 |
20080228391 | Sarkeshik | Sep 2008 | A1 |
20080228392 | Fuchs | Sep 2008 | A1 |
20080256039 | Chang et al. | Oct 2008 | A1 |
20080256060 | Chang et al. | Oct 2008 | A1 |
20080270209 | Mauseth et al. | Oct 2008 | A1 |
20080319670 | Yopp et al. | Dec 2008 | A1 |
20090043498 | Maethner | Feb 2009 | A1 |
20090049038 | Gross | Feb 2009 | A1 |
20090070379 | Rappaport | Mar 2009 | A1 |
20090088967 | Lerner et al. | Apr 2009 | A1 |
20090143984 | Baudisch et al. | Jun 2009 | A1 |
20090216435 | Zheng et al. | Aug 2009 | A1 |
20090216438 | Shafer | Aug 2009 | A1 |
20090299824 | Barnes, Jr. | Dec 2009 | A1 |
20090303036 | Sahuguet | Dec 2009 | A1 |
20090319188 | Otto | Dec 2009 | A1 |
20100063877 | Soroca et al. | Mar 2010 | A1 |
20100198505 | Painter et al. | Aug 2010 | A1 |
20100211307 | Greelen | Aug 2010 | A1 |
Number | Date | Country |
---|---|---|
101154222 | Apr 2008 | CN |
101319911 | Dec 2008 | CN |
H10229577 | Aug 1998 | JP |
H11224047 | Aug 1999 | JP |
2001075967 | Mar 2001 | JP |
2001134595 | May 2001 | JP |
2001243595 | Sep 2001 | JP |
2002041554 | Feb 2002 | JP |
2002333830 | Nov 2002 | JP |
200233830 | Nov 2002 | JP |
2004191419 | Jul 2004 | JP |
2005025291 | Jan 2005 | JP |
2005-291872 | Oct 2005 | JP |
2007089196 | Apr 2007 | JP |
2007147567 | Jun 2007 | JP |
2007193066 | Aug 2007 | JP |
2008096706 | Apr 2008 | JP |
2009003838 | Jan 2009 | JP |
WO2006074056 | Jul 2006 | WO |
WO2006105754 | Oct 2006 | WO |
WO2007131044 | Nov 2007 | WO |
WO2008154571 | Dec 2008 | WO |
Entry |
---|
Search Report for European Patent Application Serial No. 10250100.4, dated Mar. 16, 2012. |
Priedhorsky et al. “The Computational Geowiki: What, Why, and How.” GroupLens Research, Department of Computer Science and Engineering, University of Minnesota. Paper presented at Computer Supported Cooperative Work Conference. 2008. |
European Search Report for EP 10250101.2 dated Jul. 6, 2010. |
Wubbahed.com, Importing Google Maps to your Nokia N95 (Jun. 29, 2007), http://wubbahed.com/2007/06/29/importing-google-maps-to-your-nokia-n95/. |
European Search Report for EP10250103.8, dated Jul. 23, 2010. |
European Search Report for EP10250102.0, dated Jul. 8, 2010. |
Chinese Office Action for related application No. 201010107813.2 mailed Dec. 19, 2012. |
Chinese Office Action for related Chinese Application No. 201010107866.4, mailed Jan. 7, 2013. |
Chinese Office Action issued in Chinese Application No. 201010107831.0, mailed Jun. 20, 2013. |
Chinese Office Action cited in Chinese Application No. 201010107887.6, mailed Apr. 2, 2013. |
Chinese Office Action cited in Chinese Application No. 201010107813.2, mailed Oct. 22, 2013. |
European Search Report for European Application No. EP 13155460, mailed Oct. 30, 2013. |
Japanese Office Action for JP Application No. 2010-034053, mailed Oct. 23, 2013. |
Chinese Office Action cited in CN Application No. 201010107846.7, mailed Sep. 2, 2013. |
Chinese Office Action issued in Application No. CN201010107866.4, mailed Nov. 22, 2013. |
Japanese Office Action issued in Application No. JP2010-034052, mailed Nov. 27, 2013. |
Japanese Office Action issued in Application No. JP2010-034054, mailed Nov. 15, 2013. |
Number | Date | Country | |
---|---|---|---|
20130013205 A1 | Jan 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12362786 | Jan 2009 | US |
Child | 13613411 | US |