Alphabet – Manas Ranjan Jagadev, Eli Dylan Lorimer, Bret Peterson, Vijay Raman, Mark Wheeler, Google LLC

Abstract for “Portable globe creation to a geographic information system”

“Portable globes can be used to view regions of interest in a Geographical Information System. One method of creating a portable globe to be used in a Geographical Information System (GIS) may be to determine one or more regions that correspond to a geographic region on a master globe. This may include organizing geospatial information from the master planet based upon the selected region, and creating a portable globe using the geospatial information. The data size of the portable globe might be smaller than that of the master globe. This may involve transmitting the portable world to a local device, which may render the chosen region with a higher resolution than that of the rest of the GIS. A portable globe-making system may include a selection and fusion module as well as a transmitter. A globe cutter and a packet bundler are two possible options for updating a portable globe.

Background for “Portable globe creation to a geographic information system”

“Technical Field”

“The embodiments discussed herein relate geographical information systems.”

“Background Art”

Geospatial coordinates are used to capture, store, manage, and display geospatial data elements. Google Earth, for example, renders satellite imagery, terrain and vectors over a three-dimensional geometry that represents the Earth’s surface. Google Earth users can “fly” You can navigate and explore a virtual Earth. Data and images that correspond to geographic locations are displayed in different degrees of detail.

A huge amount of geospatial information may be organized into a “globe” to facilitate this user experience. A globe is a directory hierarchy that contains a variety of bundled files. It can be used to provide imagery, vectors, and terrain for clients. A high resolution globe is created by combining tens to terabytes worth of vector, imagery, and terrain data. Smooth panning and zooming at any point on the fused globe allows for in-context view of large data sets. These globes can be used to explore and search for specific features.

“These globes are valuable tools for industry and government analysts as well as operational users who depend upon access to the central servers that provide data from the globes to their’spinning earth? clients. Sometimes, however, such access may not be possible. Sometimes, however, such access is not possible for military personnel, first responders, and relief workers on the ground. They may not have the ability to connect to the entire globe or may only be able to get limited connectivity for short periods.

“Embodiments” refers to systems and methods of providing a portable globe for geographical information systems (GIS). A method of providing a portable globe to a GIS can include querying a database to find one or more geographic coordinates using query information. Parameters based on historical factors, demographic factors, and political factors may be included in query information. A query may contain information about cities or populations centers that have a particular population. For bounded areas within qualifying cities, the database query might return geographic coordinates such as longitude or latitude coordinates. Based on a specific resolution level, the geographical coordinates can be converted to quadtree addresses. This method can determine at most one region that corresponds to a geographic region on a master globe using quadtree addresses.

“The selected regions may be used to organize the geospatial data of the master globe. This could include quadtrees from one or more regions. This method can also create a portable globe using the geospatial data. The portable globe is smaller and contains data files that contain more geospatial information for selected regions than the rest of the portable globe. The method then transmits the portable world to a local device that can render it in the GIS. These regions can be rendered at a higher resolution that the rest of the portable globe.

According to another embodiment, a system to provide a portable globe to a GIS could include a selection module that queries a database to find one or more geographic coordinates. The query information is used to convert the coordinates into quadtree addresses and to determine at most one region that corresponds to a region on a master globe using quad tee addresses. A fusion module may be included to organize spatial data from the master planet based on at least one region, and create a portable world based on that organized data. One or more data files may be included in the portable globe that contain greater geospatial information for selected regions than the rest. A transmitter may be included to transmit the portable world to a nearby device that can render it in the GIS. These regions can then be rendered at a higher resolution that the rest of the portable planet.

“A further embodiment of the method for updating a portable planet for a GIS includes receiving a request to update geospatial data based at least on one region from a local device that can display a spinning-earth GIS. Each layer in the selected region may generate packet requests. This method allows you to obtain updated geospatial information from a master server by using the packet requests generated. You can generate a series of packet requests individually or as a bundle. Based on the new geospatial data, a portable globe is made. A new portable globe can be made using the updated geospatial information. This is done by comparing an old portable globe with the updated geospatial. It is possible to create a new portable globe without redundant globe data from an old portable globe. This involves supplying the portable globe with a reference of the old portable globe to the local device. A local device can display an upgraded portable globe with date files that contain more geospatial information for selected regions than the rest of the portable world. This allows the updated globe to be rendered at a higher resolution in the spinning-earth GIS.

According to another embodiment, a system to update a portable globe for GIS may include an electronic packet bundler that receives a request for updated geospatial information based on a selected region of a local device capable to display a spinning-earth GIS. The packet requests are used to generate packet requests for each layer and to obtain the updated geospatial details from a master server. A globe cutter may be included in the system to create a portable globe using the updated geospatial information. This is done by comparing it with an older portable globe. The new portable globe can be made without redundant globe data. A globe cutter can also be used to create a portable globe from the geospatial data. The updated portable globe will then be provided to the local device along with a reference of the old portable globe. Local devices can display the new portable globe with data files that contain more geospatial information for selected regions than the rest of the portable world. This allows the select regions to be rendered at a higher resolution in the spinning-earth GIS.

“A further embodiment of the method includes requesting from a globe server updated geospatial information for at least one region to update an older portable globe that was used to display a spinning-earth GIS. At least one region can be rendered at a higher resolution that the rest of the old portable planet. This could also involve obtaining a new portable globe that has a reference to an old portable globe. This method could also include the creation of a portable globe updated with the new portable globe as well as the referenced old mobile globe. This method could also include rendering the updated portable planet in the spinning Earth GIS.

According to another embodiment, a system to render an updated portable globe on local devices for a GIS could include a requester that requests, from a server of the globe, updated geospatial information for at least one region. This is to update an old portable planet used to display a spinning-earth GIS. At least one region can be rendered at a higher resolution that the rest of the old portable planet. The new portable globe may be provided to the requester with a reference of the old portable globe. A globe creator may be included in the system to create a portable globe from the referenced old globe. The updated portable globe will then be rendered in the spinning-earth GIS.

“Further embodiments and features, as well as structure and operation, of the various embodiments, are described below with reference to the accompanying drawings.

“Embodiments will be described in this document with illustrations that can be used for specific applications. The invention does not limit itself to the specific embodiments. Anyone skilled in the art will be able to recognize modifications, applications, embodiments, and other fields within the scope of the invention and in which the embodiments could be of significant utility.

Google Earth offers satellite imagery and other data over a three-dimensional geometries representing the Earth’s surface. These geospatial data can be organized and index into a “globe”. Or a directory hierarchy that contains a number packet bundles (files), which can be used to provide imagery, terrain and vectors to Google Earth servers or clients. You can create high resolution globes by combining tens of Terabytes of imagery, vector data, and terrain from many sources. The geospatial data is combined to form a navigable globe. Smooth panning and zooming are possible to any point on the fused globe, which allows for in-context view of large quantities of data.

“The globes can be used by industry and government analysts, who have access the data from the central servers that supply the globes’ data to their?spinning earth?. clients. Sometimes, however, such access may not be possible. Access to the globe data may not be possible for military personnel, first responders, and relief workers on the ground. However, they might have access to the larger, central master map. One solution was to force the resource-intensive globefusion process to be performed on a local computer. Laptops and other local devices might not be capable of handling the fusion process. This is because there may be many regions of interest. It becomes a complex database management task and deployment with existing systems can prove difficult.

The “Embodiments” described herein pertain to the provision of a portable globe to a geographic information system (GIS). Many embodiments suggest that a portable globe can be made using one or more regions from a master map, which is a large, central globe with imagery, terrain and vector data. A portable globe could be a smaller, possibly more compact globe that can be sent to a local computing device. It may also be rendered by a “spinning earth”. Client or server on the local device. You can use the portable globe with or without internet connectivity. It can also be distributed easily to others on the ground. FIG. FIG. 1 illustrates a master map server 110 that is located in a particular city. The region of interest is chosen and a portable globe created. It is then served to local device 120. If the selected region is far from where you are located, local device 120 will not have access to internet. Sometimes, though there might be internet connectivity, it may not have sufficient bandwidth to handle data transfer from a globe. Users tend to have clearly defined regions of interest so they don’t need access to the entire globe, but only a portion. The portable globe is lightweight and easy to use.

“Example System”

“FIG. “FIG. System 200 displays master globe server210, which can transmit a portable world 230 to a local device 220. Master globe server 220 may contain selection module 212 and fusion module 214, master globe repository 218 and transmitter 228, respectively.

“Master globe server210” may be a processor-based computing system. Master globe server 210 could also be software that is executed on a processor. Any type of computing device can have one or more processors. A computing device may be any type of device, including a computer, workstation, mobile device (e.g., mobile phone, personal digital assistant or tablet), computer, server or compute cluster, server farm or game console, set top box, kiosk, embedded system, or any other device with at least one processor or memory. The embodiments of the present invention can be executed by software using a processor, firmware or hardware, or any combination thereof, in a computing device. A further embodiment of master globe server210 may include one or several databases, such master globe repository 215. A computing device may also be used as a local device 220.

According to one embodiment, “Master globe server210” may be configured to execute/provide computer software or data. These software and data could relate to graphics applications that render high-resolution images such as in a geographic information system (GIS). These software applications can be displayed on master globe server 220 or served to and displayed on client computers such as local device 223. A web-based application may serve the user interface, which is then executed on local device 221. Web browsers may be included in web-based applications. Thin client applications are also possible in web-based applications. These applications retrieve content from master globe server 210 and then provide it to the master globe server.

“Accordingly to one embodiment, an administrator or user may choose one or more geographic regions of the Earth. These regions can be chosen from a master map. Selection module 212 may be used to select a region. In some embodiments, selection module212 can be set up to allow a user to choose a region from a globe. Master globe repository 216 may contain a master globe. A user interface could include a variety of tools that allow the user to navigate and spin around a virtual Earth. The user interface could be a Google Earth interface. Some regions can be searched with search data or tables that are associated with a master map.

A master globe may allow you to select a geographical area. Sometimes, a selected region can be a region or area of interest (ROI) that a user has chosen. You can select regions in many ways. For example, you could use rectangles, ellipses or polygons to concentrate your attention on a particular area. An embodiment allows a user to select a region using a polygon that encompasses a specific area. Multiple polygons can also be used to select regions.

“FIG. “FIG. Selection module 212 may provide selection interface 310 in some cases. Selection interface 310 can be displayed via a web-based application window such as a browser window. Selection interface 310 displays an image 312 depicting a country 316. This image can be navigated and manipulated using display tools 318. You can select a region of the Earth using polygon 314. Selection interface 310 may display different colors or other graphic aids to help the user navigate through the polygon building process. Selection interface 310 can also provide rectangular frames and other polygon selection shapes.

According to one embodiment, a master globe can be layered with many levels. Each level can render images with a specific resolution. A surface can be composed of multiple data nodes at a given level such as quadtree or tripletree nodes. A quadtree tree data structure is one in which each node can have up to four subdivided regions. A quadtree may have multiple nodes depending on the resolution. A higher resolution level may be available. The next level will have four quadtree nosdes, where the previous level only had one.

