The present invention relates to the field of image processing systems, and, more particularly, to geographic information systems (GIS) and related methods.
In certain applications it is desirable to provide digital representations of three-dimensional (3D) objects or images. By way of example, such applications may include mapping programs (e.g., Google Earth) architectural design applications (e.g., Pro/E, CATIA), digital design and modeling tools (e.g. Maya, 3DStudio Max), and three-dimensional visualization analysis tools.
One challenge of displaying and interacting with digital 3D images on a computer is that this is traditionally accomplished using two-dimensional (2D) interaction mechanisms. More particularly, in 3D application domains, a 3D object is typically created/edited using only 2D input/output devices such as a monitor or display, mouse, keyboard, and/or joystick. This is usually done in one of two ways. The first way is to create or place a 3D object in the scene, which can be a cumbersome multi-step process. The object is first created or placed in a two-dimensional plane and then manipulated in the third dimension. While there are multiple points of view often being displayed simultaneously, the process may still be relatively unintuitive to the user.
In accordance with another approach objects can be natively placed directly in 3D space, but usually only relative to a pre-existing 3D object which already has a spatial context in the current coordinate system. One example of an application which allows objects to be natively placed in a 3D space is the InReality™ sitemodel viewer from the present Assignee, Harris Corp. InReality™ also provides a sophisticated interaction within a 3D virtual scene allowing users to easily move through a geospatially accurate virtual environment with the capability of immersion at any location within a scene.
Various approaches have been developed for arranging or placing graphical objects on a display. One example of a 2D arrangement for object placement on windows is disclosed in U.S. Pat. No. 5,883,625 to Crawford et al. This patent is directed to a system and method for automatically arranging objects inside a container of a graphical user interface (GUI). Selectable grid styles are provided for arranging cells into different configurations inside the container. The cells may be placed in different grid styles, such as rectangular, rhombus-shaped, or circular. Furthermore, identifiers are used for placing objects such as icons or buttons in each cell and ordering the objects for other user applications.
While such approaches may be helpful for interacting with 2D images, these approaches may not be of use for working with 3D images. While certain haptic (i.e., technology that interfaces the user via the sense of touch) and inherently 3D input devices do exist which attempt to facilitate interaction with 3D data, such devices are typically expensive, require specialized hardware/software, have a substantial learning curve, and/or are not readily available.
In view of the foregoing background, it is therefore an object of the present invention to provide a system and related methods for facilitating interaction with 3D data, such as 3D geospatial images, for example.
This and other objects, features, and advantages are provided by a geographic information system (GIS) which may include a display, a GIS database, and a processor. More particularly, the processor may cooperate with the display and the GIS database to display a three-dimensional (3D) geospatial image including a plurality of spaced-apart reference markers therein. The reference markers may have different visual characteristics indicative of different relative positions within the 3D geospatial image. The processor may also associate with each reference marker selectively displayable position data.
By way of example, the different visual characteristics may include different sizes and/or different colors. An input device may also be connected to the processor, and the processor may selectively display position data for a given reference marker based upon the input device. For example, in the case of a mouse, the processor may display the position data when a mouse cursor is moved to point at the given reference maker. By way of example, the selectively displayable position data may include selectively displayable latitude, longitude, and height coordinates, for example.
The input device may also cooperate with the processor to draw a line between a pair of reference markers, and the processor may cooperate with the display to display a distance between the pair of reference markers based upon the line. In addition, the input device may further cooperate with the processor to select a given reference marker from among the plurality of reference markers. Also, the 3D geospatial image may include a ground surface below the given reference marker. As such, the processor may cooperate with the display to draw a vertical reference line between the ground surface and the given reference marker upon selection thereof. The reference markers may be semi-transparent geometric objects, such as semi-transparent spheres, for example.
The processor may also cooperate with the display to selectively change the spacing between the reference markers based upon the input device. In some embodiment, the spacing between at least some of the reference markers may be non-uniform and/or non-linear. The input device may be used for selecting reference markers. As such, the 3D geospatial image may include at least one polygon, and the processor may determine an orientation of the at least one polygon based upon an order of selection of reference markers associated therewith.
Furthermore, the processor may selectively display the plurality of reference markers with the 3D geospatial image based upon the input device. For example, if the input device is a keyboard, the processor may display the reference markers when a given key(s) is depressed, and remove the reference markers from the display when the given key(s) is released.
A three-dimensional (3D) geospatial image display method aspect may include displaying the 3D geospatial image on a display with a plurality of spaced-apart reference markers therein. The reference markers may have different visual characteristics indicative of different relative positions within the 3D geospatial image. The method may further include associating with each reference marker selectively displayable position data.
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout, and prime and multiple prime notation are used to indicate similar elements in alternate embodiments.
Referring initially to
Generally speaking, the processor 23 cooperates with the display 21 and the GIS database 22 to display a three-dimensional (3D) geospatial image stored in the GIS database, along with a plurality of spaced-apart reference markers 30a-30l therein. In
The reference markers 30a-30l advantageously have different visual characteristics indicative of different relative positions within the 3D geospatial image to help users more readily distinguish the relative positions of object vertices, boundaries, elevations, etc., within an image. By way of example, in
Other visual characteristics besides size may be used to help visually indicate to a user the relative position of reference markers within an image. For example, in the alternative embodiment illustrated in
The processor 23 may also advantageously associate with each reference marker selectively displayable position data. Thus, in the case of a 3D geospatial image of a particular city or other location in which the points in the image are referenced to actual latitude, longitude, and/or height/elevation coordinates for the particular city, etc., the processor 24 will associate respective position data with each reference marker 30a-30l based upon its position within the image, as will be appreciated by those skilled in the art. Of course, for applications other than GIS (e.g., architectural design applications, digital design modeling tools, etc.), the position data may be referenced to a particular object in a scene based upon a scale, etc., as will be appreciated by those skilled in the art.
In particular, the processor 23 may cause the display 21 to display the position data associated with a given reference marker 30 when the user selects the given reference marker. In the example illustrated in
The mouse 24 may also be used to draw a line 34 between a pair of reference markers 30a and 30g, as seen in
Yet another similar feature is that the mouse 24 (or keyboard 25 or other appropriate input devices) may be used to select a given reference marker 30a so that the processor 23 may cause a vertical reference line 35 to be drawn between the ground surface and the given reference marker upon selection thereof, as seen in
The reference markers may be semi-transparent geometric objects, such as semi-transparent spheres 30″, for example, as shown in
The processor 23 may also cause the display 21 to selectively change the spacing between the reference markers 30a-30l based upon one of the input devices. For example, the processor 23 may change the spacing (i.e., density) of the reference markers 30a-30l based upon a scroll wheel of the mouse 24, which may be done in combination with pressing a particular key (e.g., CTRL key) on the keyboard 25. Thus, the user is able to quickly and conveniently change the spacing of the reference markers 30a-30l to suit the particular image or zoom level that the user is working with. Of course, the reference marker density may also be automatically updated as the user changes zoom-level, if desired.
The processor 23 may also selectively display the reference markers 30a-30l with the 3D geospatial image, i.e., only display them when requested by the user. For example, this may be done based upon one of the input devices such as the keyboard 25. More particularly, a specific key(s) on the keyboard 25 may be assigned for causing the processor 23 to display the reference markers 30a-30l when pressed or held down by the user (e.g., the space bar), and then “hide” the reference markers when the user releases the designated key(s). Of course, other methods may be used for instructing the processor 23 to display the reference markers 30a-30l (as well as performing the various functions described above), such as drop down menu items, buttons on a button bar, etc., as will be appreciated by those of skill in the art.
A three-dimensional (3D) geospatial image display method aspect will now be described with reference to
The method may further include associating with each reference marker selectively displayable position data, at Block 74, as discussed further above. The processor 23 then cooperates with the mouse 24 and/or keyboard 25 to determine when a given reference marker 30 is selected, at Block 76. When this occurs, the processor 23 then performs the appropriate action, such as displaying the respective position data associated with the given reference marker 30, as noted above, at Block 78, thus concluding the illustrated method (Block 80).
The reference markers 30a-30l may be expanded to span an entire viewable scene (i.e., view frustum), or just portions thereof in different situations or implementations. Moreover, the reference markers 30a-30l may also advantageously be used to place pre-defined objects in the 3D scene, or to define entirely new objects by successively selecting markers, for example. Preferably the grid or matrix of reference markers 30a-30l will have a regular spacing by default. However, additional user or context-definable parameters may be used to automatically increase the sphere density in certain areas causing the dynamic increasing and decreasing of the grid density to be non-uniform or even non-linear throughout the extent of the grid, as will be appreciated by those skilled in the art.
Operational details of one exemplary embodiment of the computer system 20 will now be described to provide still further understanding. The keyboard 25 spacebar brings in (i.e. overlays) the matrix of reference markers 30a-30l (i.e., spheres), which are appropriately sized to match the context, over the whole image scene or some portion thereof. The keyboard 25 and/or joystick may be used to move the camera view around in the scene. Further, a scroll wheel on the mouse 24 dynamically increases/decreases the matrix density (i.e., inter-sphere spacing). Optionally, the dynamic grid density adjustment does not necessarily need to be uniform or linear across entire matrix/grid, as noted above.
Each time the mouse pointer 32 mouse moves over a selectable reference sphere, (a) if there is a ground surface portion below the sphere, a straight vertical reference line 35 is automatically drawn to the ground 31 to show exactly over what ground point that sphere lies, and (b) if the scene is within a GIS context (i.e. has an origin), the latitude/longitude/height coordinates of the given sphere are shown preferably even if no ground exists below. Optionally, the spheres may be colorized based upon height/elevation or distance from a certain point (showing appropriate color bar legend on the side of the scene). In addition, clicking on a given sphere may select it and optionally close out a polygon (or volprint, as discussed in U.S. Pat. No. 6,915,310 to Gutierrez et al., which is assigned to the present Assignee and is hereby incorporated herein by reference in its entirety) if more than one sphere is selected. In a degenerate polygon case, two selected spheres make a line, as will be appreciated by those skilled in the art.
The above-described computer system 20 and methods may provide several advantages. For example, they may provide full 3D context relatively fast and with few operations required by a user, as well as providing a GIS (latitude/longitude/height) context for any 3D point in a scene. Furthermore, radial colorization may be provided based upon a distance from a point or object, or planar colorization based upon a distance from surface (e.g. ground). Other advantages may include dynamic density calibration, as well as non-uniformity in dynamic density calibration (i.e., areas of interest can be adjusted to have a higher density than the rest of the matrix). Moreover, polygon orientation (i.e., winding, in computer graphic terms, which is used to determine if a polygon is front-facing or back-facing) may optionally be automatically deduced from the order that the user selects the spheres.
Many modifications and other embodiments of the invention will come to the mind of one skilled in the art having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is understood that the invention is not to be limited to the specific embodiments disclosed, and that modifications and embodiments are intended to be included within the scope of the appended claims.