U.S. patent application number 13/460640 was filed with the patent office on 2013-07-04 for automated travel planning system.
This patent application is currently assigned to MapQuest, Inc.. The applicant listed for this patent is Keith J. Bellesfield, Terry L. Campbell, Thomas P. Haskell, Bradley D. Sauder. Invention is credited to Keith J. Bellesfield, Terry L. Campbell, Thomas P. Haskell, Bradley D. Sauder.
Application Number | 20130173157 13/460640 |
Document ID | / |
Family ID | 35694963 |
Filed Date | 2013-07-04 |
United States Patent
Application |
20130173157 |
Kind Code |
A1 |
Bellesfield; Keith J. ; et
al. |
July 4, 2013 |
AUTOMATED TRAVEL PLANNING SYSTEM
Abstract
A list of places of interest geographically located near a
travel route may be generated by accessing a routing database
storing shape points capable of defining a travel route,
determining a travel route from the shape points stored in the
routing database, accessing a place of interest database including
geographic centers, selecting from the places of interest database
at least one geographic center that is geographically proximate to
the travel route, and generating a list of places of interest
associated with at least one of the selected geographic
centers.
Inventors: |
Bellesfield; Keith J.;
(Landisville, PA) ; Campbell; Terry L.;
(Elizabethtown, PA) ; Haskell; Thomas P.;
(Lancaster, PA) ; Sauder; Bradley D.; (New
Holland, PA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Bellesfield; Keith J.
Campbell; Terry L.
Haskell; Thomas P.
Sauder; Bradley D. |
Landisville
Elizabethtown
Lancaster
New Holland |
PA
PA
PA
PA |
US
US
US
US |
|
|
Assignee: |
MapQuest, Inc.
|
Family ID: |
35694963 |
Appl. No.: |
13/460640 |
Filed: |
April 30, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11328455 |
Jan 10, 2006 |
8170791 |
|
|
13460640 |
|
|
|
|
10273889 |
Oct 21, 2002 |
6993430 |
|
|
11328455 |
|
|
|
|
09901082 |
Jul 10, 2001 |
6498982 |
|
|
10273889 |
|
|
|
|
08069161 |
May 28, 1993 |
6282489 |
|
|
09901082 |
|
|
|
|
Current U.S.
Class: |
701/533 |
Current CPC
Class: |
G01C 21/3476 20130101;
G01C 21/3679 20130101 |
Class at
Publication: |
701/533 |
International
Class: |
G01C 21/34 20060101
G01C021/34 |
Claims
1. (canceled)
2. A computer-implemented method, comprising: receiving an
originating point and a destination point; determining, using at
least one processor, a travel route between the originating point
and the destination point; identifying, using the at least one
processor, one or more places of interest for the determined travel
route; and generating an instruction to display at least a portion
of an image of a map that includes the determined travel route and
identified places of interest.
3. The method of claim 2, wherein the image of the map is a
bit-mapped image.
4. The method of claim 2, further comprising: obtaining information
associated with one or more shape points of the determined travel
route.
5. The method of claim 4, further comprising: generating an
additional instruction to display at least one of the shape points
within the image of the map.
6. The method of claim 2, wherein the determining comprises
determining the travel route based on vector data associated with a
plurality of vectors.
7. The method of claim 2, further comprising: accessing geographic
coordinate information associated with the map; determining a unit
system of the map based on at least the geographic coordinate
system; and converting the determined travel route to the unit
system of the map.
8. The method of claim 2, wherein identifying the places of
interest comprises identifying one or more places of interest that
are proximate to a portion of the determined travel route.
9. The method of claim 2, wherein identifying the places of
interest comprises identifying at least one of the places of
interest that falls within a threshold distance of a portion of the
determined travel route.
10. The method of claim 2, wherein the identifying the places of
interest comprises: identifying a geographic center associated with
the determined travel route; and identifying at least one of the
places of interest associated with the geographic center.
11. The method of claim 10, wherein identifying the geographic
center comprises identifying the geographic center based on an
association with a shape point of the determined travel route.
12. An apparatus, comprising: a storage device; and at least one
processor coupled to the storage device, wherein the storage device
stores a program for controlling the at least one processor, and
wherein the at least one processor, being operative with the
program, is configured to: receive an originating point and a
destination point; determine, using at least one processor, a
travel route between the originating point and the destination
point; identify, using the at least one processor, one or more
places of interest for the determined travel route; and generate an
instruction to display at least a portion of an image of a map that
includes the determined travel route and identified places of
interest.
13. The apparatus of claim 12, wherein the image of the map is a
bit-mapped image.
14. The apparatus of claim 12, wherein the processor is further
configured to: obtain information associated with one or more shape
points of the determined travel route; and generate an additional
instruction to display at least one of the shape points within the
map image.
15. The apparatus of claim 12, wherein the processor is further
configured to determine the travel route based on vector data
associated with a plurality of vectors.
16. The apparatus of claim 15, wherein the processor is further
configured to: access geographic coordinate information associated
with the map; determine a unit system of the map based on at least
the geographic coordinate system; and convert the determined travel
route to the unit system of the map.
17. The apparatus of claim 12, wherein the processor is further
configured to identify one or more places of interest that are
proximate to a portion of the determined travel route.
18. The apparatus of claim 12, wherein the processor is further
configured to identify at least one of the places of interest that
falls within a threshold distance of a portion of the determined
travel route.
19. The apparatus of claim 12, wherein the processor is further
configured to: identifying a geographic center associated with the
determined travel route; and identify at least one of the places of
interest associated with the geographic center.
20. The apparatus of claim 19, wherein the processor is further
configured to identify the geographic center based on an
association with a shape point of the determined travel route.
21. A tangible, non-transitory computer-readable medium storing
instructions that, when executed by at least one processor, perform
a method comprising the steps of: receiving an originating point
and a destination point; determining, using at least one processor,
a travel route between the originating point and the destination
point; identifying, using the at least one processor, one or more
places of interest for the determined travel route; and generating
an instruction to display at least a portion of an image of a map
that includes the determined travel route and identified places of
interest.
Description
FIELD OF THE INVENTION
[0001] The present invention generally relates to automated travel
planning systems. More particularly, the present invention relates
to an apparatus and method for displaying a travel route between a
departure point and a destination point, and an apparatus and
method for generating a list of places of interest geographically
located near a calculated travel route between a departure point
and a destination point.
BACKGROUND OF THE INVENTION
[0002] In past years, individuals planning trips by automobile,
bicycle, or similar means have employed paper maps with
manually-highlighted routes for assistance in traveling from a
departure point to a destination point. For example, business such
as travel agencies, car rental firms, automobile clubs, and travel
clubs often provide individuals with booklets of maps covering the
regions to be traveled by the individuals, and will manually
highlight a travel route which may be taken by the individuals. A
major drawback of manually-drawn routes on paper maps is that it is
costly and inefficient in terms of time and money because an
individual must first determine which route to take between a
departure point and destination point, and must then piece together
a set of paper maps which cover the region to be traveled.
Furthermore, if an individual wants to know places of interest,
such as hotels, restaurants, and attractions, along the route, he
or she must go through the time consuming process of determining
which places of interest are geographically located near the
route.
[0003] As technology has become more sophisticated, computerized
mapping systems have developed for assisting individuals in travel
planning. For example, U.S. Pat. No. 4,954,958 to Savage et al.
discloses a directional information system for enabling a user to
determine a desired geographical route between supplied locations.
The system generates routing directions in a language, such as
English; for output to a user via such output devices as a
telephone receiver, printer, or display screen. A drawback of the
Savage system is that it does not visually output the route on a
displayed map or on a printer.
[0004] Other computerized mapping systems for generating a route
between a departure point and a destination point have displayed
the generated route on a vector map. Vector-mapping draws a map on
a display screen on the fly by reading from a massive database of
geographic information. The geographic information includes shape
information, such as latitude and longitude coordinates, to
properly draw the location of roads, highways, hydrology, cities,
etc. One drawback of such a system is that it is slow because each
map must be drawn on the fly. Another drawback is that it is
difficult to place type on a displayed vector map on the fly
without interfering with the roads, highways, hydrology, cities,
etc. Yet another drawback of a vector map is that a vector map
looks more like a "stick map" than like a geographically accurate
paper map.
[0005] Accordingly, a need exists for an automated travel planning
apparatus for overcoming the above-noted drawbacks associated with
existing travel planning systems.
SUMMARY OF THE INVENTION
[0006] In accordance with the foregoing, an object of the present
invention is to provide an automated travel planning apparatus and
method for displaying a bit-mapped image of a selected geographic
region on a display screen and for generating and displaying a
travel route between a selected departure point and a selected
destination point at the correct position on the bit-mapped image.
As discussed later, since the bit-mapped image is a "snap shot" of
a vector map counterpart, accessing and drawing the bit-mapped
image on the display screen is almost instantaneous. Moreover,
creation of the bit-mapped image entails steps which allow type to
be easily placed on the bit-mapped image and which allow the
bit-mapped image to be a geographically accurate representation of
the coverage region.
[0007] Another object of the present invention is to provide an
automated travel planning apparatus and method for generating a
list of places of interest near a travel route between a departure
point and a destination point.
[0008] In accordance with the present invention, the foregoing
objects are realized by providing a method for displaying a travel
route, the method comprising the steps of providing a bit-mapped
image of a geographic region on a display monitor, providing a
routing database having information indicating the geographic
location of roads and places within the geographic region,
selecting a departure point and a destination point geographically
located within the geographic region, accessing the routing
database to generate a travel route between the selected departure
point and the selected destination point, and displaying the travel
route on the bit-mapped image on the display monitor. In a
preferred embodiment, the foregoing method further includes the
step of generating and displaying a list of places of interest
located near the generated travel route.
BRIEF DESCRIPTION OF DRAWINGS
[0009] Other objects and advantages of the invention will become
apparent upon reading the following detailed description and upon
reference to the accompanying drawings, in which:
[0010] FIG. 1 is a block diagram of the system context of the
present invention;
[0011] FIG. 2 is a block diagram of an automated travel planning
apparatus embodying the present invention;
[0012] FIG. 3 is a data structure diagram for the map database of
the automated travel planning apparatus of FIG. 2;
[0013] FIG. 4 is a diagram illustrating the display-offset of a
bit-mapped image relative to a display screen, in accordance with
the "initial display coordinates" in the data structure of FIG.
2;
[0014] FIG. 5 is a data structure diagram for the routing database
of the automated travel planning apparatus of FIG. 2;
[0015] FIG. 6 is a road network diagram associated with the sample
data in-data structure of FIG. 5;
[0016] FIG. 7 is a data structure diagram for the places of
interest database of the automated travel planning apparatus of
FIG. 2;
[0017] FIG. 8 is a flowchart showing the operation of displaying a
shape point over a bit-mapped image on a display monitor, performed
by the routing component of FIG. 2;
[0018] FIG. 9 is a flowchart showing the operation of displaying a
list of places of interest near a generated route, performed by the
place selection component of FIG. 2; and
[0019] FIGS. 10 and 11 are flowcharts showing the overall operation
of the automated travel planning apparatus of FIG. 2.
[0020] While the invention is susceptible to various modifications
and alternative forms, a specific embodiment thereof has been shown
by way of example in the drawings and will herein be described in
detail. It should be understood, however, that it is not intended
to limit the invention to the particular forms disclosed, but
on-the contrary, the intention is to cover all modifications,
equivalents, and alternatives falling within the spirit and scope
of the invention as defined by the appended claims.
DESCRIPTION OF THE PREFERRED EMBODIMENT
[0021] Turning now to the drawings, FIG. 1 illustrates the system
context of the automated travel planning apparatus embodying the
present invention. In the preferred embodiment, the automated
travel planning apparatus is executable on a personal computer 10,
running a graphical user interface such as Microsoft.RTM.
Windows.TM. 3.0 or higher on top of the MS-DOS operating system,
which includes an 80386 or higher processor, four or more megabytes
of RAM, three or more megabytes of available hard disk space, and
VGA or higher graphics capability. The personal computer 10 also
includes a user interface 14 having a manually-operated keyboard
and a mouse. The personal computer 10 is connected to a display
monitor 18 for visual output and to a laser printer 22, if desired,
for printed output.
[0022] FIG. 2 illustrates a block diagram of the automated travel
planning apparatus embodying the present invention. The apparatus
employs three separate databases, including a map database 26 for
storing bit-mapped images of numerous geographic regions, a routing
database 30 for storing node and link data for roads geographically
located within the geographic regions and for storing place data
indicating the geographic location of places such as towns and
cities, and places of interest database 34 containing the
geographic locations of numerous places of interest. A processor 38
within the automated travel planning apparatus may be divided into
several functional components, including a map selection component
42, a routing component 46, and a place selection component 50. In
response to user input at the user interface 14, the map selection
component 42 chooses a bit-mapped image from the map database 26
for display on the display monitor 18. After a user selects, via
the user interface 14, a departure point and a destination point,
the routing component 46 employs the routing database 40 to
generate a route between the selected departure and destination
points. The generated route is displayed on the display monitor 18.
If the user requests a list of places near the displayed route, the
place selection component 50 employs the places of interest
database 34 to generate and display a list of places of interest
which are within a predetermined distance of the generated route.
Each of the blocks in FIG. 2 are described in greater detail
below.
[0023] The map database 26 has stored therein bit-mapped images for
both high and low level geographic regions. For example, one
bit-mapped image covers an entire country such as the United
States, while other bit-mapped images cover individual regions
(e.g., states) within the country. These bit-mapped images are
stored in accordance with the data structure shown in FIG. 3. The
data structure fields include "map name", "file name", "initial
display coordinates", "projection", "lat/long of upper left (ul)
corner", and lat/long of lower right (lr) corner". When a
bit-mapped image is displayed on the display monitor 18 with a
display screen 20, the "initial display coordinates" position the
bit-mapped image relative to the display screen 20 as shown in FIG.
4. For example, if the "initial 10 display coordinates" are X1, Y1
and the display screen has a resolution of 640.times.480 pixels,
then the bit-mapped image 24 will be initially displayed with the
bit map coordinates X1, Y1 of the bit-mapped image 24 located at
the upper left corner pixel of the display screen 20. These bit map
coordinates X1, Y1 are used to find the pixel on the display screen
20 which corresponds to a point X, Y on the bit-mapped image 24. In
particular, if X1.ltoreq.X.ltoreq.(X1+640) and Y1<Y<(Y1+480),
then the bit map coordinates X, Y will fall within the boundaries
of the display screen 20 and will correspond to pixel position
(X-X1), (Y-Y1) on the display screen 20.
[0024] The bit-mapped images are created using a conventional
digital cartographic process. In the digital cartographic process,
a vector map is first created from Geographic Information System
(GIS) data, known as TIGER line data, available on nine-track tapes
from the Census Bureau of the United States government. The TIGER
line data includes information about most road segments (hereafter
"links") within the entire United States, including link name,
alternate names for a given link, the type of link (e.g.,
interstate, highway, limited access, state route, etc.), and the
shape of the link. The shape information-for a given link includes
the latitude and longitude (hereafter "lat/long") of the end points
(hereafter "nodes") and intermediate shape points of the link. The
TIGER line data is organized in flat files interrelated by record
numbers.
[0025] After obtaining the TIGER line data on the nine-track 10
tapes, the data is first loaded into a GIS database, such as
ARC-INFO by ESRI, Inc. of Redlands, Calif. Next, the data in the
GIS database is formatted for loading into an Apple Macintosh
computer which is running vector-based drawing software, such as
Adobe Illustrator by Adobe Systems, Inc. of Mountain View, Calif.,
where the GIS data is used to display vector maps by applying
industry standard map projections. Map projections allow one to
display a curved map on a relatively flat surface such as a paper
map or a computer display monitor. Standard map projection formulas
are described in detail in the book entitled Map Projections--A
Working Manual, A U.S. Geological Survey Professional Paper,
published by the U.S. Department of interior in 1987, which is
incorporated herein by reference.
[0026] Since the aesthetic quality of the vector maps is relatively
low, a cartographer significantly improves the quality by modifying
the vector maps. The modifications typically include smoothing out
the shape of roads, adding water regions using map sources such as
paper maps, adding political boundaries for states, cities, etc.,
and coloring and shading certain areas. The modified vector maps
are saved in Adobe Illustrator as PREVIEW images. These PREVIEW
images are "snap-shot" bit map counterparts to-the vector maps, and
these bit-mapped images incorporate the modifications which improve
the appearance and geographic accuracy of the bit-mapped images
relative to the vector maps.
[0027] A series of PICT images are created from the PREVIEW images
using commercially-available software such as CAPTURE.TM. 4.0 by
Mainstay of Agoura Hills, Calif. These-PICT images are converted to
IBM-compatible format using commercially-available software such as
PICTure This.TM. by FGM, Inc. of Herndon, Va., and the
IBM-compatible images are actually transferred from an Apple
Macintosh computer to an IBM-compatible computer using a local area
network (LAN) or commercially-available software such as Apple File
Exchange. The map database 26 is comprised of these transferred
IBM-compatible images.
[0028] An advantage of accessing a bit-mapped image to display a
given geographic region, as opposed to accessing the appropriate
GIS data to display a vector map of the region on the fly, is that
access and display of the bitmapped image is almost instantaneous
while access of the GIS data and display of the vector map takes
several seconds. This speed advantage is significant because
processing efficiency is an important objective of any
software-based apparatus. As many computer users will attest,
repeated processing delays of several seconds can be quite
frustrating, especially when time is of the essence.
[0029] The routing database 30 is created from the same GIS data
used to create the bit-mapped images in the map database 26. As
discussed later, this allows one to easily correlate a generated
route with a selected bit-mapped image so that the route can be
displayed over the bitmapped image at the correct position. The
data structure of the routing database 30 is illustrated in FIG. 5
with sample data corresponding to the road network depicted in FIG.
6. Generally, the routing database 30 has stored therein node data,
link data, shape data, routing places data, and road name data. The
node data is organized with an entry for each node in the road
network. Similarly, the link data is organized with an entry for
each link in the road network. A given node entry points to those
links which include the given node, and a given link entry points
to the start and end nodes which form the link Thus, with respect
to the sample data in FIG. 5 and the corresponding road network in
FIG. 6, there are five nodes A, B, C, D, and E in the road network
and four links AB, AC, AD, and BE containing those nodes. Node A
points to all links containing node A; that is, node A points to
links AB, AC, and AD. Furthermore, node B points to links AB and
BE, node C points to link AC, node D points to link AD, and node E
points to link BE. Each of the links AB, AC, AD, and BE point to
the nodes which form the link. Thus, link AB points to nodes A and
B, link AC points to nodes A and C, link AD points to nodes A and
D, and link BE points to nodes B and E. The shape data is organized
into sets of shape point entries for each link entry. A given link
entry points to a shape entry indicating the number of shape points
in the link.
[0030] The link has two shape points corresponding to the end
points of the link, and has additional shape points for turns
within the link. Following the entry for the number 10 of shape
points in the given link are entries for each shape point in the
given link, along with the lat/long of each shape point. Thus, in
the example shown in FIGS. 5 and 6; `the link AB points to an entry
having the number four stored therein to indicate that the link AB
contains four shape points. Following this number entry are four
entries for the four shape points S1, S2, S3, and S4 contained
within the link AB, a certain lat/long being associated with each
shape point. Similarly, the link AC points to an entry containing
the number two, followed by entries for the shape points S1 and S5.
The link AD points to an entry containing the number two, followed
by entries for the shape points S1 and S6. Finally, the link BE
points to an entry containing the number two, followed by entries
for the shape points S4 and S7.
[0031] The routing database 30 also contains routing places data
indicating the geographic location of cities, towns, etc. The
routing places data includes fields for the "place names", "closest
node or link", "distance along link", "distance from link", and
"lat/long" of the places. With respect to the "closest node or
link" field, a given place points to a node if a given place is
geographically located at a stored node, while the place points to
the closest link if the place does not geographically coincide with
any stored node. If the place is located at a stored node, the
"distance along link" and the "distance from link" are zero. If the
place is located on a link, the "distance along link" is the
distance between the place and one of the two end nodes of the
link. The end node used to calculate the "distance along link" is
arbitrarily chosen. If the `place is located away from both a
stored node and link, the "distance from link" is the shortest
distance between the place and its closest link. This shortest
distance is found by extending a line from the given place to the
closest link where the line is perpendicular to the closest link at
the point of intersection (see FIG. 4). The "distance along link"
is then found by calculating the distance between the point of
intersection and one of the two end nodes of the link. The distance
values are any geographic form of measurement such as miles,
meters, etc.
[0032] The road name data includes an entry for each road of the
road network in FIG. 6. Each link in the routing database 30 points
to the road on which the link is located. The road network is
illustrated with two roads; road 1 being shown as a thick line
connecting nodes C, A, B, and E, and road 2 being shown as a thin
line connecting nodes D and A. Therefore, links AB, AC, and BE
point to road 1, while link AD points to road 2.
[0033] FIGS. 5 and 6 illustrate three possibilities for the
geographic location of a place relative to a road network. First, a
place may be located directly at a node. In particular, PLACE 1 is
located at node C and, therefore, points to node C. Since PLACE 1
is located directly at a node, the entries for "distance along
link" and "distance from link" are zero. Second, a place may be
located away from a node but directly along a link. In the example,
PLACE 2. is geographically located off of a node and, therefore,
the entry for "closest node or link" is a link, which in this case
is link BE. Since PLACE 2 is located directly on link BE, the value
for "distance from link" is zero. The value for "distance along
link" is the distance from either node B or node E (node B in FIG.
6), arbitrarily shown to be ten in FIGS. 5 and 6. Finally, a place
may be located off of any stored node or link. In this situation,
represented by PLACE 3, the values for "distance along link" and
"distance from link" are some nonzero value, arbitrarily shown to
be twenty and five, respectively, in FIG. 5.
[0034] The places of interest database 34 is organized with the
data structure depicted in FIG. 7. The data structure contains both
places of interest data and geographic Center data. The places of
the interest data includes fields for "place name" and "geographic
center". The "place name" contains the name of a place of interest,
such as a hotel, restaurant, attraction, etc. Each "place name" is
associated with a "geographic center", such as a city. Each places
of interest entry points to a geographic center entry containing
both the geographic center associated with the place of interest
and the lat/long of the geographic center. The geographic center
for a given place of interest is generally the city with which the
place of interest is most commonly associated. This data structure
effectively groups places of interest based on geographic location
by "geocoding" each place of interest to the lat/long of a
geographic center located near the place of interest. "Geocoding"
is the assignment of a lat/long to a c geographic location. Thus,
in the example shown in FIG. 7, hotel A and restaurant B are
associated with center 1, and the geographic center entry for
center 1 points to the first places of interest entry associated
with center 1, the entry for hotel A. Similarly, hotel C and
attraction D are associated with center 2, and the geographic
center entry for center 2 points to the entry for hotel C. There
may, of course, be hundreds of places of interest associated with a
given geographic center.
[0035] The functions performed by the processor 38 employ the data
stored in the map database 26, the routing database 30, and the
places of interest database 34. As previously stated, the
functional components of the processor 38 include the map selection
component 42, the routing component 46, and the place selection
component 50. In response to user selection of a map name at the
user interface 14, the map selection component 42 retrieves the
file associated with the selected map name and causes the
bit-mapped image stored in that file to be displayed on the display
monitor 18. In the display process, the map selection component 42
reads the "initial display coordinates" field of the map database
so that the upper left corner of the display screen corresponds to
the bit map coordinates X, Y.
[0036] In response to user selection of a departure point and a
destination point at the user interface 14, the routing component
46 of the processor 38 generates a travel route between the
selected departure and destination points and draws the generated
route over the bit-mapped image on the display monitor 18. More
specifically, when a user selects a departure point, the routing
component 46 searches for the departure point in the "place name"
field of the routing places data in the routing database 30. If the
departure point matches any "place name", then the routing places
data in FIG. 5 associated with that "place name" is saved for later
use. If the departure point does not match any "place name", then
the routing component 46 provides the user with a list of
similarly-spelled place names on the display monitor 18, from which
the user may select a desired departure point.
[0037] Following selection of a departure point, the user selects a
destination point. Once again, the routing component 46 searches
the routing database 30 to find a match with the selected departure
point. If a match is found between the selected departure point and
a "place name" in the routing database 30, then the routing places
data associated with the "place name" is saved for later use. If no
match is found, the user is provided with a list of
similarly-spelled place names from which to select a desired
destination point. Since a route requires at least two selected
points, failure of the user to select both a departure point and a
destination point will cause the routing component 46 to prompt the
user for an additional place selection.
[0038] After the user has selected a departure point and at least
one destination point, the user may still select additional
destination points. The routing component 46 will generate routes
between the selected points in the order they are selected. Thus,
if a user successively chooses a departure point, a destination
point A, and a destination point B, then the routing component 46
will generate routes between the departure point and the
destination point A, and between the destination point A and the
destination point B.
[0039] In response to user selection of a departure point and at
least one destination point, the routing component 46 determines a
travel route between the departure point and the destination point
using an implementation of Dijkstra's shortest path algorithm. In
order to apply Dijkstra's algorithm, a departure node associated
with the departure point and a destination node associated with the
destination point are defined. If the departure point is located at
a stored node, then that node is the departure node. If the
departure point is located away from stored nodes, but along a
link, then the departure node is the departure point itself.
Finally, if the departure point is located away from both stored
nodes and links, then the departure node is the point of
intersection found by extending a line from the departure point
perpendicular to the closest link. The destination node associated
with the destination point is defined in the same manner.
[0040] Since Dijkstra's algorithm is well-known to the art, it will
not be described in detail herein. It suffices to say that to find
the shortest path between a departure point and a destination
point, the algorithm begins at the departure node and spreads out
through the road network of nodes and links stored in the routing
database 30, adding nodes to a saved list of nodes that we have
found the shortest path to, until the destination node is included
in this list of nodes. In applying Dijkstra's algorithm, the
routing component 46 determines distances between nodes by reading
the field "length of link" in the link data in FIG. 5. If the
departure node, however, is located along a link but away from a
stored node, then the "distance along link" field of the routing
places data in FIG. 5 is used in combination with the "length of
link" field to determine distances directly around the departure
node. In particular, the distance between the departure node and
one of the two nodes of the link is determined by reading the
"distance along link". The distance between the departure node and
the other of the two nodes of the link is determined by subtracting
the "distance along link" from the "length of link" of the link
data. The "distance along link" field is used in the same fashion
for determining distances to a destination node which is located
along a link but away from a stored node. Dijkstra's algorithm is
described in greater detail in Chapter 9 of the book INTRODUCTION
TO DATA STRUCTURES by Bhagat Singh and Thomas L. Naps, published in
1985 by West Publishing Co., which is 10 incorporated herein by
reference.
[0041] After the route is generated by the routing component 46,
the routing component 46 creates textual directions for travel
between the departure and destination points. In creating the
textual directions, all links along the generated route pointing to
a single road name in the routing database 30 are combined into one
textual direction. The textual directions provide travel
instructions beginning from the departure point and ending with the
destination point, and there is one textual direction for each road
name along the generated route.
[0042] Next, the routing component 46 determines the shape of the
generated route using the shape data in FIG. 5. The routing
component 46 collects all the links along the generated route and,
for each link, retrieves the associated shape points. If a
departure or destination point is located at a node or along a
link, then that point is also retrieved as a shape point. If a
departure or destination point is located away from both nodes and
links, then both that point and the point of intersection (INT in
FIG. 6) formed by extending a perpendicular line from the departure
or destination point to the closest link are also retrieved as
shape points. In this manner, the routing component 46 retrieves
all of the shape points along the generated route.
[0043] Referring back to FIG. 6, if, for example, the generated
route extends from place 1 to place 2 via the links AC, AB, and
part of BE, then the routing component 46 retrieves the shape
points S5, S1, S2, S3, S4, and place 2 in an order corresponding to
the direction of the generated route. Similarly, if the generated
route extends from place 1 to place 3 via AC, part of AB, and the
perpendicular line, then the routing component 46 retrieves
the-shape points S5, S1, S2, INT, and place 3, in that order.
[0044] The routing component 46 uses the shape points to draw the
generated route over the bit-mapped image on the display monitor
18. In particular, as shown in FIG. 5, a given shape point is
associated with lat/long coordinates. In order to properly position
the shape point over the bitmapped image on the display monitor 18,
the routing component 46 performs the following operations which
are depicted in the flowchart in FIG. 8. First, at step 54, the
routing component 46 reads from the memory file associated with the
displayed bit-mapped image (FIG. 3) the lat/long of the upper left
(ul) and lower right corners of the bit-mapped image and the map
projection used for the bit-mapped image. Next, at step 58, the
routing component 46 converts the lat/long of the upper left and
lower right corners of the bit-mapped image into projection units
using the received map projection. Projection units are those units
obtained by applying a map projection to a lat/long.
[0045] At step 62, the routing component 46 converts the lat/long
of the given shape point into projection units using the same
standard map projection used at step 58. At step 66, the routing
component 46 interpolates the given shape point (in both the X and
Y directions) within the bit-mapped image by calculating a ratio
between the projection units associated with the given shape point
and the projection units associated with upper left and lower right
map corners. At step 70, this ratio is multiplied by the size of
the bit-mapped image (in both the X and Y directions) to convert
the projection units of the given shape point into bit map
coordinates. Finally, at step 74, the routing component 46 reads
the "initial display coordinates" of the bit-mapped image (see FIG.
3), and offsets the shape point by the amount of the "initial
display coordinates" to obtain the pixel position of the shape
point on the displayed bit-mapped image. The operations in FIG. 8
are performed for each shape point along the calculated route.
[0046] After all the shape points are collected and converted into
properly offset bit map coordinates, the routing component 46
generates a video line on the display monitor, which connects the
shape points, by calling a Microsoft.RTM. Windows.TM. drawing
function such as "Polyline". The video line represents the
generated travel route between the selected departure point and the
selected destination point. The video line overlays the bit-mapped
image on the display monitor and is properly positioned relative to
the bit-mapped image because both the bit-mapped image and the
video line are created from the same GIS database and using the
same map projection. In particular, the video line is composed of
shape points associated with lat/long coordinates originally taken
from the GIS database. Similarly, the bit-mapped image is a
snap-shot of a vector map generated from shape information
contained from the same GIS database.
[0047] In the preferred embodiment, the travel route is displayed
using an "inverse video" line, i.e., a video line which changes
each pixel along the route to the opposite color. The opposite
color of a given pixel is obtained by displaying the color having
an opposite RGB (Red, Green, Blue) value to the given pixel. The
opposite RGB value is determined by the graphical user interface,
which is preferably Windows.TM.. Alternatively, the route may be
displayed using any other color transformation for the pixels along
the route. For example, the pixels along the route may be
transformed into a solid color, a lighter color, or a darker
color.
[0048] Moreover, the travel route is preferably displayed with a
video line having a width which is slightly wider than the widest
road along the route. This insures that the video line completely
overlays the roads which form the route. Also, the travel route is
displayed with the departure and destination points having enlarged
dots formed thereon so that these points are clearly visible to the
user. This effect is created by calling the Microsoft.RTM.
Windows.TM. function "Ellipse", which highlights pixels within a
fixed radius of the departure and destination points.
Alternatively, after the display pixel positions of the departure
and destination points are obtained, several pixel positions
located near the departure and destination points are added as
shape points. When the displayed line traverses these added pixel
positions, a large dot is formed around the departure and
destination points.
[0049] Not only is the generated travel route displayed on the
display monitor 18, but it may also be sent to the printer 22 (FIG.
1) for printing. The travel route, along with the underlying
bit-mapped image, may be printed as follows. First, in response to
user selection of a print option via the user interface 14, the
bit-mapped image is selected into a memory DC (device context),
i.e., a block of memory organized like a bit map. Second, the
routing component 46 draws the travel route to the memory DC. Since
the travel route is now being drawn to the memory DC, as opposed to
the display monitor 18, the routing component 46 does not apply the
display offset between the bit-mapped image and the display monitor
18 to the shape points along the travel route following their
projection into bit map coordinates. That is, step 74 in FIG. 8 is
skipped when the travel route and underlying bit-mapped image are
printed. However, all of the other operations in FIG. 8 are still
performed by the routing component 46. Next; the routing component
46 calculates the width and height of the printable area in printer
pixels so as to maintain the aspect ratio of the bit-mapped image
while covering as much of the printable area as possible. Finally,
Microsoft.RTM. Windows.TM. provides a built-in "StretchBlt" call
which performs a bit-block transfer of the travel route and
bitmapped image from the memory DC to a printer DC so that the
printer 22 may print the travel route and bit-mapped image.
[0050] Alternatively, a displayed travel route and bit-mapped image
may be printed by user selection of "Print Screen" via-the user
interface 14, which stores the travel route and bit-mapped image
into a "Clipboard" under Microsoft.RTM. Windows.TM.. The user then
enters a drawing application such as Microsoft.RTM. Windows.TM.
PAINTBRUSH and "pastes" the travel route and bit-mapped image from
the "Clipboard" to PAINTBRUSH. By selecting a print option, the
pasted travel route and bit-mapped image are printed from
PAINTBRUSH.
[0051] After the generated route is highlighted over the bitmapped
image on the display monitor 18, the user may request via the user
interface 14 a list of places of interest which are geographically
located near the displayed route. In response to such a request,
the place selection component performs the operations shown in the
flowchart in FIG. 9 to determine which places of interest are
located near the displayed route. First, at step 80, the place
selection component 50 successively retrieves every Nth shape point
along the route, in the direction of travel, where N is typically
greater than one. As previously stated, the shape points along the
route were collected by the routing component 46 prior to
displaying the route on the display monitor 18. At Step 84, for
every Nth shape point, the place selection component 50 determines
the distance between the shape point and all of the geographic
centers in the places of interest database 34. Given a shape point
with a lat/long of lat1, long1 and a geographic center with a
lat/long of lat2, long2, the standard arc-distance function for
calculating the distance between lat1, long1 and lat2, long2 is the
following:
Distance=RADIUS*2*a sin((sgrt(((cos(lat2)
cos(lng2))-(cos(lat1)*cos(lng1)))2+((cos(lat2)*
sin(lng2))-(cos(lat1)*sin(lng1)))2+(sin(lat2)-sin(lat1))2)*RADIUS)/(2*RAD-
IUS)))
[0052] where [0053] RADIUS=the radius of the earth, and [0054] a
sin=the arcsine function.
[0055] At step 88, the place selection component determines which
geographic centers are located within a predetermined distance of
the shape point. At step 92, for each geographic center located
within the predetermined distance of the shape point, the
geographic center is compared to the geographic centers selected
with previous shape points so that the same geographic center is
not chosen twice. If a geographic center is a duplicate of a
previously selected geographic center, then it is not chosen a
second time. At --26-step 94, the place selection component 50
searches the places of interest database 34 for places of interest
associated with the selected geographic centers. At step 96, the
place selection component 50 generates on the display monitor 18 a
list of those places of interest associated with the selected
geographic centers.
[0056] The foregoing operations of the place selection component 50
have several advantages. First, places of interest are grouped
around geographic centers and the place selection component 50
calculates the distance between every Nth shape point and the
geographic centers, as opposed to calculating the distance between
every Nth shape point and all the places of interest. This improves
the processing efficiency of the place selection component 50.
Second, by taking every Nth shape point instead of every shape
point at steps 80 and 84, the processing efficiency of the place
selection component 50 is increased because a distance comparison
is not performed for every shape point. Third, since at step 80 the
place selection component 50 retrieves the Nth shape points in an
order corresponding to the direction of travel along the route, as
opposed to some other order, the generated list of places of
interest is already ordered in accordance with the direction of
travel. The place selection component 50 does not have to re-order
the generated list of places of interest to correspond to the
direction of travel. Generating the list to correspond to the
direction of travel is preferable because it allows a user to more
easily understand the list.
[0057] The overall operation of the automated travel planning
apparatus will now be described by reference to the flowchart in
FIGS. 10 and 11. After a user initiates operation of the automated
travel planning system at step 100, the map selection 42 component
automatically displays a bit-mapped image on the display monitor
18, such as a bit-mapped image of a country (step 104). At step
108, the user selects a departure point via the user interface 14,
and the routing component 46 searches the routing database 30 for
the selected departure point (step 112).
[0058] If the selected departure point is not found in the routing
database 30 at step 116, the routing component 46 generates a list
of similar place names on the display monitor 18 at step 120. At
step 124, the user proceeds to select a departure point from the
displayed list using the user interface 14. After a user has
correctly selected a departure point, the user selects a
destination point in the same manner. After the user has correctly
selected both a departure point and a destination point (step 128),
the user may select additional destination points at step 132.
[0059] After the user has completed selection of departure and
destination points, the routing component 46 determines the route
between the departure point and the first selected destination
point, and between the first selected destination point and any
additional selected destination points (step 136). In addition, the
routing component 46 determines the textual directions for travel
between the selected points (step 140). At step 144, the routing
component 46 collects the shape points from the routing database 30
for all the links which form the calculated route. From these shape
points, the routing component 46 generates a video line, over the
bit-mapped image on the display monitor 18, which corresponds to
the calculated route (step 148).
[0060] As illustrated in FIG. 11, following display of the
calculated route, the user has several options at step 152. First,
the user may select another bit-mapped image from the map database
26 (step 156), and the routing component 46 will generate a new
video line over the selected bit mapped image corresponding to the
calculated route (step 160). Second, the user may request the
textual directions (step 164), and the routing component 46 will
display on the display monitor 18 the previously generated list of
textual directions (step 168). Third, the user may request a list
of places of interest geographically located near the calculated
route (step 172). In response to this request, the place selection
component 50 determines which geographic centers are located within
a predetermined distance of the calculated route (step 176),
searches the places of interest database 34 for the places of
interest associated with those geographic centers (step 178), and
displays a list of those places of interest (step 180). Finally,
the user may quit (step 184), which terminates operation of the
automated travel planning apparatus (step 188).
[0061] While the present invention has been described with
reference to one or more particular embodiment, those skilled in
the art will recognize that many changes may be made thereto
without departing from the spirit and scope of the present
invention. The following claims set forth the scope of the present
invention.
* * * * *