A further embodiment allows for a predetermined resolution or explicit setting of other selection interface tools 318. Delimit resolution is the level at which all imagery and terrain are included in the portable planet, regardless of whether they are located in the selected region. A polygon level refers to the level at which quadtree nosdes are used for defining the polygon’s interior. The maximum resolution at which a polygon level can be used is the maximum.

According to some embodiments, the ail portions that overlap the polygon at a specific resolution are preserved. This may be at the maximum resolution. All imagery, terrain and vector data within the region are included in the portable globe. A background resolution or default resolution can be used for the rest of your master globe. This may be a lower resolution or a minimum resolution in most cases. According to an embodiment, selection module 212 receives information once one or more selections have been made. In some cases, both location and resolution information may be received. In other cases, information about the location is only received. Fusion module 214 or selection module 212 can determine or infer resolution information.

According to one embodiment, the vertices of a particular polygon may ensure that quadtree nodes at that polygon level contain the vertices. This is possible because they are guaranteed to be included in a specific region. These vertex quadtree nosdes can be considered new vertices of a polygon at the level. The new polygon can then be?drawn? and?filled? At the polygon level, use the quadtree nodes to create pixels. FIG. FIG. 4 shows an example diagram 400 showing a selection quadtree nodes according to an embodiment. Each block could be a quadtree nude in this example. A selected region may be defined by polygon 402. The selected region may include all quadtree nodes in polygon 402. Node 406 lies outside the region. Some cases may not use the edges of polygon 402. In these cases, it is possible that some edges are outside the quadtree nodes of the selected region. According to one embodiment, quadtree node paths are stored for nodes at lower levels than the node paths for higher resolution nodes. To create multiple high-resolution regions of interest, sets of node paths can be added.

“Accordingly to another embodiment, a portable globe can be built by?walking? The quadtree. All data specified by a node that is below or at the default resolution level is moved to the portable planet. The same applies to nodes located within the high resolution area of interest. As you go from the polygon level up to lower levels, this region will expand. If the node’s data is not being saved, the quadtree will remove the node along with its children.

A portable globe, according to another embodiment, may be used to ensure that the region selected is represented at a lower resolution. This will preserve the quadtree nodes at each level that contain the region. This means that the neighboring area may or not be included at a high resolution depending on its proximity to the polygon edge, and certain quadtree boundary boundaries. FIG. 408 is an example. 4. is located on a polygonal edge. This may be reasonable as the neighboring area was not included in the polygon. It may not have been very interesting. These neighboring areas may be included to allow the area of interest to be seen at low resolution. At these resolutions, they might have details from their vector or raster packets. An image pixel can appear at different levels in other embodiments depending on the quadtree node boundaries. A feature can be seen at higher resolutions, but resolution may not increase once it no longer shares a quadtree with the polygon.

“Accordingly to another embodiment, the selection information received from selection module 212 could be used by Fusion module 214 to determine which portions of the master planet to retrieve for a portable globe. Fusion module 214 can be used to organize geospatial information from the master planet based on a specific region. Fusion module 214 can also be used to create a portable world from the spatial data. The data files for the portable globe could contain more geospatial information for the chosen region than the rest of the globe. Another embodiment of organizing might include retrieving master planet tiles and data for at least one region at a higher level in order to allow the portable globe render a greater resolution for that region.

According to one embodiment, a portable globe can be created by retrieving data from a master planet and image, terrain, and vector data tiles. Any tiles or data that are in the same region as fusion module 21214 will be kept while it moves to lower resolutions. This allows high resolution features to be seen and zoomed on at lower resolutions. Fusion module 214 will continue until the default resolution is reached. At that point, ail data is saved to the master glebe. All searchable data within the requested region of interest are retrieved from a table.

The search data and retrieved tiles are saved in a form that can be used as a portable globe. The portable globe is easily downloaded to any portable storage device or laptop and can be accessed by a local client or server with or without a network. A lightweight server system is used to serve the data, which can be run on Windows, Mac OS X and Linux.

According to an embodiment, Fusion module 214 could be configured to use keyhole file techniques to create a portable globe. A keyhole flat file (KFF), for example, is a collection of data packets that can be spatially indexed. U.S. Patent No. 626893 discloses a KFF technique. No. No. 7,225,207 to Chikai Ohazaraa and al., which is herein included by reference. These techniques can include a file called dbroot, which is used to deploy KFF data to clients or servers, such as a Google Earth client. Fusion may be used in such situations to rewrite a dbroot and change the location of search tab servers. You can also download icons from a file in dbroot to the portable globe directory. You can download quadtree nodes with high resolution, including a default and maximum level. This will allow you to obtain quadtree packets and vector data, as well as imagery, terrain and terrain for your portable globe. A polygon can be used to retrieve search data from a database according to another embodiment. The search data tables can be transferred to the portable directory. Another way to move the portable globe directory is to compress it and make it portable.

“According another embodiment, packet bundles could be used to store large numbers of indexed packets in small files with a maximum size (e.g. 2 GB). The packets can be kept in their ‘network-ready? state. The packets may be stored in their?network-ready? state so that they can be extracted from the bundle, and sent directly to a Google Earth client, server, or local device. A portable globe might contain a directory that contains one or more packet bundle directories. The directory may contain both the data files and the index file for a packet bundle. The quadtree path address may be used to order the index file. A binary search can then be performed on it to locate the data file ID and offset for each packet. The index may contain packet types, which makes it possible to pack a whole globe in one bundle of packets.

“According another embodiment, separate packet packages may be used to store most packet types. However, the dbroot can be combined with its quadtree packets. This may be because separation offers more in-memory cache options. We might cache some indexes in memory, but not all, if we don’t have enough space. This could also improve the performance of delta updates, as certain types of packets might not be updated often.

According to another embodiment, a packet writer may not be able to create a packet bundle entirely from scratch. It may be possible to create a new index file and an original data file. You can then give the packets in the correct quadtree order to ensure that the resulting Index is in order. You can also add packets to an existing data file until it is full. Then, a new datafile is created. This order makes it easy to merge two packet bundles.

“According another embodiment, an initial bundle reader may be able to support a binary-disk-based search of an Index. Another form allows the index to be stored in memory. A reader could locate the index entry for a quadtree path and use it to locate the packet in one the data files. A reader might also be able to return the index entry information directly to the calling routine.

According to an embodiment, a packet bundle merger could include two modified readers as well as a standard writer. One reader will be identified as the dominant. The merger will traverse both indexes in a sequential order. It will grab the next packet from the reader with it, and then forward that packet to the author. If the packets are not available to both readers, the dominant reader’s packet will be used. Two portable globes can be combined by the merger. The merger will allow for delta updates.

According to an embodiment, transmitter 218 of the exemplary system 200 can be used to transmit a portable world, such as portable planet 230, to a nearby device such as local device 220 that renders the portable globe in GIS. Local globe server 222 could be used to render portable world 230. Local globe server 222, which may be a localhost, could be used to render portable globe 230 using a client such as a Google Earth server running on local device 220. Local device 220 could also render portable globe 233. This can be done using a client such as a Google Earth client and/or a Google Earth viewer. A selected area of the portable planet can be rendered at a higher resolution that the rest of the globe. Some servers support localhost-only or shared serving. This allows the globe to be viewed only by the local machine, or shared with a limited number of users over a local network.

“Example Method”

“FIG. “FIG.5” 5 illustrates an exemplary method 500 to provide a portable globe for the geographical information system (GIS) according to an embodiment. Step 502 involves receiving at least one region that corresponds to a geographic region of a master planet. Selection module 212 may also be used to receive the selection information. Selection module 212 can sometimes be used to help determine the selection information.

A user can select a region by following the steps in an example embodiment. A user may first zoom in to see an area of Earth that is close to a particular region of interest. This resolution can be set as the default level by the user. A user might click on the “Set Default Level?” button. In FIG. 3. The user can then navigate to the desired region. Zooming in at the highest resolution allows the user to see the region. This resolution can then be set to high resolution. The user can then choose the high resolution area by drawing a circle around the desired region. You can also specify a source server and a globe name.

“In step 504, geospatial information from the master planet may be organized based upon the selected region. One embodiment of organization could include retrieving master planet tiles and data for the chosen region at a higher resolution. This could allow for rendering the portable planet at a higher resolution than the rest of the globe. A further embodiment may include retrieving master globe tiles or data at a higher resolution to image, terrain, and vector data.

“In certain cases, geospatial data may be organized from master globe geospatial data may be organized based upon the selected asset type. Asset types can include imagery, terrain, vectors, and other types of data that are included in a globe. Imagery and terrain can be classified as raster data since they correspond to data values within a rectangular grid. The data is a color for imagery and an elevation for terrain. Vector data is data that refers to specific shapes such as. Points, polygons and polylines, among others. Metadata associated with them. A point could be the center of a town and include the name and population. Or a polygon line could represent a road and include the name and road name.

According to one embodiment, “Organization may include setting the first resolution for the selected area and the second resolution for geospatial information to be retrieved from other parts of the master globe. The selected region may have a higher resolution or maximum resolution, while the rest of the master planet may have a default resolution or lower resolution. These resolution levels can be predetermined or selected by an administrator or user during the region selection process. A further embodiment of the concept allows organization to retrieve searchable data from the master planet for the region. You can also include searchable data from other parts of the master globe. However, the searchable data might be smaller to match the remaining resolution of the globe.

“In step 506, the mobile globe is created using the geospatial data. The data files for the portable globe might be smaller than those for the master globe. They may also contain more geospatial information for at least one region than the rest. This is because the data for selected regions are more detailed and organized. Globe creation and fusion (or cutting), may be done for different asset types, or separately with potential different regions of interest. Steps 504 and 506 can use selection module 212, fusion module 214, master globe repository 221 or any combination thereof, according to embodiments.

According to some embodiments, “Other methods for providing geospatial information for a portable globe could be used.” A portable globe can be made by removing asset data from a master map and leaving only the relevant region’s data. Different methods may be used to create different assets. A portable globe may include imagery, terrain, and vector data. This is done by adding geospatial data from a master globe to identify areas that overlap with one region. Only data within the region may be searched. All other data may be removed for areas beyond the chosen region. Multi-polygon areas may be used in some cases. Sometimes, boolean flags can be used to include terrain and vectors. Other times, portable globe searches can be distinguished from external searches.

“The portable globe has been transmitted to a local device in step 508. The local device could be configured to render the portable world in a GIS such as Google Earth. A selected region might be rendered at a higher resolution that the rest of the portable globe. The region may also have more geospatial and search data. This step may be performed using Transmitter 218. A user could choose to create a globe, and then follow the URL link to download the portable globe.

