Geospatial mapping is employed in displaying a digital representation, in various forms, of the globe, space, and beyond. Attributes of such displays, such as the earth's terrain, temperature and other associated characteristics, are commonly mapped on a computer or a smartphone, for instance. In the last couple of decades, particularly with the advent of the Internet, software has found numerous applications, beyond that which was even contemplated in years prior. Accordingly, with the state of the technology, for example, earth can be viewed, on various devices, from space, it can be viewed in detail at selected areas upon the user zooming in and vice versa. These are among a host of other display manipulations for mapping the globe, space, and beyond.
Multiple approaches have led to the geospatial (digital) representation of geographic areas including terrestrial sites. One such approach includes selection of a map layer by a user of a client device, such as a computer, a smartphone or other computational devices having a display for viewing, as described above. Selection of a map layer is typically based on the specific content interest to the user. Upon the selection of a map layer, “tiles” (also referred to as “map tiles”) of the selected map layer are requested of a computational device based on specified geospatial boundaries. “Tiles” are readily utilized in geospatial mapping and utilized for generating a digital representation of a map to be viewed through the display of a browser, for example.
Upon receipt of a request for tiles, from the client device, a query is made against the map layers and geospatial tiles in the geospatial map server or (cache) memory of the client device. Upon the detection of a match between the information accompanying the request and the geospatial tiles, the requested (map) tiles are retrieved and deployed to the display interface of the client device for viewing.
Geospatial map layers and tiles are generated by processing data. First, data, potentially received from multiple sources including third party storage devices, is downloaded in its raw form and organized into searchable database form and stored accordingly. Map data/file is subsequently stylized by the application of stylistic, visualistic, and spatial filters to the stored data, before the stored data is converted into, and stored as, map layer files.
Lastly, the visualized map layers are split into tiles of congruous shapes and sizes using services, such as web mapping server (WMS) or a Web Mapping Tiling Service (WMTS). This process is applicable and appropriate for rendering both raster and vector tiles.
One of the drawbacks of current map layer deployment, techniques is the vast amount of portrayed data, particularly in three-dimensional map layers, for example, on a globe, make the visualization of points or areas-of-interest difficult to discern relative to areas that are not of interest to the user, i.e. areas-of-non-interest. Currently, there is no adequate process or system to address the foregoing, in addition to perhaps other, limitations of mapping systems.
Briefly, a method of geospatial mapping geospatial mapping of a map layer includes generating ‘N’ number of map tiles, ‘N’ being an integer value, where each of the map tiles is associated with a unique resolution and acuity. A group of map tiles defines a non-linear map layer and a group of non-linear map layers defines a map layer catalogue. Location (L) and region (R) information, defining a current location of the client device, are received from a client device. The combination of location L and region R defines an area of display presented to a user by the client device. Further, upon activation by the user, a portion of stored map tiles, of one or more groups of map tiles, is deployed to the client device to be assembled and displayed as a map layer in an area of the client device defined by L and R.
A further understanding of the nature and the advantages of particular embodiments disclosed herein may be realized by reference of the remaining portions of the specification and the attached drawings.
In the following description of the embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration of the specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized because structural changes may be made without departing from the scope of various implementations of the invention. It should be noted that the figures discussed herein are not drawn to scale and thicknesses of lines are not indicative of actual sizes.
In accordance with a method and apparatus of the invention, a geospatial mapping system generates map layers, comprised of geospatial map tiles that are deployed to the client device and displayed to a user of the client device. One of the methods of map tiling in the geospatial mapping system includes generating N number of map tiles, ‘N’ being an integer value. Each of the N number map tiles is associated with a unique resolution and acuity. The unique resolution and acuity are based on the spatial resolution of the data. The person(s)/user generating the map determines how to best break up the map into distinct map tiles during map layer creation process. In general, the higher the resolution of the data, the greater the number of map tiles that can be created and the higher the resolution of the map layer.
The method further includes storing the generated N number of map tiles in a database of a geospatial map server that is for housing the map tiles. The server is in communication with the client device through a communication network.
Location (L), the location identified as the location of the client device and region (R), the region, a region around L, define a current location of the user client device, and received, by the server, from the client device. The combination of the L and the R define an area of display of the client device. A selected number of the stored map tiles is retrieved from the database for transmission to, and displaying by, the client device. The selected number is based on the size of the area of display of the user client device. Upon activation of a different map layer, stored map tiles corresponding to the different map layer are retrieved from the database for transmission to, and displaying by, the client device as a map layer. In various implementations, the foregoing two map layers may co-exist in the client device interface.
Accordingly, in an exemplary implementation, N number of map tiles result in a non-linear map layer, “N” being an integer value. That is, each of the map tiles is associated with a unique resolution and acuity and a group of map tiles defines a map layer and a group of map layers defines a map layer catalogue. Map tiles of a common group carry/store a distinct amount of information/data relative to map tiles of other groups. For instance, map tiles of the group of map tiles located closest to L and R may each carry the most amount of information relative to the map tiles of other groups.
The generated N map tiles are stored in a server database before deployment to a client device. Upon activation by the user, a portion of the stored map tiles, of one or more groups, is deployed to the client device and assembled as a map layer in an area of the client device display defined by L and R. In various implementations of the invention, tiling of the map layer around L and within R create a non-linear map layer.
In an exemplary implementation, tiling of a map layer around L and within R results in the creation a non-linear map layer. In a non-linear map layer where multiple tiles are used to generate a map layer, each tile is internally uniform in terms of the data/information stored or used throughout the tile. Tiles contain sequentially less information on a per-tile basis, the farther the tile is from L. Tile information may decrease linearly, logarithmically, or decrease in some other non-linear fashion. Tiles may be logarithmic, spherical, dome shape, and any other suitable formation. Further, tiles may be compressed.
In accordance with a method of the invention, an exemplary system allows the user to activate a map layer from the map layer catalogue. Activation of the map layer triggers the deployment and assembly of map tiles for the selected map layer, to the client, as shown and described relative to
In an embodiment of the invention, a differential or non-linear map tiling process is employed. These are merely a couple of examples of the various map tiling process that may be employed. In summary, a non-linear map tiling process is employed.
Geospatial tiles are assembled into map layers in the client interface around a selected geographic area defined by the boundaries of the client device interface. The device, also referred to herein as “client device” may be, without any limitation, a handheld device, such as a smartphone.
In accordance with a method and apparatus of the invention, a request is made by the client device to a geospatial map server. The geospatial map server may be made of one or more than one physical servers, which may be located in the same location or different locations.
The request is for map tiles of suggested map layers, which are ultimately generated by the geospatial map server. The client device and the geospatial map server communicate with each other via a communication network, such as but not limited to the Internet.
The request includes the location of the client device that may be obtained through a global positioning system (GPS).
The geospatial map server generates recommended map layers and associated map tiles that may or may not be congruent. More generally, map tiling is performed non-linearly, which can be used to generate various map layers geometry configurations, such as spherical, logarithmic, and other types, as shown in
It is noted that only tiles needed for the area of display (or area-of-interest) on the client device are deployed or sent to the client device. Stated differently, map tiles that are associated with a selected map layer are deployed and assembled in the area of display of the client's device where the map is to be viewed by the user.
In the client device, a map layer catalogue, made of map layers, may be created. A map layer catalogue is made of map layers which are shown to the user on the client device. These map layers are shown on the display of the client device by the client device interface. Such map layers are generally not stored in the client device and are rather transmitted by the geospatial map server, as requested by the client device. In various implementations of the invention, the geospatial map server's database contains all map tiles for all map layers.
A map layer deployment engine of the geospatial map server deploys the (selected) map layers and map tiles, through the communication network, to the client device. The deployed map tiles represent only a portion of generated map tiles which represent the defined geographic boundaries of the region R surrounding the location L of the client device. The region R may be defined by boundaries of the selected area of the display, typically, an area that is of interest to the user.
In accordance with an embodiment and method of the invention, map/data layers may be tiled and processed but only map tiles that are actually required are assembled in the map layer at region R. Tiles that comprise geographic areas not represented or viewed in the current device client interface of the client device are not deployed, in an embodiment of the invention. As the user takes action, for instance changing the area of display by zooming in, only the tiles required for the new areas-of-interest are deployed. New zoomed-in image is tiled and all other images remain un-tiled. This saves processing time and power.
Tiling is performed non-linearly, in accordance with some implementations of the invention, therefore, the tiles that make up an area-of-interest, as shown on the client device display, are not all the same size with the same acuity. Rather, the tiles may be assembled such that the tiles representing an area closer to the location of the client device are displayed with greater acuity, and perhaps smaller, relative to those located farther away from the client device. Tiles that are located further away from the Location L, relative to tiles closer to the Location L contain less acuity, therefore having less data/information to store thereby decreasing processing time and reducing memory/storage capacity requirements. The assembly of tiles in this non-linear fashion may be used to generate multiple map layer geometries including logarithmically or in logarithmic spherical view where the tiles representing an area closer to the location of the client device are displayed with greater acuity, and perhaps even larger in size, relative to those located farther away from the client device. This results in decreased processing time and a lower memory/storage capacity requirement.
Referring now to
In the system shown in
Briefly, the geospatial map server 12, responds to the client device with the display 18 and deploys the generated 3-D terrain map tiles to the client device. Appropriate visualized map layer information is shown at 24 of the display 18 and discussed in further detail below.
In accordance with an embodiment and method of the invention, the contents of the database 14, in addition to the map layer 16, may contain a list of meta-data such as various locations-of-interest, associated with the selected areas, identified by a name, such as “A”, “B”, . . . , that correspond to boundaries, such as “X1, Y1, Z1-->X2, Y2, Z2” for the area identified by the name “A”. The arrows 20 points to locations, shown at 24, on the display 18 defined by locations “A”, “B”, “C”, and “D” of the map layer 16.
Map tiling may be performed non-linearly and optionally with the map tiles compressed, in accordance with an embodiment of the invention. Examples of non-linear, without limitation, include logarithmic and spherical geometries. In the exemplary implementation of
In an exemplary implementation, among a host of others, an individual tile may be formed from many individual pixels and many tiles make up a map layer. Tiles may also be comprised of vector data in the form of points, lines, polylines, and polygons, to name some examples. The non-linear process occurs when multiple tiles of varying distinct levels of stored information, either raster or vector, are assembled together. Within an individual tile, information is stored uniformly. However, adding different tiles together, which contain varying amounts of stored information in the form of raster or vector data, creates a non-linear tiling process or a non-linear map layer. The process of assembling the tiles in sequential order of decreasing visual acuity is referred to herein as being “non-linear”. For a map layer in Region R, the tiles that are positioned closer to the Location L (referred to herein as “near field”) have more information, accordingly, they enjoy a higher level of detail and acuity. In contrast thereto, the tiles in the Region R that are positioned further from the Location L (referred to herein as “far field”) have less information in each tile and therefore have a lower level of visual acuity. In summary, as the distance, within the Region R, from the location L of the client device to the location travelled by the client device becomes farther and farther away from the Location L, the amount of stored information in the form of raster or vector data in each tile reduces accordingly.
As seen at 24, tiles may be generated and assembled such that the tiles closer to the location of the client device are displayed with greater acuity, and perhaps even larger, relative to those located farther away from the client device. This results in decreased processing time and a lower memory/storage capacity requirement. Perhaps even more importantly, the user enjoys graphics with greater resolution at the area pointed than distances farther away.
In some implementations of the invention, map tiles are congruent.
Perhaps, the greater benefit of some of the embodiments of the invention is better understood relative to
Shown at 22 of the display 18, is five images of the same map layer but the distance from the initial location where the client device/user was positioned is changing within the map layer. This causes re-tiling around the Location L such that tiles closer to L contain higher acuity and visual clarity than those in the far field.
The map layer/map tiling of the various implementations of the invention may be viewed via a client device display, such as but not limited to, the display of a smartphone or mobile device and can be achieved in conjunction with the use of Application Program Interface (API) capabilities that link third party data with a geospatial map servers via cloud/web communication.
In
The map layer 36 is for 3-Dimensional (3-D) terrain and shows information map tiles 35 with each map tile being associated with not only a distinct location to also a distance from the Location L. For example, the Location “X1, Y1”, at the distance from the Location L of 10 kilometers is shown in the map tile 35. Each single location, such as X1, Y1, contains multiple associated tiles representing multiple distances from the Location L. The generated map tiles are only deployed to the client device and thereafter saved in the client device cache memory when a request is made by the client device based on either the selected areas-of-interest or the geographic position of the client device.
A searchable map layer database comprised of searchable map layer tiles, an example of which is shown in
The area of earth shown in the display 32 of the user client device typically does not remain static and is instead often times dynamic. For example, a user of the client device may choose to zoom-in and zoom-out while viewing the selected (area of) interest or may choose to view a different area-of-interest altogether. This selection is communicated to the geospatial map server 12 and database 14 through the communication network 34, in the form of a request. In the example of
Generated map layers, such as the map layer 36, referred to herein as the “selected map layer”, and associated map tiles, also generated by the combination of the server 12 and database 14, are deployed to the client device through the communication network 34. The selected map layer results in the display 38 of the user's selected area where a relevant portion of the display 32 with 3-D terrain is shown.
In the example of
The action of zooming in/out of the client device's display, by a user, changes the defined geographic space in the client interface. It should be noted that the client requests from the map layer database 14, via the cloud-based communication network 34, only those tiles needed to fill out the geographic space defined in the client device's interface. It should also be noted that tiling, as in
In the example of
The map layer 78 is comprised of geospatial tiles and associated data (or data set). The tiles define various points of the globe in the display 80. For example, the first map layer at location “X1, Y1” and a distance from L being 10 kilometers, at time 0 (T0), translates into the tile shown at 82 and so on.
At 78, the 3-D terrain map layer, generated by the server 12-database 14 pair, includes map tiles 22, which are derived from the received map layer 76. The top-most tile points to Location: X1, Y1 with a distance of L being 10 Kilometers, at Time T=0, and the second top-most tile points to Location: X2, Y2, with the distance of L being 10 Kilometer, and so on.
A searchable map layer database comprised of searchable map layer tiles, an example of which is shown in
While only three server-database pairs are shown in
The data points from third parties, in
The user data storage unit 1124 maintains user data as described above. The processors 1130 transmit the user data from the user data storage unit 1124 to the map layer engine 1132 and specifically to the map layer selection engine 1140. The map layer selection engine 1140 further receives the database of all map layers, which along with the user data, is provided by the client device 1104 through the communication network 1106. The map layer selection engine 1140 is also configured to detect updated user data/information from the client device 1104 through the communication network 1106. Accordingly, upon the user taking an action that affects the digital representation of the geospatial graphics, such as zooming in or zooming out, the engine 1140 is capable of detecting the same because the user information/data in the storage unit 1124 changes.
The database 1182 maintains a searchable version of map layers and geospatial tiles. The selection engine 1140 performs a search of the database 1182 for the relevant map layers. Upon detecting a match, the selection engine 1140 realizes recommended/suggested map layers from the database 1182 and is able to provide the same and associated geospatial tiles to the deployment engine 1142. Accordingly, the selection engine 1140 generates suggested/recommended map layers, organized into searchable (geospatial) map tiles. These searchable map tiles are transmitted to the deployment engine 1132.
The deployment engine 1132 deploys the searchable (geospatial) map tiles to the client device 1104 through the network 1106. The deployment engine 1132 also communicates with the client device 1104, via a communication network 1106, and responds to updates (geolocation changes) made by the client device, to ensure that pre-selected map layers are continuously deployed around the client device's' geographic position, Location L (or the area-of-interest identified by the client device interface).
The processors 1130 are used by the selection engine 1140 and deployment engine 1132 for calculation or processing of the above-discussed steps. The network 1106 is analogous to the network 34 of prior figures, the server 1102 is analogous to the server 12 of
The geospatial and visualization device 570 is shown to include geospatial data engine 572, layer visualization engine 574, and geospatial tile engine 576. The indexing device 580 is shown to include indexed geospatial map layers memory 582 and indexed geospatial tiles memory 584. It goes without saying that the indexed geospatial map layers memory 582 maintains indexed geospatial map layers and the indexed geospatial tiles memory 584 maintains the indexed geospatial tiles.
The system 500 generally processes the raw geospatial data 502 into indexed visualized map layers that are further subdivided into indexed searchable tiles. As previously explained, the raw geospatial data 502 is received through the network 504. The geospatial data engine 572 processes and organizes the raw geospatial data 502 into searchable geospatial data. For example, as noted with reference to prior figures, the raw geospatial data is organized into groups of data according to their corresponding map layers. For instance, the data relating to the map layer for temperature are grouped together.
Processing and organizing of the raw geospatial data 502 is shown and described relative to
Once processed and organized, the geospatial data, in
The system 600 is a system for rendering geospatial maps using differential map tiling process when navigating 3-D map layers.
In various implementations of the invention, map tiling is performed non-linearly in the client device display, such as the display 78 or 36, an area-of-interest and the map tiles are compressed using a known compression technique. In light of the logarithmic, or non-linear, nature of the map tiles. The map tiles do not contain the same level of compressed information and thus visual acuity.
The map tiles may be generated and assembled such that the tiles closer to the location (L) of the client device are displayed with greater acuity, and perhaps even larger, relative to those located farther away from the client device. This results in decreased processing time and a lower memory/storage capacity requirement. Accordingly, the tiles may or may not be the same size. Only the level of data or detail in the tiles change, thus changing their acuity. The assembled tiles can form the 3-D map layers which can be set in a number of geometries, in accordance with various implementations of the invention. As previously noted, non-linear may include spherical and logarithmic. These geometries are agnostic to actually generating the tiles and relate to how the configuration file reads the tiles and assembles them into the right shape that is shown on the device.
Moving along a X-Y coordinate plan as determined through for example, a global positioning system (GPS) geolocation, changes the defined geo-boundaries in a client device interface of the client device of the user 702. A change in the location of the user 702 automatically results in requests for new tiles, by the client device, to the geospatial map server. Automatic change in the location of the user is detected due to a change in the Location (L) and Region (R) of the user 702.
It is contemplated that various implementations of the invention may be in the form of web-based applications and/or native applications.
Tiles in the near field, the areas 708 shown in
The constant re-tiling of
The map 900 of the location L0 will have area in P1 tiled at higher fidelity and acuity (closer to L0) than areas progressively further away from the location L0 (within the Region R). The map 950 of the location L1 has an area in P1 tiled at higher fidelity and acuity (closer to L0) than areas progressively farther away from the location L0 (within region R). It should be noted that the maps of
Next, at 1104, the most recent group of map tiles (associated with a particular map layer), received from the client device, are stored in the database 14 of
The client device sends request to the geospatial map server for the map tiles needed to build map layer at device location (L) for region R. These tiles represent just a portion of all available tiles for the map layer.
After step 1106, the server 12 transmits to the client device, some of the stored N number of map tiles from the database 14. The portion of the stored N number of map tiles selected for transmission to the client device is at least in part, based on the map layer that needs to be built around R, at L. That is, the area on the screen dictates the area for which a request is made by the client device to the geospatial map server for tiles.
The identification of tiles that are to be visible to the user (deployed by the geospatial map server) is based on the specific map layer and how much information is being displayed, the actual tile assembly process, and the like. The request, made by the client device, results in the foregoing types of tile assembly performed by the geospatial map server. Therefore, the geospatial map server only deploys a select number of tiles so that the cache memory of the client device need only to store these selected tiles as opposed to storing all of the tiles. Therefore, in some embodiments of the invention, the select number of tiles are only those tiles that make up the map in the Region R. These selected tiles are continuously taken out of the cache memory of the client device to make room for new ones. In an implementation of the invention, the selected tiles are not discarded from the server database, i.e. database 14. They are, rather, maintained in perpetuity in the server database. When the tiles are sent by the server 12 to the client device, they are not actually removed from the server 12 before being sent, instead, a readable copy of these tiles are sent to the client device.
Each request may be, and general is, different for each map layer, for example, at each zoom and at each region of the screen/display. There are practically an infinite number of combinations of tile requests and map assembly protocols.
Thus, at step 1108, essentially two steps are performed by the server 12. One step is to retrieve the map tiles from geospatial server storage that are to be transmitted to the client device and another step is to transmit the retrieved map tiles to the client device, through the communication network, as previously discussed. Map layers will be used to create a number of map tiling groups, a group of map tiles corresponding to a particular map layer, each of the map tiles have a distinct acuity and spatial resolution (as shown in
The client device assembles the map tiles to generate a map layer for region R and around location L using a non-linear method (as shown in
A change in the area of display or a change in the location of the client device triggers a request for the new tiles needed to generate R, at Location L. The new tiles are then assembled. Therefore, after step 1108 and at 1110, a decision is made by, for example one or more of the processors of the server 12 for the potential detection of changes to the client device's display area, i.e. L and R. For example, upon the user moving the curser to a different area or zooming into a particular area, while the location, L, initially transmitted by the client device may not change because the client device has remained substantially in the same location, R might have changed. L and R information is continuously transmitted by the client device or transmitted at a time when a change in R and/or L is detected by the client device, with the latter resulting in power savings over the former, and perhaps even performance enhancement.
Upon the detection of a change in the display area of the client device, the process continues onto step 1112 where the map tiles are updated based on the changed display area and subsequently, the process repeats starting from step 1106. Upon the detection of no change to the display area at 1110, the process continues to and starts executing from, step 1106.
After step 1208, at step 1210, once the geospatial map server has completed generating map tiles and sends the map tiles to the client device, the client device assembles the map tiles it receives into a map layer for display to the user. The map layer is for the Region R and around the Location L.
At step 1212, upon the detection of the area of display of the client device, such as the location of the client device, the client device sends another request, along with R and new location L (L′) to the geospatial map server for updated/new map tiles. The geospatial map server then generates new map tiles based on R, L′ and sends the generated map tiles to the client device, which ultimately assembles the generated map tiles to create one or more map layers. In some implementations of the invention, deployment of multiple map layers is not concurrent while optionally, in some embodiments, a user can switch the view of a map layer, on the client device display, from non-linear (algorithmic, spherical etc . . . ) to linear.
Any suitable programming language can be used to implement the routines of particular embodiments including C, C++, Java, assembly language, etc. Different programming techniques can be employed such as procedural or object oriented. The routines can execute on a single processing device or multiple processors. Although the steps, operations, or computations may be presented in a specific order, this order may be changed in different particular embodiments. In some particular embodiments, multiple steps shown as sequential in this specification can be performed at the same time.
Particular embodiments may be implemented in a computer-readable storage medium for use by or in connection with the instruction execution system, apparatus, system, or device. Particular embodiments can be implemented in the form of control logic in software or hardware or a combination of both. The control logic, when executed by one or more processors, may be operable to perform that which is described in particular embodiments.
Particular embodiments may be implemented by using a programmed general purpose digital computer, by using application specific integrated circuits, programmable logic devices, field programmable gate arrays, optical, chemical, biological, quantum or nanoengineered systems, components and mechanisms may be used. In general, the functions of particular embodiments can be achieved by any means as is known in the art. Distributed, networked systems, components, and/or circuits can be used. Communication, or transfer, of data may be wired, wireless, or by any other means.
It will also be appreciated that one or more of the elements depicted in the drawings/figures can also be implemented in a more separated or integrated manner, or even removed or rendered as inoperable in certain cases, as is useful in accordance with a particular application. It is also within the spirit and scope to implement a program or code that can be stored in a machine-readable medium to permit a computer to perform any of the methods described above.
Although the description has been described with respect to particular not restrictive.
As used in the description herein and throughout the claims that follow, “a”, “an”, and “the” includes plural references unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise.
Thus, while particular embodiments have been described herein, latitudes of modification, various changes, and substitutions are intended in the foregoing disclosures, and it will be appreciated that in some instances some features of particular embodiments will be employed without a corresponding use of other features without departing from the scope and spirit as set forth. Therefore, many modifications may be made to adapt a particular situation or material to the essential scope and spirit.
This application is a continuation-in-part of U.S. application Ser. No. 15/465,474, filed on Mar. 21, 2017, entitled “SYSTEM AND METHOD FOR RENDERING GEOSPATIAL MAPS”, by Kyle Vanderlugt, et al.
Number | Date | Country | |
---|---|---|---|
Parent | 15465474 | Mar 2017 | US |
Child | 15679065 | US |