SYSTEM AND METHOD FOR SYNCHRONIZING RASTER AND VECTOR MAP IMAGES

Abstract: A system and method for coordinated manipulation of multiple displayed maps, even when the maps use different internal coordinate systems. According to this embodiment, each map image to be displayed is first georeferenced, to provide a set- of conversion functions between each map's internal coordinate system and a geographic coordinate system, which is latitutde/longitude in the preferred embodiment. After this is done, any point on each map can be referenced using the geographic coordinate set. Since this is the case, the maps can now be manipulated, edited, and annotated in a synchronized manner, by defining the manipulations in terms of the geographic coordinate system, and using the georeferencing functions to translate the manipulation to each map's internal coordinate system.

Description: SYSTEM AND METHOD FOR SYNCHRONIZING RASTER AND VECTOR MAP IMAGES CROSS REFERENCE TO RELATED APPLICATIONS: This application contains some specification and figures in common with concurrently filed, copending applications "System and Method for Performing Flood Zone Certifications" (09/537,161) filed March 29, 2000 and "System and Method for Georeferencing Digital Raster Maps" (09/537,849) filed on March 29, 2000 which are hereby incorporated by reference. BACKGROUND OF THE INVENTION Technical Field: The ' present invention generally relates to graphic image manipulations and in particular to manipulation of map images. Still more particularly, the present invention relates to the coordinating the manipulation of multiple map images displayed on a data processing system. Description of the Related Art: Modern geographic information systems normally make use of digital vector-based map information. However, a vast legacy of paper-based map information exists. It is very expensive and time consuming to convert all of the information on these paper maps over to a digital vector format. In many cases the scope and expense of such conversions renders them completely impractical. However, even when a complete conversion to digital vector- based format is not possible, it is still possible to obtain some of the benefits of computerized map systems, first by converting the paper maps to digital raster maps by digitally scanning them, and then by georeferencing the raster image. A digital map image is said to be georeferenced if a pair of mathematical functions, f, and g, have been determined that can be used to convert back and forth between the coordinates of the map image (as defined by the pixels of the image) and the corresponding longitude and latitude of the location of that point. That is, f and g do the following: 1. If (x, y) represents a location on the digital map image, then f (x, y) = (Lon, Lat) represents the longitude and latitude of the corresponding physical location. 2. If (Lon, Lat) represents a physical location that lies within the region covered by the map, then g(Lon, Lat) = (x, y) represents the point on the digital map image that corresponds to that longitude and latitude. Here, x and y represent the natural internal coordinate system of the map image. In most cases, a vector-based map image uses longitude and latitude as its internal coordinate system, if so, it can be considered to be trivially georeferenced already. Typically a digital raster map image uses the pixels of its image as a kind of natural coordinate matrix. This type raster map image will require non-trivial georeferencing functions to convert back and forth between coordinate systems. In a geographic information system, both raster maps and vector maps are often used, since raster maps can be easily obtained from the vast wealth of paper maps available, and vector maps can contain a great amount of underlying data. When each of these maps are displayed, users will typically desire to manipulate the view, by scrolling, zooming, or otherwise. If more than one map is being displayed, the user is typically required to independently manipulate each map to the desired view. It would be desirable to provide a means for a user to simultaneously manipulate both maps, even when the maps use different internal coordinate systems. SUMMARY OF THE INVENTION It is therefore one object of the present invention to provide improved graphic image manipulations. It is another object of the present invention to provide improved manipulation of map images. It is yet another object of the present invention to provide an improved system and method for coordinating the manipulation of multiple map images displayed on a data processing system. The foregoing objects are achieved as is now described. The preferred embodiment provides a system and method for coordinated manipulation of multiple displayed maps, even when the maps use different internal coordinate systems. According to this embodiment, each map image to be displayed is first georeferenced, to provide a set of conversion functions between each map's internal coordinate system and a geographic coordinate system, which is latitude/longitude in the preferred embodiment. After this is done, any point on each map can be referenced using the geographic coordinate set. Since this is the case, the maps can now be manipulated, edited, and annotated in a synchronized manner, by defining the manipulations in terms of the geographic coordinate system, and using the georeferencing functions to translate the manipulation to each map's internal coordinate system. The above as well as additional objectives, features, and advantages of the present invention will become apparent in the following detailed written description. BRIEF DESCRIPTION OF THE DRAWINGS The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: Figure 1 depicts a data processing system in accordance with a preferred embodiment of the present invention; Figure 2 is an exemplary raster map, in accordance with the preferred embodiment; Figure 3 is an exemplary vector map, corresponding to the raster map of Figure 2, in accordance with a preferred embodiment of the present invention; and Figure 4 is a flowchart of a process in accordance with a preferred embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT With reference now to the figures, and in particular with reference to Figure 1, a block diagram of a data processing system in which a preferred embodiment of the present invention may be implemented is depicted. Data processing system 100 includes processor 102 and associated L2 Cache 104, which in the exemplary embodiment is connected in turn to a system bus 106. System memory 108 is connected to system bus 106, and may be read from and written to by processor 102. Also connected to system bus 106 is 1/0 bus bridge 110. In the exemplary embodiment, data processing system 100 includes graphics adapter 118 connected to bus 106, receiving user interface information for display 120. Peripheral devices such as nonvolatile storage 114, which may be a hard disk drive, and keyboard/pointing device 116, which may include a conventional mouse, a trackball, or the like, are connected to 1/0 bus 112. The exemplary embodiment shown in Figure 1 is provided solely for the purposes of explaining the invention and those skilled in the art will recognize that numerous variations are possible, both in form and function. For instance, data processing system 100 might also include a compact disk read only memory (CD-ROM) or digital video disk (DVD) drive, a sound card and audio speakers, and numerous other optional components. All such variations are believed to be within the spirit and scope of the present invention. Data processing system 100 is provided solely as an example for the purposes of explanation and is not intended to imply architectural limitations. The preferred embodiment provides a system and method for coordinated manipulation of multiple displayed maps, even when the maps use different internal coordinate systems. According to this embodiment, each map image to be displayed is first georeferenced, to provide a set of conversion functions between each map's internal coordinate system and a geographic coordinate system, which is latitude/longitude in the preferred embodiment. After this is done, any point on each map can be referenced using the geographic coordinate set. Since this is the case, the maps can now be manipulated, edited, and annotated in a synchronized manner, by defining the manipulations in terms of the geographic coordinate system, and using the georeferencing functions to translate the manipulation to each map's internal coordinate system. Once this has been done, it becomes possible to effectively display the information on a raster map in synchronization with information contained on other raster maps or on ordinary vector-based maps. The preferred embodiment may be applied to any system which simultaneously displays multiple map images, but is particularly valuable for systems displaying a raster map image and a vector map image. Map image synchronization is a method whereby two map images can be made to show the same geographic region at all times, maintaining this synchronization even after one of the images is panned, zoomed scrolled, or otherwise caused to display a different region. Whenever such a change occurs on one map, the system causes the same change to occur on the other map as well. In this way, the two images continue to display the same region, wit out the need of manually adjusting both maps. In addition the synchronization system allows annotations to be placed on either map at specified geographic locations, and causes a matching annotation to appear on the other map in the corresponding location. The two maps in question may be any combination of digital raster and vector-based maps, as long as georeferencing information is available for both maps. According to the preferred embodiment/ one map is a digital raster map, and the other map is a vector map, both maps covering the same geographic area. Multiple configurations of the map display are possible. These include: 1. Both maps are displayed side by side, or one above the other on the computer display. 2. One map is superimposed directly on top of the other. a. The background of the top map is transparent, so that the user can see features of both the top map and the bottom map. b. other maps are opaque, but a user may toggle back and forth rapidly between the two images. Figure 2 is an exemplary raster map, in accordance with the preferred embodiment. This exemplary map shows a scanned image from a Federal Emergency Management Agency (FEMA) paper map. This raster image shows land area with flood zone indications, but would, in a computer system, contain no underlying data regarding the area shown. Figure 3 is an exemplary vector map, corresponding to the raster map of Figure 2, in accordance with a preferred embodiment of the present invention. This map shows the same area as the map in Figure 2, but is created by a computer system from a database describing the locations of features such as the streets shown. Typically, each feature shown on a vector map such as this will already be georeferenced, in that the geographic coordinates of each feature will also be recorded in the underlying data. The process of the preferred embodiment, as shown in the flowcharts of Figures 4 and 5, operates in the following way: Figure 4 shows a map manipulation process in accordance with the preferred embodiment. First, the data processing system loads and displays two maps, Mapl and Map2, according to a user selection (step 400). For purposes of this example, assume that Mapl is a digital raster map, and Map2 is a vector map showing substantially the same region. It should be noted that the maps displayed are not required to cover identical geographic regions, as long as they share some geographic area in common. Both maps, according o the preferred embodiment, are previously georeferenced. In an alternate embodiment, the system will allow the user to georeference one or both maps, if required. Next, an initial geographic region, which is present on both maps, is - selected on Map 1 and displayed by the system (step 405). Since Mapl has been georeferenced, the boundaries of the selected region are determined, using Mapl's set of georeferencing functions, in terms of longitude and latitude (step 410). The system then converts these boundaries, using the georeferencing function set of Map2, between the latitude/longitude boundaries of the display region and the internal coordinate system of Map2 (step 415). Next, the system displays the same region of Map2 (step 420), according to the same geographic boundaries. Thereafter, as the user interacts with the system by causing one of the maps, Mapl in this example, to display a different geographic region or view (step 425), the system performs the following steps. Note that this manipulation by the user can include any change in the map view, including but not limited to scrolling, zooming, rotating, or changing the view perspective of the map, and that the user can be performing the manipulation on either map. The system first determines the boundaries of the newly displayed region of Mapl in the natural coordinate system of Mapl (step 430). Next, the system uses the georeferencing function set of Mapl to convert the boundaries to be in terms of longitude and latitude (step 435). The system then uses the georeferencing functions of Map2 to determine the boundaries of the new region in terms of the natural coordinate system of Map2 (step 440) . The system then performs the appropriate image scaling and manipulation functions, known to those of skill in the art, to redraw Map2 with the same boundaries, and according to the same changes in scale and perspective, as Mapl (step 445) The user may then stop his manipulation and view the maps, continue to manipulate the maps, or annotate the map (step 450). Note that the steps above are performed rapidly enough, in the preferred embodiment, that it appears that the user is manipulating both maps in synchronicity. Figure 5 shows a flowchart of a map annotation process in accordance with the preferred embodiment. When the user places an annotation on one of the maps (step 500), Mapl in this example, then the system performs the following steps. First, the system determines the location of the new annotation of Mapl in the natural coordinate system of Mapl (step 505). Next, the system uses the georeferencing function set of Mapl to convert the annotation location to longitude and latitude (step 510). The system then uses the georeferencing function set of Map2 to express the annotation location to be in terms of the internal coordinate system of Map2 (step 520). Finally, the system displays the new annotation on Maρ2, in the location corresponding to the annotation on Mapl (step 525). The user may then stop his manipulation and view the maps, continue to manipulate the maps, or annotate the map (step 530). Again, the steps above are performed rapidly enough, in the preferred embodiment, that it appears that the user is annotating both maps in synchronicity. Common changes, that might occur to change the region displayed include the user panning , zooming, or scrolling one of the images. Annotations may be used to designate points of particular interest on the maps. Certain minor adjustments are required in the display if a region is selected which is not entirely present on one or more of the maps, or if the aspect ratios of the screen display areas devoted to each map are different. In the first case, the system attempts a "best fit" when one map selection included area not found in the other map, and simply displays blank additional area to fill the missing region, so that the map windows be filled and the synchronization of the images maintained. In the second case, the other map can be scaled to reflect the same area, or alternatively one or more of the map windows may be equipped with scroll bars, so that the effective dimensions of the map windows become identical. A specific example, which illustrates the utility of map synchronization, arises from the "Flood Zone Determination" business, The Federal Emergency Management Agency (FEMA). FEMA publishes a library of tens of thousands of paper maps showing various types of flood zones and their locations in the United States. When performing a flood zone certification, a map analyst must locate a property on a flood map and determine the type of flood zone that the property is contained in. Unfortunately, these FEMA maps frequently display only a subset of geographic landmarks (such as streets). This often forces a map analyst to refer to a separate street map to find the property, and, once found, to determine the corresponding location on the flood map. Map synchronization greatly facilitates this process. For example, with both the flood map and the street map displayed side by side, the map analyst might 1. Locate the property on the street map, including performing whatever map manipulations are necessary to show the required area, having the flood map be manipulated by the system to reflect that same area; 2. Place an annotation on the street map at the location of the property wherein the system places an identical annotation at the corresponding point on the flood map; and 3. Observe the location of the synchronously placed annotation on the flood map, and make the required flood zone determination. In this way, the map synchronization system has reduced the difficulty and time involved in making this determination by a great margin. It is important to note that while the present invention has been described in the context of a fully functional data processing system and/or network, those skilled in the art will appreciate that the mechanism of the present invention is capable of being distributed in the form of a computer usable medium of instructions in a variety of forms, and that the present invention applies equally regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of computer usable mediums include: nonvolatile, hard-coded type mediums such as read only memories (ROMs) or erasable, electrically programmable read only memories (EEPROMs), recordable type mediums such as floppy disks, hard disk drives and CD-ROMs, and transmission type mediums such as digital and analog communication links. While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention.