According to another embodiment, step 502 could be replaced by a selection of the region. A further embodiment of this method is to replace step 502 with the provision of the portable globe to an appropriate local device that can render the chosen region at a higher resolution then the rest of the portable globe. A number of portable globes can be made available to a local device depending on the previous region, selections. A catalog module that displays information about the portable globe, and other portable globes, can be used in other cases to deliver portable globes to local devices. This catalog can be used to browse and download portable globes, either purchased or free.

A downloader that allows you to send a specific portable globe to a local device can also be used. The selected area may be rendered at a higher resolution then the rest of the portable globe if it is rendered or served in a spinning earth GIS on the device. For downloading a globe, it may be possible to create a zip or grz tarball according to certain embodiments. You may also find built-in consistency checks (CRCs) for downloading and unpacking.

“Server and globe management methods can be used according to further embodiments. Filtering geospatial data may be a part of an organization’s operations. Filtering information can include metadata features, filter parameters, and data. Filtering information can also include permissions, license information and dates, sources, vector layers or quality metrics. Another example is that a default server might only accept connections from local devices or a restricted number of IP addresses. In one scenario, an IP adress could be cleared by restarting it so it wouldn’t overly restrict different usage patterns. You may also use encryption. Additionally, limiting the demand for unauthorised access to portable globes may be possible by focusing on specific areas of interest. Search may also be a good way to limit the reach of a portable globe. You can set dbroot search URLs to point back at your localhost as a default.

“FIG. “FIG. 6” is a flowchart that illustrates an exemplary 600 method for creating a portable globe for a geographic information system (GIS), according an embodiment. Step 602 is where a database is accessed to find one or more geographic coordinates using query information. The database can be found locally or remotely. The query information can be generated automatically by a set parameters or manually selected by the user. You may also receive the query information, such as by selection module 212. Sometimes, the selection module 212 can be used to determine the query information.

“In step 604, one or more geographic coordinates are converted to quadtree nodes using a chosen resolution level. The selected query region may include all quadtree nodes within the geographic coordinates of the query. Some quadtree edges may not be used in certain cases. It is possible that some edges lie outside the quadtree regions. According to an embodiment, quadtree node paths are stored for nodes that have been filled at a lower level than the node paths for higher resolution nodes.

Based on quadtree addresses, at least one region that corresponds to a geographic region of a master planet may be identified in step 606 This may be one or more regions that are of different sizes and shapes. An example embodiment may further illustrate steps 602-606. To select a region, a user can follow the steps below. A user can first view an area of Earth that is close to an area of interest and then input the region or area of concern to use a user interface. Clicking on the?Set default level? button will allow you to select a resolution. The button is shown in FIG. 3. The user can enter a query to find cities in Egypt that have a population greater than 250,000 and then choose a resolution level. A map showing cities in Egypt with more than 250,000 inhabitants may be displayed to the user. The user can then navigate to the desired city or region and zoom in at the highest resolution. This resolution can be set as a high resolution and the desired city or region would then be found. You can also specify a source server and a globe name.

“Step 608 may include organizing geospatial data of the master globe based on selected regions. The organization may also include the retrieval of master globe tiles and data from the selected region at higher resolution. This could allow for rendering the portable planet at a higher resolution than the rest of the globe. A further embodiment may allow for the retrieval of master globe tiles and data at higher resolutions, such as imagery, terrain, and vector data.

“In certain cases, geospatial data may be organized from master globe geospatial data based on selected asset types (layers and channels). Asset types can include, but not be limited to, imagery, terrain, vectors, and other types of data that are included in a globe. Imagery and terrain can be classified as raster data since they correspond to data values within a rectangular grid. The data is a color for imagery and an elevation for terrain. Vector data is data that refers to specific shapes such as. Points, polygons and polylines, among others. Metadata associated with them. A point could be used to refer to the center or the population of a city. A polygon line could also describe a road and include the name of the road. These asset types can be translated into searchable queries in the database.

According to one embodiment, “Organization may include setting a resolution for the selected region as well as a resolution for geospatial data that will be retrieved from other parts of the master planet. The selected query region may have a higher resolution or maximum resolution, while the rest of the master planet may have a default resolution or lower resolution. These resolution levels can be predetermined or selected by an administrator or user during the region selection process. A further embodiment of the concept allows organization to retrieve searchable data from the master planet for the query region. You can also include searchable data from other parts of the master globe. However, the searchable data might be smaller to match the remaining resolution of the globe.

“Using the geospatial data, step 610 creates a portable globe. The data file size of the portable globe might be smaller than that of the master globe. It may also contain data files with more geospatial information for at least one query region. This is because the query region has higher resolutions, and more data is retrieved and organized. There may also be less data for other regions. Globe creation and fusion (or cutting), may be done for different asset types, or separately with different regions of interest. Steps 602-610, according to embodiments, may use selection module 212, fusion module 214, master globe repository 221 or any combination thereof.

“The portable globe has been transmitted to a local device in step 608. The local device could be configured to render your portable globe in a GIS such as Google Earth. A selected region might be rendered at a higher resolution that the rest of the portable globe. The region may also have more geospatial and search data. This step may be performed using Transmitter 218, A user might choose to create a globe, and then follow the URL link to download the portable globe.

The portable globe can be rendered in 3D GIS. Quadtrees can be used in 3D. Sometimes, the portable globe can be rendered in 2D GIS. A renderer can request information about a layer in 2D cases. A server can create or fill in layers if there is no layer. System 200 can also be used to cut, organize, fuse, update, and render 2D portable globes.

“Updating a Portable Globe.”

“There are situations when it may make sense to use delta updates for quick updates of a planet. A method of versioning and identification of the globe may be used to use content management tools. Some updates only modify or add packets. This means that any modified or deleted packets will have their old data in die packet bundles. These out-of-date packets won’t have an index entry that points them to them. If updates are frequent, it may be useful to periodically obtain a complete copy of a portable globe in order to recover some space.

“An existing portable globe may be modified according to another embodiment. A delta description can include a list containing the packets that need to be deleted as well as another globe, called the delta globe. A two-globe comparison may be used to build a delta description. A delta description can then be built by comparing the two globes. An updater program may read the old and delta globes and then write to the new globe. It is possible to ignore a packet that needs to be deleted. It is possible to write to the new globe a packet that is found in the delta globe. It may be ignored if a packet with the exact quadtree address or type is found in an existing globe. All other nodes in the old globe can be transferred to the new one. A standard packet bundle writer may be used in a merger routine. Two modified packet bundle readers allow for sequential traversal of associated indexes.

“Portable globes that are based on specific regions of interest can be very useful for users who require access to the globe data relevant to their current location but don’t have reliable access to a central master map. The portable globe is lightweight and easy to use.

“FIG. “FIG.7” shows an exemplary system 700 to update a portable globe according to an embodiment. Local globe server 742 can be provided via local device 740. The master globe server 710 may create a portable globe to be used in a geographic information system (GIS). This portable globe can then be transmitted over a network following the air embodiment. System 700 shows the master globe server 710 communicating with globe cutter server 720, which can transmit a portable world 730 to local device 740. Globe cutter server 710 could include packet bundler 722 or globe cutter 724.

“Master globe server 710 or globe cutter server 720 could be one or more processors-based computing devices. Master globe server 710 or globe cutter server 720 could also be software that is executed on one of several processor-based computing devices. A further embodiment of globe cutter server720 may contain one or more components such as packet bundler 722 or globe cutter 724. A computing device may also be used as local device 740. Globe cutter server 720 can sometimes perform the same functions as master globe server 710 in some cases.

According to one embodiment, “Master globe server 710” may be configured to execute/provide computer software or data. These software and data could relate to graphics applications that render high-resolution images such as in a geographic information system (GIS). These software applications can be displayed in a master globe server 710 user interface or served to and displayed by a client computer such as local device 740. A web-based application may serve the user interface, which is then executed on local device 740. Web browsers may be included in web-based applications. Thin client applications are also possible in web-based applications. These applications retrieve content from master globe server 710 and then provide it to the 710 master globe server.

“Accordingly to an embodiment, an application or user may submit a query referring to one or more geographic regions of the Earth. These regions can be chosen from a master map. A GIS application or related application such as local globeserver 742 may be used to select a region. This information is rendered on local device 740. In some cases, the packet cutter 722 and globe cutter 724 can be set up to allow a user to select a region using the master globe 710. The globe cutter server 722 may accept packets from selected regions. These packets are then organized by the packet packager 722. In one example, packet bundler 722 selects relevant packets, layers, and resolutions to transmit to master globe server 710. In response to packet requests, master globe server 710 can transmit data packets to packet bundler 722.

The user interface could include a variety of tools that allow the user to navigate and spin around a virtual Earth. The user interface could be a Google Earth interface. Some regions can be searched with search data or tables that are associated with a master map. A request may be made by packet bundler 722 based on changes in the region of interest. A packet handler 722 could also request updates from master planet server 710 based upon information that indicates that master globe server 701 has been updated.

“FIG. “FIG.8 illustrates an example display 800 of a user interface such as selection interface 801, according to an embodiment. Selection module 830 may provide the selection interface 810. Most cases, the selection interface 810 can be displayed via a web-based application window such as a browser window. Selection interface 810 displays an image 820 with cities 822-828. These images can be rendered by parameters entered into Param 1 or Param 2 of the selection interface portion 830. You can use parameters to query a database. A database can be a memory that stores tables or relational information. This could include information such as population, nationality and language. It may also contain legal jurisdiction information. These geographic coordinates can be converted into quadtree addresses which can be used to display potential selections in a GIS display.

“In some cases, user interaction may refine certain regions. Clicking on one of the highlighted cities 822-828 within view 820 may allow you to select a city that represents a particular region of the Earth. Sometimes, the selection interface 810 may display additional graphics or color lines to help users navigate through the selection process. Other cases may see selection interface 810 displaying additional radio buttons or input boxes in section 830 to help with a search query. Another embodiment of the selection interface 810 is a set or preferences that can be used to automatically select regions according to parameters or geographic coordinates.

“According to another embodiment, the resolution at which a particular region should be considered can be either predetermined or explicitly set via selection interface portion 830. The default resolution level refers to the level at which all imagery and terrain are included in the portable planet, regardless of whether they are located in the region. A level that quadtree nodes can be used to define the query area and its interior is called a selected level. The maximum resolution at a selected level is likely to be higher than that at the highest level.

“According some embodiments, all areas of the Earth that overlap the selected region at a specific resolution are preserved. This may be at the maximum resolution. All imagery, terrain and vector data within the region are included in the portable globe. A background resolution or default resolution can be used for the rest of your master globe. This may be a lower resolution or a minimum resolution in most cases. According to an embodiment, packet bundler 722 receives selection information once one or more selections have been made. Sometimes, both resolution and location information are received. In other situations, location information and resolution information are not received.

“Packet bundler 722 might receive a request to update geospatial data based at least on one selected region from an local device that can display a spinning-earth GIS. According to one embodiment, packet bundler 722 could generate packet requests for master planet server 710. A packet request can include a request to receive a packet with geospatial information for a quadtree. You can generate multiple packet requests at once. You can also generate packet requests in a bundled format. The packet bundler 722 can generate packet requests for each layer in the selected region. All terrain layer packet requests can be combined, for example. All image layer packet requests can be combined in a packet request bundle. Packets are generated per layer and are bundled together so that no data changes or layers not needed can be left out of master globe server 710 packet requests. Master globe server 710 may receive updated geospatial information using the generated request bundles.

“In one exemplary embodiment packet handier 722 could receive packets of data corresponding to regions of the Earth from master globe server 710. Many cases packet bundles can be used. The use of packet bundles can be a way to store large numbers of indexed packets in a small number of files with a maximum size (e.g. 2 GB). The packets can be kept in their ‘network-ready’ state. The packets may be stored in their?network-ready? state so that they can be removed from the bundle and sent directly to globe cutter 724. This selects the portion of the packet bundles that correspond to the requested query region and resolution. These packet bundles may be sent to globe cutter 724 by packet bundler 722. This determines whether there have been any changes in the data. As an example, only packets containing changes or updates are sent as a delta update. This is done through portable globe 730. A directory may contain one or more packet bundle directories. The directory may contain both the data files and the index file for a packet bundle. The quadtree path address may be used to order the index file. A binary search can then be performed on it to locate the data file ID and offset for each packet. The index may contain packet types, which makes it possible to pack a whole globe in one packet bundle. A further embodiment allows packet bundles to be received and cut per layer.

According to one embodiment, globe cutter 724 can be used to create a portable globe using the geospatial data contained in the returned packet bundles. The updated geospatial information may be compared with an old portable globe, or information related to request from local device 740. Globe cutter 724 can compare the updated geospatial information with the old portable planet by performing a checksum, hash sum, or cyclic redundancy (CRC) check. Globe cutter 724 can also perform any other operations to detect a difference between two data collections. Based on the comparison, redundancies might be excluded from the portable globe. The only differences between the updated geospatial information and the old portable globe are therefore preserved. Comparatives can also be made per layer.

“Globe cutter 724 can create a portable globe using the updated geospatial information and give the new globe to the local device along with a reference of the old portable globe. Local device 740 may display an updated portable globe with data files that contain more geospatial information for at least one region than for all of the rest. This allows the regions that have been updated to be rendered at a higher resolution in the spinning-earth GIS. The updated geospatial information may be used to create quadtree packets using the Globe cutter 724.

“An embodiment of globe cutter 724 could use a simple interface using egi-bin Python to cut the globe. A cutter page can contain JavaScript code that sends out a series of commands using standard AJAX techniques to create the globe. Examples of commands that may be sent include:

“Set up directories in /tmp:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=ADD_GLOBE_DIRECTORY&globe_name=my_globe\nConvert polygon to qt node list:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=POLYGON_TO_QTNODES&globe_name=my_globe&polygon=\n polygondef. &polygon=_level=18\nRewrite dbroot:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=REWRITE_DB_ROOT&globe_name=my_globe&source=http://lo\ncalhost\nGrab referenced kml:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=GRAB_KML&globe_name=my_globe\nBuild globe packet bundles:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=BUILD_GLOBE&globe_name=my_globe&source=http://localhost\n&default_level=4&max_\nExtract data for search:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=EXTRACT_SEARCH_DB&globe_name=my_globe&polygon= polygondef.\nAdd files for supporting plugin:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=ADD_PLUGIN_FILES&globe_name=my_globe\nPackage globe into a single file:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=PACKAGE_GLOBE&globe_name=my_globe\nGet size info about the globe file:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=GLOBE_INFO&globe_name=my_globe”

“Globe cutter 724 might create an information file while it builds the globe. This file contains all the commands used to create the globe. The file itself is included in the globe. To access the file when the globe is being served, use http://localhost:8888/earth/info.txt.”

According to an embodiment, the portable globe 730 from exemplary system 700 can be transmitted to a nearby device, such local device 740, which is configured to render the portable world 730 in the GIS. Local globe server 742 could be used to render the portable globe 730 to local devices. Local globe server 742 could be a localhost, such as a Google Earth Server on local device 740. A client such as a Google Earth client and a Google Earth viewer may be used to render portable globe 730 from local device 740. A selected area of the portable planet can be rendered at a higher resolution that the rest of the globe. Some servers support localhost-only or shared serving. This allows the globe to be viewed only by the local machine, or shared with a limited number of users over a local network.

“FIG. “FIG. 9 is a flowchart that illustrates an exemplary method (900) for updating a portable planet for a geographic information system (GIS). This flows according to an embodiment. A local device 740 receives a request for geospatial data updates based on at most one region in step 902. Local device 740 can generate packet requests, or request packet bundles for each layer in the selected region. The request packet bundle is sent to the globe cutter service 720. The request packet bundle is checked by the globe cutter server 720 to determine if it can be updated and made available. The globe cutter server 720 will notify master globe server 710 if the requested packet bundle is not available or has not been updated. The request can be sent to master globe server 710 in some cases. Data difference checks can be done by either master globe server 730 or packet bundler 722.

“In step 904, a globe cutter server 724 obtains updated geospatial information from a master server by using the generated request bundles. The packet bundler 722 determines which packages and at what resolution are required to fulfill the update request. The updated packet bundles can be used in step 906 to create a new portable world 730 using the updated geospatial information. This is done by comparing the updated data with the old portable planet. Based on the comparing, redundant globe data might be excluded from the new portable planet. Globe cutter 724 might remove packet bundles that have not been modified during the creation of the portable globe.

“Finally in step 908, globe cutter 724, provides the portable globe to the local device using reference to the old portable world. Local device 740 may display an updated portable world map with data files that contain more geospatial information for at least one region than the rest of the globe. This allows the updated globe to be rendered at a higher resolution using the spinning-earth GIS.

“The combination of the new quadtree with the new packets is guaranteed that the globe will be served as unchanged, deleted, modified, and new packets. The new portable globe file will contain the updated and modified packets. The old portable globe file will contain the unchanged packets. You might find deleted packets in your old portable globe file. However, they should not been requested as they are not represented in the quadtree.

“FIG. 10. illustrates an exemplary diagram for local device 740 that renders a portable globe updated on the local device. This is according to an embodiment. Local device 740 could include requester 1010, globe creator 1012 and local globe server 742. Requester 1010 might respond to queries for a specific geospatial area. In response to the queries of requester 1010, Globe creator 1012 creates a portable globe. Globe creator creates a portable globe that is updated with the new portable globe. It also includes any references to old or existing portable globes.

“Updated portable planets can be made in one of two ways. Globe creator 1012 can, in one embodiment, add the new portable globe to an existing globe file and update the index. The updated globe can be rendered to replace the outdated portions of an old portable globe. These updated portable globes can be treated in the same manner as separate files.

Globe creator 1012 could merge the new and old portable globes in another embodiment. If data is not found in the higher ranking globe, two or more globes can be linked together. The master globe would be the highest-ranking, and it would provide the dbroot packets and the quadtree packages for the updated globe. The portable globe can be as large as 4.7 GB. However, the quadtree is just 2.1 MB. This means that rebuilding and copying each quadtree every time isn’t a major hassle. You can either perform a delta against an existing globe or against one that has been lost. The first would allow you to discard any previous delta globes. This is particularly useful for changes that are all in the same region. This could make future deltas smaller, particularly if they involve updating different regions from earlier deltas.

A new portable globe can be fused to an old portable. This will allow for the same speed as any other portable globe files. You can do this in one pass using a stream that will allow you to access both the old and new portable files. You may need enough storage to temporarily store the updated globe. It should be about the same size as the old portable globe and new globe combined. You might find it slightly smaller as redundant files and deleted packets will be removed. The old and new portable globes can be deleted once the fusion has been completed.

Globe creator 1012 could also replace the portable globe dbroot files with updated dbroot files, update the index and create a new portable globe by using the updated Dbroot. A further embodiment allows the dbroot file to be rewritten. The dbRoot may contain paths to icons. These paths are not rewritten as they are relative. However, the source server may extract icons from these paths. Search and Keyhole Markup Language are rewritten using specific server addresses and ports. These addresses and ports can be given separately using the command line tools. This is useful in cases where separate servers are required to perform these functions. The original kml addresses can be saved to a file, which can then be used for seed addresses in order to gather all the referenced files and kml into the portable globe.

“The addresses can also be controlled using GET variables like the following:

“FIG. “FIG. 11” is a flowchart that illustrates an exemplary method 1100 to render an updated portable globe into a GIS according to an embodiment. Step 1102 is where the requester 1010 requests updated geospatial information from a globe server, or globe cutter for at least one region that can be used to update an older portable globe. An exemplary embodiment of this request is that at least one region be cabled and rendered at a higher resolution then the rest of the old portable planet. Globe creator 1012 receives updated geospatial data from the master globe server 710, or indirectly from global cutterserver 720. Globe creator 1012 creates a new portable globe by following step 1104. It also references one or more of the old portable globes. In step 1106, globe creator 1112 creates a new portable globe using the updated portable globe. It also references an old portable globe. The updated portable globe is displayed in a spinning-earth GIS using local globe server 742 at step 1108

“Once the portable globe has been generated, it can be used in conjunction with the old portable globe in exactly the same way as before. The new portable globe could be used as the master globe, from which all files and packets will be requested. The old portable globe can be used to search for missing packets and will be requested. The new portable globe will uniquely identify and reference the old portable globe, most likely by its creation date and name. You can daisy-chain multiple portable globe files in the same way, starting from the most recent and ending at the oldest portable globe.

“According another embodiment, one packet bundle file can be created. Instead of separating the data into separate packet bundles, the data packet bundle would contain imagery, terrain, vector packets, rather than seperating them as previously described. This approach has the advantage that the data packet bundle is usually larger than the rest of the files. It can then be used to start the globe file, avoiding the need to copy all the data again. Although the quadtree files are different in time, it is possible to place placeholders in the index. The quadtree packet bundle and its index, as well as the miscellaneous files, are attached to the data packets bundle and their index. The files index for miscellaneous files, data packets bundle index and quadtree packets bundle files is next. The files index consists of file names, offsets to the globe file and file sizes. The globe cutter controls the file names so that there are no namespace problems. The last 8 bytes contain an offset and a CRC.

This approach can be used to publish a delta publication approach. A delta globe file is identical to a globe, except it contains a reference to another file or another delta globe in the files index. It would be easy to combine an old portable globe and one or more of the new portable globe files into one updated globe file. This tool is useful to prevent the file’s number from growing too large, as these can degrade performance due to their reliance on fail-over.