Claims: WHAT IS CLAIMED IS: 1. A method for displaying multiple map images in a data processing system, comprising the steps of: displaying a first map image and a second map image; responsive to a user input, changing the first map image to display a modified first map image; determining, in a geographic coordinate set, at least one boundary of the modified first map image; and changing the second map image to display a modified second map image, the modified second map image having at least one boundary with the same geographic coordinates of the boundary of the modified first map image, whereby the first map image and second map image are simultaneously changed according to the user input. 2. The method of claim 1, further comprising the step of defining a set of functions for converting between an internal coordinate system of the first map image and a geographic coordinate system. 3. The method of claim 1, further comprising the step of defining a set of functions for converting between an internal coordinate system of the second map image and a geographic coordinate system. 4. The method of claim 1, wherein the first map image and the second map image display the same geographic area. 5. The method of claim 1, wherein the modified first map image and the modified second map image display the same geographic area. 6. The method of claim 1, further comprising the steps of: responsive to a user input, displaying an annotation on the first map image; determining the geographic coordinates corresponding to the annotation on the first map image; and displaying an annotation on the second map image at a point corresponding to the geographic coordinates. 7. The method of claim 1, further comprising the step of converting at least one point in the first map image between an internal coordinate system of the first map image and a geographic coordinate system. 8. The method of claim 1, further comprising the step of converting at least one point in a geographic coordinate system between a geographic coordinate system and an internal coordinate system of the second map image. 9. A computer system, having at least a processor connected to communicate with a readable and writeable memory, comprising: means for displaying a first map image and a second map image; means for, responsive to a user input, changing the first map image to display a modified first map image; means for determining, in a geographic coordinate set, at least one boundary of the modified first map image; and means for changing the second map image to display a modified second map image which corresponds to the modified first map image, the modified second map image having at least one boundary with the same geographic coordinates of the boundary of the modified first map image, whereby the first map image and second map image are simultaneously changed according to the user input. 10. The system of claim 9, further comprising means for defining a set of functions for converting between an internal coordinate system of the first map image and a geographic coordinate system. 11. The system of claim 9, further comprising means for defining a set of functions for converting between an internal coordinate system of the second map image and a geographic coordinate system. 12. The system of claim 9, wherein the first map image and the second map image display the same geographic area. 13. The system of claim 9, wherem the modified first map image and the modified second map image display the same geographic area. 14. The system of claim 9, further comprising: means for, responsive to a user input, displaying an annotation on the first map image; means for determining the geographic coordinates corresponding to the annotation on the first map image; and means for displaying an annotation on the second map image at a point corresponding to the geographic coordinates. 15. The system of claim 9, further comprising means for converting at least one point in the first map image between an internal coordinate system of the first map image and a geographic coordinate system. 16. The system of claim 9, further comprising means for converting at least one point in a geographic coordinate system between a geographic coordinate system and an internal coordinate system of the second map image. 17. A method of manipulating a map, comprising: determining a boundary of a user-selected geographic region of a first map; converting the boundary of the first map into a corresponding boundary of a second map; and providing for display the boundary of the second map. 18. The method of claim 1 further comprising the act of loading a first map. 19. The method of claim 1 further comprising the act of loading a second map. 20. The method of claim 1 further comprising the act of displaying the first map. 21. The method of claim 1 further comprising the act of displaying the second map. 22. The method of claim 1 further comprising the act of displaying a region of the first map (the first region) and a region of the second map (the second region), wherein the first region is substantially similar to the second region. 23. The method of claim 1 wherein the first map is a georeferenced map. 24. The method of claim 1 wherein the second map is a georeferenced map. 25. The method of claim 1 wherein the boundary is associated with a longitude coordinate and a latitude coordinate. 26. The method of claim 1 wherein converting converts the boundary of the user-selected geographic region of the first map from a first map coordinate system into an intermediate coordinate system, the intermediate coordinate system being georeferenced. 27. The method of claim 1 wherein converting associates a georeferenced coordinate of the first map with a georeferenced coordinate of the second map. 28. The method of claim 1 wherein converting transfers georeferenced coordinate of the first map to a natural coordinate of the second map. 29. The method of claim 1 further comprising receiving a user interaction that creates a new boundary for the first map. 30. The method of claim 13 further comprising determining a georeferenced coordinate for the new boundary. 31. The method of claim 13 further comprising the act of determining a georeferenced coordinate for the new boundary of the second map, such that the new boundary coordinate of the second map corresponds with a new boundary coordinate of the first map. 32. The method of claim 14 further comprising displaying the new boundary of the first map. 33. The method of claim 15 further comprising displaying the new boundary of the second map. 34. A method in a computer system for manipulating a first map and a second map, comprising: determining a boundary of a user-selected geographic region of a first map; converting the boundary of the first map into a corresponding boundary of a second map; and providing for display the boundary of the second map. 35. The method in the computer system of claim 18, further comprising: displaying a region of the first map (the first region), and a region of the second map (the second region), wherein the first region is substantially similar to the second region; receiving a user interaction that creates a new boundary for the first map; determining a coordinate for the new boundary of the first map; and determining a coordinate for the second map such that the coordinate for the second map relates to the new boundary of the first map. 36. A computer readable medium whose contents enable map manipulation, by: determining a boundary of a user-selected geographic region of a first map; converting the boundary of the first map into a corresponding boundary of a second map; and providing for display the boundary of the second map. 37. A method of map manipulating a map, comprising: selecting a first region of a first map; and interacting with a computer system enabled to manipulate a map when a user directs the manipulation of either the first map or a second map. 38. The method of claim 1 further comprising selecting a second map. 39. The method of claim 1 further comprising selecting a first map. 40. The method of claim 1 further comprising receiving a display of a second map that is automatically associated with the first map. 41. The method of claim 1 wherein the first map is a vector map. 42. The method of claim 1 wherein the first map is a digital raster map. 43. The method of claim 1 wherein the first map is a vector map, and further comprising a second map which is a digital raster map. 44. The method of claim 1 wherein the first map is a digital raster map, and further comprising a second map which is a vector map. 45. The method of claim 1 wherein the user directs the manipulation of the first map. 46. The method of claim 1 wherein the user directs the mampulation of the second map. 47. The method of claim 1 further comprising receiving a display of a second region associated with a second map, the second region being geographically substantially similar to the first region. 48. The method of claim 1 further comprising changing a view of the first map. 49. The method of claim 12 further comprising receiving a display of the first map in response to the user interaction to create a responsive display, the responsive display being representative of the user interaction. 50. The method of claim 13 further comprising receiving a display of the second map, the display of the second map being representative of the responsive display of the first map. 51. A computer readable medium whose contents transforms a computer system into a map manipulation device, by: selecting a first region of a first map; and interacting with a computer system enabled to manipulate a map when a user directs the manipulation of either the first map or a second map. 52. The computer readable medium of claim 15, whose contents further enable viewer referencing of at least the first map. 53. The computer readable medium of claim 15, whose contents further enable: receiving a command to change a map view; and receiving of a responsive display of the first map, the responsive display being representative of the user interaction. 54. The computer readable medium of claim 15, whose contents enable the receiving of a display of a second region on the second map, the second region being geographically substantially similar to the first region. 55. A computer memory containing a data structure capable of enabling map manipulation, by: selecting a first region of a first map; and interacting with a computer system enabled to manipulate a map when a user directs the manipulation of either the first map or a second map. 56. The computer memory of claim 19 further comprising additional data structures capable of: receiving a command to change a map view; receiving of a responsive display of the first map, the responsive display being representative of the user interaction; and receiving of a display of a second region on the second map, the second region being geographically substantially similar to the first region. 57. A system for automatically manipulating or annotating a second map when a first map is manipulated or annotated, the system comprising: a map display; a map processing platform in communication with the map display; a storage platform coupled to the map processing platform; and a user interaction device coupled to the map processing platform. 58. The system of claim 1 wherem the map display is enabled to display a first map and a second map. 59. The system of claim 1 wherein the map display is coupled to a graphics adapter. 60. The system of claim 1 wherein the processing platform is a microprocessor. 61. The system of claim 1 wherein the map processing platform is an application service provider. 62. The system of claim 1 wherein the map processing platform is located remotely from the map display. 63. The system of claim 1 wherein the storage platform comprises cashed memory. 64. The system of claim 1 wherein the storage platform comprises system memory. 65. The system of claim 1 wherein the storage platform comprises non-cashed volatile storage. 66. The system of claim 1 wherein the user interaction device comprises a mouse. 67. The system of claim 1 wherein the map processing platform and the map display are coupled via a network. 68. The system of claim 11 wherein the network is the internet. 69. The system of claim 1 wherein the storage platform is associated with the map processing platform via a network. 70. The system of claim 13 wherein the network is the internet. 71. The system of claim 1 wherein the storage platform maintains code that enables the automatic manipulation of a second map when a first map is manipulated by: determining a boundary of a user-selected geographic region of a first map; converting the boundary of the first map into a corresponding boundary of a second map; and providing for display the boundary of the second map. 72. The system of claim 1 wherein the storage platform maintains code that enables the automatic manipulation of a second map when a first map is manipulated by: determining a boundary of the user-selected geographic region of the first map; converting the boundary of the first map into a corresponding boundary of a second map; providing for display the boundary of the second map; selecting a first region of a first map; and interacting with a data processing system enabled for multiple map mampulation by providing a user interaction with a map. 73. A data signal comprising a data stmcture capable of map mampulation, by: determining a boundary of a user-selected geographic region of a first map; converting the boundary of the first map into a corresponding boundary of a second map; and providing for display the boundary of the second map. 74. A method of correlating a map annotation from a first map to a second map, comprising: detecting an annotation entry on the first map; associating the annotation entry with a set of first map coordinates; associating the set of the first map coordinates with a set of second map coordinates; and enabling the display of the annotation entry on the second map. 75. The method of claim 18 wherein "associating the set of first map coordinates" locates the annotation entry within the second map such that the set of second map coordinates correspond geographically to the location of the annotation as defined by the set of first map coordinates. 76. A computer readable medium whose contents cause a correlation of a map annotation between a first map and a second map, by: detecting an annotation entry on the first map; associating the annotation entry with a set of first map coordinates; associating the set of the first map coordinates with a set of second map coordinates; and enabling the display of the annotation entry on the second map.

Inventors: HIGGINS DARIN WAYNE, SCOTT DAN MARTIN, HIGGINS, DARIN, WAYNE, SCOTT, DAN, MARTIN
Applicants: PROVAR INC, PROVAR INC.
Application year: 2001
Main classification: G09G
IPC codes: G06T17, G09B29