According to an embodiment, a Portable Proxy Server allows users to access portable globes that are being served on other machines. Both the proxy and portable servers will appear on localhost at a specified port for their clients, namely Google Earth or the 3D Plugin. This allows for the hard-coding KML paths and search tabs within the dbroot. The user must specify a key if they do not want to access the world through localhost. If the user specifies a secret key, he or she will be able to share it with other users who have a proxy server installed on their machine. The shared key and IP address of the portable server are used to start proxy servers. It is possible to view the globe as if it were being hosted locally on their computer.

Summary for “Portable globe creation to a geographic information system”

“Technical Field”

“The embodiments discussed herein relate geographical information systems.”

“Background Art”

Geospatial coordinates are used to capture, store, manage, and display geospatial data elements. Google Earth, for example, renders satellite imagery, terrain and vectors over a three-dimensional geometry that represents the Earth’s surface. Google Earth users can “fly” You can navigate and explore a virtual Earth. Data and images that correspond to geographic locations are displayed in different degrees of detail.

A huge amount of geospatial information may be organized into a “globe” to facilitate this user experience. A globe is a directory hierarchy that contains a variety of bundled files. It can be used to provide imagery, vectors, and terrain for clients. A high resolution globe is created by combining tens to terabytes worth of vector, imagery, and terrain data. Smooth panning and zooming at any point on the fused globe allows for in-context view of large data sets. These globes can be used to explore and search for specific features.

“These globes are valuable tools for industry and government analysts as well as operational users who depend upon access to the central servers that provide data from the globes to their’spinning earth? clients. Sometimes, however, such access may not be possible. Sometimes, however, such access is not possible for military personnel, first responders, and relief workers on the ground. They may not have the ability to connect to the entire globe or may only be able to get limited connectivity for short periods.

“Embodiments” refers to systems and methods of providing a portable globe for geographical information systems (GIS). A method of providing a portable globe to a GIS can include querying a database to find one or more geographic coordinates using query information. Parameters based on historical factors, demographic factors, and political factors may be included in query information. A query may contain information about cities or populations centers that have a particular population. For bounded areas within qualifying cities, the database query might return geographic coordinates such as longitude or latitude coordinates. Based on a specific resolution level, the geographical coordinates can be converted to quadtree addresses. This method can determine at most one region that corresponds to a geographic region on a master globe using quadtree addresses.

“The selected regions may be used to organize the geospatial data of the master globe. This could include quadtrees from one or more regions. This method can also create a portable globe using the geospatial data. The portable globe is smaller and contains data files that contain more geospatial information for selected regions than the rest of the portable globe. The method then transmits the portable world to a local device that can render it in the GIS. These regions can be rendered at a higher resolution that the rest of the portable globe.

According to another embodiment, a system to provide a portable globe to a GIS could include a selection module that queries a database to find one or more geographic coordinates. The query information is used to convert the coordinates into quadtree addresses and to determine at most one region that corresponds to a region on a master globe using quad tee addresses. A fusion module may be included to organize spatial data from the master planet based on at least one region, and create a portable world based on that organized data. One or more data files may be included in the portable globe that contain greater geospatial information for selected regions than the rest. A transmitter may be included to transmit the portable world to a nearby device that can render it in the GIS. These regions can then be rendered at a higher resolution that the rest of the portable planet.

“A further embodiment of the method for updating a portable planet for a GIS includes receiving a request to update geospatial data based at least on one region from a local device that can display a spinning-earth GIS. Each layer in the selected region may generate packet requests. This method allows you to obtain updated geospatial information from a master server by using the packet requests generated. You can generate a series of packet requests individually or as a bundle. Based on the new geospatial data, a portable globe is made. A new portable globe can be made using the updated geospatial information. This is done by comparing an old portable globe with the updated geospatial. It is possible to create a new portable globe without redundant globe data from an old portable globe. This involves supplying the portable globe with a reference of the old portable globe to the local device. A local device can display an upgraded portable globe with date files that contain more geospatial information for selected regions than the rest of the portable world. This allows the updated globe to be rendered at a higher resolution in the spinning-earth GIS.

According to another embodiment, a system to update a portable globe for GIS may include an electronic packet bundler that receives a request for updated geospatial information based on a selected region of a local device capable to display a spinning-earth GIS. The packet requests are used to generate packet requests for each layer and to obtain the updated geospatial details from a master server. A globe cutter may be included in the system to create a portable globe using the updated geospatial information. This is done by comparing it with an older portable globe. The new portable globe can be made without redundant globe data. A globe cutter can also be used to create a portable globe from the geospatial data. The updated portable globe will then be provided to the local device along with a reference of the old portable globe. Local devices can display the new portable globe with data files that contain more geospatial information for selected regions than the rest of the portable world. This allows the select regions to be rendered at a higher resolution in the spinning-earth GIS.

“A further embodiment of the method includes requesting from a globe server updated geospatial information for at least one region to update an older portable globe that was used to display a spinning-earth GIS. At least one region can be rendered at a higher resolution that the rest of the old portable planet. This could also involve obtaining a new portable globe that has a reference to an old portable globe. This method could also include the creation of a portable globe updated with the new portable globe as well as the referenced old mobile globe. This method could also include rendering the updated portable planet in the spinning Earth GIS.

According to another embodiment, a system to render an updated portable globe on local devices for a GIS could include a requester that requests, from a server of the globe, updated geospatial information for at least one region. This is to update an old portable planet used to display a spinning-earth GIS. At least one region can be rendered at a higher resolution that the rest of the old portable planet. The new portable globe may be provided to the requester with a reference of the old portable globe. A globe creator may be included in the system to create a portable globe from the referenced old globe. The updated portable globe will then be rendered in the spinning-earth GIS.

“Further embodiments and features, as well as structure and operation, of the various embodiments, are described below with reference to the accompanying drawings.

“Embodiments will be described in this document with illustrations that can be used for specific applications. The invention does not limit itself to the specific embodiments. Anyone skilled in the art will be able to recognize modifications, applications, embodiments, and other fields within the scope of the invention and in which the embodiments could be of significant utility.

Google Earth offers satellite imagery and other data over a three-dimensional geometries representing the Earth’s surface. These geospatial data can be organized and index into a “globe”. Or a directory hierarchy that contains a number packet bundles (files), which can be used to provide imagery, terrain and vectors to Google Earth servers or clients. You can create high resolution globes by combining tens of Terabytes of imagery, vector data, and terrain from many sources. The geospatial data is combined to form a navigable globe. Smooth panning and zooming are possible to any point on the fused globe, which allows for in-context view of large quantities of data.

“The globes can be used by industry and government analysts, who have access the data from the central servers that supply the globes’ data to their?spinning earth?. clients. Sometimes, however, such access may not be possible. Access to the globe data may not be possible for military personnel, first responders, and relief workers on the ground. However, they might have access to the larger, central master map. One solution was to force the resource-intensive globefusion process to be performed on a local computer. Laptops and other local devices might not be capable of handling the fusion process. This is because there may be many regions of interest. It becomes a complex database management task and deployment with existing systems can prove difficult.

The “Embodiments” described herein pertain to the provision of a portable globe to a geographic information system (GIS). Many embodiments suggest that a portable globe can be made using one or more regions from a master map, which is a large, central globe with imagery, terrain and vector data. A portable globe could be a smaller, possibly more compact globe that can be sent to a local computing device. It may also be rendered by a “spinning earth”. Client or server on the local device. You can use the portable globe with or without internet connectivity. It can also be distributed easily to others on the ground. FIG. FIG. 1 illustrates a master map server 110 that is located in a particular city. The region of interest is chosen and a portable globe created. It is then served to local device 120. If the selected region is far from where you are located, local device 120 will not have access to internet. Sometimes, though there might be internet connectivity, it may not have sufficient bandwidth to handle data transfer from a globe. Users tend to have clearly defined regions of interest so they don’t need access to the entire globe, but only a portion. The portable globe is lightweight and easy to use.

“Example System”

“FIG. “FIG. System 200 displays master globe server210, which can transmit a portable world 230 to a local device 220. Master globe server 220 may contain selection module 212 and fusion module 214, master globe repository 218 and transmitter 228, respectively.

“Master globe server210” may be a processor-based computing system. Master globe server 210 could also be software that is executed on a processor. Any type of computing device can have one or more processors. A computing device may be any type of device, including a computer, workstation, mobile device (e.g., mobile phone, personal digital assistant or tablet), computer, server or compute cluster, server farm or game console, set top box, kiosk, embedded system, or any other device with at least one processor or memory. The embodiments of the present invention can be executed by software using a processor, firmware or hardware, or any combination thereof, in a computing device. A further embodiment of master globe server210 may include one or several databases, such master globe repository 215. A computing device may also be used as a local device 220.

According to one embodiment, “Master globe server210” may be configured to execute/provide computer software or data. These software and data could relate to graphics applications that render high-resolution images such as in a geographic information system (GIS). These software applications can be displayed on master globe server 220 or served to and displayed on client computers such as local device 223. A web-based application may serve the user interface, which is then executed on local device 221. Web browsers may be included in web-based applications. Thin client applications are also possible in web-based applications. These applications retrieve content from master globe server 210 and then provide it to the master globe server.

“Accordingly to one embodiment, an administrator or user may choose one or more geographic regions of the Earth. These regions can be chosen from a master map. Selection module 212 may be used to select a region. In some embodiments, selection module212 can be set up to allow a user to choose a region from a globe. Master globe repository 216 may contain a master globe. A user interface could include a variety of tools that allow the user to navigate and spin around a virtual Earth. The user interface could be a Google Earth interface. Some regions can be searched with search data or tables that are associated with a master map.

A master globe may allow you to select a geographical area. Sometimes, a selected region can be a region or area of interest (ROI) that a user has chosen. You can select regions in many ways. For example, you could use rectangles, ellipses or polygons to concentrate your attention on a particular area. An embodiment allows a user to select a region using a polygon that encompasses a specific area. Multiple polygons can also be used to select regions.

“FIG. “FIG. Selection module 212 may provide selection interface 310 in some cases. Selection interface 310 can be displayed via a web-based application window such as a browser window. Selection interface 310 displays an image 312 depicting a country 316. This image can be navigated and manipulated using display tools 318. You can select a region of the Earth using polygon 314. Selection interface 310 may display different colors or other graphic aids to help the user navigate through the polygon building process. Selection interface 310 can also provide rectangular frames and other polygon selection shapes.

According to one embodiment, a master globe can be layered with many levels. Each level can render images with a specific resolution. A surface can be composed of multiple data nodes at a given level such as quadtree or tripletree nodes. A quadtree tree data structure is one in which each node can have up to four subdivided regions. A quadtree may have multiple nodes depending on the resolution. A higher resolution level may be available. The next level will have four quadtree nosdes, where the previous level only had one.

A further embodiment allows for a predetermined resolution or explicit setting of other selection interface tools 318. Delimit resolution is the level at which all imagery and terrain are included in the portable planet, regardless of whether they are located in the selected region. A polygon level refers to the level at which quadtree nosdes are used for defining the polygon’s interior. The maximum resolution at which a polygon level can be used is the maximum.

According to some embodiments, the ail portions that overlap the polygon at a specific resolution are preserved. This may be at the maximum resolution. All imagery, terrain and vector data within the region are included in the portable globe. A background resolution or default resolution can be used for the rest of your master globe. This may be a lower resolution or a minimum resolution in most cases. According to an embodiment, selection module 212 receives information once one or more selections have been made. In some cases, both location and resolution information may be received. In other cases, information about the location is only received. Fusion module 214 or selection module 212 can determine or infer resolution information.

According to one embodiment, the vertices of a particular polygon may ensure that quadtree nodes at that polygon level contain the vertices. This is possible because they are guaranteed to be included in a specific region. These vertex quadtree nosdes can be considered new vertices of a polygon at the level. The new polygon can then be?drawn? and?filled? At the polygon level, use the quadtree nodes to create pixels. FIG. FIG. 4 shows an example diagram 400 showing a selection quadtree nodes according to an embodiment. Each block could be a quadtree nude in this example. A selected region may be defined by polygon 402. The selected region may include all quadtree nodes in polygon 402. Node 406 lies outside the region. Some cases may not use the edges of polygon 402. In these cases, it is possible that some edges are outside the quadtree nodes of the selected region. According to one embodiment, quadtree node paths are stored for nodes at lower levels than the node paths for higher resolution nodes. To create multiple high-resolution regions of interest, sets of node paths can be added.

“Accordingly to another embodiment, a portable globe can be built by?walking? The quadtree. All data specified by a node that is below or at the default resolution level is moved to the portable planet. The same applies to nodes located within the high resolution area of interest. As you go from the polygon level up to lower levels, this region will expand. If the node’s data is not being saved, the quadtree will remove the node along with its children.

A portable globe, according to another embodiment, may be used to ensure that the region selected is represented at a lower resolution. This will preserve the quadtree nodes at each level that contain the region. This means that the neighboring area may or not be included at a high resolution depending on its proximity to the polygon edge, and certain quadtree boundary boundaries. FIG. 408 is an example. 4. is located on a polygonal edge. This may be reasonable as the neighboring area was not included in the polygon. It may not have been very interesting. These neighboring areas may be included to allow the area of interest to be seen at low resolution. At these resolutions, they might have details from their vector or raster packets. An image pixel can appear at different levels in other embodiments depending on the quadtree node boundaries. A feature can be seen at higher resolutions, but resolution may not increase once it no longer shares a quadtree with the polygon.

“Accordingly to another embodiment, the selection information received from selection module 212 could be used by Fusion module 214 to determine which portions of the master planet to retrieve for a portable globe. Fusion module 214 can be used to organize geospatial information from the master planet based on a specific region. Fusion module 214 can also be used to create a portable world from the spatial data. The data files for the portable globe could contain more geospatial information for the chosen region than the rest of the globe. Another embodiment of organizing might include retrieving master planet tiles and data for at least one region at a higher level in order to allow the portable globe render a greater resolution for that region.

According to one embodiment, a portable globe can be created by retrieving data from a master planet and image, terrain, and vector data tiles. Any tiles or data that are in the same region as fusion module 21214 will be kept while it moves to lower resolutions. This allows high resolution features to be seen and zoomed on at lower resolutions. Fusion module 214 will continue until the default resolution is reached. At that point, ail data is saved to the master glebe. All searchable data within the requested region of interest are retrieved from a table.

The search data and retrieved tiles are saved in a form that can be used as a portable globe. The portable globe is easily downloaded to any portable storage device or laptop and can be accessed by a local client or server with or without a network. A lightweight server system is used to serve the data, which can be run on Windows, Mac OS X and Linux.

According to an embodiment, Fusion module 214 could be configured to use keyhole file techniques to create a portable globe. A keyhole flat file (KFF), for example, is a collection of data packets that can be spatially indexed. U.S. Patent No. 626893 discloses a KFF technique. No. No. 7,225,207 to Chikai Ohazaraa and al., which is herein included by reference. These techniques can include a file called dbroot, which is used to deploy KFF data to clients or servers, such as a Google Earth client. Fusion may be used in such situations to rewrite a dbroot and change the location of search tab servers. You can also download icons from a file in dbroot to the portable globe directory. You can download quadtree nodes with high resolution, including a default and maximum level. This will allow you to obtain quadtree packets and vector data, as well as imagery, terrain and terrain for your portable globe. A polygon can be used to retrieve search data from a database according to another embodiment. The search data tables can be transferred to the portable directory. Another way to move the portable globe directory is to compress it and make it portable.

“According another embodiment, packet bundles could be used to store large numbers of indexed packets in small files with a maximum size (e.g. 2 GB). The packets can be kept in their ‘network-ready? state. The packets may be stored in their?network-ready? state so that they can be extracted from the bundle, and sent directly to a Google Earth client, server, or local device. A portable globe might contain a directory that contains one or more packet bundle directories. The directory may contain both the data files and the index file for a packet bundle. The quadtree path address may be used to order the index file. A binary search can then be performed on it to locate the data file ID and offset for each packet. The index may contain packet types, which makes it possible to pack a whole globe in one bundle of packets.

“According another embodiment, separate packet packages may be used to store most packet types. However, the dbroot can be combined with its quadtree packets. This may be because separation offers more in-memory cache options. We might cache some indexes in memory, but not all, if we don’t have enough space. This could also improve the performance of delta updates, as certain types of packets might not be updated often.

According to another embodiment, a packet writer may not be able to create a packet bundle entirely from scratch. It may be possible to create a new index file and an original data file. You can then give the packets in the correct quadtree order to ensure that the resulting Index is in order. You can also add packets to an existing data file until it is full. Then, a new datafile is created. This order makes it easy to merge two packet bundles.

“According another embodiment, an initial bundle reader may be able to support a binary-disk-based search of an Index. Another form allows the index to be stored in memory. A reader could locate the index entry for a quadtree path and use it to locate the packet in one the data files. A reader might also be able to return the index entry information directly to the calling routine.

According to an embodiment, a packet bundle merger could include two modified readers as well as a standard writer. One reader will be identified as the dominant. The merger will traverse both indexes in a sequential order. It will grab the next packet from the reader with it, and then forward that packet to the author. If the packets are not available to both readers, the dominant reader’s packet will be used. Two portable globes can be combined by the merger. The merger will allow for delta updates.

According to an embodiment, transmitter 218 of the exemplary system 200 can be used to transmit a portable world, such as portable planet 230, to a nearby device such as local device 220 that renders the portable globe in GIS. Local globe server 222 could be used to render portable world 230. Local globe server 222, which may be a localhost, could be used to render portable globe 230 using a client such as a Google Earth server running on local device 220. Local device 220 could also render portable globe 233. This can be done using a client such as a Google Earth client and/or a Google Earth viewer. A selected area of the portable planet can be rendered at a higher resolution that the rest of the globe. Some servers support localhost-only or shared serving. This allows the globe to be viewed only by the local machine, or shared with a limited number of users over a local network.

“Example Method”

“FIG. “FIG.5” 5 illustrates an exemplary method 500 to provide a portable globe for the geographical information system (GIS) according to an embodiment. Step 502 involves receiving at least one region that corresponds to a geographic region of a master planet. Selection module 212 may also be used to receive the selection information. Selection module 212 can sometimes be used to help determine the selection information.

A user can select a region by following the steps in an example embodiment. A user may first zoom in to see an area of Earth that is close to a particular region of interest. This resolution can be set as the default level by the user. A user might click on the “Set Default Level?” button. In FIG. 3. The user can then navigate to the desired region. Zooming in at the highest resolution allows the user to see the region. This resolution can then be set to high resolution. The user can then choose the high resolution area by drawing a circle around the desired region. You can also specify a source server and a globe name.

“In step 504, geospatial information from the master planet may be organized based upon the selected region. One embodiment of organization could include retrieving master planet tiles and data for the chosen region at a higher resolution. This could allow for rendering the portable planet at a higher resolution than the rest of the globe. A further embodiment may include retrieving master globe tiles or data at a higher resolution to image, terrain, and vector data.

“In certain cases, geospatial data may be organized from master globe geospatial data may be organized based upon the selected asset type. Asset types can include imagery, terrain, vectors, and other types of data that are included in a globe. Imagery and terrain can be classified as raster data since they correspond to data values within a rectangular grid. The data is a color for imagery and an elevation for terrain. Vector data is data that refers to specific shapes such as. Points, polygons and polylines, among others. Metadata associated with them. A point could be the center of a town and include the name and population. Or a polygon line could represent a road and include the name and road name.

According to one embodiment, “Organization may include setting the first resolution for the selected area and the second resolution for geospatial information to be retrieved from other parts of the master globe. The selected region may have a higher resolution or maximum resolution, while the rest of the master planet may have a default resolution or lower resolution. These resolution levels can be predetermined or selected by an administrator or user during the region selection process. A further embodiment of the concept allows organization to retrieve searchable data from the master planet for the region. You can also include searchable data from other parts of the master globe. However, the searchable data might be smaller to match the remaining resolution of the globe.

“In step 506, the mobile globe is created using the geospatial data. The data files for the portable globe might be smaller than those for the master globe. They may also contain more geospatial information for at least one region than the rest. This is because the data for selected regions are more detailed and organized. Globe creation and fusion (or cutting), may be done for different asset types, or separately with potential different regions of interest. Steps 504 and 506 can use selection module 212, fusion module 214, master globe repository 221 or any combination thereof, according to embodiments.

According to some embodiments, “Other methods for providing geospatial information for a portable globe could be used.” A portable globe can be made by removing asset data from a master map and leaving only the relevant region’s data. Different methods may be used to create different assets. A portable globe may include imagery, terrain, and vector data. This is done by adding geospatial data from a master globe to identify areas that overlap with one region. Only data within the region may be searched. All other data may be removed for areas beyond the chosen region. Multi-polygon areas may be used in some cases. Sometimes, boolean flags can be used to include terrain and vectors. Other times, portable globe searches can be distinguished from external searches.

“The portable globe has been transmitted to a local device in step 508. The local device could be configured to render the portable world in a GIS such as Google Earth. A selected region might be rendered at a higher resolution that the rest of the portable globe. The region may also have more geospatial and search data. This step may be performed using Transmitter 218. A user could choose to create a globe, and then follow the URL link to download the portable globe.

According to another embodiment, step 502 could be replaced by a selection of the region. A further embodiment of this method is to replace step 502 with the provision of the portable globe to an appropriate local device that can render the chosen region at a higher resolution then the rest of the portable globe. A number of portable globes can be made available to a local device depending on the previous region, selections. A catalog module that displays information about the portable globe, and other portable globes, can be used in other cases to deliver portable globes to local devices. This catalog can be used to browse and download portable globes, either purchased or free.

A downloader that allows you to send a specific portable globe to a local device can also be used. The selected area may be rendered at a higher resolution then the rest of the portable globe if it is rendered or served in a spinning earth GIS on the device. For downloading a globe, it may be possible to create a zip or grz tarball according to certain embodiments. You may also find built-in consistency checks (CRCs) for downloading and unpacking.

“Server and globe management methods can be used according to further embodiments. Filtering geospatial data may be a part of an organization’s operations. Filtering information can include metadata features, filter parameters, and data. Filtering information can also include permissions, license information and dates, sources, vector layers or quality metrics. Another example is that a default server might only accept connections from local devices or a restricted number of IP addresses. In one scenario, an IP adress could be cleared by restarting it so it wouldn’t overly restrict different usage patterns. You may also use encryption. Additionally, limiting the demand for unauthorised access to portable globes may be possible by focusing on specific areas of interest. Search may also be a good way to limit the reach of a portable globe. You can set dbroot search URLs to point back at your localhost as a default.

“FIG. “FIG. 6” is a flowchart that illustrates an exemplary 600 method for creating a portable globe for a geographic information system (GIS), according an embodiment. Step 602 is where a database is accessed to find one or more geographic coordinates using query information. The database can be found locally or remotely. The query information can be generated automatically by a set parameters or manually selected by the user. You may also receive the query information, such as by selection module 212. Sometimes, the selection module 212 can be used to determine the query information.

“In step 604, one or more geographic coordinates are converted to quadtree nodes using a chosen resolution level. The selected query region may include all quadtree nodes within the geographic coordinates of the query. Some quadtree edges may not be used in certain cases. It is possible that some edges lie outside the quadtree regions. According to an embodiment, quadtree node paths are stored for nodes that have been filled at a lower level than the node paths for higher resolution nodes.

Based on quadtree addresses, at least one region that corresponds to a geographic region of a master planet may be identified in step 606 This may be one or more regions that are of different sizes and shapes. An example embodiment may further illustrate steps 602-606. To select a region, a user can follow the steps below. A user can first view an area of Earth that is close to an area of interest and then input the region or area of concern to use a user interface. Clicking on the?Set default level? button will allow you to select a resolution. The button is shown in FIG. 3. The user can enter a query to find cities in Egypt that have a population greater than 250,000 and then choose a resolution level. A map showing cities in Egypt with more than 250,000 inhabitants may be displayed to the user. The user can then navigate to the desired city or region and zoom in at the highest resolution. This resolution can be set as a high resolution and the desired city or region would then be found. You can also specify a source server and a globe name.

“Step 608 may include organizing geospatial data of the master globe based on selected regions. The organization may also include the retrieval of master globe tiles and data from the selected region at higher resolution. This could allow for rendering the portable planet at a higher resolution than the rest of the globe. A further embodiment may allow for the retrieval of master globe tiles and data at higher resolutions, such as imagery, terrain, and vector data.

“In certain cases, geospatial data may be organized from master globe geospatial data based on selected asset types (layers and channels). Asset types can include, but not be limited to, imagery, terrain, vectors, and other types of data that are included in a globe. Imagery and terrain can be classified as raster data since they correspond to data values within a rectangular grid. The data is a color for imagery and an elevation for terrain. Vector data is data that refers to specific shapes such as. Points, polygons and polylines, among others. Metadata associated with them. A point could be used to refer to the center or the population of a city. A polygon line could also describe a road and include the name of the road. These asset types can be translated into searchable queries in the database.

According to one embodiment, “Organization may include setting a resolution for the selected region as well as a resolution for geospatial data that will be retrieved from other parts of the master planet. The selected query region may have a higher resolution or maximum resolution, while the rest of the master planet may have a default resolution or lower resolution. These resolution levels can be predetermined or selected by an administrator or user during the region selection process. A further embodiment of the concept allows organization to retrieve searchable data from the master planet for the query region. You can also include searchable data from other parts of the master globe. However, the searchable data might be smaller to match the remaining resolution of the globe.

“Using the geospatial data, step 610 creates a portable globe. The data file size of the portable globe might be smaller than that of the master globe. It may also contain data files with more geospatial information for at least one query region. This is because the query region has higher resolutions, and more data is retrieved and organized. There may also be less data for other regions. Globe creation and fusion (or cutting), may be done for different asset types, or separately with different regions of interest. Steps 602-610, according to embodiments, may use selection module 212, fusion module 214, master globe repository 221 or any combination thereof.

“The portable globe has been transmitted to a local device in step 608. The local device could be configured to render your portable globe in a GIS such as Google Earth. A selected region might be rendered at a higher resolution that the rest of the portable globe. The region may also have more geospatial and search data. This step may be performed using Transmitter 218, A user might choose to create a globe, and then follow the URL link to download the portable globe.

The portable globe can be rendered in 3D GIS. Quadtrees can be used in 3D. Sometimes, the portable globe can be rendered in 2D GIS. A renderer can request information about a layer in 2D cases. A server can create or fill in layers if there is no layer. System 200 can also be used to cut, organize, fuse, update, and render 2D portable globes.

“Updating a Portable Globe.”

“There are situations when it may make sense to use delta updates for quick updates of a planet. A method of versioning and identification of the globe may be used to use content management tools. Some updates only modify or add packets. This means that any modified or deleted packets will have their old data in die packet bundles. These out-of-date packets won’t have an index entry that points them to them. If updates are frequent, it may be useful to periodically obtain a complete copy of a portable globe in order to recover some space.

“An existing portable globe may be modified according to another embodiment. A delta description can include a list containing the packets that need to be deleted as well as another globe, called the delta globe. A two-globe comparison may be used to build a delta description. A delta description can then be built by comparing the two globes. An updater program may read the old and delta globes and then write to the new globe. It is possible to ignore a packet that needs to be deleted. It is possible to write to the new globe a packet that is found in the delta globe. It may be ignored if a packet with the exact quadtree address or type is found in an existing globe. All other nodes in the old globe can be transferred to the new one. A standard packet bundle writer may be used in a merger routine. Two modified packet bundle readers allow for sequential traversal of associated indexes.

“Portable globes that are based on specific regions of interest can be very useful for users who require access to the globe data relevant to their current location but don’t have reliable access to a central master map. The portable globe is lightweight and easy to use.

“FIG. “FIG.7” shows an exemplary system 700 to update a portable globe according to an embodiment. Local globe server 742 can be provided via local device 740. The master globe server 710 may create a portable globe to be used in a geographic information system (GIS). This portable globe can then be transmitted over a network following the air embodiment. System 700 shows the master globe server 710 communicating with globe cutter server 720, which can transmit a portable world 730 to local device 740. Globe cutter server 710 could include packet bundler 722 or globe cutter 724.

“Master globe server 710 or globe cutter server 720 could be one or more processors-based computing devices. Master globe server 710 or globe cutter server 720 could also be software that is executed on one of several processor-based computing devices. A further embodiment of globe cutter server720 may contain one or more components such as packet bundler 722 or globe cutter 724. A computing device may also be used as local device 740. Globe cutter server 720 can sometimes perform the same functions as master globe server 710 in some cases.

According to one embodiment, “Master globe server 710” may be configured to execute/provide computer software or data. These software and data could relate to graphics applications that render high-resolution images such as in a geographic information system (GIS). These software applications can be displayed in a master globe server 710 user interface or served to and displayed by a client computer such as local device 740. A web-based application may serve the user interface, which is then executed on local device 740. Web browsers may be included in web-based applications. Thin client applications are also possible in web-based applications. These applications retrieve content from master globe server 710 and then provide it to the 710 master globe server.

“Accordingly to an embodiment, an application or user may submit a query referring to one or more geographic regions of the Earth. These regions can be chosen from a master map. A GIS application or related application such as local globeserver 742 may be used to select a region. This information is rendered on local device 740. In some cases, the packet cutter 722 and globe cutter 724 can be set up to allow a user to select a region using the master globe 710. The globe cutter server 722 may accept packets from selected regions. These packets are then organized by the packet packager 722. In one example, packet bundler 722 selects relevant packets, layers, and resolutions to transmit to master globe server 710. In response to packet requests, master globe server 710 can transmit data packets to packet bundler 722.

The user interface could include a variety of tools that allow the user to navigate and spin around a virtual Earth. The user interface could be a Google Earth interface. Some regions can be searched with search data or tables that are associated with a master map. A request may be made by packet bundler 722 based on changes in the region of interest. A packet handler 722 could also request updates from master planet server 710 based upon information that indicates that master globe server 701 has been updated.

“FIG. “FIG.8 illustrates an example display 800 of a user interface such as selection interface 801, according to an embodiment. Selection module 830 may provide the selection interface 810. Most cases, the selection interface 810 can be displayed via a web-based application window such as a browser window. Selection interface 810 displays an image 820 with cities 822-828. These images can be rendered by parameters entered into Param 1 or Param 2 of the selection interface portion 830. You can use parameters to query a database. A database can be a memory that stores tables or relational information. This could include information such as population, nationality and language. It may also contain legal jurisdiction information. These geographic coordinates can be converted into quadtree addresses which can be used to display potential selections in a GIS display.

“In some cases, user interaction may refine certain regions. Clicking on one of the highlighted cities 822-828 within view 820 may allow you to select a city that represents a particular region of the Earth. Sometimes, the selection interface 810 may display additional graphics or color lines to help users navigate through the selection process. Other cases may see selection interface 810 displaying additional radio buttons or input boxes in section 830 to help with a search query. Another embodiment of the selection interface 810 is a set or preferences that can be used to automatically select regions according to parameters or geographic coordinates.

“According to another embodiment, the resolution at which a particular region should be considered can be either predetermined or explicitly set via selection interface portion 830. The default resolution level refers to the level at which all imagery and terrain are included in the portable planet, regardless of whether they are located in the region. A level that quadtree nodes can be used to define the query area and its interior is called a selected level. The maximum resolution at a selected level is likely to be higher than that at the highest level.

“According some embodiments, all areas of the Earth that overlap the selected region at a specific resolution are preserved. This may be at the maximum resolution. All imagery, terrain and vector data within the region are included in the portable globe. A background resolution or default resolution can be used for the rest of your master globe. This may be a lower resolution or a minimum resolution in most cases. According to an embodiment, packet bundler 722 receives selection information once one or more selections have been made. Sometimes, both resolution and location information are received. In other situations, location information and resolution information are not received.

“Packet bundler 722 might receive a request to update geospatial data based at least on one selected region from an local device that can display a spinning-earth GIS. According to one embodiment, packet bundler 722 could generate packet requests for master planet server 710. A packet request can include a request to receive a packet with geospatial information for a quadtree. You can generate multiple packet requests at once. You can also generate packet requests in a bundled format. The packet bundler 722 can generate packet requests for each layer in the selected region. All terrain layer packet requests can be combined, for example. All image layer packet requests can be combined in a packet request bundle. Packets are generated per layer and are bundled together so that no data changes or layers not needed can be left out of master globe server 710 packet requests. Master globe server 710 may receive updated geospatial information using the generated request bundles.

“In one exemplary embodiment packet handier 722 could receive packets of data corresponding to regions of the Earth from master globe server 710. Many cases packet bundles can be used. The use of packet bundles can be a way to store large numbers of indexed packets in a small number of files with a maximum size (e.g. 2 GB). The packets can be kept in their ‘network-ready’ state. The packets may be stored in their?network-ready? state so that they can be removed from the bundle and sent directly to globe cutter 724. This selects the portion of the packet bundles that correspond to the requested query region and resolution. These packet bundles may be sent to globe cutter 724 by packet bundler 722. This determines whether there have been any changes in the data. As an example, only packets containing changes or updates are sent as a delta update. This is done through portable globe 730. A directory may contain one or more packet bundle directories. The directory may contain both the data files and the index file for a packet bundle. The quadtree path address may be used to order the index file. A binary search can then be performed on it to locate the data file ID and offset for each packet. The index may contain packet types, which makes it possible to pack a whole globe in one packet bundle. A further embodiment allows packet bundles to be received and cut per layer.

According to one embodiment, globe cutter 724 can be used to create a portable globe using the geospatial data contained in the returned packet bundles. The updated geospatial information may be compared with an old portable globe, or information related to request from local device 740. Globe cutter 724 can compare the updated geospatial information with the old portable planet by performing a checksum, hash sum, or cyclic redundancy (CRC) check. Globe cutter 724 can also perform any other operations to detect a difference between two data collections. Based on the comparison, redundancies might be excluded from the portable globe. The only differences between the updated geospatial information and the old portable globe are therefore preserved. Comparatives can also be made per layer.

“Globe cutter 724 can create a portable globe using the updated geospatial information and give the new globe to the local device along with a reference of the old portable globe. Local device 740 may display an updated portable globe with data files that contain more geospatial information for at least one region than for all of the rest. This allows the regions that have been updated to be rendered at a higher resolution in the spinning-earth GIS. The updated geospatial information may be used to create quadtree packets using the Globe cutter 724.

“An embodiment of globe cutter 724 could use a simple interface using egi-bin Python to cut the globe. A cutter page can contain JavaScript code that sends out a series of commands using standard AJAX techniques to create the globe. Examples of commands that may be sent include:

“Set up directories in /tmp:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=ADD_GLOBE_DIRECTORY&globe_name=my_globe\nConvert polygon to qt node list:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=POLYGON_TO_QTNODES&globe_name=my_globe&polygon=\n polygondef. &polygon=_level=18\nRewrite dbroot:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=REWRITE_DB_ROOT&globe_name=my_globe&source=http://lo\ncalhost\nGrab referenced kml:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=GRAB_KML&globe_name=my_globe\nBuild globe packet bundles:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=BUILD_GLOBE&globe_name=my_globe&source=http://localhost\n&default_level=4&max_\nExtract data for search:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=EXTRACT_SEARCH_DB&globe_name=my_globe&polygon= polygondef.\nAdd files for supporting plugin:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=ADD_PLUGIN_FILES&globe_name=my_globe\nPackage globe into a single file:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=PACKAGE_GLOBE&globe_name=my_globe\nGet size info about the globe file:\nhttp://my_server/cgi-\nbin/globe_cutter.py?cmd=GLOBE_INFO&globe_name=my_globe”

“Globe cutter 724 might create an information file while it builds the globe. This file contains all the commands used to create the globe. The file itself is included in the globe. To access the file when the globe is being served, use http://localhost:8888/earth/info.txt.”

According to an embodiment, the portable globe 730 from exemplary system 700 can be transmitted to a nearby device, such local device 740, which is configured to render the portable world 730 in the GIS. Local globe server 742 could be used to render the portable globe 730 to local devices. Local globe server 742 could be a localhost, such as a Google Earth Server on local device 740. A client such as a Google Earth client and a Google Earth viewer may be used to render portable globe 730 from local device 740. A selected area of the portable planet can be rendered at a higher resolution that the rest of the globe. Some servers support localhost-only or shared serving. This allows the globe to be viewed only by the local machine, or shared with a limited number of users over a local network.

“FIG. “FIG. 9 is a flowchart that illustrates an exemplary method (900) for updating a portable planet for a geographic information system (GIS). This flows according to an embodiment. A local device 740 receives a request for geospatial data updates based on at most one region in step 902. Local device 740 can generate packet requests, or request packet bundles for each layer in the selected region. The request packet bundle is sent to the globe cutter service 720. The request packet bundle is checked by the globe cutter server 720 to determine if it can be updated and made available. The globe cutter server 720 will notify master globe server 710 if the requested packet bundle is not available or has not been updated. The request can be sent to master globe server 710 in some cases. Data difference checks can be done by either master globe server 730 or packet bundler 722.

“In step 904, a globe cutter server 724 obtains updated geospatial information from a master server by using the generated request bundles. The packet bundler 722 determines which packages and at what resolution are required to fulfill the update request. The updated packet bundles can be used in step 906 to create a new portable world 730 using the updated geospatial information. This is done by comparing the updated data with the old portable planet. Based on the comparing, redundant globe data might be excluded from the new portable planet. Globe cutter 724 might remove packet bundles that have not been modified during the creation of the portable globe.

“Finally in step 908, globe cutter 724, provides the portable globe to the local device using reference to the old portable world. Local device 740 may display an updated portable world map with data files that contain more geospatial information for at least one region than the rest of the globe. This allows the updated globe to be rendered at a higher resolution using the spinning-earth GIS.

“The combination of the new quadtree with the new packets is guaranteed that the globe will be served as unchanged, deleted, modified, and new packets. The new portable globe file will contain the updated and modified packets. The old portable globe file will contain the unchanged packets. You might find deleted packets in your old portable globe file. However, they should not been requested as they are not represented in the quadtree.

“FIG. 10. illustrates an exemplary diagram for local device 740 that renders a portable globe updated on the local device. This is according to an embodiment. Local device 740 could include requester 1010, globe creator 1012 and local globe server 742. Requester 1010 might respond to queries for a specific geospatial area. In response to the queries of requester 1010, Globe creator 1012 creates a portable globe. Globe creator creates a portable globe that is updated with the new portable globe. It also includes any references to old or existing portable globes.

“Updated portable planets can be made in one of two ways. Globe creator 1012 can, in one embodiment, add the new portable globe to an existing globe file and update the index. The updated globe can be rendered to replace the outdated portions of an old portable globe. These updated portable globes can be treated in the same manner as separate files.

Globe creator 1012 could merge the new and old portable globes in another embodiment. If data is not found in the higher ranking globe, two or more globes can be linked together. The master globe would be the highest-ranking, and it would provide the dbroot packets and the quadtree packages for the updated globe. The portable globe can be as large as 4.7 GB. However, the quadtree is just 2.1 MB. This means that rebuilding and copying each quadtree every time isn’t a major hassle. You can either perform a delta against an existing globe or against one that has been lost. The first would allow you to discard any previous delta globes. This is particularly useful for changes that are all in the same region. This could make future deltas smaller, particularly if they involve updating different regions from earlier deltas.

A new portable globe can be fused to an old portable. This will allow for the same speed as any other portable globe files. You can do this in one pass using a stream that will allow you to access both the old and new portable files. You may need enough storage to temporarily store the updated globe. It should be about the same size as the old portable globe and new globe combined. You might find it slightly smaller as redundant files and deleted packets will be removed. The old and new portable globes can be deleted once the fusion has been completed.

Globe creator 1012 could also replace the portable globe dbroot files with updated dbroot files, update the index and create a new portable globe by using the updated Dbroot. A further embodiment allows the dbroot file to be rewritten. The dbRoot may contain paths to icons. These paths are not rewritten as they are relative. However, the source server may extract icons from these paths. Search and Keyhole Markup Language are rewritten using specific server addresses and ports. These addresses and ports can be given separately using the command line tools. This is useful in cases where separate servers are required to perform these functions. The original kml addresses can be saved to a file, which can then be used for seed addresses in order to gather all the referenced files and kml into the portable globe.

“The addresses can also be controlled using GET variables like the following:

“FIG. “FIG. 11” is a flowchart that illustrates an exemplary method 1100 to render an updated portable globe into a GIS according to an embodiment. Step 1102 is where the requester 1010 requests updated geospatial information from a globe server, or globe cutter for at least one region that can be used to update an older portable globe. An exemplary embodiment of this request is that at least one region be cabled and rendered at a higher resolution then the rest of the old portable planet. Globe creator 1012 receives updated geospatial data from the master globe server 710, or indirectly from global cutterserver 720. Globe creator 1012 creates a new portable globe by following step 1104. It also references one or more of the old portable globes. In step 1106, globe creator 1112 creates a new portable globe using the updated portable globe. It also references an old portable globe. The updated portable globe is displayed in a spinning-earth GIS using local globe server 742 at step 1108

“Once the portable globe has been generated, it can be used in conjunction with the old portable globe in exactly the same way as before. The new portable globe could be used as the master globe, from which all files and packets will be requested. The old portable globe can be used to search for missing packets and will be requested. The new portable globe will uniquely identify and reference the old portable globe, most likely by its creation date and name. You can daisy-chain multiple portable globe files in the same way, starting from the most recent and ending at the oldest portable globe.

“According another embodiment, one packet bundle file can be created. Instead of separating the data into separate packet bundles, the data packet bundle would contain imagery, terrain, vector packets, rather than seperating them as previously described. This approach has the advantage that the data packet bundle is usually larger than the rest of the files. It can then be used to start the globe file, avoiding the need to copy all the data again. Although the quadtree files are different in time, it is possible to place placeholders in the index. The quadtree packet bundle and its index, as well as the miscellaneous files, are attached to the data packets bundle and their index. The files index for miscellaneous files, data packets bundle index and quadtree packets bundle files is next. The files index consists of file names, offsets to the globe file and file sizes. The globe cutter controls the file names so that there are no namespace problems. The last 8 bytes contain an offset and a CRC.

This approach can be used to publish a delta publication approach. A delta globe file is identical to a globe, except it contains a reference to another file or another delta globe in the files index. It would be easy to combine an old portable globe and one or more of the new portable globe files into one updated globe file. This tool is useful to prevent the file’s number from growing too large, as these can degrade performance due to their reliance on fail-over.

According to an embodiment, a Portable Proxy Server allows users to access portable globes that are being served on other machines. Both the proxy and portable servers will appear on localhost at a specified port for their clients, namely Google Earth or the 3D Plugin. This allows for the hard-coding KML paths and search tabs within the dbroot. The user must specify a key if they do not want to access the world through localhost. If the user specifies a secret key, he or she will be able to share it with other users who have a proxy server installed on their machine. The shared key and IP address of the portable server are used to start proxy servers. It is possible to view the globe as if it were being hosted locally on their computer.

Click here to view the patent on Google Patents.